diff --git a/zmk/.clang-format b/zmk/.clang-format deleted file mode 100644 index 3c29522a..00000000 --- a/zmk/.clang-format +++ /dev/null @@ -1,4 +0,0 @@ -BasedOnStyle: LLVM -IndentWidth: 4 -ColumnLimit: 100 -SortIncludes: false diff --git a/zmk/.devcontainer/.bashrc b/zmk/.devcontainer/.bashrc deleted file mode 100644 index 9fdb8f69..00000000 --- a/zmk/.devcontainer/.bashrc +++ /dev/null @@ -1,8 +0,0 @@ -export LS_OPTIONS='-F --color=auto' -alias ls='ls $LS_OPTIONS' -if [ "${CODESPACES}" = "true" ]; then - export WORKSPACE_DIR="$HOME/workspace/zmk" -fi -if [ -f "$WORKSPACE_DIR/zephyr/zephyr-env.sh" ]; then - source "$WORKSPACE_DIR/zephyr/zephyr-env.sh" -fi diff --git a/zmk/.devcontainer/Dockerfile b/zmk/.devcontainer/Dockerfile deleted file mode 100644 index 184aae9a..00000000 --- a/zmk/.devcontainer/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM zmkfirmware/zephyr-west-action-arm - -RUN apt-get -y update && \ - apt-get -y upgrade && \ - apt-get install --no-install-recommends -y \ - ssh \ - gpg && \ - rm -rf /var/lib/apt/lists/* - -COPY .bashrc tmp -RUN mv /tmp/.bashrc ~/.bashrc diff --git a/zmk/.devcontainer/devcontainer.json b/zmk/.devcontainer/devcontainer.json deleted file mode 100644 index 0de8bcfb..00000000 --- a/zmk/.devcontainer/devcontainer.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "ZMK Development", - "dockerFile": "Dockerfile", - "extensions": ["ms-vscode.cpptools"], - "runArgs": ["--security-opt", "label=disable"], - "containerEnv": {"WORKSPACE_DIR": "${containerWorkspaceFolder}"}, - "settings": { - "terminal.integrated.shell.linux": "/bin/bash" - }, - "mounts": [ - "type=volume,source=zmk-config,target=/workspaces/zmk-config" - ] -} - diff --git a/zmk/.gitattributes b/zmk/.gitattributes deleted file mode 100644 index 3d05d86d..00000000 --- a/zmk/.gitattributes +++ /dev/null @@ -1,6 +0,0 @@ -* text=auto - -# Always use Unix-style line endings for Bash scripts so they work in -# Docker on Windows. -.bashrc text eol=lf -*.sh text eol=lf diff --git a/zmk/.github/workflows/build.yml b/zmk/.github/workflows/build.yml deleted file mode 100644 index f6a12bf4..00000000 --- a/zmk/.github/workflows/build.yml +++ /dev/null @@ -1,94 +0,0 @@ -on: - push: - paths: - - "app/**" - pull_request: - paths: - - "app/**" - -name: Build - -jobs: - build: - runs-on: ubuntu-latest - name: Build Test - strategy: - matrix: - board: [proton_c, nice_nano, bluemicro840_v1, nrfmicro_13] - shield: - - boardsource3x4 - - corne_left - - corne_right - - kyria_left - - kyria_right - - lily58_left - - lily58_right - - iris_left - - iris_right - - jorne_left - - jorne_right - - jian_left - - jian_right - - reviung41 - - romac - - romac_plus - - settings_reset - - quefrency_left - - quefrency_right - - nibble - include: - - board: proton_c - shield: clueboard_california - steps: - # To use this repository's private action, - # you must check out the repository - - name: Checkout - uses: actions/checkout@v2 - - name: Cache west modules - timeout-minutes: 2 - continue-on-error: true - uses: actions/cache@v2 - env: - cache-name: cache-zephyr-modules - with: - path: | - modules/ - tools/ - zephyr/ - bootloader/ - key: 2-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('app/west.yml') }} - restore-keys: | - 2-${{ runner.os }}-build-${{ env.cache-name }}- - 2-${{ runner.os }}-build- - 2-${{ runner.os }}- - - name: West Init - uses: "docker://zmkfirmware/zephyr-west-action-arm:latest" - id: west-init - with: - args: 'init "-l app"' - - name: West Update - uses: "docker://zmkfirmware/zephyr-west-action-arm:latest" - id: west-update - with: - args: "update" - - name: West Config Zephyr Base - uses: "docker://zmkfirmware/zephyr-west-action-arm:latest" - id: west-config - with: - args: 'config "--global zephyr.base-prefer configfile"' - - name: West Zephyr Export - uses: "docker://zmkfirmware/zephyr-west-action-arm:latest" - id: west-zephyr-export - with: - args: "zephyr-export" - - name: West Build - uses: "docker://zmkfirmware/zephyr-west-action-arm:latest" - id: west-build - with: - args: 'build "-s app -b ${{ matrix.board }} -- -DSHIELD=${{ matrix.shield }}"' - - name: Archive Build - uses: actions/upload-artifact@v2 - if: ${{ matrix.board != 'proton_c' }} - with: - name: "${{ matrix.board }}-${{ matrix.shield }}-zmk-uf2" - path: build/zephyr/zmk.uf2 diff --git a/zmk/.github/workflows/clang-format-lint.yml b/zmk/.github/workflows/clang-format-lint.yml deleted file mode 100644 index 70ae9863..00000000 --- a/zmk/.github/workflows/clang-format-lint.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: clang-format-lint - -on: - push: - paths: - - "app/boards/**/*.c" - - "app/include/**/*.h" - - "app/src/**" - - "app/drivers/**/*.c" - - "app/drivers/**/*.h" - pull_request: - paths: - - "app/boards/**/*.c" - - "app/include/**/*.h" - - "app/src/**" - - "app/drivers/**/*.c" - - "app/drivers/**/*.h" - -jobs: - build: - runs-on: ubuntu-latest - name: clang-format lint - - steps: - - uses: actions/checkout@v2 - - uses: DoozyX/clang-format-lint-action@v0.9 - with: - source: "./app" - extensions: "h,c" diff --git a/zmk/.github/workflows/doc-checks.yml b/zmk/.github/workflows/doc-checks.yml deleted file mode 100644 index a31a88e6..00000000 --- a/zmk/.github/workflows/doc-checks.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: doc-checks - -on: - push: - paths: - - "docs/**" - pull_request: - paths: - - "docs/**" - -jobs: - lint: - runs-on: ubuntu-latest - name: ESLint - - steps: - - uses: actions/checkout@v2 - - uses: bahmutov/npm-install@v1 - with: - working-directory: docs - - name: ESLint - run: npm run lint - working-directory: docs - prettier: - runs-on: ubuntu-latest - name: Prettier - - steps: - - uses: actions/checkout@v2 - - uses: bahmutov/npm-install@v1 - with: - working-directory: docs - - name: Prettier Check - run: npm run prettier:check - working-directory: docs diff --git a/zmk/.github/workflows/test.yml b/zmk/.github/workflows/test.yml deleted file mode 100644 index f3e93515..00000000 --- a/zmk/.github/workflows/test.yml +++ /dev/null @@ -1,70 +0,0 @@ -on: - push: - paths: - - "app/tests/**" - - "app/src/**" - pull_request: - paths: - - "app/tests/**" - - "app/src/**" - -name: Test - -jobs: - integration_test: - runs-on: ubuntu-latest - name: Integration Tests - steps: - # To use this repository's private action, - # you must check out the repository - - name: Checkout - uses: actions/checkout@v2 - - name: Cache west modules - timeout-minutes: 2 - continue-on-error: true - uses: actions/cache@v2 - env: - cache-name: cache-zephyr-modules - with: - path: | - modules/ - tools/ - zephyr/ - bootloader/ - key: 2-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('app/west.yml') }} - restore-keys: | - 2-${{ runner.os }}-build-${{ env.cache-name }}- - 2-${{ runner.os }}-build- - 2-${{ runner.os }}- - - name: West Init - uses: "docker://zmkfirmware/zephyr-west-action-arm:latest" - id: west-init - with: - args: 'init "-l app"' - - name: West Update - uses: "docker://zmkfirmware/zephyr-west-action-arm:latest" - id: west-update - with: - args: "update" - - name: West Config Zephyr Base - uses: "docker://zmkfirmware/zephyr-west-action-arm:latest" - id: west-config - with: - args: 'config "--global zephyr.base-prefer configfile"' - - name: West Zephyr Export - uses: "docker://zmkfirmware/zephyr-west-action-arm:latest" - id: west-zephyr-export - with: - args: "zephyr-export" - - name: Test All - uses: "docker://zmkfirmware/zephyr-west-action-arm:latest" - id: west-build - with: - entrypoint: /bin/bash - args: '-c "west test"' - - name: Archive Build - if: ${{ always() }} - uses: actions/upload-artifact@v2 - with: - name: "log-files" - path: app/build/**/*.log diff --git a/zmk/.gitignore b/zmk/.gitignore deleted file mode 100644 index 93c801d9..00000000 --- a/zmk/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -/.west -/bootloader -/modules -/tools -/zephyr -/zmk-config -/build -*.DS_Store -__pycache__ \ No newline at end of file diff --git a/zmk/.vscode/settings.json b/zmk/.vscode/settings.json deleted file mode 100644 index eba95704..00000000 --- a/zmk/.vscode/settings.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files.associations": { - "*.overlay": "dts", - "*.keymap": "dts" - } -} \ No newline at end of file diff --git a/zmk/.vscode/tasks.json b/zmk/.vscode/tasks.json deleted file mode 100644 index 080ffea6..00000000 --- a/zmk/.vscode/tasks.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - // See https://go.microsoft.com/fwlink/?LinkId=733558 - // for the documentation about the tasks.json format - "version": "2.0.0", - "tasks": [ - { - "label": "Build", - "type": "shell", - "command": "cd app && west build", - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "label": "Flash", - "type": "shell", - "command": "cd app && west flash", - "group": "test" - }, - { - "label": "Debug", - "type": "shell", - "command": "cd app && west debug", - "group": "test" - } - ] -} diff --git a/zmk/AUTHORS b/zmk/AUTHORS deleted file mode 100644 index 8052fd95..00000000 --- a/zmk/AUTHORS +++ /dev/null @@ -1,11 +0,0 @@ -# The ZMK Project consists of many contributors. This file includes individuals -# who have contributed significant changes to the project. To be added to here, -# please submit a PR to the project repo. -Peter Johanson (@petejohanson) -Innovaker (@innovaker) -Nick Winans (@Nicell) -Okke Formsma (@okke-formsma) -Cody McGinnis (@BrainWart) -Kurtis Lew (@kurtis-lew) -Richard Jones (@bmcgavin) -Kevin Chen (@chenkevinh) \ No newline at end of file diff --git a/zmk/CODE_OF_CONDUCT.md b/zmk/CODE_OF_CONDUCT.md deleted file mode 100644 index 399c0b12..00000000 --- a/zmk/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,128 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, religion, or sexual identity -and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the - overall community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or - advances of any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email - address, without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -conduct@zmkfirmware.dev. -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series -of actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or -permanent ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within -the community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.0, available at -https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. - -Community Impact Guidelines were inspired by [Mozilla's code of conduct -enforcement ladder](https://github.com/mozilla/diversity). - -[homepage]: https://www.contributor-covenant.org - -For answers to common questions about this code of conduct, see the FAQ at -https://www.contributor-covenant.org/faq. Translations are available at -https://www.contributor-covenant.org/translations. diff --git a/zmk/CONTRIBUTING.md b/zmk/CONTRIBUTING.md deleted file mode 100644 index 3ea8c783..00000000 --- a/zmk/CONTRIBUTING.md +++ /dev/null @@ -1,120 +0,0 @@ -# Contributing To ZMK - -Thanks for taking an interest in contributing to ZMK! After reading through the documentation, if -you have any questions, please come join us on the -[ZMK Discord Server][discord-invite]. - -## Code of Conduct - -All community members are expected to abide by the [Code of Conduct][code-of-conduct]. -For any and all conduct inquiries or concerns, please contact conduct@zmkfirmware.dev. - -[code-of-conduct]: https://github.com/zmkfirmware/zmk/blob/main/CODE_OF_CONDUCT.md - -## How Can I Contribute - -There are many different ways that you can contribute to ZMK, several of which require no coding -abilities. These include: - -- Chat Support -- Issue Reporting/Commenting -- Testing -- Documentation -- Code Contributions - -## Chat Support - -Providing user support on the [ZMK Discord Server][discord-invite] is a great way to help the -project. In particular, answering questions in the [#help](https://discord.com/channels/719497620560543766/719909884769992755) channel is incredibly appreciated. - -## Issue Reporting/Commenting - -Often, you might encounter unexpected behavior when building, flashing, or running the ZMK -firmware. Submitting or commenting on issues on GitHub is a great way to contribute to the -ZMK project. - -### Before Submitting a Report - -- Review the [Frequently Asked Questions](https://zmkfirmware.dev/docs/faq). -- Check the [Troubleshooting Guide](https://zmkfirmware.dev/docs/troubleshooting) for answers. -- Search the [open issues](https://github.com/zmkfirmware/zmk/issues) for an existing report that - matches your problem. - -### Opening A Report - -To open a report: - -- Head to https://github.com/zmkfirmware/zmk/issues/new -- Provide an accurate summary of the issue in the title. -- Provide as much detail as you can about the issue including: - - What [board/shield](https://zmkfirmware.dev/docs/faq#what-is-a-board) you are using. - - A link to the user repository, if you used it to build your firmware. - - Exact steps to reproduce the problem. - - Any relevant screenshots or [logs](https://zmkfirmware.dev/docs/dev-guide-usb-logging) - -## Testing - -The `help wanted` label will be added to any [pull requests](https://github.com/zmkfirmware/zmk/pulls?q=is%3Aopen+is%3Apr+label%3A%22help+wanted%22) -or [issues](https://github.com/zmkfirmware/zmk/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) -where user testing can assist the ZMK contributors to verify fixes, confirm -bugs, etc. - -When providing testing feedback, please provide: - -- Exact steps used to test -- Any hardware details relevant to testing -- Pass/fail summary for testing. -- Full details of any failures, including: - - Logs - - Screenshots - -## Documentation - -Quality documentation is a huge part of what makes a successful project. Contributions to add -documentation to areas not currently covered are greatly appreciated. - -### Contributing - -- The documentation site can be found in the main ZMK repo, in the - [docs/](https://github.com/zmkfirmware/zmk/tree/main/docs) subdirectory. -- The documentation is maintained using [Docusaurus V2](https://v2.docusaurus.io/docs/). -- To get started, from the `docs/` directory, run `npm ci` and then `npm start`. -- Enhancements should be submitted as pull requests to the `main` branch of ZMK. - -## Code Contributions - -### Development Setup - -To get your development environment setup going, start at the -[basic setup](https://zmkfirmware.dev/docs/dev-setup) docs, and make sure you can build and flash -your own locally built firmware. - -### Formatting - -ZMK uses `clang-format` to ensure consist formatting for our source code. Before submitting your -changes, make sure you've manually run `clang-format`, or have your IDE configured to auto-format -on save. - -### Commit Messages - -The ZMK project is working towards, but not yet enforcing, the use of -[conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) for commit messages. - -Further documentation and details will be provided here soon. - -### Pull Requests - -When opening a pull request with your changes, please: - -- Submit the PR to the `main` branch of the - [`zmkfirmware/zmk`](https://github.com/zmkfirmware/zmk) repository. -- Use a descriptive title that summarizes the change. -- In the description, include: - - References to any open issues fixed by the PR. - - Feature added by the PR - - Bugs fixed by the PR. - - Testing you've performed locally. - - Requested testing by reviewers or testers. - - Screenshots or logs that support understanding the change. - -[discord-invite]: https://zmkfirmware.dev/community/discord/invite diff --git a/zmk/LICENSE b/zmk/LICENSE deleted file mode 100644 index 213e7340..00000000 --- a/zmk/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 The ZMK Contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/zmk/README.md b/zmk/README.md deleted file mode 100644 index cde1ffae..00000000 --- a/zmk/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Zephyr™ Mechanical Keyboard (ZMK) Firmware - -[![Discord](https://img.shields.io/discord/719497620560543766)](https://zmkfirmware.dev/community/discord/invite) -[![Build](https://github.com/zmkfirmware/zmk/workflows/Build/badge.svg)](https://github.com/zmkfirmware/zmk/actions) -[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md) - -This project is a complete work in progress, with only basic things functioning. The goal is to explore a new MK firmware -with a less restrictive license and better BLE support, built on top of the [Zephyr™ Project](https://www.zephyrproject.org/) - -Check out the website to learn more: https://zmkfirmware.dev/ - -You can also come join our [ZMK Discord Server](https://zmkfirmware.dev/community/discord/invite) - -To review planned features, check out the [enhancement label](https://github.com/zmkfirmware/zmk/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement) in GitHub. Please feel free to add 👍 to the issue description of any requests to upvote the feature. diff --git a/zmk/app/.gitignore b/zmk/app/.gitignore deleted file mode 100644 index 567609b1..00000000 --- a/zmk/app/.gitignore +++ /dev/null @@ -1 +0,0 @@ -build/ diff --git a/zmk/app/CMakeLists.txt b/zmk/app/CMakeLists.txt deleted file mode 100644 index 0ffd391e..00000000 --- a/zmk/app/CMakeLists.txt +++ /dev/null @@ -1,70 +0,0 @@ -cmake_minimum_required(VERSION 3.13.1) - -set(CONFIG_APPLICATION_DEFINED_SYSCALL true) -list(APPEND BOARD_ROOT ${CMAKE_SOURCE_DIR}) -list(APPEND DTS_ROOT ${CMAKE_SOURCE_DIR}) - -# Add our custom Zephyr module for drivers w/ syscalls, etc. -list(APPEND DTS_ROOT ${CMAKE_SOURCE_DIR}/drivers/zephyr) - -list(APPEND ZEPHYR_EXTRA_MODULES - ${CMAKE_CURRENT_SOURCE_DIR}/drivers -) -list(APPEND SYSCALL_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/drivers/zephyr) - -include(cmake/zmk_config.cmake) - -# Find Zephyr. This also loads Zephyr's build system. -find_package(Zephyr REQUIRED HINTS ../zephyr) -project(zmk) - -zephyr_linker_sources(RODATA include/linker/zmk-events.ld) - -# Add your source file to the "app" target. This must come after -# find_package(Zephyr) which defines the target. -target_include_directories(app PRIVATE include) -target_sources_ifdef(CONFIG_ZMK_SLEEP app PRIVATE src/power.c) -target_sources(app PRIVATE src/kscan.c) -target_sources(app PRIVATE src/matrix_transform.c) -target_sources(app PRIVATE src/hid.c) -target_sources(app PRIVATE src/sensors.c) -target_sources_ifdef(CONFIG_ZMK_DISPLAY app PRIVATE src/display.c) -target_sources(app PRIVATE src/event_manager.c) -target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/ext_power_generic.c) -target_sources(app PRIVATE src/events/position_state_changed.c) -target_sources(app PRIVATE src/events/keycode_state_changed.c) -target_sources(app PRIVATE src/events/modifiers_state_changed.c) -target_sources(app PRIVATE src/events/sensor_event.c) -target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/events/ble_active_profile_changed.c) -target_sources_ifdef(CONFIG_USB app PRIVATE src/events/usb_conn_state_changed.c) -if (NOT CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL) - target_sources(app PRIVATE src/behaviors/behavior_key_press.c) - target_sources(app PRIVATE src/behaviors/behavior_reset.c) - target_sources(app PRIVATE src/behaviors/behavior_hold_tap.c) - target_sources(app PRIVATE src/behaviors/behavior_momentary_layer.c) - target_sources(app PRIVATE src/behaviors/behavior_outputs.c) - target_sources(app PRIVATE src/behaviors/behavior_toggle_layer.c) - target_sources(app PRIVATE src/behaviors/behavior_transparent.c) - target_sources(app PRIVATE src/behaviors/behavior_none.c) - target_sources(app PRIVATE src/behaviors/behavior_sensor_rotate_key_press.c) - target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/behaviors/behavior_ext_power.c) - target_sources(app PRIVATE src/keymap.c) -endif() -target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/behaviors/behavior_rgb_underglow.c) -target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/behaviors/behavior_bt.c) -target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/ble.c) -target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/battery.c) -target_sources_ifdef(CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL app PRIVATE src/split_listener.c) -target_sources_ifdef(CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL app PRIVATE src/split/bluetooth/service.c) -target_sources_ifdef(CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL app PRIVATE src/split/bluetooth/central.c) -target_sources_ifdef(CONFIG_ZMK_KSCAN_MOCK_DRIVER app PRIVATE src/kscan_mock.c) -target_sources_ifdef(CONFIG_ZMK_KSCAN_COMPOSITE_DRIVER app PRIVATE src/kscan_composite.c) -target_sources_ifdef(CONFIG_USB app PRIVATE src/usb.c) -target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/hog.c) -target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/rgb_underglow.c) -target_sources(app PRIVATE src/endpoints.c) -target_sources(app PRIVATE src/hid_listener.c) -target_sources_ifdef(CONFIG_SETTINGS app PRIVATE src/settings.c) -target_sources(app PRIVATE src/main.c) - -zephyr_cc_option(-Wfatal-errors) diff --git a/zmk/app/Kconfig b/zmk/app/Kconfig deleted file mode 100644 index 484bd798..00000000 --- a/zmk/app/Kconfig +++ /dev/null @@ -1,330 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -mainmenu "ZMK Firmware" - -menu "ZMK" - -menu "Basic Keyboard Setup" - -config ZMK_KEYBOARD_NAME - string "Keyboard Name" - -config USB_DEVICE_PRODUCT - default ZMK_KEYBOARD_NAME - -config BT_DEVICE_NAME - default ZMK_KEYBOARD_NAME - -config USB_DEVICE_VID - default 0x1D50 - -config USB_DEVICE_PID - default 0x615E - -config USB_DEVICE_MANUFACTURER - default "ZMK Project" - -menu "HID Output Types" - -config ZMK_USB - bool "USB" - select USB - select USB_DEVICE_STACK - select USB_DEVICE_HID - -if ZMK_USB - -config USB_NUMOF_EP_WRITE_RETRIES - default 10 - -#ZMK_USB -endif - -config ZMK_BLE - bool "BLE (HID over GATT)" - select BT - select BT_SMP - select BT_SMP_SC_PAIR_ONLY - select BT_SMP_APP_PAIRING_ACCEPT - select BT_PERIPHERAL - select BT_GATT_DIS - select BT_GATT_BAS - select BT_SETTINGS - select SETTINGS - -if ZMK_BLE - -config SYSTEM_WORKQUEUE_STACK_SIZE - default 2048 - -config ZMK_BLE_CLEAR_BONDS_ON_START - bool "Configuration that clears all bond information from the keyboard on startup." - default n - -# HID GATT notifications sent this way are *not* picked up by Linux, and possibly others. -config BT_GATT_NOTIFY_MULTIPLE - default n - -config BT_DEVICE_APPEARANCE - default 961 - -config ZMK_BLE_PASSKEY_ENTRY - bool "Experimental: Requiring typing passkey from host to pair BLE connection" - default n - -#ZMK_BLE -endif - -#HID Output Types -endmenu - -menu "Split Support" - -config ZMK_SPLIT - bool "Split keyboard support" - default n - -if ZMK_SPLIT - -config ZMK_SPLIT_BLE - bool "Split keyboard support via BLE transport" - depends on ZMK_BLE - default y - select BT_USER_PHY_UPDATE - -if ZMK_SPLIT_BLE - -choice ZMK_SPLIT_BLE_ROLE - bool "BLE Role For Split Communication" - default ZMK_SPLIT_BLE_ROLE_CENTRAL - -config ZMK_SPLIT_BLE_ROLE_CENTRAL - bool "Central" - select BT_CENTRAL - select BT_GATT_CLIENT - -config ZMK_SPLIT_BLE_ROLE_PERIPHERAL - bool "Peripheral" - -if ZMK_SPLIT_BLE_ROLE_PERIPHERAL - -config ZMK_USB - default n - -config BT_MAX_PAIRED - default 1 - -config BT_MAX_CONN - default 1 - -config BT_GAP_AUTO_UPDATE_CONN_PARAMS - default n - -#ZMK_SPLIT_BLE_ROLE_PERIPHERAL -endif - -#ZMK_SPLIT_BLE_ROLE -endchoice - -#ZMK_SPLIT_BLE -endif - -#ZMK_SPLIT -endif - -if ZMK_BLE - -if ZMK_SPLIT_BLE && ZMK_SPLIT_BLE_ROLE_CENTRAL - -config BT_MAX_CONN - default 6 - -config BT_MAX_PAIRED - default 6 - -#ZMK_SPLIT_BLE && ZMK_SPLIT_BLE_ROLE_CENTRAL -endif - -if !ZMK_SPLIT_BLE - -config BT_MAX_CONN - default 5 - -config BT_MAX_PAIRED - default 5 - -#!ZMK_SPLIT_BLE -endif - -#ZMK_BLE -endif - -#Split Support -endmenu - -#Basic Keyboard Setup -endmenu - -menu "Display/LED Options" - -config ZMK_DISPLAY - bool "ZMK display support" - default n - select DISPLAY - select LVGL - select LVGL_THEMES - select LVGL_THEME_MONO - select LVGL_OBJ_LABEL - -config ZMK_RGB_UNDERGLOW - bool "RGB Adressable LED Underglow" - select LED_STRIP - -if ZMK_RGB_UNDERGLOW - -# This default value cuts down on tons of excess .conf files, if you're using GPIO, manually disable this -config SPI - default y - -config ZMK_RGB_UNDERGLOW_HUE_STEP - int "RGB underglow hue step in degrees of 360" - default 10 - -config ZMK_RGB_UNDERGLOW_SAT_STEP - int "RGB underglow sturation step in percent" - default 10 - -config ZMK_RGB_UNDERGLOW_BRT_STEP - int "RGB underglow brightness step in percent" - default 10 - -config ZMK_RGB_UNDERGLOW_HUE_START - int "RGB underglow start hue value from 0-359" - default 0 - -config ZMK_RGB_UNDERGLOW_SAT_START - int "RGB underglow start saturations value from 0-100" - default 100 - -config ZMK_RGB_UNDERGLOW_BRT_START - int "RGB underglow start brightness value from 0-100" - default 100 - -config ZMK_RGB_UNDERGLOW_SPD_START - int "RGB underglow start animation speed value from 1-5" - default 3 - -config ZMK_RGB_UNDERGLOW_EFF_START - int "RGB underglow start effect int value related to the effect enum list" - default 0 - -config ZMK_RGB_UNDERGLOW_ON_START - bool "Whether RGB underglow starts on by default" - default y - -#ZMK_RGB_UNDERGLOW -endif - -#Display/LED Options -endmenu - -menu "Power Management" - -config ZMK_SLEEP - bool "Enable deep sleep support" - imply USB - -if ZMK_SLEEP - -config SYS_POWER_DEEP_SLEEP_STATES - default y - -choice SYS_PM_POLICY - default SYS_PM_POLICY_APP -endchoice - -config ZMK_IDLE_SLEEP_TIMEOUT - int "Milliseconds to wait to sleep when going idle" - default 900000 - -#ZMK_SLEEP -endif - -config ZMK_EXT_POWER - bool "Enable support to control external power output" - default y - -#Power Management -endmenu - -menu "Advanced" - -menu "Initialization Priorities" - -if USB - -config ZMK_USB_INIT_PRIORITY - int "USB Init Priority" - default 50 - -#USB -endif - -if ZMK_BLE || ZMK_SPLIT_BLE - -config ZMK_BLE_INIT_PRIORITY - int "BLE Init Priority" - default 50 - -#ZMK_BLE || ZMK_SPLIT_BLE -endif - -#Initialization Priorities -endmenu - -menu "KSCAN Settings" - -config ZMK_KSCAN_EVENT_QUEUE_SIZE - int "Size of the event queue for KSCAN events to buffer events" - default 4 - -config ZMK_KSCAN_MOCK_DRIVER - bool "Enable mock kscan driver to simulate key presses" - default n - -config ZMK_KSCAN_COMPOSITE_DRIVER - bool "Enable composite kscan driver to combine kscan devices" - default n - -#KSCAN Settings -endmenu - -#Advanced -endmenu - -#ZMK -endmenu - -config HEAP_MEM_POOL_SIZE - default 8192 - -config KERNEL_BIN_NAME - default "zmk" - -config REBOOT - default y - -module = ZMK -module-str = zmk -source "subsys/logging/Kconfig.template.log_config" - -rsource "boards/Kconfig" -rsource "boards/shields/*/Kconfig.defconfig" -rsource "boards/shields/*/Kconfig.shield" - -osource "$(ZMK_CONFIG)/boards/shields/*/Kconfig.defconfig" -osource "$(ZMK_CONFIG)/boards/shields/*/Kconfig.shield" - -source "Kconfig.zephyr" - diff --git a/zmk/app/boards/Kconfig b/zmk/app/boards/Kconfig deleted file mode 100644 index fe841c48..00000000 --- a/zmk/app/boards/Kconfig +++ /dev/null @@ -1,4 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -rsource "shields/*/Kconfig.shield" diff --git a/zmk/app/boards/arm/bluemicro840/CMakeLists.txt b/zmk/app/boards/arm/bluemicro840/CMakeLists.txt deleted file mode 100644 index 00952c30..00000000 --- a/zmk/app/boards/arm/bluemicro840/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -set_property(GLOBAL APPEND PROPERTY extra_post_build_commands - COMMAND ${PYTHON_EXECUTABLE} ${ZEPHYR_BASE}/../tools/uf2/utils/uf2conv.py - -c - -b 0x26000 - -f 0xADA52840 - -o ${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.uf2 - ${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.bin -) diff --git a/zmk/app/boards/arm/bluemicro840/Kconfig b/zmk/app/boards/arm/bluemicro840/Kconfig deleted file mode 100644 index 0e6743d3..00000000 --- a/zmk/app/boards/arm/bluemicro840/Kconfig +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: MIT - -config BOARD_ENABLE_DCDC - bool "Enable DCDC mode" - select SOC_DCDC_NRF52X - default y - depends on BOARD_BLUEMICRO840_V1 - diff --git a/zmk/app/boards/arm/bluemicro840/Kconfig.board b/zmk/app/boards/arm/bluemicro840/Kconfig.board deleted file mode 100644 index bc271af3..00000000 --- a/zmk/app/boards/arm/bluemicro840/Kconfig.board +++ /dev/null @@ -1,8 +0,0 @@ -# BlueMicro840 board configuration - -# Copyright (c) 2020 Pete Johanson, Derek Schmell -# SPDX-License-Identifier: MIT - -config BOARD_BLUEMICRO840_V1 - bool "BlueMicro840_V1" - depends on SOC_NRF52840_QIAA diff --git a/zmk/app/boards/arm/bluemicro840/Kconfig.defconfig b/zmk/app/boards/arm/bluemicro840/Kconfig.defconfig deleted file mode 100644 index 2b55e17c..00000000 --- a/zmk/app/boards/arm/bluemicro840/Kconfig.defconfig +++ /dev/null @@ -1,33 +0,0 @@ -# BlueMicro840 board configuration - -# Copyright (c) 2020 Pete Johanson, Derek Schmell -# SPDX-License-Identifier: MIT - -if BOARD_BLUEMICRO840_V1 - -config BOARD - default "bluemicro840_v1" - -if USB - -config USB_NRFX - default y - -config USB_DEVICE_STACK - default y - -endif # USB - -config BT_CTLR - default BT - -config ZMK_BLE - default y - -config ZMK_USB - default y - -config ZMK_BATTERY_VOLTAGE_DIVIDER - default y - -endif # BOARD_BLUEMICRO840_V1 diff --git a/zmk/app/boards/arm/bluemicro840/arduino_pro_micro_pins.dtsi b/zmk/app/boards/arm/bluemicro840/arduino_pro_micro_pins.dtsi deleted file mode 100644 index 940d8913..00000000 --- a/zmk/app/boards/arm/bluemicro840/arduino_pro_micro_pins.dtsi +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2020 Derek Schmell - * - * SPDX-License-Identifier: MIT - */ - -/ { - pro_micro_d: connector_d { - compatible = "arduino-pro-micro"; - #gpio-cells = <2>; - gpio-map-mask = <0xffffffff 0xffffffc0>; - gpio-map-pass-thru = <0 0x3f>; - gpio-map - = <0 0 &gpio0 8 0> /* D0 D2 */ - , <1 0 &gpio0 6 0> /* D1 D3*/ - , <2 0 &gpio0 15 0> /* D2 D1*/ - , <3 0 &gpio0 17 0> /* D3 D0*/ - , <4 0 &gpio0 20 0> /* D4/A6 D4*/ - , <5 0 &gpio0 13 0> /* D5 C6*/ - , <6 0 &gpio0 24 0> /* D6/A7 D7*/ - , <7 0 &gpio0 9 0> /* D7 E6*/ - , <8 0 &gpio0 10 0> /* D8/A8 B4*/ - , <9 0 &gpio1 6 0> /* D9/A9 B5*/ - , <10 0 &gpio1 11 0> /* D10/A10 B6*/ - , <16 0 &gpio0 28 0> /* D16 B2*/ - , <14 0 &gpio0 3 0> /* D14 B3*/ - , <15 0 &gpio1 13 0> /* D15 B1*/ - ; - }; - - pro_micro_a: connector_a { - compatible = "arduino-pro-micro"; - #gpio-cells = <2>; - gpio-map-mask = <0xffffffff 0xffffffc0>; - gpio-map-pass-thru = <0 0x3f>; - gpio-map - = <0 0 &gpio0 2 0> /* A0 F7*/ - , <1 0 &gpio0 29 0> /* A1 F6*/ - , <2 0 &gpio0 26 0> /* A2 F5*/ - , <3 0 &gpio0 30 0> /* A3 F4*/ - , <6 0 &gpio0 20 0> /* D4/A6 D4*/ - , <7 0 &gpio0 24 0> /* D6/A7 D7*/ - , <8 0 &gpio0 10 0> /* D8/A8 B4*/ - , <9 0 &gpio1 6 0> /* D9/A9 B5*/ - , <10 0 &gpio1 13 0> /* D10/A10 B6*/ - ; - }; -}; - -pro_micro_i2c: &i2c0 {}; -pro_micro_spi: &spi0 {}; -pro_micro_serial: &uart0 {}; diff --git a/zmk/app/boards/arm/bluemicro840/bluemicro840_v1.dts b/zmk/app/boards/arm/bluemicro840/bluemicro840_v1.dts deleted file mode 100644 index 18dff1af..00000000 --- a/zmk/app/boards/arm/bluemicro840/bluemicro840_v1.dts +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson, Derek Schmell - * - * SPDX-License-Identifier: MIT - */ - -/dts-v1/; -#include -#include "arduino_pro_micro_pins.dtsi" - -/ { - model = "BlueMicro840_V1"; - compatible = "bluemicro840,v1"; - - chosen { - zephyr,code-partition = &code_partition; - zephyr,sram = &sram0; - zephyr,flash = &flash0; - }; - - leds { - compatible = "gpio-leds"; - blue_led: led_0 { - gpios = <&gpio0 42 GPIO_ACTIVE_HIGH>; - label = "Blue LED"; - }; - }; - - ext-power { - compatible = "zmk,ext-power-generic"; - label = "EXT_POWER"; - control-gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; - }; - - vbatt { - compatible = "zmk,battery-voltage-divider"; - label = "BATTERY"; - io-channels = <&adc 7>; - output-ohms = <2000000>; - full-ohms = <(2000000 + 806000)>; - }; - -}; - -&adc { - status = "okay"; -}; - -&gpiote { - status = "okay"; -}; - -&gpio0 { - status = "okay"; -}; - -&gpio1 { - status = "okay"; -}; - -&i2c0 { - compatible = "nordic,nrf-twi"; - sda-pin = <15>; - scl-pin = <17>; -}; - -&uart0 { - compatible = "nordic,nrf-uarte"; - status = "okay"; - current-speed = <115200>; - tx-pin = <19>; - rx-pin = <21>; - rts-pin = <23>; - cts-pin = <25>; -}; - -&usbd { - status = "okay"; -}; - - -&flash0 { - /* - * For more information, see: - * http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html - */ - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - sd_partition: partition@0 { - label = "softdevice"; - reg = <0x00000000 0x00026000>; - }; - code_partition: partition@26000 { - label = "code_partition"; - reg = <0x00026000 0x000c6000>; - }; - - /* - * The flash starting at 0x000ec000 and ending at - * 0x000f3fff is reserved for use by the application. - */ - - /* - * Storage partition will be used by FCB/LittleFS/NVS - * if enabled. - */ - storage_partition: partition@ec000 { - label = "storage"; - reg = <0x000ec000 0x00008000>; - }; - - boot_partition: partition@f4000 { - label = "adafruit_boot"; - reg = <0x000f4000 0x0000c000>; - }; - }; -}; diff --git a/zmk/app/boards/arm/bluemicro840/bluemicro840_v1.yaml b/zmk/app/boards/arm/bluemicro840/bluemicro840_v1.yaml deleted file mode 100644 index 9e1dd54c..00000000 --- a/zmk/app/boards/arm/bluemicro840/bluemicro840_v1.yaml +++ /dev/null @@ -1,15 +0,0 @@ -identifier: bluemicro840_v1 -name: BlueMicro840_V1 -type: mcu -arch: arm -toolchain: - - zephyr - - gnuarmemb - - xtools -supported: - - adc - - usb_device - - ble - - ieee802154 - - pwm - - watchdog diff --git a/zmk/app/boards/arm/bluemicro840/bluemicro840_v1_defconfig b/zmk/app/boards/arm/bluemicro840/bluemicro840_v1_defconfig deleted file mode 100644 index 96f03ca4..00000000 --- a/zmk/app/boards/arm/bluemicro840/bluemicro840_v1_defconfig +++ /dev/null @@ -1,20 +0,0 @@ -# SPDX-License-Identifier: MIT - -CONFIG_SOC_SERIES_NRF52X=y -CONFIG_SOC_NRF52840_QIAA=y -CONFIG_BOARD_BLUEMICRO840_V1=y - -# Enable MPU -CONFIG_ARM_MPU=y - -# enable GPIO -CONFIG_GPIO=y - -CONFIG_USE_DT_CODE_PARTITION=y - -CONFIG_MPU_ALLOW_FLASH_WRITE=y -CONFIG_NVS=y -CONFIG_SETTINGS_NVS=y -CONFIG_FLASH=y -CONFIG_FLASH_PAGE_LAYOUT=y -CONFIG_FLASH_MAP=y \ No newline at end of file diff --git a/zmk/app/boards/arm/bluemicro840/board.cmake b/zmk/app/boards/arm/bluemicro840/board.cmake deleted file mode 100644 index fa847d50..00000000 --- a/zmk/app/boards/arm/bluemicro840/board.cmake +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MIT - -board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset") -include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake) -include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) diff --git a/zmk/app/boards/arm/dz60rgb/CMakeLists.txt b/zmk/app/boards/arm/dz60rgb/CMakeLists.txt deleted file mode 100644 index 940af1fe..00000000 --- a/zmk/app/boards/arm/dz60rgb/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: MIT - -if(CONFIG_PINMUX) -zephyr_library() -zephyr_library_sources(pinmux.c) -zephyr_library_include_directories(${ZEPHYR_BASE}/drivers) -endif() diff --git a/zmk/app/boards/arm/dz60rgb/Kconfig.board b/zmk/app/boards/arm/dz60rgb/Kconfig.board deleted file mode 100644 index ec8dad68..00000000 --- a/zmk/app/boards/arm/dz60rgb/Kconfig.board +++ /dev/null @@ -1,6 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config BOARD_DZ60RGB_REV1 - bool "DZ60RGB Keyboard" - depends on SOC_STM32F303XC diff --git a/zmk/app/boards/arm/dz60rgb/Kconfig.defconfig b/zmk/app/boards/arm/dz60rgb/Kconfig.defconfig deleted file mode 100644 index 779d3123..00000000 --- a/zmk/app/boards/arm/dz60rgb/Kconfig.defconfig +++ /dev/null @@ -1,14 +0,0 @@ -# DZ60RGB keyboard configuration - -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -if BOARD_DZ60RGB_REV1 - -config ZMK_KEYBOARD_NAME - default "DZ60RGB Rev 1" - -config ZMK_USB - default y - -endif # BOARD_DZ60RGB_REV1 diff --git a/zmk/app/boards/arm/dz60rgb/board.cmake b/zmk/app/boards/arm/dz60rgb/board.cmake deleted file mode 100644 index 10f6e291..00000000 --- a/zmk/app/boards/arm/dz60rgb/board.cmake +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: MIT - -board_runner_args(dfu-util "--pid=0483:df11" "--alt=0" "--dfuse") -board_runner_args(jlink "--device=STM32F303CC" "--speed=4000") - -include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) -include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) diff --git a/zmk/app/boards/arm/dz60rgb/dz60rgb_rev1.dts b/zmk/app/boards/arm/dz60rgb/dz60rgb_rev1.dts deleted file mode 100644 index 85c4ca56..00000000 --- a/zmk/app/boards/arm/dz60rgb/dz60rgb_rev1.dts +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/dts-v1/; -#include - -#include - -/ { - model = "DZ60RGB, Rev 1"; - compatible = "dz60rgb,rev1", "st,stm32f303"; - - chosen { - zephyr,sram = &sram0; - zephyr,flash = &flash0; - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <14>; - rows = <5>; - map = < -RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,13) -RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13) -RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,13) -RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,13) -RC(4,0) RC(4,1) RC(4,2) RC(4,5) RC(4,8) RC(4,9) RC(4,10) RC(4,11) RC(4,13) - >; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - row-gpios - = <&gpioa 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpiob 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpiob 11 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpiob 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpiob 12 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - col-gpios - = <&gpioa 6 GPIO_ACTIVE_HIGH> - , <&gpioa 7 GPIO_ACTIVE_HIGH> - , <&gpiob 0 GPIO_ACTIVE_HIGH> - , <&gpiob 13 GPIO_ACTIVE_HIGH> - , <&gpiob 15 GPIO_ACTIVE_HIGH> - , <&gpioa 8 GPIO_ACTIVE_HIGH> - , <&gpioa 15 GPIO_ACTIVE_HIGH> - , <&gpiob 3 GPIO_ACTIVE_HIGH> - , <&gpiob 4 GPIO_ACTIVE_HIGH> - , <&gpiob 5 GPIO_ACTIVE_HIGH> - , <&gpiob 8 GPIO_ACTIVE_HIGH> - , <&gpiob 9 GPIO_ACTIVE_HIGH> - , <&gpioc 13 GPIO_ACTIVE_HIGH> - , <&gpioc 14 GPIO_ACTIVE_HIGH> - ; - }; - -}; - -&usb { - status = "okay"; -}; - -&flash0 { - /* - * For more information, see: - * http://docs.zephyrproject.org/latest/guides/dts/index.html#flash-partitions - */ - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - /* Set 6Kb of storage at the end of the 256Kb of flash */ - storage_partition: partition@3e800 { - label = "storage"; - reg = <0x0003e800 0x00001800>; - }; - }; -}; diff --git a/zmk/app/boards/arm/dz60rgb/dz60rgb_rev1.keymap b/zmk/app/boards/arm/dz60rgb/dz60rgb_rev1.keymap deleted file mode 100644 index 8de01c17..00000000 --- a/zmk/app/boards/arm/dz60rgb/dz60rgb_rev1.keymap +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// ------------------------------------------------------------------------------------------ -// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP | -// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | "|" | -// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | -// | SHIFT | Z | X | C | V | B | N | M | , | . | SHIFT(/) | ^ | DEL | -// | CTL | WIN | ALT | SPACE | ALT | MO(1) | <- | v | -> | -// ------------------------------------------------------------------------------------------ - bindings = < - &kp ESC &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &kp MINUS &kp EQL &kp BKSP - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH - &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &kp QUOT &kp RET - &kp LSFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT &mt MOD_RSFT FSLH &kp UARW &kp DEL - &kp LCTL &kp LGUI &kp LALT &kp SPC &kp RALT &mo 1 &kp LARW &kp DARW &kp RARW - >; - }; - }; -}; \ No newline at end of file diff --git a/zmk/app/boards/arm/dz60rgb/dz60rgb_rev1.yaml b/zmk/app/boards/arm/dz60rgb/dz60rgb_rev1.yaml deleted file mode 100644 index d2836218..00000000 --- a/zmk/app/boards/arm/dz60rgb/dz60rgb_rev1.yaml +++ /dev/null @@ -1,19 +0,0 @@ -identifier: DZ60RGB_rev1 -name: DZ60RGBREV1 -type: keyboard -arch: arm -toolchain: - - zephyr - - gnuarmemb - - xtools -ram: 40 -supported: - - gpio - - i2c - - counter - - spi - - usb_device - - lsm303dlhc - - nvs - - can - - kscan diff --git a/zmk/app/boards/arm/dz60rgb/dz60rgb_rev1_defconfig b/zmk/app/boards/arm/dz60rgb/dz60rgb_rev1_defconfig deleted file mode 100644 index 33840f96..00000000 --- a/zmk/app/boards/arm/dz60rgb/dz60rgb_rev1_defconfig +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MIT - -CONFIG_SOC_SERIES_STM32F3X=y -CONFIG_SOC_STM32F303XC=y -# 72MHz system clock -CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=72000000 - -# enable pinmux -CONFIG_PINMUX=y - -# enable GPIO -CONFIG_GPIO=y - -# clock configuration -CONFIG_CLOCK_CONTROL=y - -# Clock configuration for Cube Clock control driver -CONFIG_CLOCK_STM32_HSE_CLOCK=8000000 -CONFIG_CLOCK_STM32_SYSCLK_SRC_PLL=y -# use HSE as PLL input -CONFIG_CLOCK_STM32_PLL_SRC_HSE=y -# produce 72MHz clock at PLL output -CONFIG_CLOCK_STM32_PLL_PREDIV=1 -CONFIG_CLOCK_STM32_PLL_MULTIPLIER=9 -CONFIG_CLOCK_STM32_AHB_PRESCALER=1 -CONFIG_CLOCK_STM32_APB1_PRESCALER=2 -CONFIG_CLOCK_STM32_APB2_PRESCALER=1 diff --git a/zmk/app/boards/arm/dz60rgb/pinmux.c b/zmk/app/boards/arm/dz60rgb/pinmux.c deleted file mode 100644 index f59a31bf..00000000 --- a/zmk/app/boards/arm/dz60rgb/pinmux.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2017 I-SENSE group of ICCS - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include -#include -#include - -#include - -/* pin assignments for STM32F3DISCOVERY board */ -static const struct pin_config pinconf[] = { -#if DT_NODE_HAS_STATUS(DT_NODELABEL(usart1), okay) && CONFIG_SERIAL - {STM32_PIN_PC4, STM32F3_PINMUX_FUNC_PC4_USART1_TX}, - {STM32_PIN_PC5, STM32F3_PINMUX_FUNC_PC5_USART1_RX}, -#endif -#if DT_NODE_HAS_STATUS(DT_NODELABEL(usart2), okay) && CONFIG_SERIAL - {STM32_PIN_PA2, STM32F3_PINMUX_FUNC_PA2_USART2_TX}, - {STM32_PIN_PA3, STM32F3_PINMUX_FUNC_PA3_USART2_RX}, -#endif -#if DT_NODE_HAS_STATUS(DT_NODELABEL(i2c1), okay) && CONFIG_I2C - {STM32_PIN_PB6, STM32F3_PINMUX_FUNC_PB6_I2C1_SCL}, - {STM32_PIN_PB7, STM32F3_PINMUX_FUNC_PB7_I2C1_SDA}, -#endif -#if DT_NODE_HAS_STATUS(DT_NODELABEL(i2c2), okay) && CONFIG_I2C - {STM32_PIN_PA9, STM32F3_PINMUX_FUNC_PA9_I2C2_SCL}, - {STM32_PIN_PA10, STM32F3_PINMUX_FUNC_PA10_I2C2_SDA}, -#endif -#if DT_NODE_HAS_STATUS(DT_NODELABEL(spi1), okay) && CONFIG_SPI -#ifdef CONFIG_SPI_STM32_USE_HW_SS - {STM32_PIN_PA4, STM32F3_PINMUX_FUNC_PA4_SPI1_NSS}, -#endif /* CONFIG_SPI_STM32_USE_HW_SS */ - {STM32_PIN_PA5, STM32F3_PINMUX_FUNC_PA5_SPI1_SCK}, - {STM32_PIN_PA6, STM32F3_PINMUX_FUNC_PA6_SPI1_MISO}, - {STM32_PIN_PA7, STM32F3_PINMUX_FUNC_PA7_SPI1_MOSI}, -#endif -#if DT_NODE_HAS_STATUS(DT_NODELABEL(spi2), okay) && CONFIG_SPI -#ifdef CONFIG_SPI_STM32_USE_HW_SS - {STM32_PIN_PB12, STM32F3_PINMUX_FUNC_PB12_SPI2_NSS}, -#endif /* CONFIG_SPI_STM32_USE_HW_SS */ - {STM32_PIN_PB13, STM32F3_PINMUX_FUNC_PB13_SPI2_SCK}, - {STM32_PIN_PB14, STM32F3_PINMUX_FUNC_PB14_SPI2_MISO}, - {STM32_PIN_PB15, STM32F3_PINMUX_FUNC_PB15_SPI2_MOSI}, -#endif -#ifdef CONFIG_USB_DC_STM32 - {STM32_PIN_PA11, STM32F3_PINMUX_FUNC_PA11_USB_DM}, - {STM32_PIN_PA12, STM32F3_PINMUX_FUNC_PA12_USB_DP}, -#endif /* CONFIG_USB_DC_STM32 */ -#if DT_NODE_HAS_STATUS(DT_NODELABEL(can1), okay) && CONFIG_CAN - {STM32_PIN_PD0, STM32F3_PINMUX_FUNC_PD0_CAN1_RX}, - {STM32_PIN_PD1, STM32F3_PINMUX_FUNC_PD1_CAN1_TX}, -#endif -}; - -static int pinmux_stm32_init(struct device *port) { - ARG_UNUSED(port); - - stm32_setup_pins(pinconf, ARRAY_SIZE(pinconf)); - - return 0; -} - -SYS_INIT(pinmux_stm32_init, PRE_KERNEL_1, CONFIG_PINMUX_STM32_DEVICE_INITIALIZATION_PRIORITY); \ No newline at end of file diff --git a/zmk/app/boards/arm/nice_nano/CMakeLists.txt b/zmk/app/boards/arm/nice_nano/CMakeLists.txt deleted file mode 100644 index 00952c30..00000000 --- a/zmk/app/boards/arm/nice_nano/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -set_property(GLOBAL APPEND PROPERTY extra_post_build_commands - COMMAND ${PYTHON_EXECUTABLE} ${ZEPHYR_BASE}/../tools/uf2/utils/uf2conv.py - -c - -b 0x26000 - -f 0xADA52840 - -o ${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.uf2 - ${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.bin -) diff --git a/zmk/app/boards/arm/nice_nano/Kconfig b/zmk/app/boards/arm/nice_nano/Kconfig deleted file mode 100644 index fb5537ab..00000000 --- a/zmk/app/boards/arm/nice_nano/Kconfig +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: MIT - -config BOARD_ENABLE_DCDC - bool "Enable DCDC mode" - select SOC_DCDC_NRF52X - default y - depends on BOARD_NICE_NANO diff --git a/zmk/app/boards/arm/nice_nano/Kconfig.board b/zmk/app/boards/arm/nice_nano/Kconfig.board deleted file mode 100644 index 4fd394f4..00000000 --- a/zmk/app/boards/arm/nice_nano/Kconfig.board +++ /dev/null @@ -1,9 +0,0 @@ -# nice!nano board configuration - -# Copyright (c) 2020 Pete Johanson -# SPDX-License-Identifier: MIT - -config BOARD_NICE_NANO - bool "nice!nano" - depends on SOC_NRF52840_QIAA - diff --git a/zmk/app/boards/arm/nice_nano/Kconfig.defconfig b/zmk/app/boards/arm/nice_nano/Kconfig.defconfig deleted file mode 100644 index 205050af..00000000 --- a/zmk/app/boards/arm/nice_nano/Kconfig.defconfig +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright (c) 2020 Pete Johanson -# SPDX-License-Identifier: MIT - -if BOARD_NICE_NANO - -config BOARD - default "nice_nano" - -if USB - -config USB_NRFX - default y - -config USB_DEVICE_STACK - default y - -endif # USB - -config BT_CTLR - default BT - -config ZMK_BLE - default y - -config ZMK_USB - default y - -config ZMK_BATTERY_VOLTAGE_DIVIDER - default y - -endif # BOARD_NICE_NANO diff --git a/zmk/app/boards/arm/nice_nano/arduino_pro_micro_pins.dtsi b/zmk/app/boards/arm/nice_nano/arduino_pro_micro_pins.dtsi deleted file mode 100644 index 806cd244..00000000 --- a/zmk/app/boards/arm/nice_nano/arduino_pro_micro_pins.dtsi +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson - * - * SPDX-License-Identifier: MIT - */ - -/ { - pro_micro_d: connector_d { - compatible = "arduino-pro-micro"; - #gpio-cells = <2>; - gpio-map-mask = <0xffffffff 0xffffffc0>; - gpio-map-pass-thru = <0 0x3f>; - gpio-map - = <0 0 &gpio0 8 0> /* D0 */ - , <1 0 &gpio0 6 0> /* D1 */ - , <2 0 &gpio0 17 0> /* D2 */ - , <3 0 &gpio0 20 0> /* D3 */ - , <4 0 &gpio0 22 0> /* D4/A6 */ - , <5 0 &gpio0 24 0> /* D5 */ - , <6 0 &gpio1 0 0> /* D6/A7 */ - , <7 0 &gpio0 11 0> /* D7 */ - , <8 0 &gpio1 4 0> /* D8/A8 */ - , <9 0 &gpio1 6 0> /* D9/A9 */ - , <10 0 &gpio0 9 0> /* D10/A10 */ - , <16 0 &gpio0 10 0> /* D16 */ - , <14 0 &gpio1 11 0> /* D14 */ - , <15 0 &gpio1 13 0> /* D15 */ - ; - }; - - pro_micro_a: connector_a { - compatible = "arduino-pro-micro"; - #gpio-cells = <2>; - gpio-map-mask = <0xffffffff 0xffffffc0>; - gpio-map-pass-thru = <0 0x3f>; - gpio-map - = <0 0 &gpio1 15 0> /* A0 */ - , <1 0 &gpio0 2 0> /* A1 */ - , <2 0 &gpio0 29 0> /* A2 */ - , <3 0 &gpio0 31 0> /* A3 */ - , <6 0 &gpio0 22 0> /* D4/A6 */ - , <7 0 &gpio1 0 0> /* D6/A7 */ - , <8 0 &gpio1 4 0> /* D8/A8 */ - , <9 0 &gpio1 6 0> /* D9/A9 */ - , <10 0 &gpio0 9 0> /* D10/A10 */ - ; - }; -}; - -pro_micro_i2c: &i2c0 {}; -pro_micro_spi: &spi0 {}; -pro_micro_serial: &uart0 {}; diff --git a/zmk/app/boards/arm/nice_nano/board.cmake b/zmk/app/boards/arm/nice_nano/board.cmake deleted file mode 100644 index fa847d50..00000000 --- a/zmk/app/boards/arm/nice_nano/board.cmake +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MIT - -board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset") -include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake) -include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) diff --git a/zmk/app/boards/arm/nice_nano/nice_nano.dts b/zmk/app/boards/arm/nice_nano/nice_nano.dts deleted file mode 100644 index 01efb289..00000000 --- a/zmk/app/boards/arm/nice_nano/nice_nano.dts +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson - * - * SPDX-License-Identifier: MIT - */ - -/dts-v1/; -#include -#include "arduino_pro_micro_pins.dtsi" - -/ { - model = "nice!nano"; - compatible = "nice,nano"; - - chosen { - zephyr,code-partition = &code_partition; - zephyr,sram = &sram0; - zephyr,flash = &flash0; - }; - - leds { - compatible = "gpio-leds"; - blue_led: led_0 { - gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; - label = "Blue LED"; - }; - }; - - ext-power { - compatible = "zmk,ext-power-generic"; - label = "EXT_POWER"; - control-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; - }; - - vbatt { - compatible = "zmk,battery-voltage-divider"; - label = "BATTERY"; - io-channels = <&adc 2>; - output-ohms = <2000000>; - full-ohms = <(2000000 + 806000)>; - }; -}; - -&adc { - status = "okay"; -}; - -&gpiote { - status = "okay"; -}; - -&gpio0 { - status = "okay"; -}; - -&gpio1 { - status = "okay"; -}; - -&i2c0 { - compatible = "nordic,nrf-twi"; - sda-pin = <17>; - scl-pin = <20>; -}; - -&uart0 { - compatible = "nordic,nrf-uarte"; - status = "okay"; - current-speed = <115200>; - tx-pin = <19>; - rx-pin = <21>; - rts-pin = <23>; - cts-pin = <25>; -}; - -&usbd { - status = "okay"; -}; - - -&flash0 { - /* - * For more information, see: - * http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html - */ - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - sd_partition: partition@0 { - label = "softdevice"; - reg = <0x00000000 0x00026000>; - }; - code_partition: partition@26000 { - label = "code_partition"; - reg = <0x00026000 0x000c6000>; - }; - - /* - * The flash starting at 0x000ec000 and ending at - * 0x000f3fff is reserved for use by the application. - */ - - /* - * Storage partition will be used by FCB/LittleFS/NVS - * if enabled. - */ - storage_partition: partition@ec000 { - label = "storage"; - reg = <0x000ec000 0x00008000>; - }; - - boot_partition: partition@f4000 { - label = "adafruit_boot"; - reg = <0x000f4000 0x0000c000>; - }; - }; -}; diff --git a/zmk/app/boards/arm/nice_nano/nice_nano.yaml b/zmk/app/boards/arm/nice_nano/nice_nano.yaml deleted file mode 100644 index 1c367324..00000000 --- a/zmk/app/boards/arm/nice_nano/nice_nano.yaml +++ /dev/null @@ -1,15 +0,0 @@ -identifier: nice_nano -name: nice!nano -type: mcu -arch: arm -toolchain: - - zephyr - - gnuarmemb - - xtools -supported: - - adc - - usb_device - - ble - - ieee802154 - - pwm - - watchdog diff --git a/zmk/app/boards/arm/nice_nano/nice_nano_defconfig b/zmk/app/boards/arm/nice_nano/nice_nano_defconfig deleted file mode 100644 index 393d61fe..00000000 --- a/zmk/app/boards/arm/nice_nano/nice_nano_defconfig +++ /dev/null @@ -1,20 +0,0 @@ -# SPDX-License-Identifier: MIT - -CONFIG_SOC_SERIES_NRF52X=y -CONFIG_SOC_NRF52840_QIAA=y -CONFIG_BOARD_NICE_NANO=y - -# Enable MPU -CONFIG_ARM_MPU=y - -# enable GPIO -CONFIG_GPIO=y - -CONFIG_USE_DT_CODE_PARTITION=y - -CONFIG_MPU_ALLOW_FLASH_WRITE=y -CONFIG_NVS=y -CONFIG_SETTINGS_NVS=y -CONFIG_FLASH=y -CONFIG_FLASH_PAGE_LAYOUT=y -CONFIG_FLASH_MAP=y \ No newline at end of file diff --git a/zmk/app/boards/arm/nrf52840_m2/CMakeLists.txt b/zmk/app/boards/arm/nrf52840_m2/CMakeLists.txt deleted file mode 100644 index 84b2ab99..00000000 --- a/zmk/app/boards/arm/nrf52840_m2/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -# -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT -# - -set_property(GLOBAL APPEND PROPERTY extra_post_build_commands - COMMAND ${PYTHON_EXECUTABLE} ${ZEPHYR_BASE}/../tools/uf2/utils/uf2conv.py - -c - -b 0x26000 - -f 0xADA52840 - -o ${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.uf2 - ${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.bin -) diff --git a/zmk/app/boards/arm/nrf52840_m2/Kconfig b/zmk/app/boards/arm/nrf52840_m2/Kconfig deleted file mode 100644 index faff4925..00000000 --- a/zmk/app/boards/arm/nrf52840_m2/Kconfig +++ /dev/null @@ -1,10 +0,0 @@ -# -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT -# - -config BOARD_ENABLE_DCDC - bool "Enable DCDC mode" - select SOC_DCDC_NRF52X - default y - depends on BOARD_NRF52840_M2 diff --git a/zmk/app/boards/arm/nrf52840_m2/Kconfig.board b/zmk/app/boards/arm/nrf52840_m2/Kconfig.board deleted file mode 100644 index 6ade68c1..00000000 --- a/zmk/app/boards/arm/nrf52840_m2/Kconfig.board +++ /dev/null @@ -1,10 +0,0 @@ -# Maker Diary nrf52840 M.2 board configuration -# -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT -# - -config BOARD_NRF52840_M2 - bool "nrf52480_m2" - depends on SOC_NRF52840_QIAA - diff --git a/zmk/app/boards/arm/nrf52840_m2/Kconfig.defconfig b/zmk/app/boards/arm/nrf52840_m2/Kconfig.defconfig deleted file mode 100644 index 98fcd083..00000000 --- a/zmk/app/boards/arm/nrf52840_m2/Kconfig.defconfig +++ /dev/null @@ -1,30 +0,0 @@ -# -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT -# - -if BOARD_NRF52840_M2 - -config BOARD - default "nrf52480_m2" - -if USB - -config USB_NRFX - default y - -config USB_DEVICE_STACK - default y - -endif # USB - -config BT_CTLR - default BT - -config ZMK_BLE - default y - -config ZMK_USB - default y - -endif # BOARD_NRF52840_M2 diff --git a/zmk/app/boards/arm/nrf52840_m2/board.cmake b/zmk/app/boards/arm/nrf52840_m2/board.cmake deleted file mode 100644 index 55b44e27..00000000 --- a/zmk/app/boards/arm/nrf52840_m2/board.cmake +++ /dev/null @@ -1,9 +0,0 @@ -# -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT -# - -board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset") - -include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) -include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake) diff --git a/zmk/app/boards/arm/nrf52840_m2/nrf52840_m2.dts b/zmk/app/boards/arm/nrf52840_m2/nrf52840_m2.dts deleted file mode 100644 index f9354edf..00000000 --- a/zmk/app/boards/arm/nrf52840_m2/nrf52840_m2.dts +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * SPDX-License-Identifier: MIT - */ - -/dts-v1/; -#include - -/ { - model = "Makerdiary nRF52840 M.2 module"; - compatible = "makerdiary,nrf52840_m2"; - - chosen { - zephyr,code-partition = &code_partition; - zephyr,sram = &sram0; - zephyr,flash = &flash0; - }; - - leds { - compatible = "gpio-leds"; - red_led: led_0 { - gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>; - label = "Red LED"; - }; - green_led: led_1 { - gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; - label = "Green LED"; - }; - blue_led: led_2 { - gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>; - label = "Blue LED"; - }; - }; - -}; - -&adc { - status = "okay"; -}; - -&gpiote { - status = "okay"; -}; - -&gpio0 { - status = "okay"; -}; - -&gpio1 { - status = "okay"; -}; - -&uart0 { - compatible = "nordic,nrf-uarte"; - status = "okay"; - current-speed = <115200>; - tx-pin = <19>; - rx-pin = <21>; - rts-pin = <23>; - cts-pin = <25>; -}; - -&usbd { - compatible = "nordic,nrf-usbd"; - status = "okay"; -}; - - -&flash0 { - /* - * For more information, see: - * http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html - */ - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - sd_partition: partition@0 { - label = "softdevice"; - reg = <0x00000000 0x00026000>; - }; - code_partition: partition@26000 { - label = "code_partition"; - reg = <0x00026000 0x000c6000>; - }; - - /* - * The flash starting at 0x000ec000 and ending at - * 0x000f3fff is reserved for use by the application. - */ - - /* - * Storage partition will be used by FCB/LittleFS/NVS - * if enabled. - */ - storage_partition: partition@ec000 { - label = "storage"; - reg = <0x000ec000 0x00008000>; - }; - - boot_partition: partition@f4000 { - label = "adafruit_boot"; - reg = <0x000f4000 0x0000c000>; - }; - }; -}; diff --git a/zmk/app/boards/arm/nrf52840_m2/nrf52840_m2.yaml b/zmk/app/boards/arm/nrf52840_m2/nrf52840_m2.yaml deleted file mode 100644 index 0a999bbf..00000000 --- a/zmk/app/boards/arm/nrf52840_m2/nrf52840_m2.yaml +++ /dev/null @@ -1,15 +0,0 @@ -identifier: nrf52840_m2 -name: Makerdiary nRF52840 M.2 module -type: mcu -arch: arm -toolchain: - - zephyr - - gnuarmemb - - xtools -supported: - - adc - - usb_device - - ble - - ieee802154 - - pwm - - watchdog diff --git a/zmk/app/boards/arm/nrf52840_m2/nrf52840_m2_defconfig b/zmk/app/boards/arm/nrf52840_m2/nrf52840_m2_defconfig deleted file mode 100644 index e74438b7..00000000 --- a/zmk/app/boards/arm/nrf52840_m2/nrf52840_m2_defconfig +++ /dev/null @@ -1,23 +0,0 @@ -# -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT -# - -CONFIG_SOC_SERIES_NRF52X=y -CONFIG_SOC_NRF52840_QIAA=y -CONFIG_BOARD_NRF52840_M2=y - -# Enable MPU -CONFIG_ARM_MPU=y - -# enable GPIO -CONFIG_GPIO=y - -CONFIG_USE_DT_CODE_PARTITION=y - -CONFIG_MPU_ALLOW_FLASH_WRITE=y -CONFIG_NVS=y -CONFIG_SETTINGS_NVS=y -CONFIG_FLASH=y -CONFIG_FLASH_PAGE_LAYOUT=y -CONFIG_FLASH_MAP=y diff --git a/zmk/app/boards/arm/nrfmicro/CMakeLists.txt b/zmk/app/boards/arm/nrfmicro/CMakeLists.txt deleted file mode 100644 index cd4843af..00000000 --- a/zmk/app/boards/arm/nrfmicro/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -set_property(GLOBAL APPEND PROPERTY extra_post_build_commands - COMMAND ${PYTHON_EXECUTABLE} ${ZEPHYR_BASE}/../tools/uf2/utils/uf2conv.py - -c - -b 0x26000 - -f 0xADA52840 - -o ${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.uf2 - ${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.bin -) - -if(CONFIG_PINMUX) -zephyr_library() -zephyr_library_sources(pinmux.c) -zephyr_library_include_directories(${ZEPHYR_BASE}/drivers) -endif() \ No newline at end of file diff --git a/zmk/app/boards/arm/nrfmicro/Kconfig b/zmk/app/boards/arm/nrfmicro/Kconfig deleted file mode 100644 index 35019722..00000000 --- a/zmk/app/boards/arm/nrfmicro/Kconfig +++ /dev/null @@ -1,10 +0,0 @@ -config BOARD_ENABLE_DCDC - bool "Enable DCDC mode" - select SOC_DCDC_NRF52X - default y - depends on (BOARD_NRFMICRO_11 || BOARD_NRFMICRO_11_FLIPPED || BOARD_NRFMICRO_13) - -config BOARD_NRFMICRO_CHARGER - bool "Enable battery charger" - default y - depends on (BOARD_NRFMICRO_13) diff --git a/zmk/app/boards/arm/nrfmicro/Kconfig.board b/zmk/app/boards/arm/nrfmicro/Kconfig.board deleted file mode 100644 index 36b2d55e..00000000 --- a/zmk/app/boards/arm/nrfmicro/Kconfig.board +++ /dev/null @@ -1,16 +0,0 @@ -# nrfmicro board configuration - -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config BOARD_NRFMICRO_11 - bool "nrfmicro_11" - depends on SOC_NRF52840_QIAA - -config BOARD_NRFMICRO_11_FLIPPED - bool "nrfmicro_11_flipped" - depends on SOC_NRF52840_QIAA - -config BOARD_NRFMICRO_13 - bool "nrfmicro_13" - depends on SOC_NRF52840_QIAA diff --git a/zmk/app/boards/arm/nrfmicro/Kconfig.defconfig b/zmk/app/boards/arm/nrfmicro/Kconfig.defconfig deleted file mode 100644 index a3c02c22..00000000 --- a/zmk/app/boards/arm/nrfmicro/Kconfig.defconfig +++ /dev/null @@ -1,43 +0,0 @@ -# Electronut Labs Papyr board configuration - -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -if BOARD_NRFMICRO_11 || BOARD_NRFMICRO_11_FLIPPED || BOARD_NRFMICRO_13 - -config BOARD - default "nrfmicro" - -if USB - -config USB_NRFX - default y - -config USB_DEVICE_STACK - default y - -endif # USB - -config BT_CTLR - default BT - -config ZMK_BLE - default y - -config ZMK_USB - default y - -config PINMUX - default y - -if BOARD_NRFMICRO_13 - -config BOARD_NRFMICRO_CHARGER - default y - -config ZMK_BATTERY_VOLTAGE_DIVIDER - default y - -endif # BOARD_NRFMICRO_13 - -endif # BOARD_NRFMICRO_11 || BOARD_NRFMICRO_11_FLIPPED || BOARD_NRFMICRO_13 diff --git a/zmk/app/boards/arm/nrfmicro/arduino_pro_micro_pins.dtsi b/zmk/app/boards/arm/nrfmicro/arduino_pro_micro_pins.dtsi deleted file mode 100644 index 558391dd..00000000 --- a/zmk/app/boards/arm/nrfmicro/arduino_pro_micro_pins.dtsi +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - - -/ { - pro_micro_d: connector_d { - compatible = "arduino-pro-micro"; - #gpio-cells = <2>; - gpio-map-mask = <0xffffffff 0xffffffc0>; - gpio-map-pass-thru = <0 0x3f>; - gpio-map - = <0 0 &gpio0 8 0> /* D0 */ - , <1 0 &gpio0 6 0> /* D1 */ - , <2 0 &gpio0 15 0> /* D2 */ - , <3 0 &gpio0 17 0> /* D3 */ - , <4 0 &gpio0 20 0> /* D4/A6 */ - , <5 0 &gpio0 13 0> /* D5 */ - , <6 0 &gpio0 24 0> /* D6/A7 */ - , <7 0 &gpio0 9 0> /* D7 */ - , <8 0 &gpio0 10 0> /* D8/A8 */ - , <9 0 &gpio1 6 0> /* D9/A9 */ - , <10 0 &gpio1 11 0> /* D10/A10 */ - , <16 0 &gpio0 28 0> /* D16 */ - , <14 0 &gpio0 3 0> /* D14 */ - , <15 0 &gpio1 13 0> /* D15 */ - ; - }; - - pro_micro_a: connector_a { - compatible = "arduino-pro-micro"; - #gpio-cells = <2>; - gpio-map-mask = <0xffffffff 0xffffffc0>; - gpio-map-pass-thru = <0 0x3f>; - gpio-map - = <0 0 &gpio0 2 0> /* A0 */ - , <1 0 &gpio0 29 0> /* A1 */ - , <2 0 &gpio0 31 0> /* A2 */ - , <3 0 &gpio0 30 0> /* A3 */ - , <6 0 &gpio0 20 0> /* D4/A6 */ - , <7 0 &gpio0 24 0> /* D6/A7 */ - , <8 0 &gpio0 10 0> /* D8/A8 */ - , <9 0 &gpio1 6 0> /* D9/A9 */ - , <10 0 &gpio1 11 0> /* D10/A10 */ - ; - }; -}; - - -pro_micro_i2c: &i2c0 {}; -pro_micro_spi: &spi0 {}; -pro_micro_serial: &uart0 {}; diff --git a/zmk/app/boards/arm/nrfmicro/arduino_pro_micro_pins_flipped.dtsi b/zmk/app/boards/arm/nrfmicro/arduino_pro_micro_pins_flipped.dtsi deleted file mode 100644 index 68ca266d..00000000 --- a/zmk/app/boards/arm/nrfmicro/arduino_pro_micro_pins_flipped.dtsi +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/ { - pro_micro_d: connector_d { - compatible = "arduino-pro-micro"; - #gpio-cells = <2>; - gpio-map-mask = <0xffffffff 0xffffffc0>; - gpio-map-pass-thru = <0 0x3f>; - gpio-map - = <0 0 &gpio0 8 0> /* D0 */ - , <1 0 &gpio0 6 0> /* D1 */ - , <2 0 &gpio0 30 0> /* D2 */ - , <3 0 &gpio0 31 0> /* D3 */ - , <4 0 &gpio0 29 0> /* D4/A6 */ - , <5 0 &gpio0 2 0> /* D5 */ - , <6 0 &gpio1 13 0> /* D6/A7 */ - , <7 0 &gpio0 3 0> /* D7 */ - , <8 0 &gpio0 28 0> /* D8/A8 */ - , <9 0 &gpio1 11 0> /* D9/A9 */ - , <10 0 &gpio1 6 0> /* D10/A10 */ - , <16 0 &gpio0 10 0> /* D16 */ - , <14 0 &gpio0 9 0> /* D14 */ - , <15 0 &gpio0 24 0> /* D15 */ - ; - }; - - pro_micro_a: connector_a { - compatible = "arduino-pro-micro"; - #gpio-cells = <2>; - gpio-map-mask = <0xffffffff 0xffffffc0>; - gpio-map-pass-thru = <0 0x3f>; - gpio-map - = <0 0 &gpio0 13 0> /* A0 */ - , <1 0 &gpio0 20 0> /* A1 */ - , <2 0 &gpio0 17 0> /* A2 */ - , <3 0 &gpio0 15 0> /* A3 */ - , <6 0 &gpio0 29 0> /* D4/A6 */ - , <7 0 &gpio1 13 0> /* D6/A7 */ - , <8 0 &gpio0 28 0> /* D8/A8 */ - , <9 0 &gpio1 11 0> /* D9/A9 */ - , <10 0 &gpio1 6 0> /* D10/A10 */ - ; - }; -}; - -pro_micro_i2c: &i2c0 {}; -pro_micro_spi: &spi0 {}; -pro_micro_serial: &uart0 {}; diff --git a/zmk/app/boards/arm/nrfmicro/board.cmake b/zmk/app/boards/arm/nrfmicro/board.cmake deleted file mode 100644 index fa847d50..00000000 --- a/zmk/app/boards/arm/nrfmicro/board.cmake +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MIT - -board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset") -include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake) -include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) diff --git a/zmk/app/boards/arm/nrfmicro/nrfmicro_11.dts b/zmk/app/boards/arm/nrfmicro/nrfmicro_11.dts deleted file mode 100644 index 164b66d2..00000000 --- a/zmk/app/boards/arm/nrfmicro/nrfmicro_11.dts +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/dts-v1/; -#include -#include "arduino_pro_micro_pins.dtsi" - -/ { - model = "nrfmicro"; - compatible = "joric,nrfmicro"; - - chosen { - zephyr,code-partition = &code_partition; - zephyr,sram = &sram0; - zephyr,flash = &flash0; - }; - - leds { - compatible = "gpio-leds"; - blue_led: led_0 { - gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; - label = "Blue LED"; - }; - }; - - ext-power { - compatible = "zmk,ext-power-generic"; - label = "EXT_POWER"; - control-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; - }; -}; - -&gpiote { - status = "okay"; -}; - -&gpio0 { - status = "okay"; -}; - -&gpio1 { - status = "okay"; -}; - -&i2c0 { - compatible = "nordic,nrf-twi"; - sda-pin = <15>; - scl-pin = <17>; -}; - -&uart0 { - compatible = "nordic,nrf-uarte"; - status = "okay"; - current-speed = <115200>; - tx-pin = <19>; - rx-pin = <21>; - rts-pin = <23>; - cts-pin = <25>; -}; - -&usbd { - status = "okay"; -}; - - -&flash0 { - /* - * For more information, see: - * http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html - */ - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - sd_partition: partition@0 { - label = "softdevice"; - reg = <0x00000000 0x00026000>; - }; - code_partition: partition@26000 { - label = "code_partition"; - reg = <0x00026000 0x000c6000>; - }; - - /* - * The flash starting at 0x000ec000 and ending at - * 0x000f3fff is reserved for use by the application. - */ - - /* - * Storage partition will be used by FCB/LittleFS/NVS - * if enabled. - */ - storage_partition: partition@ec000 { - label = "storage"; - reg = <0x000ec000 0x00008000>; - }; - - boot_partition: partition@f4000 { - label = "adafruit_boot"; - reg = <0x000f4000 0x0000c000>; - }; - }; -}; diff --git a/zmk/app/boards/arm/nrfmicro/nrfmicro_11.yaml b/zmk/app/boards/arm/nrfmicro/nrfmicro_11.yaml deleted file mode 100644 index 4608130d..00000000 --- a/zmk/app/boards/arm/nrfmicro/nrfmicro_11.yaml +++ /dev/null @@ -1,15 +0,0 @@ -identifier: nrfmicro_11 -name: nrfmicro_11 -type: mcu -arch: arm -toolchain: - - zephyr - - gnuarmemb - - xtools -supported: - - adc - - usb_device - - ble - - ieee802154 - - pwm - - watchdog diff --git a/zmk/app/boards/arm/nrfmicro/nrfmicro_11_defconfig b/zmk/app/boards/arm/nrfmicro/nrfmicro_11_defconfig deleted file mode 100644 index c1ac8364..00000000 --- a/zmk/app/boards/arm/nrfmicro/nrfmicro_11_defconfig +++ /dev/null @@ -1,22 +0,0 @@ -# SPDX-License-Identifier: MIT - -CONFIG_SOC_SERIES_NRF52X=y -CONFIG_SOC_NRF52840_QIAA=y -CONFIG_BOARD_NRFMICRO_11=y - -# Enable MPU -CONFIG_ARM_MPU=y - -# enable GPIO -CONFIG_GPIO=y - -CONFIG_USE_DT_CODE_PARTITION=y - -CONFIG_MPU_ALLOW_FLASH_WRITE=y -CONFIG_NVS=y -CONFIG_SETTINGS_NVS=y -CONFIG_FLASH=y -CONFIG_FLASH_PAGE_LAYOUT=y -CONFIG_FLASH_MAP=y -CONFIG_CLOCK_CONTROL_NRF=y -CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y diff --git a/zmk/app/boards/arm/nrfmicro/nrfmicro_11_flipped.dts b/zmk/app/boards/arm/nrfmicro/nrfmicro_11_flipped.dts deleted file mode 100644 index fb558382..00000000 --- a/zmk/app/boards/arm/nrfmicro/nrfmicro_11_flipped.dts +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/dts-v1/; -#include -#include "arduino_pro_micro_pins_flipped.dtsi" - -/ { - model = "nrfmicro"; - compatible = "joric,nrfmicro"; - - chosen { - zephyr,code-partition = &code_partition; - zephyr,sram = &sram0; - zephyr,flash = &flash0; - }; - - leds { - compatible = "gpio-leds"; - blue_led: led_0 { - gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; - label = "Blue LED"; - }; - }; - - ext-power { - compatible = "zmk,ext-power-generic"; - label = "EXT_POWER"; - control-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; - }; -}; - -&gpiote { - status = "okay"; -}; - -&gpio0 { - status = "okay"; -}; - -&gpio1 { - status = "okay"; -}; - -&i2c0 { - compatible = "nordic,nrf-twi"; - sda-pin = <30>; - scl-pin = <31>; -}; - -&uart0 { - compatible = "nordic,nrf-uarte"; - status = "okay"; - current-speed = <115200>; - tx-pin = <19>; - rx-pin = <21>; - rts-pin = <23>; - cts-pin = <25>; -}; - -&usbd { - status = "okay"; -}; - - -&flash0 { - /* - * For more information, see: - * http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html - */ - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - sd_partition: partition@0 { - label = "softdevice"; - reg = <0x00000000 0x00026000>; - }; - code_partition: partition@26000 { - label = "code_partition"; - reg = <0x00026000 0x000c6000>; - }; - - /* - * The flash starting at 0x000ec000 and ending at - * 0x000f3fff is reserved for use by the application. - */ - - /* - * Storage partition will be used by FCB/LittleFS/NVS - * if enabled. - */ - storage_partition: partition@ec000 { - label = "storage"; - reg = <0x000ec000 0x00008000>; - }; - - boot_partition: partition@f4000 { - label = "adafruit_boot"; - reg = <0x000f4000 0x0000c000>; - }; - }; -}; \ No newline at end of file diff --git a/zmk/app/boards/arm/nrfmicro/nrfmicro_11_flipped.yaml b/zmk/app/boards/arm/nrfmicro/nrfmicro_11_flipped.yaml deleted file mode 100644 index 74461f09..00000000 --- a/zmk/app/boards/arm/nrfmicro/nrfmicro_11_flipped.yaml +++ /dev/null @@ -1,15 +0,0 @@ -identifier: nrfmicro_11_flipped -name: nrfmicro_11_flipped -type: mcu -arch: arm -toolchain: - - zephyr - - gnuarmemb - - xtools -supported: - - adc - - usb_device - - ble - - ieee802154 - - pwm - - watchdog diff --git a/zmk/app/boards/arm/nrfmicro/nrfmicro_11_flipped_defconfig b/zmk/app/boards/arm/nrfmicro/nrfmicro_11_flipped_defconfig deleted file mode 100644 index b35cb791..00000000 --- a/zmk/app/boards/arm/nrfmicro/nrfmicro_11_flipped_defconfig +++ /dev/null @@ -1,22 +0,0 @@ -# SPDX-License-Identifier: MIT - -CONFIG_SOC_SERIES_NRF52X=y -CONFIG_SOC_NRF52840_QIAA=y -CONFIG_BOARD_NRFMICRO_11_FLIPPED=y - -# Enable MPU -CONFIG_ARM_MPU=y - -# enable GPIO -CONFIG_GPIO=y - -CONFIG_USE_DT_CODE_PARTITION=y - -CONFIG_MPU_ALLOW_FLASH_WRITE=y -CONFIG_NVS=y -CONFIG_SETTINGS_NVS=y -CONFIG_FLASH=y -CONFIG_FLASH_PAGE_LAYOUT=y -CONFIG_FLASH_MAP=y -CONFIG_CLOCK_CONTROL_NRF=y -CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y diff --git a/zmk/app/boards/arm/nrfmicro/nrfmicro_13.dts b/zmk/app/boards/arm/nrfmicro/nrfmicro_13.dts deleted file mode 100644 index 1a05c7a1..00000000 --- a/zmk/app/boards/arm/nrfmicro/nrfmicro_13.dts +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/dts-v1/; -#include -#include "arduino_pro_micro_pins.dtsi" - -/ { - model = "nrfmicro"; - compatible = "joric,nrfmicro"; - - chosen { - zephyr,code-partition = &code_partition; - zephyr,sram = &sram0; - zephyr,flash = &flash0; - }; - - leds { - compatible = "gpio-leds"; - blue_led: led_0 { - gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; - label = "Blue LED"; - }; - }; - - ext-power { - compatible = "zmk,ext-power-generic"; - label = "EXT_POWER"; - control-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; - }; - - vbatt { - compatible = "zmk,battery-voltage-divider"; - label = "BATTERY"; - io-channels = <&adc 2>; - output-ohms = <2000000>; - full-ohms = <(2000000 + 820000)>; - }; -}; - -&adc { - status = "okay"; -}; - -&gpiote { - status = "okay"; -}; - -&gpio0 { - status = "okay"; -}; - -&gpio1 { - status = "okay"; -}; - -&i2c0 { - compatible = "nordic,nrf-twi"; - sda-pin = <15>; - scl-pin = <17>; -}; - -&uart0 { - compatible = "nordic,nrf-uarte"; - status = "okay"; - current-speed = <115200>; - tx-pin = <19>; - rx-pin = <21>; - rts-pin = <23>; - cts-pin = <25>; -}; - -&usbd { - status = "okay"; -}; - - -&flash0 { - /* - * For more information, see: - * http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html - */ - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - sd_partition: partition@0 { - label = "softdevice"; - reg = <0x00000000 0x00026000>; - }; - code_partition: partition@26000 { - label = "code_partition"; - reg = <0x00026000 0x000c6000>; - }; - - /* - * The flash starting at 0x000ec000 and ending at - * 0x000f3fff is reserved for use by the application. - */ - - /* - * Storage partition will be used by FCB/LittleFS/NVS - * if enabled. - */ - storage_partition: partition@ec000 { - label = "storage"; - reg = <0x000ec000 0x00008000>; - }; - - boot_partition: partition@f4000 { - label = "adafruit_boot"; - reg = <0x000f4000 0x0000c000>; - }; - }; -}; diff --git a/zmk/app/boards/arm/nrfmicro/nrfmicro_13.yaml b/zmk/app/boards/arm/nrfmicro/nrfmicro_13.yaml deleted file mode 100644 index a7415e44..00000000 --- a/zmk/app/boards/arm/nrfmicro/nrfmicro_13.yaml +++ /dev/null @@ -1,15 +0,0 @@ -identifier: nrfmicro_13 -name: nrfmicro_13 -type: mcu -arch: arm -toolchain: - - zephyr - - gnuarmemb - - xtools -supported: - - adc - - usb_device - - ble - - ieee802154 - - pwm - - watchdog diff --git a/zmk/app/boards/arm/nrfmicro/nrfmicro_13_defconfig b/zmk/app/boards/arm/nrfmicro/nrfmicro_13_defconfig deleted file mode 100644 index cac11642..00000000 --- a/zmk/app/boards/arm/nrfmicro/nrfmicro_13_defconfig +++ /dev/null @@ -1,22 +0,0 @@ -# SPDX-License-Identifier: MIT - -CONFIG_SOC_SERIES_NRF52X=y -CONFIG_SOC_NRF52840_QIAA=y -CONFIG_BOARD_NRFMICRO_13=y - -# Enable MPU -CONFIG_ARM_MPU=y - -# enable GPIO -CONFIG_GPIO=y - -CONFIG_USE_DT_CODE_PARTITION=y - -CONFIG_MPU_ALLOW_FLASH_WRITE=y -CONFIG_NVS=y -CONFIG_SETTINGS_NVS=y -CONFIG_FLASH=y -CONFIG_FLASH_PAGE_LAYOUT=y -CONFIG_FLASH_MAP=y -CONFIG_CLOCK_CONTROL_NRF=y -CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y diff --git a/zmk/app/boards/arm/nrfmicro/pinmux.c b/zmk/app/boards/arm/nrfmicro/pinmux.c deleted file mode 100644 index 30117d0f..00000000 --- a/zmk/app/boards/arm/nrfmicro/pinmux.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include -#include -#include -#include - -static int pinmux_nrfmicro_init(struct device *port) { - ARG_UNUSED(port); - -#if CONFIG_BOARD_NRFMICRO_13 - struct device *p0 = device_get_binding("GPIO_0"); -#if CONFIG_BOARD_NRFMICRO_CHARGER - gpio_pin_configure(p0, 5, GPIO_OUTPUT); - gpio_pin_set(p0, 5, 0); -#else - gpio_pin_configure(p0, 5, GPIO_INPUT); -#endif -#endif - return 0; -} - -SYS_INIT(pinmux_nrfmicro_init, APPLICATION, CONFIG_APPLICATION_INIT_PRIORITY); diff --git a/zmk/app/boards/arm/planck/CMakeLists.txt b/zmk/app/boards/arm/planck/CMakeLists.txt deleted file mode 100644 index 6a0ec73e..00000000 --- a/zmk/app/boards/arm/planck/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -# SPDX-License-Identifier: MIT - -list(APPEND EXTRA_DTC_FLAGS "-qq") - -if(CONFIG_PINMUX) -zephyr_library() -zephyr_library_sources(pinmux.c) -zephyr_library_include_directories(${ZEPHYR_BASE}/drivers) -endif() diff --git a/zmk/app/boards/arm/planck/Kconfig.board b/zmk/app/boards/arm/planck/Kconfig.board deleted file mode 100644 index fe15e1a9..00000000 --- a/zmk/app/boards/arm/planck/Kconfig.board +++ /dev/null @@ -1,8 +0,0 @@ -# Planck V6 board configuration - -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config BOARD_PLANCK_REV6 - bool "Planck V6 Keyboard" - depends on SOC_STM32F303XC diff --git a/zmk/app/boards/arm/planck/Kconfig.defconfig b/zmk/app/boards/arm/planck/Kconfig.defconfig deleted file mode 100644 index 913c1c13..00000000 --- a/zmk/app/boards/arm/planck/Kconfig.defconfig +++ /dev/null @@ -1,17 +0,0 @@ -# Planck keyboard configuration - -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -if BOARD_PLANCK_REV6 - -config ZMK_KEYBOARD_NAME - default "Planck V6" - -config ZMK_USB - default y - -config ZMK_KSCAN_MATRIX_POLLING - default y - -endif # BOARD_PLANCK_REV6 diff --git a/zmk/app/boards/arm/planck/board.cmake b/zmk/app/boards/arm/planck/board.cmake deleted file mode 100644 index 772796da..00000000 --- a/zmk/app/boards/arm/planck/board.cmake +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: MIT - -board_runner_args(dfu-util "--pid=0483:df11" "--alt=0" "--dfuse") -board_runner_args(jlink "--device=STM32F303VC" "--speed=4000") - -include(${ZEPHYR_BASE}/boards/common/dfu-util.board.cmake) -include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) diff --git a/zmk/app/boards/arm/planck/pinmux.c b/zmk/app/boards/arm/planck/pinmux.c deleted file mode 100644 index 61cc16ae..00000000 --- a/zmk/app/boards/arm/planck/pinmux.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2017 I-SENSE group of ICCS - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include -#include -#include - -#include - -/* pin assignments for STM32F3DISCOVERY board */ -static const struct pin_config pinconf[] = { -#ifdef CONFIG_UART_1 - {STM32_PIN_PC4, STM32F3_PINMUX_FUNC_PC4_USART1_TX}, - {STM32_PIN_PC5, STM32F3_PINMUX_FUNC_PC5_USART1_RX}, -#endif /* CONFIG_UART_1 */ -#ifdef CONFIG_UART_2 - {STM32_PIN_PA2, STM32F3_PINMUX_FUNC_PA2_USART2_TX}, - {STM32_PIN_PA3, STM32F3_PINMUX_FUNC_PA3_USART2_RX}, -#endif /* CONFIG_UART_2 */ -#ifdef CONFIG_I2C_1 - {STM32_PIN_PB6, STM32F3_PINMUX_FUNC_PB6_I2C1_SCL}, - {STM32_PIN_PB7, STM32F3_PINMUX_FUNC_PB7_I2C1_SDA}, -#endif /* CONFIG_I2C_1 */ -#ifdef CONFIG_I2C_2 - {STM32_PIN_PA9, STM32F3_PINMUX_FUNC_PA9_I2C2_SCL}, - {STM32_PIN_PA10, STM32F3_PINMUX_FUNC_PA10_I2C2_SDA}, -#endif /* CONFIG_I2C_2 */ -#ifdef CONFIG_SPI_1 -#ifdef CONFIG_SPI_STM32_USE_HW_SS - {STM32_PIN_PA4, STM32F3_PINMUX_FUNC_PA4_SPI1_NSS}, -#endif /* CONFIG_SPI_STM32_USE_HW_SS */ - {STM32_PIN_PA5, STM32F3_PINMUX_FUNC_PA5_SPI1_SCK}, - {STM32_PIN_PA6, STM32F3_PINMUX_FUNC_PA6_SPI1_MISO}, - {STM32_PIN_PA7, STM32F3_PINMUX_FUNC_PA7_SPI1_MOSI}, -#endif /* CONFIG_SPI_1 */ -#ifdef CONFIG_SPI_2 -#ifdef CONFIG_SPI_STM32_USE_HW_SS - {STM32_PIN_PB12, STM32F3_PINMUX_FUNC_PB12_SPI2_NSS}, -#endif /* CONFIG_SPI_STM32_USE_HW_SS */ - {STM32_PIN_PB13, STM32F3_PINMUX_FUNC_PB13_SPI2_SCK}, - {STM32_PIN_PB14, STM32F3_PINMUX_FUNC_PB14_SPI2_MISO}, - {STM32_PIN_PB15, STM32F3_PINMUX_FUNC_PB15_SPI2_MOSI}, -#endif /* CONFIG_SPI_2 */ -#ifdef CONFIG_USB_DC_STM32 - {STM32_PIN_PA11, STM32F3_PINMUX_FUNC_PA11_USB_DM}, - {STM32_PIN_PA12, STM32F3_PINMUX_FUNC_PA12_USB_DP}, -#endif /* CONFIG_USB_DC_STM32 */ -#ifdef CONFIG_CAN_1 - {STM32_PIN_PD0, STM32F3_PINMUX_FUNC_PD0_CAN1_RX}, - {STM32_PIN_PD1, STM32F3_PINMUX_FUNC_PD1_CAN1_TX}, -#endif /* CONFIG_CAN_1 */ -}; - -static int pinmux_stm32_init(struct device *port) { - ARG_UNUSED(port); - - stm32_setup_pins(pinconf, ARRAY_SIZE(pinconf)); - - return 0; -} - -SYS_INIT(pinmux_stm32_init, PRE_KERNEL_1, CONFIG_PINMUX_STM32_DEVICE_INITIALIZATION_PRIORITY); diff --git a/zmk/app/boards/arm/planck/planck_rev6.dts b/zmk/app/boards/arm/planck/planck_rev6.dts deleted file mode 100644 index 7e69b1fc..00000000 --- a/zmk/app/boards/arm/planck/planck_rev6.dts +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2017 I-SENSE group of ICCS - * - * SPDX-License-Identifier: MIT - */ - -/dts-v1/; -#include - -/ { - model = "Plack PCD, rev6"; - compatible = "planck,rev6", "st,stm32f303"; - - chosen { - zephyr,sram = &sram0; - zephyr,flash = &flash0; - zmk,kscan = &kscan0; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - row-gpios - = <&gpioa 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpioa 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpioa 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpiob 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpioc 13 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpioc 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpioc 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpioa 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - col-gpios - = <&gpiob 11 GPIO_ACTIVE_HIGH> - , <&gpiob 10 GPIO_ACTIVE_HIGH> - , <&gpiob 2 GPIO_ACTIVE_HIGH> - , <&gpiob 1 GPIO_ACTIVE_HIGH> - , <&gpioa 7 GPIO_ACTIVE_HIGH> - , <&gpiob 0 GPIO_ACTIVE_HIGH> - ; - }; - -}; - -&usb { - status = "okay"; -}; - -&flash0 { - /* - * For more information, see: - * http://docs.zephyrproject.org/latest/guides/dts/index.html#flash-partitions - */ - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - /* Set 6Kb of storage at the end of the 256Kb of flash */ - storage_partition: partition@3e800 { - label = "storage"; - reg = <0x0003e800 0x00001800>; - }; - }; -}; diff --git a/zmk/app/boards/arm/planck/planck_rev6.keymap b/zmk/app/boards/arm/planck/planck_rev6.keymap deleted file mode 100644 index af1dc7c6..00000000 --- a/zmk/app/boards/arm/planck/planck_rev6.keymap +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// ----------------------------------------------------------------------------------------- -// | TAB | Q | W | E | R | T | Y | U | I | O | P | BSPC | -// | ESC | A | S | D | F | G | H | J | K | L | ; | ' | -// | SHIFT | Z | X | C | V | B | N | M | , | . | / | RET | -// | FN | LGUI | LALT | LCTL | LOWR | SPACE | RAIS | LARW | DARW | UARW | RARW | - bindings = < - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp DEL - &kp ESC &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &kp QUOT - &kp LSFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT &kp BSLH &kp RET - &trans &kp LGUI &kp LALT &kp LCTL &trans &trans &kp SPC &trans &kp LARW &kp DARW &kp UARW &kp RARW - >; - }; - }; -}; diff --git a/zmk/app/boards/arm/planck/planck_rev6.yaml b/zmk/app/boards/arm/planck/planck_rev6.yaml deleted file mode 100644 index 9c5af3fa..00000000 --- a/zmk/app/boards/arm/planck/planck_rev6.yaml +++ /dev/null @@ -1,19 +0,0 @@ -identifier: planck_rev6 -name: PLANKREV6 -type: keyboard -arch: arm -toolchain: - - zephyr - - gnuarmemb - - xtools -ram: 40 -supported: - - gpio - - i2c - - counter - - spi - - usb_device - - lsm303dlhc - - nvs - - can - - kscan diff --git a/zmk/app/boards/arm/planck/planck_rev6_defconfig b/zmk/app/boards/arm/planck/planck_rev6_defconfig deleted file mode 100644 index e34ce002..00000000 --- a/zmk/app/boards/arm/planck/planck_rev6_defconfig +++ /dev/null @@ -1,28 +0,0 @@ -# SPDX-License-Identifier: MIT - -CONFIG_SOC_SERIES_STM32F3X=y -CONFIG_SOC_STM32F303XC=y -# 72MHz system clock -CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=72000000 - - -# enable pinmux -CONFIG_PINMUX=y - -# enable GPIO -CONFIG_GPIO=y - -# clock configuration -CONFIG_CLOCK_CONTROL=y - -# Clock configuration for Cube Clock control driver -CONFIG_CLOCK_STM32_HSE_CLOCK=8000000 -CONFIG_CLOCK_STM32_SYSCLK_SRC_PLL=y -# use HSE as PLL input -CONFIG_CLOCK_STM32_PLL_SRC_HSE=y -# produce 72MHz clock at PLL output -CONFIG_CLOCK_STM32_PLL_PREDIV=1 -CONFIG_CLOCK_STM32_PLL_MULTIPLIER=9 -CONFIG_CLOCK_STM32_AHB_PRESCALER=1 -CONFIG_CLOCK_STM32_APB1_PRESCALER=2 -CONFIG_CLOCK_STM32_APB2_PRESCALER=1 diff --git a/zmk/app/boards/arm/proton_c/CMakeLists.txt b/zmk/app/boards/arm/proton_c/CMakeLists.txt deleted file mode 100644 index 940af1fe..00000000 --- a/zmk/app/boards/arm/proton_c/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: MIT - -if(CONFIG_PINMUX) -zephyr_library() -zephyr_library_sources(pinmux.c) -zephyr_library_include_directories(${ZEPHYR_BASE}/drivers) -endif() diff --git a/zmk/app/boards/arm/proton_c/Kconfig.board b/zmk/app/boards/arm/proton_c/Kconfig.board deleted file mode 100644 index ffa7ffd6..00000000 --- a/zmk/app/boards/arm/proton_c/Kconfig.board +++ /dev/null @@ -1,8 +0,0 @@ -# QMK Proton-C board configuration - -# Copyright (c) 2020 Pete Johanson -# SPDX-License-Identifier: MIT - -config BOARD_QMK_PROTON_C - bool "QMK Proton-C" - depends on SOC_STM32F303XC diff --git a/zmk/app/boards/arm/proton_c/Kconfig.defconfig b/zmk/app/boards/arm/proton_c/Kconfig.defconfig deleted file mode 100644 index 78ccbabd..00000000 --- a/zmk/app/boards/arm/proton_c/Kconfig.defconfig +++ /dev/null @@ -1,14 +0,0 @@ -# QMK Proton-C board configuration - -# Copyright (c) 2020 Pete Johanson -# SPDX-License-Identifier: MIT - -if BOARD_QMK_PROTON_C - -config BOARD - default "proton_c" - -config ZMK_USB - default y - -endif # BOARD_QMK_PROTON_C diff --git a/zmk/app/boards/arm/proton_c/arduino_pro_micro_pins.dtsi b/zmk/app/boards/arm/proton_c/arduino_pro_micro_pins.dtsi deleted file mode 100644 index 9b2a4757..00000000 --- a/zmk/app/boards/arm/proton_c/arduino_pro_micro_pins.dtsi +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson - * - * SPDX-License-Identifier: MIT - */ - -/ { - pro_micro_d: connector_d { - compatible = "arduino-pro-micro"; - #gpio-cells = <2>; - gpio-map-mask = <0xffffffff 0xffffffc0>; - gpio-map-pass-thru = <0 0x3f>; - gpio-map - = <0 0 &gpioa 10 0> /* D0 */ - , <1 0 &gpioa 9 0> /* D1 */ - , <2 0 &gpiob 7 0> /* D2 */ - , <3 0 &gpiob 6 0> /* D3 */ - , <4 0 &gpiob 5 0> /* D4/A6 */ - , <5 0 &gpiob 4 0> /* D5 */ - , <6 0 &gpiob 3 0> /* D6/A7 */ - , <7 0 &gpiob 2 0> /* D7 */ - , <8 0 &gpiob 1 0> /* D8/A8 */ - , <9 0 &gpiob 0 0> /* D9/A9 */ - , <10 0 &gpiob 9 0> /* D10/A10 */ - , <16 0 &gpiob 15 0> /* D16 */ - , <14 0 &gpiob 14 0> /* D14 */ - , <15 0 &gpiob 13 0> /* D15 */ - ; - }; - - pro_micro_a: connector_a { - compatible = "arduino-pro-micro"; - #gpio-cells = <2>; - gpio-map-mask = <0xffffffff 0xffffffc0>; - gpio-map-pass-thru = <0 0x3f>; - gpio-map - = <0 0 &gpiob 8 0> /* A0 */ - , <1 0 &gpioa 0 0> /* A1 */ - , <2 0 &gpioa 1 0> /* A2 */ - , <3 0 &gpioa 2 0> /* A3 */ - , <6 0 &gpiob 5 0> /* D4/A6 */ - , <7 0 &gpiob 3 0> /* D6/A7 */ - , <8 0 &gpiob 1 0> /* D8/A8 */ - , <9 0 &gpiob 0 0> /* D9/A9 */ - , <10 0 &gpiob 9 0> /* D10/A10 */ - ; - }; -}; - -pro_micro_i2c: &i2c1 {}; -pro_micro_spi: &spi1 {}; -pro_micro_serial: &usart1 {}; diff --git a/zmk/app/boards/arm/proton_c/board.cmake b/zmk/app/boards/arm/proton_c/board.cmake deleted file mode 100644 index 9da8ea91..00000000 --- a/zmk/app/boards/arm/proton_c/board.cmake +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: MIT - -board_runner_args(dfu-util "--pid=0483:df11" "--alt=0" "--dfuse") -board_runner_args(jlink "--device=STM32F303CC" "--speed=4000") - -include(${ZEPHYR_BASE}/boards/common/dfu-util.board.cmake) -include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) diff --git a/zmk/app/boards/arm/proton_c/pinmux.c b/zmk/app/boards/arm/proton_c/pinmux.c deleted file mode 100644 index 9ffabd73..00000000 --- a/zmk/app/boards/arm/proton_c/pinmux.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2017 I-SENSE group of ICCS - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include -#include -#include - -#include - -/* pin assignments for STM32F3DISCOVERY board */ -static const struct pin_config pinconf[] = { -#if DT_NODE_HAS_STATUS(DT_NODELABEL(usart1), okay) && CONFIG_SERIAL - {STM32_PIN_PC4, STM32F3_PINMUX_FUNC_PC4_USART1_TX}, - {STM32_PIN_PC5, STM32F3_PINMUX_FUNC_PC5_USART1_RX}, -#endif -#if DT_NODE_HAS_STATUS(DT_NODELABEL(usart2), okay) && CONFIG_SERIAL - {STM32_PIN_PA2, STM32F3_PINMUX_FUNC_PA2_USART2_TX}, - {STM32_PIN_PA3, STM32F3_PINMUX_FUNC_PA3_USART2_RX}, -#endif -#if DT_NODE_HAS_STATUS(DT_NODELABEL(i2c1), okay) && CONFIG_I2C - {STM32_PIN_PB6, STM32F3_PINMUX_FUNC_PB6_I2C1_SCL}, - {STM32_PIN_PB7, STM32F3_PINMUX_FUNC_PB7_I2C1_SDA}, -#endif -#if DT_NODE_HAS_STATUS(DT_NODELABEL(i2c2), okay) && CONFIG_I2C - {STM32_PIN_PA9, STM32F3_PINMUX_FUNC_PA9_I2C2_SCL}, - {STM32_PIN_PA10, STM32F3_PINMUX_FUNC_PA10_I2C2_SDA}, -#endif -#if DT_NODE_HAS_STATUS(DT_NODELABEL(spi1), okay) && CONFIG_SPI -#ifdef CONFIG_SPI_STM32_USE_HW_SS - {STM32_PIN_PA4, STM32F3_PINMUX_FUNC_PA4_SPI1_NSS}, -#endif /* CONFIG_SPI_STM32_USE_HW_SS */ - {STM32_PIN_PA5, STM32F3_PINMUX_FUNC_PA5_SPI1_SCK}, - {STM32_PIN_PA6, STM32F3_PINMUX_FUNC_PA6_SPI1_MISO}, - {STM32_PIN_PA7, STM32F3_PINMUX_FUNC_PA7_SPI1_MOSI}, -#endif -#if DT_NODE_HAS_STATUS(DT_NODELABEL(spi2), okay) && CONFIG_SPI -#ifdef CONFIG_SPI_STM32_USE_HW_SS - {STM32_PIN_PB12, STM32F3_PINMUX_FUNC_PB12_SPI2_NSS}, -#endif /* CONFIG_SPI_STM32_USE_HW_SS */ - {STM32_PIN_PB13, STM32F3_PINMUX_FUNC_PB13_SPI2_SCK}, - {STM32_PIN_PB14, STM32F3_PINMUX_FUNC_PB14_SPI2_MISO}, - {STM32_PIN_PB15, STM32F3_PINMUX_FUNC_PB15_SPI2_MOSI}, -#endif -#ifdef CONFIG_USB_DC_STM32 - {STM32_PIN_PA11, STM32F3_PINMUX_FUNC_PA11_USB_DM}, - {STM32_PIN_PA12, STM32F3_PINMUX_FUNC_PA12_USB_DP}, -#endif /* CONFIG_USB_DC_STM32 */ -#if DT_NODE_HAS_STATUS(DT_NODELABEL(can1), okay) && CONFIG_CAN - {STM32_PIN_PD0, STM32F3_PINMUX_FUNC_PD0_CAN1_RX}, - {STM32_PIN_PD1, STM32F3_PINMUX_FUNC_PD1_CAN1_TX}, -#endif -}; - -static int pinmux_stm32_init(struct device *port) { - ARG_UNUSED(port); - - stm32_setup_pins(pinconf, ARRAY_SIZE(pinconf)); - - return 0; -} - -SYS_INIT(pinmux_stm32_init, PRE_KERNEL_1, CONFIG_PINMUX_STM32_DEVICE_INITIALIZATION_PRIORITY); diff --git a/zmk/app/boards/arm/proton_c/proton_c.dts b/zmk/app/boards/arm/proton_c/proton_c.dts deleted file mode 100644 index 2ec57ad0..00000000 --- a/zmk/app/boards/arm/proton_c/proton_c.dts +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson - * - * SPDX-License-Identifier: MIT - */ - -/dts-v1/; -#include -#include "arduino_pro_micro_pins.dtsi" - -/ { - model = "QMK Proton C"; - compatible = "qmk,proton_c", "st,stm32f303"; - - chosen { - zephyr,sram = &sram0; - zephyr,flash = &flash0; - }; - - leds { - compatible = "gpio-leds"; - led: led_0 { - gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>; - label = "User LED"; - }; - }; -}; - -&usb { - status = "okay"; -}; - -&rtc { - status = "okay"; -}; - -&flash0 { - /* - * For more information, see: - * http://docs.zephyrproject.org/latest/guides/dts/index.html#flash-partitions - */ - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - /* Set 6Kb of storage at the end of the 256Kb of flash */ - storage_partition: partition@3e800 { - label = "storage"; - reg = <0x0003e800 0x00001800>; - }; - }; -}; diff --git a/zmk/app/boards/arm/proton_c/proton_c.yaml b/zmk/app/boards/arm/proton_c/proton_c.yaml deleted file mode 100644 index 86b14b9a..00000000 --- a/zmk/app/boards/arm/proton_c/proton_c.yaml +++ /dev/null @@ -1,18 +0,0 @@ -identifier: proton_c -name: QMK Proton-C -type: mcu -arch: arm -toolchain: - - zephyr - - gnuarmemb - - xtools -ram: 40 -supported: - - gpio - - i2c - - counter - - spi - - usb_device - - lsm303dlhc - - nvs - - can diff --git a/zmk/app/boards/arm/proton_c/proton_c_defconfig b/zmk/app/boards/arm/proton_c/proton_c_defconfig deleted file mode 100644 index 0f624616..00000000 --- a/zmk/app/boards/arm/proton_c/proton_c_defconfig +++ /dev/null @@ -1,30 +0,0 @@ -# SPDX-License-Identifier: MIT - -CONFIG_SOC_SERIES_STM32F3X=y -CONFIG_SOC_STM32F303XC=y -# 72MHz system clock -CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=72000000 - -# Floating Point Options -CONFIG_FPU=y - -# enable pinmux -CONFIG_PINMUX=y - -# enable GPIO -CONFIG_GPIO=y - -# clock configuration -CONFIG_CLOCK_CONTROL=y - -# Clock configuration for Cube Clock control driver -CONFIG_CLOCK_STM32_HSE_CLOCK=8000000 -CONFIG_CLOCK_STM32_SYSCLK_SRC_PLL=y -# use HSE as PLL input -CONFIG_CLOCK_STM32_PLL_SRC_HSE=y -# produce 72MHz clock at PLL output -CONFIG_CLOCK_STM32_PLL_PREDIV=1 -CONFIG_CLOCK_STM32_PLL_MULTIPLIER=9 -CONFIG_CLOCK_STM32_AHB_PRESCALER=1 -CONFIG_CLOCK_STM32_APB1_PRESCALER=2 -CONFIG_CLOCK_STM32_APB2_PRESCALER=1 diff --git a/zmk/app/boards/native_posix.conf b/zmk/app/boards/native_posix.conf deleted file mode 100644 index 357b1b86..00000000 --- a/zmk/app/boards/native_posix.conf +++ /dev/null @@ -1,8 +0,0 @@ -CONFIG_KSCAN=n -CONFIG_ZMK_KSCAN_MOCK_DRIVER=y -CONFIG_ZMK_KSCAN_GPIO_DRIVER=n -CONFIG_GPIO=n -CONFIG_ZMK_BLE=n -CONFIG_LOG=y -CONFIG_LOG_BACKEND_SHOW_COLOR=n -CONFIG_ZMK_LOG_LEVEL_DBG=y diff --git a/zmk/app/boards/native_posix.overlay b/zmk/app/boards/native_posix.overlay deleted file mode 100644 index bbb23b65..00000000 --- a/zmk/app/boards/native_posix.overlay +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include -#include - -/ { - chosen { - zmk,kscan = &kscan; - }; - - kscan: kscan { - compatible = "zmk,kscan-mock"; - label = "KSCAN_MOCK"; - - rows = <2>; - columns = <2>; - exit-after; - }; -}; diff --git a/zmk/app/boards/shields/Kconfig.defconfig b/zmk/app/boards/shields/Kconfig.defconfig deleted file mode 100644 index 5b9ca9a1..00000000 --- a/zmk/app/boards/shields/Kconfig.defconfig +++ /dev/null @@ -1,14 +0,0 @@ - - - -config ZMK_KEYBOARD_NAME - default "cradios" - -# Unable to use interrupts as the same pin number is used -# across A & B controllers, and STM32F303CCT6 can't enable -# interrutps for multiple controllers for the same "line" -# for the external interrupts. -config ZMK_KSCAN_GPIO_POLLING - default y - - diff --git a/zmk/app/boards/shields/Kconfig.shield b/zmk/app/boards/shields/Kconfig.shield deleted file mode 100644 index 844d4332..00000000 --- a/zmk/app/boards/shields/Kconfig.shield +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (c) 2020 Pete Johanson -# SPDX-License-Identifier: MIT - -config SHIELD_CRADIOS - def_bool $(shields_list_contains,cradios) diff --git a/zmk/app/boards/shields/boardsource3x4/Kconfig.defconfig b/zmk/app/boards/shields/boardsource3x4/Kconfig.defconfig deleted file mode 100644 index 4c55aab0..00000000 --- a/zmk/app/boards/shields/boardsource3x4/Kconfig.defconfig +++ /dev/null @@ -1,9 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -if SHIELD_BOARDSOURCE3X4 - -config ZMK_KEYBOARD_NAME - default "Boardsource 3x4" - -endif \ No newline at end of file diff --git a/zmk/app/boards/shields/boardsource3x4/Kconfig.shield b/zmk/app/boards/shields/boardsource3x4/Kconfig.shield deleted file mode 100644 index cda55d07..00000000 --- a/zmk/app/boards/shields/boardsource3x4/Kconfig.shield +++ /dev/null @@ -1,6 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config SHIELD_BOARDSOURCE3X4 - def_bool $(shields_list_contains,boardsource3x4) - diff --git a/zmk/app/boards/shields/boardsource3x4/boardsource3x4.conf b/zmk/app/boards/shields/boardsource3x4/boardsource3x4.conf deleted file mode 100644 index e69de29b..00000000 diff --git a/zmk/app/boards/shields/boardsource3x4/boardsource3x4.keymap b/zmk/app/boards/shields/boardsource3x4/boardsource3x4.keymap deleted file mode 100644 index 3b76863d..00000000 --- a/zmk/app/boards/shields/boardsource3x4/boardsource3x4.keymap +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { - - bindings = < - &tog 1 &kp M_PREV &kp M_PLAY &kp M_NEXT - &mo 2 &kp M_VOLD &kp UARW &kp M_VOLU - &mo 3 &kp LARW &kp DARW &kp RARW - >; - - }; - - num_layer { - bindings = < - &trans &kp NUM_7 &kp NUM_8 &kp NUM_9 - &trans &kp NUM_4 &kp NUM_5 &kp NUM_6 - < 3 NUM_0 &kp NUM_1 &kp NUM_2 &kp NUM_3 - >; - }; - - lower_layer { - bindings = < - &bt BT_CLR &none &reset &bootloader - &trans &bt BT_SEL 3 &bt BT_SEL 4 &none - &none &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 - >; - }; - - raise_layer { - bindings = < - &kp 0x68 &kp 0x69 &kp 0x6A &kp 0x6B - &kp 0x6C &kp 0x6D &kp 0x6E &kp 0x6F - &trans &kp 0x70 &kp 0x71 &kp 0x72 - >; - }; - }; -}; \ No newline at end of file diff --git a/zmk/app/boards/shields/boardsource3x4/boardsource3x4.overlay b/zmk/app/boards/shields/boardsource3x4/boardsource3x4.overlay deleted file mode 100644 index ad517940..00000000 --- a/zmk/app/boards/shields/boardsource3x4/boardsource3x4.overlay +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - diode-direction = "col2row"; - - row-gpios - = <&pro_micro_a 0 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - - col-gpios - = <&pro_micro_d 10 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - ; - }; -}; \ No newline at end of file diff --git a/zmk/app/boards/shields/clueboard_california/Kconfig.defconfig b/zmk/app/boards/shields/clueboard_california/Kconfig.defconfig deleted file mode 100644 index e101ea76..00000000 --- a/zmk/app/boards/shields/clueboard_california/Kconfig.defconfig +++ /dev/null @@ -1,14 +0,0 @@ - -if SHIELD_CLUEBOARD_CALIFORNIA - -config ZMK_KEYBOARD_NAME - default "Clueboard California Macropad" - -# Unable to use interrupts as the same pin number is used -# across A & B controllers, and STM32F303CCT6 can't enable -# interrutps for multiple controllers for the same "line" -# for the external interrupts. -config ZMK_KSCAN_DIRECT_POLLING - default y - -endif diff --git a/zmk/app/boards/shields/clueboard_california/Kconfig.shield b/zmk/app/boards/shields/clueboard_california/Kconfig.shield deleted file mode 100644 index eca025d1..00000000 --- a/zmk/app/boards/shields/clueboard_california/Kconfig.shield +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (c) 2020 Pete Johanson -# SPDX-License-Identifier: MIT - -config SHIELD_CLUEBOARD_CALIFORNIA - def_bool $(shields_list_contains,clueboard_california) diff --git a/zmk/app/boards/shields/clueboard_california/clueboard_california.conf b/zmk/app/boards/shields/clueboard_california/clueboard_california.conf deleted file mode 100644 index e69de29b..00000000 diff --git a/zmk/app/boards/shields/clueboard_california/clueboard_california.keymap b/zmk/app/boards/shields/clueboard_california/clueboard_california.keymap deleted file mode 100644 index 44a0b076..00000000 --- a/zmk/app/boards/shields/clueboard_california/clueboard_california.keymap +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include - -/ { - keymap0: keymap { - compatible = "zmk,keymap"; - - default_layer { - bindings = < - &kp NUM_9 &kp NUM_8 - &kp NUM_7 &kp NUM_6 - &kp NUM_5 - &kp NUM_4 &kp NUM_3 - &kp NUM_2 &kp NUM_1 - &kp NUM_0 - >; - }; - }; -}; diff --git a/zmk/app/boards/shields/clueboard_california/clueboard_california.overlay b/zmk/app/boards/shields/clueboard_california/clueboard_california.overlay deleted file mode 100644 index 9f52d0d3..00000000 --- a/zmk/app/boards/shields/clueboard_california/clueboard_california.overlay +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson - * - * SPDX-License-Identifier: MIT - */ - -/ { - chosen { - zmk,kscan = &kscan0; - }; - - kscan0: kscan_0 { - compatible = "zmk,kscan-gpio-direct"; - - label = "KSCAN"; - - input-gpios - = <&gpioa 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&gpioa 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&gpioa 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&gpiob 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&gpiob 11 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&gpiob 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&gpioa 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&gpioa 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&gpiob 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&gpiob 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - ; - - }; - - // TODO: Per-key LED node(s) -}; - diff --git a/zmk/app/boards/shields/clueboard_california/readme.md b/zmk/app/boards/shields/clueboard_california/readme.md deleted file mode 100644 index 0255eff7..00000000 --- a/zmk/app/boards/shields/clueboard_california/readme.md +++ /dev/null @@ -1,24 +0,0 @@ -# [Clueboard California Macropad](https://clueboard.co/parts/clueboard-california-macropad-kit) - -A small 10-key macropad in the shape of the US state of California. - -## Features - -- Per key LED. -- Proton-C only, including space for the piezo speaker. -- Direct GPIO wiring, no GPIO matrix at all. - -## Hardware Notes - -| Switch | Switch Pin | LED Pin | -| ------------ | ---------- | ------- | -| shasta1 | a10 | a2 | -| modoc1 | a9 | b5 | -| mendocino1 | a0 | a1 | -| lassen1 | b8 | b4 | -| eldorado1 | b11 | b12 | -| big_sur1 | b9 | b10 | -| sierra1 | a8 | a15 | -| los_padres1 | a7 | a6 | -| mojave1 | b1 | b0 | -| joshua_tree1 | b2 | b3 | diff --git a/zmk/app/boards/shields/corne/Kconfig.defconfig b/zmk/app/boards/shields/corne/Kconfig.defconfig deleted file mode 100644 index 8878da3d..00000000 --- a/zmk/app/boards/shields/corne/Kconfig.defconfig +++ /dev/null @@ -1,58 +0,0 @@ - -if SHIELD_CORNE_LEFT - -config ZMK_KEYBOARD_NAME - default "Corne Left" - -endif - - -if SHIELD_CORNE_RIGHT - -config ZMK_KEYBOARD_NAME - default "Corne Right" - -endif - -if SHIELD_CORNE_LEFT || SHIELD_CORNE_RIGHT - -config ZMK_SPLIT - default y - -if ZMK_DISPLAY - -config I2C - default y - -config SSD1306 - default y - -config SSD1306_REVERSE_MODE - default y - -endif # ZMK_DISPLAY - -if LVGL - -config LVGL_HOR_RES - default 128 - -config LVGL_VER_RES - default 32 - -config LVGL_VDB_SIZE - default 64 - -config LVGL_DPI - default 148 - -config LVGL_BITS_PER_PIXEL - default 1 - -choice LVGL_COLOR_DEPTH - default LVGL_COLOR_DEPTH_1 -endchoice - -endif # LVGL - -endif diff --git a/zmk/app/boards/shields/corne/Kconfig.shield b/zmk/app/boards/shields/corne/Kconfig.shield deleted file mode 100644 index 3cac86fe..00000000 --- a/zmk/app/boards/shields/corne/Kconfig.shield +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020 Pete Johanson -# SPDX-License-Identifier: MIT - -config SHIELD_CORNE_LEFT - def_bool $(shields_list_contains,corne_left) - -config SHIELD_CORNE_RIGHT - def_bool $(shields_list_contains,corne_right) diff --git a/zmk/app/boards/shields/corne/boards/nice_nano.overlay b/zmk/app/boards/shields/corne/boards/nice_nano.overlay deleted file mode 100644 index 83ebae04..00000000 --- a/zmk/app/boards/shields/corne/boards/nice_nano.overlay +++ /dev/null @@ -1,29 +0,0 @@ -&spi1 { - compatible = "nordic,nrf-spim"; - /* Cannot be used together with i2c0. */ - status = "okay"; - mosi-pin = <6>; - // Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. - sck-pin = <5>; - miso-pin = <7>; - - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "SK6812mini"; - - /* SPI */ - reg = <0>; /* ignored, but necessary for SPI bindings */ - spi-max-frequency = <4000000>; - - /* WS2812 */ - chain-length = <6>; /* There are per-key RGB, but the first 6 are underglow */ - spi-one-frame = <0x70>; - spi-zero-frame = <0x40>; - }; -}; - -/ { - chosen { - zmk,underglow = &led_strip; - }; -}; diff --git a/zmk/app/boards/shields/corne/corne.conf b/zmk/app/boards/shields/corne/corne.conf deleted file mode 100644 index 974243c8..00000000 --- a/zmk/app/boards/shields/corne/corne.conf +++ /dev/null @@ -1,6 +0,0 @@ -# Uncomment the following lines to enable the Corne RGB Underglow -# CONFIG_ZMK_RGB_UNDERGLOW=y -# CONFIG_WS2812_STRIP=y - -# Uncomment the following line to enable the Corne OLED Display -# CONFIG_ZMK_DISPLAY=y diff --git a/zmk/app/boards/shields/corne/corne.dtsi b/zmk/app/boards/shields/corne/corne.dtsi deleted file mode 100644 index 4360aea7..00000000 --- a/zmk/app/boards/shields/corne/corne.dtsi +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <12>; - rows = <4>; -// | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | -// | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | -// | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | -// | SW19 | SW20 | SW21 | | SW21 | SW20 | SW19 | - map = < -RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) -RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) -RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) - RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) - >; - }; - - five_column_transform: keymap_transform_1 { - compatible = "zmk,matrix-transform"; - columns = <10>; - rows = <4>; -// | SW2 | SW3 | SW4 | SW5 | SW6 | | SW6 | SW5 | SW4 | SW3 | SW2 | -// | SW8 | SW9 | SW10 | SW11 | SW12 | | SW12 | SW11 | SW10 | SW9 | SW8 | -// | SW14 | SW15 | SW16 | SW17 | SW18 | | SW18 | SW17 | SW16 | SW15 | SW14 | -// | SW19 | SW20 | SW21 | | SW21 | SW20 | SW19 | - map = < -RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) -RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) -RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) - RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) - >; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - row-gpios - = <&pro_micro_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - - }; - - // TODO: per-key RGB node(s)? -}; - -&pro_micro_i2c { - status = "okay"; - - oled: ssd1306@3c { - compatible = "solomon,ssd1306fb"; - reg = <0x3c>; - label = "DISPLAY"; - width = <128>; - height = <32>; - segment-offset = <0>; - page-offset = <0>; - display-offset = <0>; - multiplex-ratio = <31>; - segment-remap; - com-invdir; - com-sequential; - prechargep = <0x22>; - }; -}; diff --git a/zmk/app/boards/shields/corne/corne.keymap b/zmk/app/boards/shields/corne/corne.keymap deleted file mode 100644 index 64d4a001..00000000 --- a/zmk/app/boards/shields/corne/corne.keymap +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// ----------------------------------------------------------------------------------------- -// | TAB | Q | W | E | R | T | | Y | U | I | O | P | BKSP | -// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' | -// | SHFT | Z | X | C | V | B | | N | M | , | . | / | SHFT | -// | GUI | LWR | SPC | | ENT | RSE | ALT | - bindings = < - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BKSP - &kp LCTL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &kp QUOT - &kp LSFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT &kp FSLH &kp RSFT - &kp LGUI &mo 1 &kp SPC &kp RET &mo 2 &kp RALT - >; - }; - lower_layer { -// ----------------------------------------------------------------------------------------- -// | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BKSP | -// | BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 | | LFT | DWN | UP | RGT | | | -// | SHFT | | | | | | | | | | | | | -// | GUI | | SPC | | ENT | | ALT | - bindings = < - &kp ESC &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &kp BKSP - &bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &kp LARW &kp DARW &kp UARW &kp RARW &trans &trans - &kp LSFT &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans - &kp LGUI &trans &kp SPC &kp RET &trans &kp RALT - >; - }; - - raise_layer { -// ----------------------------------------------------------------------------------------- -// | ESC | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BKSP | -// | CTRL | | | | | | | - | = | { | } | "|" | ` | -// | SHFT | | | | | | | _ | + | [ | ] | \ | ~ | // TODO: Fix this row when &mkp is committed -// | GUI | | SPC | | ENT | | ALT | - bindings = < - &kp ESC &kp BANG &kp ATSN &kp HASH &kp CURU &kp PRCT &kp CRRT &kp AMPS &kp KMLT &kp LPRN &kp RPRN &kp BKSP - &kp LCTL &trans &trans &trans &trans &trans &kp MINUS &kp EQL &kp LBKT &kp RBKT &kp PIPE &kp GRAV - &kp LSFT &trans &trans &trans &trans &trans &trans &trans &trans &trans &kp BSLH &kp TILD - &kp LGUI &trans &kp SPC &kp RET &trans &kp RALT - >; - }; - }; -}; - diff --git a/zmk/app/boards/shields/corne/corne_left.conf b/zmk/app/boards/shields/corne/corne_left.conf deleted file mode 100644 index 1e028a78..00000000 --- a/zmk/app/boards/shields/corne/corne_left.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y diff --git a/zmk/app/boards/shields/corne/corne_left.overlay b/zmk/app/boards/shields/corne/corne_left.overlay deleted file mode 100644 index 399bddd1..00000000 --- a/zmk/app/boards/shields/corne/corne_left.overlay +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson - * - * SPDX-License-Identifier: MIT - */ - -#include "corne.dtsi" - -&kscan0 { - col-gpios - = <&pro_micro_a 3 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - ; -}; diff --git a/zmk/app/boards/shields/corne/corne_right.conf b/zmk/app/boards/shields/corne/corne_right.conf deleted file mode 100644 index 990cf7c0..00000000 --- a/zmk/app/boards/shields/corne/corne_right.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL=y diff --git a/zmk/app/boards/shields/corne/corne_right.overlay b/zmk/app/boards/shields/corne/corne_right.overlay deleted file mode 100644 index 4250ac55..00000000 --- a/zmk/app/boards/shields/corne/corne_right.overlay +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson - * - * SPDX-License-Identifier: MIT - */ - -#include "corne.dtsi" - -&default_transform { - col-offset = <6>; -}; - -&kscan0 { - col-gpios - = <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 3 GPIO_ACTIVE_HIGH> - ; -}; diff --git a/zmk/app/boards/shields/cradio/Kconfig.defconfig b/zmk/app/boards/shields/cradio/Kconfig.defconfig deleted file mode 100644 index 4d200c95..00000000 --- a/zmk/app/boards/shields/cradio/Kconfig.defconfig +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -if SHIELD_CRADIO_LEFT - -config ZMK_KEYBOARD_NAME - default "cradio left" - -endif - -if SHIELD_CRADIO_RIGHT - -config ZMK_KEYBOARD_NAME - default "cradio right" - -endif - -if SHIELD_CRADIO_RIGHT || SHIELD_CRADIO_LEFT - -config ZMK_KSCAN_DIRECT_POLLING - default y - -endif diff --git a/zmk/app/boards/shields/cradio/Kconfig.shield b/zmk/app/boards/shields/cradio/Kconfig.shield deleted file mode 100644 index bb5f0735..00000000 --- a/zmk/app/boards/shields/cradio/Kconfig.shield +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config SHIELD_CRADIO_LEFT - def_bool $(shields_list_contains,cradio_left) - -config SHIELD_CRADIO_RIGHT - def_bool $(shields_list_contains,cradio_right) diff --git a/zmk/app/boards/shields/cradio/cradio.dtsi b/zmk/app/boards/shields/cradio/cradio.dtsi deleted file mode 100644 index 43f90493..00000000 --- a/zmk/app/boards/shields/cradio/cradio.dtsi +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - - #include - -/ { - chosen { - zmk,kscan = &kscan0; - //zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <34>; - rows = <1>; - map = < - RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,21) RC(0,20) RC(0,19) RC(0,18) RC(0,17) - RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,26) RC(0,25) RC(0,24) RC(0,23) RC(0,22) - RC(0,10) RC(0,11) RC(0,12) RC(0,13) RC(0,14) RC(0,31) RC(0,30) RC(0,29) RC(0,28) RC(0,27) - RC(0,15) RC(0,16) RC(0,33) RC(0,32) - >; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-direct"; - label = "KSCAN"; - input-gpios - = <&pro_micro_d 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_a 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_a 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_a 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_a 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_d 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_d 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_d 16 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_d 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_d 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_d 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_d 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_a 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_d 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_d 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_d 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_d 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - ; - }; - }; - }; diff --git a/zmk/app/boards/shields/cradio/cradio.keymap b/zmk/app/boards/shields/cradio/cradio.keymap deleted file mode 100644 index 487f6dcf..00000000 --- a/zmk/app/boards/shields/cradio/cradio.keymap +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { - bindings = < - &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P - &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN - &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT &kp FSLH - &mo 1 &kp LCTL &kp SPC &mo 2 - >; - }; - upper_layer { - bindings = < - &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 - &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &kp H &kp J &kp K &kp L &kp SCLN - &kp LSFT &trans &trans &trans &trans &trans &trans &trans &trans &trans - &mo 1 &kp LCTL &kp SPC &mo 2 - >; - }; - - lower_layer { - bindings = < - &kp BANG &kp ATSN &kp HASH &kp CURU &kp PRCT &kp CRRT &kp AMPS &kp KMLT &kp LPRN &kp RPRN - &trans &trans &trans &trans &trans &kp MINUS &kp EQL &kp LBKT &kp RBKT &kp PIPE - &trans &trans &trans &trans &trans &trans &trans &trans &kp BSLH &kp TILD - &mo 1 &kp LCTL &kp SPC &mo 2 - >; - }; - - }; -}; diff --git a/zmk/app/boards/shields/cradio/cradio_left.conf b/zmk/app/boards/shields/cradio/cradio_left.conf deleted file mode 100644 index 405f04db..00000000 --- a/zmk/app/boards/shields/cradio/cradio_left.conf +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y diff --git a/zmk/app/boards/shields/cradio/cradio_left.overlay b/zmk/app/boards/shields/cradio/cradio_left.overlay deleted file mode 100644 index 6a3704a7..00000000 --- a/zmk/app/boards/shields/cradio/cradio_left.overlay +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include "cradio.dtsi" diff --git a/zmk/app/boards/shields/cradio/cradio_right.conf b/zmk/app/boards/shields/cradio/cradio_right.conf deleted file mode 100644 index bd2c93bf..00000000 --- a/zmk/app/boards/shields/cradio/cradio_right.conf +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL=y diff --git a/zmk/app/boards/shields/cradio/cradio_right.overlay b/zmk/app/boards/shields/cradio/cradio_right.overlay deleted file mode 100644 index 01aa1ab6..00000000 --- a/zmk/app/boards/shields/cradio/cradio_right.overlay +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include "cradio.dtsi" - -&default_transform { - col-offset = <17>; -}; diff --git a/zmk/app/boards/shields/iris/Kconfig.defconfig b/zmk/app/boards/shields/iris/Kconfig.defconfig deleted file mode 100644 index 6439780c..00000000 --- a/zmk/app/boards/shields/iris/Kconfig.defconfig +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright (c) 2020 Pete Johanson, Kurtis Lew -# SPDX-License-Identifier: MIT - -if SHIELD_IRIS_LEFT - -config ZMK_KEYBOARD_NAME - default "Iris Left" - -endif - -if SHIELD_IRIS_RIGHT - -config ZMK_KEYBOARD_NAME - default "Iris Right" - -endif diff --git a/zmk/app/boards/shields/iris/Kconfig.shield b/zmk/app/boards/shields/iris/Kconfig.shield deleted file mode 100644 index 370bd222..00000000 --- a/zmk/app/boards/shields/iris/Kconfig.shield +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020 Pete Johanson, Kurtis Lew -# SPDX-License-Identifier: MIT - -config SHIELD_IRIS_LEFT - def_bool $(shields_list_contains,iris_left) - -config SHIELD_IRIS_RIGHT - def_bool $(shields_list_contains,iris_right) diff --git a/zmk/app/boards/shields/iris/iris.conf b/zmk/app/boards/shields/iris/iris.conf deleted file mode 100644 index e69de29b..00000000 diff --git a/zmk/app/boards/shields/iris/iris.dtsi b/zmk/app/boards/shields/iris/iris.dtsi deleted file mode 100644 index 9ea1dd68..00000000 --- a/zmk/app/boards/shields/iris/iris.dtsi +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson, Kurtis Lew - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <16>; - rows = <4>; -// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | -// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | -// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | -// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 | -// | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 | - map = < -RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) -RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) -RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) -RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,2) RC(4,9) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) - RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(4,8) - >; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - row-gpios - = <&pro_micro_d 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 0 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - - }; -}; \ No newline at end of file diff --git a/zmk/app/boards/shields/iris/iris.keymap b/zmk/app/boards/shields/iris/iris.keymap deleted file mode 100644 index 8b06b1b7..00000000 --- a/zmk/app/boards/shields/iris/iris.keymap +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// ------------------------------------------------------------------------------------------------------------ -// | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | -// | TAB | Q | W | E | R | T | | Y | U | I | O | P | - | -// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' | -// | SHIFT | Z | X | C | V | B | "[" | | "]" | N | M | , | . | / | SHIFT | -// | GUI | LOWER| SPACE | | ENTER | RAISE| ALT | - bindings = < -&kp ESC &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &kp GRAV -&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp MINUS -&kp LCTL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &kp QUOT -&kp LSFT &kp Z &kp X &kp C &kp V &kp B &kp LBKT &kp RBKT &kp N &kp M &kp CMMA &kp DOT &kp FSLH &kp RSFT - &kp LGUI &mo 1 &kp SPC &kp RET &mo 2 &kp RALT - >; - }; - - lower_layer { -// ------------------------------------------------------------------------------------------------------------ -// | BTCLR | BT1 | BT2 | BT3 | BT4 | BT5 | | | | | | | | -// | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | -// | ` | ! | @ | # | $ | % | | ^ | & | * | ( | ) | ~ | -// | | | | | | | | | | | _ | + | { | } | "|" | -// | | | | | | | | - bindings = < -&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &trans &trans &trans &trans &trans &trans -&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 -&kp GRAV &kp BANG &kp ATSN &kp HASH &kp CURU &kp PRCT &kp CRRT &kp AMPS &kp KMLT &kp LPRN &kp RPRN &kp TILD -&trans &trans &trans &trans &trans &trans &trans &trans &trans &kp MINUS &kp KPLS &kp LCUR &kp RCUR &kp PIPE - &trans &trans &trans &trans &trans &trans - >; - }; - - raise_layer { -// ------------------------------------------------------------------------------------------------------------ -// | | | | | | | | | | | | | | -// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | -// | F1 | F2 | F3 | F4 | F5 | F6 | | | <- | ^ | v | -> | | -// | F7 | F8 | F9 | F10 | F11 | F12 | | | | + | - | = | [ | ] | \ | -// | | | | | | | | - bindings = < -&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans -&kp GRAV &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &trans -&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &trans &kp LARW &kp DARW &kp UARW &kp RARW &trans -&kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &trans &kp KPLS &kp MINUS &kp EQL &kp LBKT &kp RBKT &kp BSLH - &trans &trans &trans &trans &trans &trans - >; - }; - }; -}; diff --git a/zmk/app/boards/shields/iris/iris_left.conf b/zmk/app/boards/shields/iris/iris_left.conf deleted file mode 100644 index 1e028a78..00000000 --- a/zmk/app/boards/shields/iris/iris_left.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y diff --git a/zmk/app/boards/shields/iris/iris_left.overlay b/zmk/app/boards/shields/iris/iris_left.overlay deleted file mode 100644 index 7ded678b..00000000 --- a/zmk/app/boards/shields/iris/iris_left.overlay +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson, Kurtis Lew - * - * SPDX-License-Identifier: MIT - */ - -#include "iris.dtsi" - -&kscan0 { - col-gpios - = <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 10 GPIO_ACTIVE_HIGH> - ; -}; diff --git a/zmk/app/boards/shields/iris/iris_right.conf b/zmk/app/boards/shields/iris/iris_right.conf deleted file mode 100644 index 990cf7c0..00000000 --- a/zmk/app/boards/shields/iris/iris_right.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL=y diff --git a/zmk/app/boards/shields/iris/iris_right.overlay b/zmk/app/boards/shields/iris/iris_right.overlay deleted file mode 100644 index 51965821..00000000 --- a/zmk/app/boards/shields/iris/iris_right.overlay +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson, Kurtis Lew - * - * SPDX-License-Identifier: MIT - */ - -#include "iris.dtsi" - -&default_transform { - col-offset = <6>; -}; - -&kscan0 { - col-gpios - = <&pro_micro_d 10 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - ; -}; diff --git a/zmk/app/boards/shields/jian/Kconfig.defconfig b/zmk/app/boards/shields/jian/Kconfig.defconfig deleted file mode 100644 index b743e7a4..00000000 --- a/zmk/app/boards/shields/jian/Kconfig.defconfig +++ /dev/null @@ -1,23 +0,0 @@ - -if SHIELD_JIAN_LEFT - -config ZMK_KEYBOARD_NAME - default "Jian Left" - -endif - - -if SHIELD_JIAN_RIGHT - -config ZMK_KEYBOARD_NAME - default "Jian Right" - -endif - -if SHIELD_JIAN_LEFT || SHIELD_JIAN_RIGHT - -config ZMK_SPLIT - default y - - -endif diff --git a/zmk/app/boards/shields/jian/Kconfig.shield b/zmk/app/boards/shields/jian/Kconfig.shield deleted file mode 100644 index 5b874f03..00000000 --- a/zmk/app/boards/shields/jian/Kconfig.shield +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config SHIELD_JIAN_LEFT - def_bool $(shields_list_contains,jian_left) - -config SHIELD_JIAN_RIGHT - def_bool $(shields_list_contains,jian_right) diff --git a/zmk/app/boards/shields/jian/jian.conf b/zmk/app/boards/shields/jian/jian.conf deleted file mode 100644 index e69de29b..00000000 diff --git a/zmk/app/boards/shields/jian/jian.dtsi b/zmk/app/boards/shields/jian/jian.dtsi deleted file mode 100644 index 331624ea..00000000 --- a/zmk/app/boards/shields/jian/jian.dtsi +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <12>; - rows = <4>; -// | SW0 | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | SW0 | -// | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | -// | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | -// | SW19 | SW20 | SW21 | | SW21 | SW20 | SW19 | - map = < - RC(2,0) RC(0,0) RC(0,1) RC(1,2) RC(0,2) RC(0,3) RC(0,4) RC(0,7) RC(0,8) RC(0,9) RC(1,9) RC(0,10) RC(0,11) RC(2,11) - RC(1,0) RC(1,1) RC(2,2) RC(1,3) RC(1,4) RC(0,5) RC(0,6) RC(1,7) RC(1,8) RC(2,9) RC(1,10) RC(1,11) - RC(2,1) RC(3,2) RC(3,3) RC(2,3) RC(2,4) RC(1,5) RC(1,6) RC(2,7) RC(2,8) RC(3,8) RC(3,9) RC(2,10) - RC(3,4) RC(2,5) RC(3,5) RC(3,6) RC(2,6) RC(3,7) - >; - }; - - crkbd_transform: keymap_transform_1 { - compatible = "zmk,matrix-transform"; - columns = <12>; - rows = <4>; -// | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | -// | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | -// | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | -// | SW19 | SW20 | SW21 | | SW21 | SW20 | SW19 | - map = < - RC(0,0) RC(0,1) RC(1,2) RC(0,2) RC(0,3) RC(0,4) RC(0,7) RC(0,8) RC(0,9) RC(1,9) RC(0,10) RC(0,11) - RC(1,0) RC(1,1) RC(2,2) RC(1,3) RC(1,4) RC(0,5) RC(0,6) RC(1,7) RC(1,8) RC(2,9) RC(1,10) RC(1,11) - RC(2,1) RC(3,2) RC(3,3) RC(2,3) RC(2,4) RC(1,5) RC(1,6) RC(2,7) RC(2,8) RC(3,8) RC(3,9) RC(2,10) - RC(3,4) RC(2,5) RC(3,5) RC(3,6) RC(2,6) RC(3,7) - >; - }; - - five_column_transform: keymap_transform_2 { - compatible = "zmk,matrix-transform"; - columns = <10>; - rows = <4>; -// | SW2 | SW3 | SW4 | SW5 | SW6 | | SW6 | SW5 | SW4 | SW3 | SW2 | -// | SW8 | SW9 | SW10 | SW11 | SW12 | | SW12 | SW11 | SW10 | SW9 | SW8 | -// | SW14 | SW15 | SW16 | SW17 | SW18 | | SW18 | SW17 | SW16 | SW15 | SW14 | -// | SW19 | SW20 | SW21 | | SW21 | SW20 | SW19 | - map = < - RC(0,1) RC(1,2) RC(0,2) RC(0,3) RC(0,4) RC(0,7) RC(0,8) RC(0,9) RC(1,9) RC(0,10) - RC(1,1) RC(2,2) RC(1,3) RC(1,4) RC(0,5) RC(0,6) RC(1,7) RC(1,8) RC(2,9) RC(1,10) - RC(3,2) RC(3,3) RC(2,3) RC(2,4) RC(1,5) RC(1,6) RC(2,7) RC(2,8) RC(3,8) RC(3,9) - RC(3,4) RC(2,5) RC(3,5) RC(3,6) RC(2,6) RC(3,7) - >; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - row-gpios - = <&pro_micro_a 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - - }; -}; diff --git a/zmk/app/boards/shields/jian/jian.keymap b/zmk/app/boards/shields/jian/jian.keymap deleted file mode 100644 index 256bc51a..00000000 --- a/zmk/app/boards/shields/jian/jian.keymap +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -#define DEF 0 -#define LWR 1 -#define RSE 2 -#define ADJ 3 - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// ----------------------------------------------------------------------------------------- -// | GUI | ~ | Q | W | E | R | T | | Y | U | I | O | P | [ | GUI/] | -// | CTRL | A | S | D | F | G | | H | J | K | L | ; |CTRL/'| -// | LALT | Z | X | C | V | B | | N | M | , | . | / | RALT | -// | RSE | SPC | LWR | | LWR | BKSP | RSE | - bindings = < - &kp LWIN &kp GRAVE &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &mt RWIN RBKT - &kp LCTRL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &mt RCTRL QUOT - &kp LALT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp BSLH - < RSE TAB &mt LSHFT SPC < LWR RET < LWR ESC &mt RSHFT BSPC < RSE DEL - >; - }; - lower_layer { -// ----------------------------------------------------------------------------------------- -// | | _ | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 | -// | + | ! | @ | # | $ | % | | ^ | & | * | ( | ) | - | -// | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | -// | GUI | | SPC | | ENT | | ALT | - bindings = < - &trans &kp UNDER &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &mt RGUI F12 - &mt LCTRL PLUS &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CRRT &kp AMPS &kp STAR &kp LPAR &kp RPAR &mt RCTRL MINUS - &mt LALT EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &trans - < ADJ TAB &trans &trans &trans &trans < ADJ DEL - >; - }; - - raise_layer { -// ----------------------------------------------------------------------------------------- -// | | NMLK | / | 7 | 8 | 9 | - | | VOLU| HOME| PRSC| PGUP| SCLK| CLCK| | -// | CTRL | * | 4 | 5 | 6 | + | | MUT | LEFT| UP | RGHT| INS | APP | -// | | 0 | 1 | 2 | 3 | . | | VOLD| END | DOWN| PGDN| PAUS| | -// | | | ADJ | | ADJ | | | - bindings = < - &trans &kp KP_NUM &kp KP_SLASH &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_MINUS &kp C_VOL_UP &kp HOME &kp PSCRN &kp PG_UP &kp SLCK &kp CAPS &trans - &mt LCTRL EQL &kp KP_MULTIPLY &kp KP_N4 &kp KP_N5 &kp KP_N6 &kp KP_PLUS &kp C_MUTE &kp LEFT &kp UP &kp RIGHT &kp INS &mt RCTRL K_APP - &trans &kp KP_N0 &kp KP_N1 &kp KP_N2 &kp KP_N3 &kp KP_DOT &kp C_VOL_DN &kp END &kp DOWN &kp PG_DN &kp PAUS &trans - &trans &trans < ADJ RET < ADJ ESC &trans &trans - >; - }; - adjust_layer { -// ----------------------------------------------------------------------------------------- -// | RST | BLDR | | | | | | | | | | | | BLDR | RST | -// | BTCLR| BT0 | BT1 | BT2 | BT3 | BT4 | | BT4 | BT3 | BT2 | BT1 | BT0 | BTCLR| -// | | | | | | | | | | | | | | -// | | | | | | | | - bindings = < - &reset &bootloader &none &none &none &none &none &none &none &none &none &none &bootloader &reset - &bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &bt BT_SEL 4 &bt BT_SEL 3 &bt BT_SEL 2 &bt BT_SEL 1 &bt BT_SEL 0 &bt BT_CLR - &none &none &none &none &none &none &none &none &none &none &none &none - &trans &none &trans &trans &none &trans - >; - }; - }; -}; diff --git a/zmk/app/boards/shields/jian/jian_left.conf b/zmk/app/boards/shields/jian/jian_left.conf deleted file mode 100644 index 1e028a78..00000000 --- a/zmk/app/boards/shields/jian/jian_left.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y diff --git a/zmk/app/boards/shields/jian/jian_left.overlay b/zmk/app/boards/shields/jian/jian_left.overlay deleted file mode 100644 index 553dbd05..00000000 --- a/zmk/app/boards/shields/jian/jian_left.overlay +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include "jian.dtsi" - -&kscan0 { - col-gpios - = <&pro_micro_d 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 8 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> - ; -}; diff --git a/zmk/app/boards/shields/jian/jian_right.conf b/zmk/app/boards/shields/jian/jian_right.conf deleted file mode 100644 index 990cf7c0..00000000 --- a/zmk/app/boards/shields/jian/jian_right.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL=y diff --git a/zmk/app/boards/shields/jian/jian_right.overlay b/zmk/app/boards/shields/jian/jian_right.overlay deleted file mode 100644 index 1430b817..00000000 --- a/zmk/app/boards/shields/jian/jian_right.overlay +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include "jian.dtsi" - -&default_transform { - col-offset = <6>; -}; - -&kscan0 { - col-gpios - = <&pro_micro_d 16 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 8 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 1 GPIO_ACTIVE_HIGH> - ; -}; diff --git a/zmk/app/boards/shields/jorne/Kconfig.defconfig b/zmk/app/boards/shields/jorne/Kconfig.defconfig deleted file mode 100644 index a8cf29b8..00000000 --- a/zmk/app/boards/shields/jorne/Kconfig.defconfig +++ /dev/null @@ -1,58 +0,0 @@ - -if SHIELD_JORNE_LEFT - -config ZMK_KEYBOARD_NAME - default "Jorne Left" - -endif - - -if SHIELD_JORNE_RIGHT - -config ZMK_KEYBOARD_NAME - default "Jorne Right" - -endif - -if SHIELD_JORNE_LEFT || SHIELD_JORNE_RIGHT - -config ZMK_SPLIT - default y - -if ZMK_DISPLAY - -config I2C - default y - -config SSD1306 - default y - -config SSD1306_REVERSE_MODE - default y - -endif # ZMK_DISPLAY - -if LVGL - -config LVGL_HOR_RES - default 128 - -config LVGL_VER_RES - default 32 - -config LVGL_VDB_SIZE - default 64 - -config LVGL_DPI - default 148 - -config LVGL_BITS_PER_PIXEL - default 1 - -choice LVGL_COLOR_DEPTH - default LVGL_COLOR_DEPTH_1 -endchoice - -endif # LVGL - -endif diff --git a/zmk/app/boards/shields/jorne/Kconfig.shield b/zmk/app/boards/shields/jorne/Kconfig.shield deleted file mode 100644 index 11766113..00000000 --- a/zmk/app/boards/shields/jorne/Kconfig.shield +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config SHIELD_JORNE_LEFT - def_bool $(shields_list_contains,jorne_left) - -config SHIELD_JORNE_RIGHT - def_bool $(shields_list_contains,jorne_right) diff --git a/zmk/app/boards/shields/jorne/boards/nice_nano.overlay b/zmk/app/boards/shields/jorne/boards/nice_nano.overlay deleted file mode 100644 index 03b868ce..00000000 --- a/zmk/app/boards/shields/jorne/boards/nice_nano.overlay +++ /dev/null @@ -1,29 +0,0 @@ -&spi1 { - compatible = "nordic,nrf-spim"; - /* Cannot be used together with i2c0. */ - status = "okay"; - mosi-pin = <6>; - // Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. - sck-pin = <5>; - miso-pin = <7>; - - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "WS2812"; - - /* SPI */ - reg = <0>; /* ignored, but necessary for SPI bindings */ - spi-max-frequency = <4000000>; - - /* WS2812 */ - chain-length = <6>; /* There are per-key RGB, but the first 6 are underglow */ - spi-one-frame = <0x70>; - spi-zero-frame = <0x40>; - }; -}; - -/ { - chosen { - zmk,underglow = &led_strip; - }; -}; diff --git a/zmk/app/boards/shields/jorne/jorne.conf b/zmk/app/boards/shields/jorne/jorne.conf deleted file mode 100644 index c4e62fc0..00000000 --- a/zmk/app/boards/shields/jorne/jorne.conf +++ /dev/null @@ -1,6 +0,0 @@ -# Uncomment the following lines to enable the Jorne RGB Underglow -# CONFIG_ZMK_RGB_UNDERGLOW=y -# CONFIG_WS2812_STRIP=y - -# Uncomment the following line to enable the Jorne OLED Display -# CONFIG_ZMK_DISPLAY=y diff --git a/zmk/app/boards/shields/jorne/jorne.dtsi b/zmk/app/boards/shields/jorne/jorne.dtsi deleted file mode 100644 index 7e6cfd8b..00000000 --- a/zmk/app/boards/shields/jorne/jorne.dtsi +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <12>; - rows = <4>; -// | SW0 | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | SW0 | -// | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | -// | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | -// | SW19 | SW20 | SW21 | | SW21 | SW20 | SW19 | - map = < - RC(3,0) RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) RC(3,11) - RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) - RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) - RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) - >; - }; - - crkbd_transform: keymap_transform_1 { - compatible = "zmk,matrix-transform"; - columns = <12>; - rows = <4>; -// | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | -// | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | -// | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | -// | SW19 | SW20 | SW21 | | SW21 | SW20 | SW19 | - map = < - RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) - RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) - RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) - RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) - >; - }; - - five_column_transform: keymap_transform_2 { - compatible = "zmk,matrix-transform"; - columns = <10>; - rows = <4>; -// | SW2 | SW3 | SW4 | SW5 | SW6 | | SW6 | SW5 | SW4 | SW3 | SW2 | -// | SW8 | SW9 | SW10 | SW11 | SW12 | | SW12 | SW11 | SW10 | SW9 | SW8 | -// | SW14 | SW15 | SW16 | SW17 | SW18 | | SW18 | SW17 | SW16 | SW15 | SW14 | -// | SW19 | SW20 | SW21 | | SW21 | SW20 | SW19 | - map = < -RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) -RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) -RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) - RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) - >; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - row-gpios - = <&pro_micro_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - - }; - - // TODO: per-key RGB node(s)? -}; - -&pro_micro_i2c { - status = "okay"; - - oled: ssd1306@3c { - compatible = "solomon,ssd1306fb"; - reg = <0x3c>; - label = "DISPLAY"; - width = <128>; - height = <32>; - segment-offset = <0>; - page-offset = <0>; - display-offset = <0>; - multiplex-ratio = <31>; - segment-remap; - com-invdir; - com-sequential; - prechargep = <0x22>; - }; -}; diff --git a/zmk/app/boards/shields/jorne/jorne.keymap b/zmk/app/boards/shields/jorne/jorne.keymap deleted file mode 100644 index 256bc51a..00000000 --- a/zmk/app/boards/shields/jorne/jorne.keymap +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -#define DEF 0 -#define LWR 1 -#define RSE 2 -#define ADJ 3 - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// ----------------------------------------------------------------------------------------- -// | GUI | ~ | Q | W | E | R | T | | Y | U | I | O | P | [ | GUI/] | -// | CTRL | A | S | D | F | G | | H | J | K | L | ; |CTRL/'| -// | LALT | Z | X | C | V | B | | N | M | , | . | / | RALT | -// | RSE | SPC | LWR | | LWR | BKSP | RSE | - bindings = < - &kp LWIN &kp GRAVE &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &mt RWIN RBKT - &kp LCTRL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &mt RCTRL QUOT - &kp LALT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp BSLH - < RSE TAB &mt LSHFT SPC < LWR RET < LWR ESC &mt RSHFT BSPC < RSE DEL - >; - }; - lower_layer { -// ----------------------------------------------------------------------------------------- -// | | _ | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 | -// | + | ! | @ | # | $ | % | | ^ | & | * | ( | ) | - | -// | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | -// | GUI | | SPC | | ENT | | ALT | - bindings = < - &trans &kp UNDER &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &mt RGUI F12 - &mt LCTRL PLUS &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CRRT &kp AMPS &kp STAR &kp LPAR &kp RPAR &mt RCTRL MINUS - &mt LALT EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &trans - < ADJ TAB &trans &trans &trans &trans < ADJ DEL - >; - }; - - raise_layer { -// ----------------------------------------------------------------------------------------- -// | | NMLK | / | 7 | 8 | 9 | - | | VOLU| HOME| PRSC| PGUP| SCLK| CLCK| | -// | CTRL | * | 4 | 5 | 6 | + | | MUT | LEFT| UP | RGHT| INS | APP | -// | | 0 | 1 | 2 | 3 | . | | VOLD| END | DOWN| PGDN| PAUS| | -// | | | ADJ | | ADJ | | | - bindings = < - &trans &kp KP_NUM &kp KP_SLASH &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_MINUS &kp C_VOL_UP &kp HOME &kp PSCRN &kp PG_UP &kp SLCK &kp CAPS &trans - &mt LCTRL EQL &kp KP_MULTIPLY &kp KP_N4 &kp KP_N5 &kp KP_N6 &kp KP_PLUS &kp C_MUTE &kp LEFT &kp UP &kp RIGHT &kp INS &mt RCTRL K_APP - &trans &kp KP_N0 &kp KP_N1 &kp KP_N2 &kp KP_N3 &kp KP_DOT &kp C_VOL_DN &kp END &kp DOWN &kp PG_DN &kp PAUS &trans - &trans &trans < ADJ RET < ADJ ESC &trans &trans - >; - }; - adjust_layer { -// ----------------------------------------------------------------------------------------- -// | RST | BLDR | | | | | | | | | | | | BLDR | RST | -// | BTCLR| BT0 | BT1 | BT2 | BT3 | BT4 | | BT4 | BT3 | BT2 | BT1 | BT0 | BTCLR| -// | | | | | | | | | | | | | | -// | | | | | | | | - bindings = < - &reset &bootloader &none &none &none &none &none &none &none &none &none &none &bootloader &reset - &bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &bt BT_SEL 4 &bt BT_SEL 3 &bt BT_SEL 2 &bt BT_SEL 1 &bt BT_SEL 0 &bt BT_CLR - &none &none &none &none &none &none &none &none &none &none &none &none - &trans &none &trans &trans &none &trans - >; - }; - }; -}; diff --git a/zmk/app/boards/shields/jorne/jorne_left.conf b/zmk/app/boards/shields/jorne/jorne_left.conf deleted file mode 100644 index 1e028a78..00000000 --- a/zmk/app/boards/shields/jorne/jorne_left.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y diff --git a/zmk/app/boards/shields/jorne/jorne_left.overlay b/zmk/app/boards/shields/jorne/jorne_left.overlay deleted file mode 100644 index ca6ad431..00000000 --- a/zmk/app/boards/shields/jorne/jorne_left.overlay +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include "jorne.dtsi" - -&kscan0 { - col-gpios - = <&pro_micro_a 3 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - ; -}; diff --git a/zmk/app/boards/shields/jorne/jorne_right.conf b/zmk/app/boards/shields/jorne/jorne_right.conf deleted file mode 100644 index 990cf7c0..00000000 --- a/zmk/app/boards/shields/jorne/jorne_right.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL=y diff --git a/zmk/app/boards/shields/jorne/jorne_right.overlay b/zmk/app/boards/shields/jorne/jorne_right.overlay deleted file mode 100644 index 6ae232eb..00000000 --- a/zmk/app/boards/shields/jorne/jorne_right.overlay +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include "jorne.dtsi" - -&default_transform { - col-offset = <6>; -}; - -&kscan0 { - col-gpios - = <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 3 GPIO_ACTIVE_HIGH> - ; -}; diff --git a/zmk/app/boards/shields/kyria/Kconfig.defconfig b/zmk/app/boards/shields/kyria/Kconfig.defconfig deleted file mode 100644 index 405377be..00000000 --- a/zmk/app/boards/shields/kyria/Kconfig.defconfig +++ /dev/null @@ -1,58 +0,0 @@ - -if SHIELD_KYRIA_LEFT - -config ZMK_KEYBOARD_NAME - default "Kyria Left" - -endif - - -if SHIELD_KYRIA_RIGHT - -config ZMK_KEYBOARD_NAME - default "Kyria Right" - -endif - -if SHIELD_KYRIA_LEFT || SHIELD_KYRIA_RIGHT - -config ZMK_SPLIT - default y - -if ZMK_DISPLAY - -config I2C - default y - -config SSD1306 - default y - -config SSD1306_REVERSE_MODE - default y - -endif # ZMK_DISPLAY - -if LVGL - -config LVGL_HOR_RES - default 128 - -config LVGL_VER_RES - default 64 - -config LVGL_VDB_SIZE - default 64 - -config LVGL_DPI - default 148 - -config LVGL_BITS_PER_PIXEL - default 1 - -choice LVGL_COLOR_DEPTH - default LVGL_COLOR_DEPTH_1 -endchoice - -endif # LVGL - -endif diff --git a/zmk/app/boards/shields/kyria/Kconfig.shield b/zmk/app/boards/shields/kyria/Kconfig.shield deleted file mode 100644 index 7dee0449..00000000 --- a/zmk/app/boards/shields/kyria/Kconfig.shield +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020 Pete Johanson -# SPDX-License-Identifier: MIT - -config SHIELD_KYRIA_LEFT - def_bool $(shields_list_contains,kyria_left) - -config SHIELD_KYRIA_RIGHT - def_bool $(shields_list_contains,kyria_right) diff --git a/zmk/app/boards/shields/kyria/boards/nice_nano.overlay b/zmk/app/boards/shields/kyria/boards/nice_nano.overlay deleted file mode 100644 index 8be964b5..00000000 --- a/zmk/app/boards/shields/kyria/boards/nice_nano.overlay +++ /dev/null @@ -1,28 +0,0 @@ -&spi1 { - compatible = "nordic,nrf-spim"; - status = "okay"; - mosi-pin = <6>; - // Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. - sck-pin = <5>; - miso-pin = <7>; - - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "WS2812"; - - /* SPI */ - reg = <0>; /* ignored, but necessary for SPI bindings */ - spi-max-frequency = <4000000>; - - /* WS2812 */ - chain-length = <10>; /* arbitrary; change at will */ - spi-one-frame = <0x70>; - spi-zero-frame = <0x40>; - }; -}; - -/ { - chosen { - zmk,underglow = &led_strip; - }; -}; diff --git a/zmk/app/boards/shields/kyria/boards/nrfmicro_11.overlay b/zmk/app/boards/shields/kyria/boards/nrfmicro_11.overlay deleted file mode 100644 index b88573b6..00000000 --- a/zmk/app/boards/shields/kyria/boards/nrfmicro_11.overlay +++ /dev/null @@ -1,29 +0,0 @@ -&spi1 { - compatible = "nordic,nrf-spim"; - status = "okay"; - mosi-pin = <6>; - // Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. - sck-pin = <12>; // 0.12 is not broken out on the nRFMicro - miso-pin = <22>; // 0.22 is not broken out on the nRFMicro - - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "WS2812"; - - /* SPI */ - reg = <0>; /* ignored, but necessary for SPI bindings */ - spi-max-frequency = <4000000>; - - /* WS2812 */ - chain-length = <10>; /* arbitrary; change at will */ - spi-one-frame = <0x70>; - spi-zero-frame = <0x40>; - }; -}; - -/ { - chosen { - zmk,underglow = &led_strip; - }; -}; - diff --git a/zmk/app/boards/shields/kyria/boards/nrfmicro_11_flipped.overlay b/zmk/app/boards/shields/kyria/boards/nrfmicro_11_flipped.overlay deleted file mode 100644 index c6a24665..00000000 --- a/zmk/app/boards/shields/kyria/boards/nrfmicro_11_flipped.overlay +++ /dev/null @@ -1,28 +0,0 @@ -&spi1 { - compatible = "nordic,nrf-spim"; - status = "okay"; - mosi-pin = <6>; - // Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. - sck-pin = <12>; // 0.12 is not broken out on the nRFMicro - miso-pin = <22>; // 0.22 is not broken out on the nRFMicro - - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "WS2812"; - - /* SPI */ - reg = <0>; /* ignored, but necessary for SPI bindings */ - spi-max-frequency = <4000000>; - - /* WS2812 */ - chain-length = <10>; /* arbitrary; change at will */ - spi-one-frame = <0x70>; - spi-zero-frame = <0x40>; - }; -}; - -/ { - chosen { - zmk,underglow = &led_strip; - }; -}; diff --git a/zmk/app/boards/shields/kyria/boards/nrfmicro_13.overlay b/zmk/app/boards/shields/kyria/boards/nrfmicro_13.overlay deleted file mode 100644 index c6a24665..00000000 --- a/zmk/app/boards/shields/kyria/boards/nrfmicro_13.overlay +++ /dev/null @@ -1,28 +0,0 @@ -&spi1 { - compatible = "nordic,nrf-spim"; - status = "okay"; - mosi-pin = <6>; - // Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. - sck-pin = <12>; // 0.12 is not broken out on the nRFMicro - miso-pin = <22>; // 0.22 is not broken out on the nRFMicro - - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "WS2812"; - - /* SPI */ - reg = <0>; /* ignored, but necessary for SPI bindings */ - spi-max-frequency = <4000000>; - - /* WS2812 */ - chain-length = <10>; /* arbitrary; change at will */ - spi-one-frame = <0x70>; - spi-zero-frame = <0x40>; - }; -}; - -/ { - chosen { - zmk,underglow = &led_strip; - }; -}; diff --git a/zmk/app/boards/shields/kyria/kyria.conf b/zmk/app/boards/shields/kyria/kyria.conf deleted file mode 100644 index 7a0b5b6c..00000000 --- a/zmk/app/boards/shields/kyria/kyria.conf +++ /dev/null @@ -1,10 +0,0 @@ -# Uncomment these two line to add support for encoders to your firmware -# CONFIG_EC11=y -# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y - -# Uncomment the following line to enable the Kyria OLED Display -# CONFIG_ZMK_DISPLAY=y - -# Uncomment the following lines to enable RGB underglow -# CONFIG_ZMK_RGB_UNDERGLOW=y -# CONFIG_WS2812_STRIP=y diff --git a/zmk/app/boards/shields/kyria/kyria.dtsi b/zmk/app/boards/shields/kyria/kyria.dtsi deleted file mode 100644 index bbead846..00000000 --- a/zmk/app/boards/shields/kyria/kyria.dtsi +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <16>; - rows = <4>; -// | MX6 | MX5 | MX4 | MX3 | MX2 | MX1 | | MX1 | MX2 | MX3 | MX4 | MX5 | MX6 | -// | MX12 | MX11 | MX10 | MX9 | MX8 | MX7 | | MX7 | MX8 | MX9 | MX10 | MX11 | MX12 | -// | MX20 | MX19 | MX18 | MX17 | MX16 | MX15 | MX14 | MX13 | | MX13 | MX14 | MX15 | MX16 | MX17 | MX18 | MX19 | MX20 | -// | MX25 | MX24 | MX23 | MX22 | MX21 | | MX21 | MX22 | MX23 | MX24 | MX25 | - map = < -RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,10) RC(0,11) RC(0,12) RC(0,13) RC(0,14) RC(0,15) -RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,10) RC(1,11) RC(1,12) RC(1,13) RC(1,14) RC(1,15) -RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,13) RC(2,14) RC(2,15) - RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,12) - >; - }; - -// | MX5 | MX4 | MX3 | MX2 | MX1 | | MX1 | MX2 | MX3 | MX4 | MX5 | -// | MX11 | MX10 | MX9 | MX8 | MX7 | | MX7 | MX8 | MX9 | MX10 | MX11 | -// | MX19 | MX18 | MX17 | MX16 | MX15 | MX14 | MX13 | | MX13 | MX14 | MX15 | MX16 | MX17 | MX18 | MX19 | -// | MX25 | MX24 | MX23 | MX22 | MX21 | | MX21 | MX22 | MX23 | MX24 | MX25 | - five_column_transform: keymap_transform_1 { - compatible = "zmk,matrix-transform"; - columns = <14>; - rows = <4>; - map = < -RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,13) -RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13) -RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,13) - RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) - >; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - row-gpios - = <&pro_micro_d 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - - }; - - left_encoder: encoder_left { - compatible = "alps,ec11"; - label = "LEFT_ENCODER"; - a-gpios = <&pro_micro_d 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - b-gpios = <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - resolution = <4>; - status = "disabled"; - }; - - right_encoder: encoder_right { - compatible = "alps,ec11"; - label = "RIGHT_ENCODER"; - a-gpios = <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - b-gpios = <&pro_micro_d 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - resolution = <4>; - status = "disabled"; - }; - - sensors { - compatible = "zmk,keymap-sensors"; - sensors = <&left_encoder &right_encoder>; - }; - - // TODO: RGB node(s) -}; - -&pro_micro_i2c { - status = "okay"; - - ssd1306@3c { - compatible = "solomon,ssd1306fb"; - reg = <0x3c>; - label = "DISPLAY"; - width = <128>; - height = <64>; - segment-offset = <0>; - page-offset = <0>; - display-offset = <0>; - multiplex-ratio = <63>; - prechargep = <0x22>; - }; -}; diff --git a/zmk/app/boards/shields/kyria/kyria.keymap b/zmk/app/boards/shields/kyria/kyria.keymap deleted file mode 100644 index a05f6cef..00000000 --- a/zmk/app/boards/shields/kyria/kyria.keymap +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// --------------------------------------------------------------------------------------------------------------------------------- -// | ESC | Q | W | E | R | T | | Y | U | I | O | P | \ | -// | TAB | A | S | D | F | G | | H | J | K | L | ; | ' | -// | SHIFT | Z | X | C | V | B | L SHIFT | L SHIFT | | L SHIFT | L SHIFT | N | M | , | . | / | CTRL | -// | GUI | DEL | RET | SPACE | ESC | | RET | SPACE | TAB | BSPC | R-ALT | - bindings = < - &kp ESC &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSLH - &kp TAB &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &kp QUOT - &kp LSFT &kp Z &kp X &kp C &kp V &kp B &kp LSFT &kp LSFT &kp LSFT &kp LSFT &kp N &kp M &kp CMMA &kp DOT &kp FSLH &kp RCTL - &kp LGUI &kp DEL &kp RET &kp SPC &kp ESC &kp RET &kp SPC &kp TAB &kp BKSP &kp RALT - >; - - sensor-bindings = <&inc_dec_kp M_VOLU M_VOLD &inc_dec_kp PGUP PGDN>; - }; - }; -}; diff --git a/zmk/app/boards/shields/kyria/kyria_left.conf b/zmk/app/boards/shields/kyria/kyria_left.conf deleted file mode 100644 index e51dee44..00000000 --- a/zmk/app/boards/shields/kyria/kyria_left.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y \ No newline at end of file diff --git a/zmk/app/boards/shields/kyria/kyria_left.overlay b/zmk/app/boards/shields/kyria/kyria_left.overlay deleted file mode 100644 index c8b5be27..00000000 --- a/zmk/app/boards/shields/kyria/kyria_left.overlay +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson - * - * SPDX-License-Identifier: MIT - */ - -#include "kyria.dtsi" - -&kscan0 { - col-gpios - = <&pro_micro_a 3 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 10 GPIO_ACTIVE_HIGH> - ; -}; - -&left_encoder { - status = "okay"; -}; diff --git a/zmk/app/boards/shields/kyria/kyria_right.conf b/zmk/app/boards/shields/kyria/kyria_right.conf deleted file mode 100644 index 990cf7c0..00000000 --- a/zmk/app/boards/shields/kyria/kyria_right.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL=y diff --git a/zmk/app/boards/shields/kyria/kyria_right.overlay b/zmk/app/boards/shields/kyria/kyria_right.overlay deleted file mode 100644 index 8163c95e..00000000 --- a/zmk/app/boards/shields/kyria/kyria_right.overlay +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson - * - * SPDX-License-Identifier: MIT - */ - -#include "kyria.dtsi" - -&default_transform { - col-offset = <8>; -}; - -&kscan0 { - col-gpios - = <&pro_micro_d 10 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 3 GPIO_ACTIVE_HIGH> - ; -}; - - -&right_encoder { - status = "okay"; -}; diff --git a/zmk/app/boards/shields/lily58/Kconfig.defconfig b/zmk/app/boards/shields/lily58/Kconfig.defconfig deleted file mode 100644 index 89f217be..00000000 --- a/zmk/app/boards/shields/lily58/Kconfig.defconfig +++ /dev/null @@ -1,54 +0,0 @@ - -if SHIELD_LILY58_LEFT - -config ZMK_KEYBOARD_NAME - default "Lily58 Left" - -endif - -if SHIELD_LILY58_RIGHT - -config ZMK_KEYBOARD_NAME - default "Lily58 Right" - -endif - -if SHIELD_LILY58_LEFT || SHIELD_LILY58_RIGHT - -if ZMK_DISPLAY - -config I2C - default y - -config SSD1306 - default y - -config SSD1306_REVERSE_MODE - default y - -endif # ZMK_DISPLAY - -if LVGL - -config LVGL_HOR_RES - default 128 - -config LVGL_VER_RES - default 32 - -config LVGL_VDB_SIZE - default 64 - -config LVGL_DPI - default 148 - -config LVGL_BITS_PER_PIXEL - default 1 - -choice LVGL_COLOR_DEPTH - default LVGL_COLOR_DEPTH_1 -endchoice - -endif # LVGL - -endif diff --git a/zmk/app/boards/shields/lily58/Kconfig.shield b/zmk/app/boards/shields/lily58/Kconfig.shield deleted file mode 100644 index 932e33b3..00000000 --- a/zmk/app/boards/shields/lily58/Kconfig.shield +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020 Pete Johanson -# SPDX-License-Identifier: MIT - -config SHIELD_LILY58_LEFT - def_bool $(shields_list_contains,lily58_left) - -config SHIELD_LILY58_RIGHT - def_bool $(shields_list_contains,lily58_right) diff --git a/zmk/app/boards/shields/lily58/lily58.conf b/zmk/app/boards/shields/lily58/lily58.conf deleted file mode 100644 index 31eb7c68..00000000 --- a/zmk/app/boards/shields/lily58/lily58.conf +++ /dev/null @@ -1,6 +0,0 @@ -# Uncomment to enable encoder -# CONFIG_EC11=y -# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y - -# Uncomment the following line to enable the Lily58 OLED Display -# CONFIG_ZMK_DISPLAY=y diff --git a/zmk/app/boards/shields/lily58/lily58.dtsi b/zmk/app/boards/shields/lily58/lily58.dtsi deleted file mode 100644 index eb69fa75..00000000 --- a/zmk/app/boards/shields/lily58/lily58.dtsi +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <16>; - rows = <5>; -// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | -// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | -// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | -// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 | -// | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 | - map = < -RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) -RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) -RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) -RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) - RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) - >; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - row-gpios - = <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - - }; - - left_encoder: encoder_left { - compatible = "alps,ec11"; - label = "LEFT_ENCODER"; - a-gpios = <&pro_micro_a 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - b-gpios = <&pro_micro_a 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - resolution = <4>; - }; - - sensors { - compatible = "zmk,keymap-sensors"; - sensors = <&left_encoder>; - }; -}; - -&pro_micro_i2c { - status = "okay"; - - oled: ssd1306@3c { - compatible = "solomon,ssd1306fb"; - reg = <0x3c>; - label = "DISPLAY"; - width = <128>; - height = <32>; - segment-offset = <0>; - page-offset = <0>; - display-offset = <0>; - multiplex-ratio = <31>; - segment-remap; - com-invdir; - com-sequential; - prechargep = <0x22>; - }; -}; diff --git a/zmk/app/boards/shields/lily58/lily58.keymap b/zmk/app/boards/shields/lily58/lily58.keymap deleted file mode 100644 index 73ade143..00000000 --- a/zmk/app/boards/shields/lily58/lily58.keymap +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// ------------------------------------------------------------------------------------------------------------ -// | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | -// | TAB | Q | W | E | R | T | | Y | U | I | O | P | - | -// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' | -// | SHIFT | Z | X | C | V | B | "[" | | "]" | N | M | , | . | / | SHIFT | -// | ALT | GUI | LOWER| SPACE | | ENTER | RAISE| BSPC | GUI | - bindings = < -&kp ESC &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &kp GRAV -&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp MINUS -&kp LCTL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &kp QUOT -&kp LSFT &kp Z &kp X &kp C &kp V &kp B &kp LBKT &kp RBKT &kp N &kp M &kp CMMA &kp DOT &kp FSLH &kp RSFT - &kp LALT &kp LGUI &mo 1 &kp SPC &kp RET &mo 2 &kp BKSP &kp RGUI - >; - - sensor-bindings = <&inc_dec_kp M_VOLU M_VOLD>; - }; - - lower_layer { -// ------------------------------------------------------------------------------------------------------------ -// | BTCLR | BT1 | BT2 | BT3 | BT4 | BT5 | | | | | | | | -// | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | -// | ` | ! | @ | # | $ | % | | ^ | & | * | ( | ) | ~ | -// | | | | | | | | | | | _ | + | { | } | "|" | -// | | | | | | | | | | - bindings = < -&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &trans &trans &trans &trans &trans &trans -&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 -&kp GRAV &kp BANG &kp ATSN &kp HASH &kp CURU &kp PRCT &kp CRRT &kp AMPS &kp KMLT &kp LPRN &kp RPRN &kp TILD -&trans &ext_power EP_ON &ext_power EP_OFF &ext_power EP_TOG &trans &trans &trans &trans &trans &kp MINUS &kp KPLS &kp LCUR &kp RCUR &kp PIPE - &trans &trans &trans &trans &trans &trans &trans &trans - >; - - sensor-bindings = <&inc_dec_kp M_VOLU M_VOLD>; - }; - - raise_layer { -// ------------------------------------------------------------------------------------------------------------ -// | | | | | | | | | | | | | | -// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | -// | F1 | F2 | F3 | F4 | F5 | F6 | | | <- | ^ | v | -> | | -// | F7 | F8 | F9 | F10 | F11 | F12 | | | | + | - | = | [ | ] | \ | -// | | | | | | | | | | - bindings = < -&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans -&kp GRAV &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &trans -&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &trans &kp LARW &kp DARW &kp UARW &kp RARW &trans -&kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &trans &kp KPLS &kp MINUS &kp EQL &kp LBKT &kp RBKT &kp BSLH - &trans &trans &trans &trans &trans &trans &trans &trans - >; - - sensor-bindings = <&inc_dec_kp M_VOLU M_VOLD>; - }; - }; -}; diff --git a/zmk/app/boards/shields/lily58/lily58_left.conf b/zmk/app/boards/shields/lily58/lily58_left.conf deleted file mode 100644 index 6ff95d54..00000000 --- a/zmk/app/boards/shields/lily58/lily58_left.conf +++ /dev/null @@ -1,6 +0,0 @@ -# Uncomment to enable encoder -# CONFIG_EC11=y -# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y - -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y \ No newline at end of file diff --git a/zmk/app/boards/shields/lily58/lily58_left.overlay b/zmk/app/boards/shields/lily58/lily58_left.overlay deleted file mode 100644 index 7397f188..00000000 --- a/zmk/app/boards/shields/lily58/lily58_left.overlay +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson - * - * SPDX-License-Identifier: MIT - */ - -#include "lily58.dtsi" - -&kscan0 { - col-gpios - = <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 10 GPIO_ACTIVE_HIGH> - ; -}; - -&left_encoder { - status = "okay"; -}; diff --git a/zmk/app/boards/shields/lily58/lily58_right.conf b/zmk/app/boards/shields/lily58/lily58_right.conf deleted file mode 100644 index 990cf7c0..00000000 --- a/zmk/app/boards/shields/lily58/lily58_right.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL=y diff --git a/zmk/app/boards/shields/lily58/lily58_right.overlay b/zmk/app/boards/shields/lily58/lily58_right.overlay deleted file mode 100644 index 4fc460cf..00000000 --- a/zmk/app/boards/shields/lily58/lily58_right.overlay +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson - * - * SPDX-License-Identifier: MIT - */ - -#include "lily58.dtsi" - -&default_transform { - col-offset = <6>; -}; - -&kscan0 { - col-gpios - = <&pro_micro_d 10 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - ; -}; diff --git a/zmk/app/boards/shields/m60/Kconfig.defconfig b/zmk/app/boards/shields/m60/Kconfig.defconfig deleted file mode 100644 index e31d5a53..00000000 --- a/zmk/app/boards/shields/m60/Kconfig.defconfig +++ /dev/null @@ -1,11 +0,0 @@ -# -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT -# - -if SHIELD_M60 - -config ZMK_KEYBOARD_NAME - default "m60" - -endif diff --git a/zmk/app/boards/shields/m60/Kconfig.shield b/zmk/app/boards/shields/m60/Kconfig.shield deleted file mode 100644 index 47a28e24..00000000 --- a/zmk/app/boards/shields/m60/Kconfig.shield +++ /dev/null @@ -1,7 +0,0 @@ -# -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT -# - -config SHIELD_M60 - def_bool $(shields_list_contains,m60) diff --git a/zmk/app/boards/shields/m60/m60.conf b/zmk/app/boards/shields/m60/m60.conf deleted file mode 100644 index e69de29b..00000000 diff --git a/zmk/app/boards/shields/m60/m60.keymap b/zmk/app/boards/shields/m60/m60.keymap deleted file mode 100644 index cbe356c2..00000000 --- a/zmk/app/boards/shields/m60/m60.keymap +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -/ { - keymap0: keymap { - compatible = "zmk,keymap"; - - default_layer { -// ------------------------------------------------------------------------------------------ -// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP | -// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | -// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | -// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | -// | CTL | WIN | ALT | SPACE | ALT | MO(1) | WIN | CTRL | -// ------------------------------------------------------------------------------------------ - bindings = < - &kp ESC &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &kp MINUS &kp EQL &kp BKSP - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH - &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &kp QUOT &kp RET - &kp LSFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT &kp FSLH &kp RSFT - &kp LCTL &kp LGUI &kp LALT &kp SPC &kp RALT &mo 1 &kp RGUI &kp RCTL - >; - }; - - fn_layer { - bindings = < -&kp GRAV &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &bootloader -&trans &bt BT_CLR &none &none &none &none &none &none &none &none &none &none &none &reset -&trans &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &kp LARW &kp DARW &kp UARW &kp RARW &none &none &trans -&trans &none &none &none &none &none &none &none &none &none &none &trans -&trans &trans &trans &trans &trans &trans &trans &trans - >; - }; - }; -}; diff --git a/zmk/app/boards/shields/m60/m60.overlay b/zmk/app/boards/shields/m60/m60.overlay deleted file mode 100644 index 0824f1c6..00000000 --- a/zmk/app/boards/shields/m60/m60.overlay +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - row-gpios - = <&gpio0 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpio0 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpio0 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpio0 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpio1 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpio1 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpio0 12 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&gpio0 11 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - col-gpios - = <&gpio0 19 GPIO_ACTIVE_HIGH> - , <&gpio0 20 GPIO_ACTIVE_HIGH> - , <&gpio0 21 GPIO_ACTIVE_HIGH> - , <&gpio0 22 GPIO_ACTIVE_HIGH> - , <&gpio0 23 GPIO_ACTIVE_HIGH> - , <&gpio0 24 GPIO_ACTIVE_HIGH> - , <&gpio0 25 GPIO_ACTIVE_HIGH> - , <&gpio0 26 GPIO_ACTIVE_HIGH> - ; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <8>; - rows = <8>; -// | MX1 | MX2 | MX3 | MX4 | MX5 | MX6 | MX7 | MX8 | MX9 | MX10 | MX11 | MX12 | MX13 | MX14 | -// | MX15 | MX16 | MX17 | MX18 | MX19 | MX20 | MX21 | MX22 | MX23 | MX24 | MX25 | MX26 | MX27 | MX28 | -// | MX29 | MX30 | MX31 | MX32 | MX33 | MX34 | MX35 | MX36 | MX37 | MX38 | MX39 | MX40 | MX41 | -// | MX42 | MX43 | MX44 | MX45 | MX46 | MX47 | MX48 | MX49 | MX50 | MX51 | MX52 | MX53 | -// | MX54 | MX55 | MX56 | MX57 | MX58 | MX59 | MX60 | MX61 | - map = < -RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) -RC(3,3) RC(3,2) RC(3,1) RC(3,0) RC(2,7) RC(2,6) RC(2,5) RC(2,4) RC(2,3) RC(2,2) RC(2,1) RC(2,0) RC(1,7) RC(1,6) -RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(5,0) -RC(6,4) RC(6,3) RC(6,2) RC(6,1) RC(6,0) RC(5,7) RC(5,6) RC(5,5) RC(5,4) RC(5,3) RC(5,2) RC(5,1) -RC(6,5) RC(6,6) RC(6,7) RC(7,0) RC(7,1) RC(7,2) RC(7,3) RC(7,4) - >; - }; -}; - diff --git a/zmk/app/boards/shields/m60/readme.md b/zmk/app/boards/shields/m60/readme.md deleted file mode 100644 index e801c788..00000000 --- a/zmk/app/boards/shields/m60/readme.md +++ /dev/null @@ -1,14 +0,0 @@ -# [Makerdiary M60](https://wiki.makerdiary.com/m60) - -A 60% ANSI keyboard designed and manufactured by Makerdiary. -http://makerdiary.com - -## Features - -- Per key RGB LED. -- Uses makerdiary M.2 nRF52840 module -- Matrix wiring - -## Hardware Notes - -https://wiki.makerdiary.com/m60/developer_guide/hardware/ diff --git a/zmk/app/boards/shields/microdox/Kconfig.defconfig b/zmk/app/boards/shields/microdox/Kconfig.defconfig deleted file mode 100644 index 4840eceb..00000000 --- a/zmk/app/boards/shields/microdox/Kconfig.defconfig +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -if SHIELD_MICRODOX_LEFT - -config ZMK_KEYBOARD_NAME - default "Microdox Left" - -endif - - -if SHIELD_MICRODOX_RIGHT - -config ZMK_KEYBOARD_NAME - default "Microdox Right" - -endif - -if SHIELD_MICRODOX_LEFT || SHIELD_MICRODOX_RIGHT - -config ZMK_SPLIT - default y - -if ZMK_DISPLAY - -config I2C - default y - -config SSD1306 - default y - -config SSD1306_REVERSE_MODE - default y - -endif # ZMK_DISPLAY - -if LVGL - -config LVGL_HOR_RES - default 128 - -config LVGL_VER_RES - default 32 - -config LVGL_VDB_SIZE - default 64 - -config LVGL_DPI - default 148 - -config LVGL_BITS_PER_PIXEL - default 1 - -choice LVGL_COLOR_DEPTH - default LVGL_COLOR_DEPTH_1 -endchoice - -endif # LVGL - -endif diff --git a/zmk/app/boards/shields/microdox/Kconfig.shield b/zmk/app/boards/shields/microdox/Kconfig.shield deleted file mode 100644 index ac79eab6..00000000 --- a/zmk/app/boards/shields/microdox/Kconfig.shield +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config SHIELD_MICRODOX_LEFT - def_bool $(shields_list_contains,microdox_left) - -config SHIELD_MICRODOX_RIGHT - def_bool $(shields_list_contains,microdox_right) diff --git a/zmk/app/boards/shields/microdox/boards/nice_nano.overlay b/zmk/app/boards/shields/microdox/boards/nice_nano.overlay deleted file mode 100644 index 1b84b6b5..00000000 --- a/zmk/app/boards/shields/microdox/boards/nice_nano.overlay +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ -&spi1 { - compatible = "nordic,nrf-spim"; - /* Cannot be used together with i2c0. */ - status = "okay"; - mosi-pin = <6>; - // Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. - sck-pin = <5>; - miso-pin = <7>; - - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "SK6812mini"; - - /* SPI */ - reg = <0>; /* ignored, but necessary for SPI bindings */ - spi-max-frequency = <4000000>; - - /* WS2812 */ - chain-length = <6>; /* There are per-key RGB, but the first 6 are underglow */ - spi-one-frame = <0x70>; - spi-zero-frame = <0x40>; - }; -}; - -/ { - chosen { - zmk,underglow = &led_strip; - }; -}; diff --git a/zmk/app/boards/shields/microdox/microdox.conf b/zmk/app/boards/shields/microdox/microdox.conf deleted file mode 100644 index 0d38398c..00000000 --- a/zmk/app/boards/shields/microdox/microdox.conf +++ /dev/null @@ -1,6 +0,0 @@ -# Uncomment the following lines to enable the Microdox RGB Underglow -# CONFIG_ZMK_RGB_UNDERGLOW=y -# CONFIG_WS2812_STRIP=y - -# Uncomment the following line to enable the Microdox OLED Display -# CONFIG_ZMK_DISPLAY=y diff --git a/zmk/app/boards/shields/microdox/microdox.dtsi b/zmk/app/boards/shields/microdox/microdox.dtsi deleted file mode 100644 index 55c67dd3..00000000 --- a/zmk/app/boards/shields/microdox/microdox.dtsi +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <10>; - rows = <4>; -// | SW1 | SW2 | SW3 | SW4 | SW5 | | SW5 | SW4 | SW3 | SW2 | SW1 | -// | SW6 | SW7 | SW8 | SW9 | SW10 | | SW10 | SW9 | SW8 | SW7 | SW6 | -// | SW11 | SW12 | SW13 | SW14 | SW15 | | SW15 | SW14 | SW13 | SW12 | SW11 | -// | SW16 | SW17 | SW18 | | SW18 | SW17 | SW16 | - map = < -RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) -RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) -RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) - RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) - >; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - row-gpios - = <&pro_micro_d 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - - }; - - // TODO: per-key RGB node(s)? -}; - -&pro_micro_i2c { - status = "okay"; - - oled: ssd1306@3c { - compatible = "solomon,ssd1306fb"; - reg = <0x3c>; - label = "DISPLAY"; - width = <128>; - height = <32>; - segment-offset = <0>; - page-offset = <0>; - display-offset = <0>; - multiplex-ratio = <31>; - segment-remap; - com-invdir; - com-sequential; - prechargep = <0x22>; - }; -}; diff --git a/zmk/app/boards/shields/microdox/microdox.keymap b/zmk/app/boards/shields/microdox/microdox.keymap deleted file mode 100644 index 5747771b..00000000 --- a/zmk/app/boards/shields/microdox/microdox.keymap +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// ----------------------------------------------------------------------------------------- -// | Q | W | E | R | T | | Y | U | I | O | P | -// | A | S | D | F | G | | H | J | K | L | ; | -// | Z | X | C | V | B | | N | M | , | . | / | -// | GUI | NAV | SHFT | | SPC | SYM | ALT | - bindings = < - &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P - &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN - &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT &kp FSLH - &kp LGUI &mo 1 &kp LSFT &kp SPC &mo 2 &kp RALT - >; - }; - nav_layer { -// ----------------------------------------------------------------------------------------- -// |BTCLR| | ESC | ~ | | | TAB | HOME | UP | END | DEL | -// | BT1 | GUI | ALT | CTRL | NUM | | / | LEFT | DOWN | RGT | BKSP | -// | BT2 | | | | | | \ | ENT | | | | -// | | | | | | | | - bindings = < - &bt BT_CLR &trans &kp ESC &kp TILD &trans &kp TAB &kp HOME &kp UARW &kp END &kp DEL - &bt BT_SEL 0 &kp GUI &kp RALT &kp LCTL &mo 3 &kp FSLH &kp LARW &kp DARW &kp RARW &kp BKSP - &bt BT_SEL 1 &trans &trans &trans &trans &kp BSLH &kp RET &trans &trans &trans - &trans &trans &trans &trans &trans &trans - >; - }; - - sym_layer { -// ----------------------------------------------------------------------------------------- -// | ! | @ | # | $ | % | | ^ | & | * | ( | ) | -// | | | | | | | - | = | { | } | "|" | -// | | | | | | | _ | + | [ | ] | \ | -// | GUI | | SPC | | ENT | | ALT | - bindings = < - &kp BANG &kp ATSN &kp HASH &kp CURU &kp PRCT &kp CRRT &kp AMPS &kp KMLT &kp LPRN &kp RPRN - &trans &trans &trans &trans &trans &kp MINUS &kp EQL &kp LBKT &kp RBKT &kp PIPE - &trans &trans &trans &trans &trans &trans &trans &trans &trans &kp BSLH - &kp LGUI &trans &kp SPC &kp RET &trans &kp RALT - >; - }; - -// This layer is unreachable until "tri layer state" is sorted out. -// Leaving it here for completeness. - num_layer { -// ----------------------------------------------------------------------------------------- -// | | | | | | | A | 7 | 8 | 9 | D | -// | | | | | | | B | 4 | 5 | 6 | E | -// | | | | | | | C | 1 | 2 | 3 | F | -// | | | | | 0 | . | | - bindings = < - &trans &trans &trans &trans &trans &kp A &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp D - &trans &trans &trans &trans &trans &kp B &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp E - &trans &trans &trans &trans &trans &kp C &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp F - &trans &trans &trans &kp NUM_0 &kp DOT &trans - >; - }; - }; -}; - diff --git a/zmk/app/boards/shields/microdox/microdox_left.conf b/zmk/app/boards/shields/microdox/microdox_left.conf deleted file mode 100644 index 1e028a78..00000000 --- a/zmk/app/boards/shields/microdox/microdox_left.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y diff --git a/zmk/app/boards/shields/microdox/microdox_left.overlay b/zmk/app/boards/shields/microdox/microdox_left.overlay deleted file mode 100644 index 4d0378e5..00000000 --- a/zmk/app/boards/shields/microdox/microdox_left.overlay +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include "microdox.dtsi" - -&kscan0 { - col-gpios - = <&pro_micro_a 3 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - ; -}; diff --git a/zmk/app/boards/shields/microdox/microdox_right.conf b/zmk/app/boards/shields/microdox/microdox_right.conf deleted file mode 100644 index 990cf7c0..00000000 --- a/zmk/app/boards/shields/microdox/microdox_right.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL=y diff --git a/zmk/app/boards/shields/microdox/microdox_right.overlay b/zmk/app/boards/shields/microdox/microdox_right.overlay deleted file mode 100644 index c5622b25..00000000 --- a/zmk/app/boards/shields/microdox/microdox_right.overlay +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include "microdox.dtsi" - -&default_transform { - col-offset = <5>; -}; - -&kscan0 { - col-gpios - = <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 3 GPIO_ACTIVE_HIGH> - ; -}; diff --git a/zmk/app/boards/shields/nibble/Kconfig.defconfig b/zmk/app/boards/shields/nibble/Kconfig.defconfig deleted file mode 100644 index 01d0bba5..00000000 --- a/zmk/app/boards/shields/nibble/Kconfig.defconfig +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -if SHIELD_NIBBLE - -config ZMK_KEYBOARD_NAME - default "NIBBLE" - -config ZMK_USB - default y - -endif - diff --git a/zmk/app/boards/shields/nibble/Kconfig.shield b/zmk/app/boards/shields/nibble/Kconfig.shield deleted file mode 100644 index 44364f4e..00000000 --- a/zmk/app/boards/shields/nibble/Kconfig.shield +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config SHIELD_NIBBLE - def_bool $(shields_list_contains,nibble) diff --git a/zmk/app/boards/shields/nibble/nibble.conf b/zmk/app/boards/shields/nibble/nibble.conf deleted file mode 100644 index e69de29b..00000000 diff --git a/zmk/app/boards/shields/nibble/nibble.keymap b/zmk/app/boards/shields/nibble/nibble.keymap deleted file mode 100644 index f88d9144..00000000 --- a/zmk/app/boards/shields/nibble/nibble.keymap +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -#define DEFAULT 0 -#define FUNC 1 - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { - bindings = < - &kp ESC &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &kp MINUS &kp EQL &kp BKSP &kp HOME -&kp M_VOLU &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp DEL -&kp M_VOLD &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &kp QUOT &kp RET &kp PGUP -&trans &kp LSFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT &kp FSLH &kp RSFT &kp UARW &kp PGDN -&trans &kp LCTL &kp LGUI &kp LALT &kp SPC &mo FUNC &kp RALT &kp RCTL &kp LARW &kp DARW &kp RARW - >; - }; - func { - bindings = < - &kp TILD &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &kp END -&bt BT_CLR &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &bootloader -&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans -&bt BT_PRV &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans -&bt BT_NXT &trans &trans &trans &trans &trans &trans &trans &kp M_PREV &kp M_PLAY &kp M_NEXT - >; - }; - }; -}; diff --git a/zmk/app/boards/shields/nibble/nibble.overlay b/zmk/app/boards/shields/nibble/nibble.overlay deleted file mode 100644 index 7975c3cd..00000000 --- a/zmk/app/boards/shields/nibble/nibble.overlay +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-demux"; - label = "KSCAN"; - polling-interval-msec = <25>; - input-gpios - = <&pro_micro_d 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_d 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_d 16 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_d 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - , <&pro_micro_d 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - ; - output-gpios - = <&pro_micro_a 3 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - ; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <16>; - rows = <5>; - - //TODO: Add a keymap graphic here - - map = < - RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,13) RC(0,14) RC(0,15) -RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13) RC(1,14) RC(1,15) -RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,14) RC(2,15) -RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,12) RC(3,14) RC(3,15) -RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,6) RC(4,9) RC(4,10) RC(4,11) RC(4,12) RC(4,14) RC(4,15) - >; - }; -}; diff --git a/zmk/app/boards/shields/qaz/Kconfig.defconfig b/zmk/app/boards/shields/qaz/Kconfig.defconfig deleted file mode 100644 index c84180bf..00000000 --- a/zmk/app/boards/shields/qaz/Kconfig.defconfig +++ /dev/null @@ -1,9 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -if SHIELD_QAZ - -config ZMK_KEYBOARD_NAME - default "QAZ" - -endif \ No newline at end of file diff --git a/zmk/app/boards/shields/qaz/Kconfig.shield b/zmk/app/boards/shields/qaz/Kconfig.shield deleted file mode 100644 index 7cc8f1e4..00000000 --- a/zmk/app/boards/shields/qaz/Kconfig.shield +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config SHIELD_QAZ - def_bool $(shields_list_contains,qaz) diff --git a/zmk/app/boards/shields/qaz/qaz.conf b/zmk/app/boards/shields/qaz/qaz.conf deleted file mode 100644 index e69de29b..00000000 diff --git a/zmk/app/boards/shields/qaz/qaz.keymap b/zmk/app/boards/shields/qaz/qaz.keymap deleted file mode 100644 index 5dca247b..00000000 --- a/zmk/app/boards/shields/qaz/qaz.keymap +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -#define DEFAULT 0 -#define NUM_SYM 1 -#define NAV 2 - -/ { - behaviors { - hm: homerow_mods { - compatible = "zmk,behavior-hold-tap"; - label = "homerow mods"; - #binding-cells = <2>; - tapping_term_ms = <225>; - flavor = "tap-preferred"; - bindings = <&kp>, <&kp>; - }; - }; -}; - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { - bindings = < - &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P - &hm LGUI A &hm LALT S &hm LCTL D &hm LSFT F &kp G &kp H &hm RSFT J &hm RCTL K &hm RALT L &hm RGUI RET - &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT - &kp LSFT &kp LGUI &kp LALT < NAV RET < NUM_SYM SPC &kp COLN &kp QUOT &kp FSLH - >; - }; - num_sym { - bindings = < - &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 - &trans &trans &trans &trans &trans &trans &trans &trans &kp EQL &kp MINUS - &kp DEL &none &none &none &none &none &none &none &kp DOT - &bootloader &reset &none &trans &trans &kp RET &trans &kp FSLH - >; - }; - - nav { - bindings = < - &bt BT_CLR &bt BT_NXT &bt BT_PRV &none &none &none &none &kp UARW &none &kp BKSP - &trans &trans &trans &trans &none &none &kp LARW &kp DARW &kp RARW &none - &none &none &none &none &none &none &none &none &none - &none &none &none &trans &trans &kp RET &trans &kp FSLH - >; - }; - }; -}; \ No newline at end of file diff --git a/zmk/app/boards/shields/qaz/qaz.overlay b/zmk/app/boards/shields/qaz/qaz.overlay deleted file mode 100644 index 4e733707..00000000 --- a/zmk/app/boards/shields/qaz/qaz.overlay +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <7>; - rows = <6>; - map = < - RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(4,0) RC(4,1) RC(4,2) - RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(5,0) RC(5,1) RC(5,2) - RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(4,3) RC(5,3) - RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(4,4) - >; - }; - - - kscan0: kscan_0 { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - diode-direction = "col2row"; - - col-gpios - = <&pro_micro_d 8 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 9 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 6 GPIO_ACTIVE_HIGH> - ; - - row-gpios - = <&pro_micro_a 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - }; - -}; \ No newline at end of file diff --git a/zmk/app/boards/shields/quefrency/Kconfig.defconfig b/zmk/app/boards/shields/quefrency/Kconfig.defconfig deleted file mode 100644 index 2b00cb62..00000000 --- a/zmk/app/boards/shields/quefrency/Kconfig.defconfig +++ /dev/null @@ -1,17 +0,0 @@ -#Copyright (c) 2020 The ZMK Contributors -#SPDX-License-Identifier: MIT - - -if SHIELD_QUEFRENCY_LEFT - -config ZMK_KEYBOARD_NAME - default "Quefrency Left" - -endif - -if SHIELD_QUEFRENCY_RIGHT - -config ZMK_KEYBOARD_NAME - default "Quefrency Right" - -endif diff --git a/zmk/app/boards/shields/quefrency/Kconfig.shield b/zmk/app/boards/shields/quefrency/Kconfig.shield deleted file mode 100644 index d205e58f..00000000 --- a/zmk/app/boards/shields/quefrency/Kconfig.shield +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config SHIELD_QUEFRENCY_LEFT - def_bool $(shields_list_contains,quefrency_left) - -config SHIELD_QUEFRENCY_RIGHT - def_bool $(shields_list_contains,quefrency_right) diff --git a/zmk/app/boards/shields/quefrency/quefrency.conf b/zmk/app/boards/shields/quefrency/quefrency.conf deleted file mode 100644 index e69de29b..00000000 diff --git a/zmk/app/boards/shields/quefrency/quefrency.dtsi b/zmk/app/boards/shields/quefrency/quefrency.dtsi deleted file mode 100644 index 5f1e9086..00000000 --- a/zmk/app/boards/shields/quefrency/quefrency.dtsi +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - - zmk,matrix_transform = &default_transform; - }; - - /* - * This transform correspondsto the 60% left without macro keypad and 65% right, even this - * combination of PCBs can have keys in different locations based on configuration. - */ - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <15>; - rows = <6>; - map = < -RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) /**/ RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,14) RC(5,13) -RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) /**/RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13) RC(1,14) RC(5,14) -RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) /**/ RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,14) RC(2,13) -RC(3,0) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) /**/ RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,12) RC(3,13) RC(3,14) RC(3,11) -RC(4,0) RC(4,1) RC(4,2) RC(4,4) RC(4,6) /**/ RC(4,7) RC(4,10) RC(4,11) RC(4,12) RC(4,13) RC(4,14) RC(4,9) - >; - }; -}; diff --git a/zmk/app/boards/shields/quefrency/quefrency.keymap b/zmk/app/boards/shields/quefrency/quefrency.keymap deleted file mode 100644 index 21c5ed40..00000000 --- a/zmk/app/boards/shields/quefrency/quefrency.keymap +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - -// ---------------------------------------------- ----------------------------------------------------- -// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BKSPC | ` | -// | TAB | Q | W | E | R | T | | Y | U | I | O | P | [ | ] | \ | DEL | -// | LCTRL | A | S | D | F | G | | H | J | K | L | ; | ' | ENTER | PGUP | -// | SHIFT | Z | X | C | V | B | | N | M | , | . | / | RSHFT | UP | PGDN | -// | LCTRL | LGUI | LALT | SPACE | FN | | SPACE | RALT | FN | RCTRL | LFT | DWN | RGHT | -// ------------------------------------------- ------------------------------------------------------ - - default_layer { - bindings = < - &kp ESC &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 /**/ &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &kp MINUS &kp EQL &kp BKSP &kp GRAV - &kp TAB &kp Q &kp W &kp E &kp R &kp T /**/ &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp HOME - &kp LCTL &kp A &kp S &kp D &kp F &kp G /**/ &kp H &kp J &kp K &kp L &kp SCLN &kp QUOT &kp RET &kp PGUP - &kp LSFT &kp Z &kp X &kp C &kp V &kp B /**/ &kp N &kp M &kp CMMA &kp DOT &kp FSLH &kp RSFT &kp UARW &kp PGDN - &kp LCTL &kp LGUI &kp LALT &kp SPC &mo 1 /**/ &kp SPC &kp RALT &mo 1 &kp RCTL &kp LARW &kp DARW &kp RARW - >; - }; - -// ---------------------------------------------- ----------------------------------------------------- -// |BT_CLR| F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |BT_CLR| -// | | BT-0 | BT-1| BT-2 | | | | | | | | | | | | | -// | | | | | | | | | | | | | | | | -// | | | | | | | | | | | | | | | | -// | | | | | | | | | | | | | | -// ------------------------------------------- ------------------------------------------------------ - - fn_layer { - bindings = < - &bt BT_CLR &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 /**/ &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &bt BT_CLR - &trans &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &trans &trans /**/ &trans &trans &trans &trans &trans &trans &trans &trans &trans - &trans &trans &trans &trans &trans &trans /**/ &trans &trans &trans &trans &trans &trans &trans &trans - &trans &trans &trans &trans &trans &trans /**/ &trans &trans &trans &trans &trans &trans &trans &trans - &trans &trans &trans &trans &trans /**/ &trans &trans &trans &trans &trans &trans &trans - >; - }; - }; -}; diff --git a/zmk/app/boards/shields/quefrency/quefrency_left.conf b/zmk/app/boards/shields/quefrency/quefrency_left.conf deleted file mode 100644 index 1e028a78..00000000 --- a/zmk/app/boards/shields/quefrency/quefrency_left.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y diff --git a/zmk/app/boards/shields/quefrency/quefrency_left.overlay b/zmk/app/boards/shields/quefrency/quefrency_left.overlay deleted file mode 100644 index a385cc58..00000000 --- a/zmk/app/boards/shields/quefrency/quefrency_left.overlay +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include "quefrency.dtsi" - -/ { - /* This kscan is for the 60% left half without macro keys the - * macro pad layout may require different column and row pins - */ - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - diode-direction = "col2row"; - - - col-gpios - = <&pro_micro_a 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 10 GPIO_ACTIVE_HIGH> - ; - - row-gpios - = <&pro_micro_a 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - }; -}; diff --git a/zmk/app/boards/shields/quefrency/quefrency_right.conf b/zmk/app/boards/shields/quefrency/quefrency_right.conf deleted file mode 100644 index 990cf7c0..00000000 --- a/zmk/app/boards/shields/quefrency/quefrency_right.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL=y diff --git a/zmk/app/boards/shields/quefrency/quefrency_right.overlay b/zmk/app/boards/shields/quefrency/quefrency_right.overlay deleted file mode 100644 index 53e0f77c..00000000 --- a/zmk/app/boards/shields/quefrency/quefrency_right.overlay +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include "quefrency.dtsi" - -&default_transform { - col-offset = <7>; -}; - -/ { - - /* This kscan is for the 65% right half the 60% right half - * may require different column and row pins - */ - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - diode-direction = "col2row"; - - - - col-gpios - = <&pro_micro_a 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 10 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 5 GPIO_ACTIVE_HIGH> - ; - - row-gpios - = <&pro_micro_a 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - }; -}; diff --git a/zmk/app/boards/shields/reviung41/Kconfig.defconfig b/zmk/app/boards/shields/reviung41/Kconfig.defconfig deleted file mode 100644 index 0625cb21..00000000 --- a/zmk/app/boards/shields/reviung41/Kconfig.defconfig +++ /dev/null @@ -1,9 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -if SHIELD_REVIUNG41 - -config ZMK_KEYBOARD_NAME - default "Reviung41" - -endif diff --git a/zmk/app/boards/shields/reviung41/Kconfig.shield b/zmk/app/boards/shields/reviung41/Kconfig.shield deleted file mode 100644 index e51f9e64..00000000 --- a/zmk/app/boards/shields/reviung41/Kconfig.shield +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config SHIELD_REVIUNG41 - def_bool $(shields_list_contains,reviung41) diff --git a/zmk/app/boards/shields/reviung41/boards/nice_nano.overlay b/zmk/app/boards/shields/reviung41/boards/nice_nano.overlay deleted file mode 100644 index b6c89e80..00000000 --- a/zmk/app/boards/shields/reviung41/boards/nice_nano.overlay +++ /dev/null @@ -1,28 +0,0 @@ -&spi1 { - compatible = "nordic,nrf-spim"; - status = "okay"; - mosi-pin = <6>; - // Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. - sck-pin = <5>; - miso-pin = <7>; - - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "WS2812"; - - /* SPI */ - reg = <0>; /* ignored, but necessary for SPI bindings */ - spi-max-frequency = <4000000>; - - /* WS2812 */ - chain-length = <11>; /* arbitrary; change at will */ - spi-one-frame = <0x70>; - spi-zero-frame = <0x40>; - }; -}; - -/ { - chosen { - zmk,underglow = &led_strip; - }; -}; diff --git a/zmk/app/boards/shields/reviung41/reviung41.conf b/zmk/app/boards/shields/reviung41/reviung41.conf deleted file mode 100644 index 289f070b..00000000 --- a/zmk/app/boards/shields/reviung41/reviung41.conf +++ /dev/null @@ -1,3 +0,0 @@ -# Uncomment the following lines to enable RGB underglow -# CONFIG_ZMK_RGB_UNDERGLOW=y -# CONFIG_WS2812_STRIP=y diff --git a/zmk/app/boards/shields/reviung41/reviung41.keymap b/zmk/app/boards/shields/reviung41/reviung41.keymap deleted file mode 100644 index 26b40935..00000000 --- a/zmk/app/boards/shields/reviung41/reviung41.keymap +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// ------------------------------------------------------------------------------------- -// | TAB | Q | W | E | R | T | | Y | U | I | O | P | BKSP | -// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' | -// | SHFT | Z | X | C | V | B | | N | M | , | . | / | SHFT(RET) | -// | ALT | LWR | SPC | RSE | ALT | - bindings = < - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BKSP - &kp LCTL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &kp QUOT - &kp LSFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT &kp FSLH &mt RSFT RET - &kp LALT &mo 1 &kp SPC &mo 2 &kp RALT - >; - }; - - lower_layer { -// ---------------------------------------------------------------------------------- -// | | ! | @ | # | $ | % | | ^ | & | * | ( | ) | DEL | -// | | _ | + | { | } | "|" | | LFT | DWN | UP | RGT | ` | ~ | -// | | ESC | GUI | ALT | CAPS| " | | HOME| END | PGUP| PGDN| PRSC| SHFT(RET) | -// | | | RET | ADJ | | - bindings = < - &trans &kp BANG &kp ATSN &kp HASH &kp CURU &kp PRCT &kp CRRT &kp AMPS &kp NUM_8 &kp LPRN &kp RPRN &kp DEL - &trans &kp MINUS &kp KPLS &kp LCUR &kp RCUR &kp PIPE &kp LARW &kp DARW &kp UARW &kp RARW &kp GRAV &kp GRAV - &trans &kp ESC &kp LGUI &kp LALT &kp CLCK &kp QUOT &kp HOME &kp END &kp PGUP &kp PGDN &kp PRSC &mt RSFT RET - &trans &trans &kp RET &mo 3 &trans - >; - }; - - raise_layer { -// ----------------------------------------------------------------------------------------- -// | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | DEL | -// | | - | = | [ | ] | \ | | F1 | F2 | F3 | F4 | F5 | F6 | -// | | ESC | GUI | ALT | CAPS| " | | F7 | F8 | F9 | F10 | F11 | F12 | -// | | ADJ | BKSP | | | - bindings = < - &trans &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &kp DEL - &trans &kp MINUS &kp EQL &kp LBKT &kp RBKT &kp BSLH &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 - &trans &kp ESC &kp LGUI &kp RALT &kp CLCK &kp QUOT &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 - &trans &mo 3 &kp BKSP &trans &trans - >; - }; - - adjust_layer { -// ----------------------------------------------------------------------------------------- -// | RGB BRI+ | RGB SAT+ | RGB HUE+ | RGB ANI+ | | RGB TOG | | BT1 | BT2 | BT3 | BT4 | BT5 | BT CLR | -// | RGB BRI- | RGB SAT- | RGB HUE- | RGB ANI+ | | | | | | | | | | -// | | | | | | | | RESET | | | | | | -// | | | | | | - bindings = < - &rgb_ug RGB_BRI &rgb_ug RGB_SAI &rgb_ug RGB_HUI &rgb_ug RGB_EFF &none &rgb_ug RGB_TOG &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &bt BT_CLR - &rgb_ug RGB_BRD &rgb_ug RGB_SAD &rgb_ug RGB_HUD &rgb_ug RGB_EFR &none &none &none &none &none &none &none &none - &none &none &none &none &none &none &reset &none &none &none &none &none - &trans &trans &tog 3 &trans &trans - >; - }; - }; -}; diff --git a/zmk/app/boards/shields/reviung41/reviung41.overlay b/zmk/app/boards/shields/reviung41/reviung41.overlay deleted file mode 100644 index 06270ca1..00000000 --- a/zmk/app/boards/shields/reviung41/reviung41.overlay +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <6>; - rows = <7>; - - map = < -RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) -RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) -RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(5,0) RC(5,1) RC(5,2) RC(5,3) RC(5,4) RC(5,5) - RC(6,0) RC(6,1) RC(6,2) RC(6,3) RC(6,4) - >; - }; - - kscan0: kscan_0 { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - diode-direction = "col2row"; - - col-gpios - = <&pro_micro_d 4 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 5 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 6 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 7 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 8 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 9 GPIO_ACTIVE_HIGH> - ; - - row-gpios - = <&pro_micro_a 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 0 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - }; -}; diff --git a/zmk/app/boards/shields/romac/Kconfig.defconfig b/zmk/app/boards/shields/romac/Kconfig.defconfig deleted file mode 100644 index 53527971..00000000 --- a/zmk/app/boards/shields/romac/Kconfig.defconfig +++ /dev/null @@ -1,10 +0,0 @@ -# Copyright (c) 2020 Pete Johanson, Richard Jones -# SPDX-License-Identifier: MIT - -if SHIELD_ROMAC - -config ZMK_KEYBOARD_NAME - default "RoMac" - -endif - diff --git a/zmk/app/boards/shields/romac/Kconfig.shield b/zmk/app/boards/shields/romac/Kconfig.shield deleted file mode 100644 index 59669d33..00000000 --- a/zmk/app/boards/shields/romac/Kconfig.shield +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (c) 2020 Pete Johanson, Richard Jones -# SPDX-License-Identifier: MIT - -config SHIELD_ROMAC - def_bool $(shields_list_contains,romac) diff --git a/zmk/app/boards/shields/romac/romac.conf b/zmk/app/boards/shields/romac/romac.conf deleted file mode 100644 index e69de29b..00000000 diff --git a/zmk/app/boards/shields/romac/romac.keymap b/zmk/app/boards/shields/romac/romac.keymap deleted file mode 100644 index 31e1ce82..00000000 --- a/zmk/app/boards/shields/romac/romac.keymap +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// ------------------- -// | 7 | 8 | 9 | -// | 4 | 5 | 6 | -// | 1 | 2 | 3 | -// | MO(1) | 0 | . | -// ---------------------- - bindings = < - &kp NUM_7 &kp NUM_8 &kp NUM_9 - &kp NUM_4 &kp NUM_5 &kp NUM_6 - &kp NUM_1 &kp NUM_2 &kp NUM_3 - &mo 1 &kp NUM_0 &kp DOT - >; - }; - - nav_layer { -// ----------------------- -// | BTNXT | HOME | PGUP | -// | BTPRV | END | PGDN | -// | BTCLR | _ | _ | -// | _ | _ | RET | -// ----------------------- - bindings = < - &bt BT_NXT &kp HOME &kp PGUP - &bt BT_PRV &kp END &kp PGDN - &bt BT_CLR &trans &trans - &trans &trans &kp RET - >; - }; - }; -}; - - diff --git a/zmk/app/boards/shields/romac/romac.overlay b/zmk/app/boards/shields/romac/romac.overlay deleted file mode 100644 index f6b0f726..00000000 --- a/zmk/app/boards/shields/romac/romac.overlay +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson, Richard Jones - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - row-gpios - = <&pro_micro_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - - col-gpios - = <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - ; - - }; -}; - diff --git a/zmk/app/boards/shields/romac_plus/Kconfig.defconfig b/zmk/app/boards/shields/romac_plus/Kconfig.defconfig deleted file mode 100644 index c4efdb97..00000000 --- a/zmk/app/boards/shields/romac_plus/Kconfig.defconfig +++ /dev/null @@ -1,9 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -if SHIELD_ROMAC_PLUS - -config ZMK_KEYBOARD_NAME - default "RoMac+ v4" - -endif \ No newline at end of file diff --git a/zmk/app/boards/shields/romac_plus/Kconfig.shield b/zmk/app/boards/shields/romac_plus/Kconfig.shield deleted file mode 100644 index a7c7c614..00000000 --- a/zmk/app/boards/shields/romac_plus/Kconfig.shield +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config SHIELD_ROMAC_PLUS - def_bool $(shields_list_contains,romac_plus) diff --git a/zmk/app/boards/shields/romac_plus/boards/nice_nano.overlay b/zmk/app/boards/shields/romac_plus/boards/nice_nano.overlay deleted file mode 100644 index 940abc0c..00000000 --- a/zmk/app/boards/shields/romac_plus/boards/nice_nano.overlay +++ /dev/null @@ -1,28 +0,0 @@ -&spi1 { - compatible = "nordic,nrf-spim"; - status = "okay"; - mosi-pin = <6>; - // Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. - sck-pin = <5>; - miso-pin = <7>; - - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "WS2812"; - - /* SPI */ - reg = <0>; /* ignored, but necessary for SPI bindings */ - spi-max-frequency = <4000000>; - - /* WS2812 */ - chain-length = <10>; /* arbitrary; change at will */ - spi-one-frame = <0x70>; - spi-zero-frame = <0x40>; - }; -}; - -/ { - chosen { - zmk,underglow = &led_strip; - }; -}; \ No newline at end of file diff --git a/zmk/app/boards/shields/romac_plus/romac_plus.conf b/zmk/app/boards/shields/romac_plus/romac_plus.conf deleted file mode 100644 index 899d448f..00000000 --- a/zmk/app/boards/shields/romac_plus/romac_plus.conf +++ /dev/null @@ -1,6 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -# Uncomment to enable encoder -#CONFIG_EC11=y -#CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y \ No newline at end of file diff --git a/zmk/app/boards/shields/romac_plus/romac_plus.dtsi b/zmk/app/boards/shields/romac_plus/romac_plus.dtsi deleted file mode 100644 index ba7844b8..00000000 --- a/zmk/app/boards/shields/romac_plus/romac_plus.dtsi +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <3>; - rows = <4>; - - map = < -RC(0,0) RC(0,1) RC(0,2) -RC(1,0) RC(1,1) RC(1,2) -RC(2,0) RC(2,1) RC(2,2) -RC(3,0) RC(3,1) RC(3,2) - >; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - row-gpios - = <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 0 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - }; - - left_encoder: encoder_left { - compatible = "alps,ec11"; - label = "LEFT_ENCODER"; - a-gpios = <&pro_micro_d 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - b-gpios = <&pro_micro_d 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - resolution = <4>; - status = "disabled"; - }; - - sensors { - compatible = "zmk,keymap-sensors"; - sensors = <&left_encoder>; - }; - - // TODO: per-key RGB node(s)? -}; \ No newline at end of file diff --git a/zmk/app/boards/shields/romac_plus/romac_plus.keymap b/zmk/app/boards/shields/romac_plus/romac_plus.keymap deleted file mode 100644 index 2c1929da..00000000 --- a/zmk/app/boards/shields/romac_plus/romac_plus.keymap +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// -------------------------- -// | 7 | 8 | 9 | -// | 4 | 5 | 6 | -// | 1 | 2 | 3 | -// | M_PLAY | 0 | MO(1) | -// -------------------------- - bindings = < - &kp NUM_7 &kp NUM_8 &kp NUM_9 - &kp NUM_4 &kp NUM_5 &kp NUM_6 - &kp NUM_1 &kp NUM_2 &kp NUM_3 - &kp M_PLAY &kp NUM_0 &mo 1 - >; - - sensor-bindings = <&inc_dec_kp M_NEXT M_PREV>; - }; - - nav_layer { -// -------------------------- -// | BT_CLR | HOME | PGUP | -// | _ | END | PGDN | -// | _ | _ | _ | -// | _ | _ | _ | -// -------------------------- - bindings = < - &bt BT_CLR &kp HOME &kp PGUP - &trans &kp END &kp PGDN - &trans &trans &trans - &trans &trans &trans - >; - - sensor-bindings = <&inc_dec_kp A B>; - }; - }; -}; \ No newline at end of file diff --git a/zmk/app/boards/shields/romac_plus/romac_plus.overlay b/zmk/app/boards/shields/romac_plus/romac_plus.overlay deleted file mode 100644 index 86430349..00000000 --- a/zmk/app/boards/shields/romac_plus/romac_plus.overlay +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include "romac_plus.dtsi" - -/ { - chosen { - zmk,kscan = &kscan0; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - - col-gpios - = <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 3 GPIO_ACTIVE_HIGH> - ; - }; - -}; - -&left_encoder { - status = "okay"; -}; \ No newline at end of file diff --git a/zmk/app/boards/shields/settings_reset/Kconfig.defconfig b/zmk/app/boards/shields/settings_reset/Kconfig.defconfig deleted file mode 100644 index 6d050cb4..00000000 --- a/zmk/app/boards/shields/settings_reset/Kconfig.defconfig +++ /dev/null @@ -1,10 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -if SHIELD_SETTINGS_RESET - -config ZMK_KEYBOARD_NAME - default "SETTINGS RESET" - -endif - diff --git a/zmk/app/boards/shields/settings_reset/Kconfig.shield b/zmk/app/boards/shields/settings_reset/Kconfig.shield deleted file mode 100644 index b5ce97f9..00000000 --- a/zmk/app/boards/shields/settings_reset/Kconfig.shield +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config SHIELD_SETTINGS_RESET - def_bool $(shields_list_contains,settings_reset) diff --git a/zmk/app/boards/shields/settings_reset/settings_reset.conf b/zmk/app/boards/shields/settings_reset/settings_reset.conf deleted file mode 100644 index 8052a6cf..00000000 --- a/zmk/app/boards/shields/settings_reset/settings_reset.conf +++ /dev/null @@ -1 +0,0 @@ -CONFIG_ZMK_BLE_CLEAR_BONDS_ON_START=y diff --git a/zmk/app/boards/shields/settings_reset/settings_reset.keymap b/zmk/app/boards/shields/settings_reset/settings_reset.keymap deleted file mode 100644 index 05236445..00000000 --- a/zmk/app/boards/shields/settings_reset/settings_reset.keymap +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { - bindings = < - &reset - >; - }; - }; -}; - - diff --git a/zmk/app/boards/shields/settings_reset/settings_reset.overlay b/zmk/app/boards/shields/settings_reset/settings_reset.overlay deleted file mode 100644 index a2b5799b..00000000 --- a/zmk/app/boards/shields/settings_reset/settings_reset.overlay +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-direct"; - label = "KSCAN"; - - input-gpios - = <&pro_micro_d 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> - ; - }; - -}; - diff --git a/zmk/app/boards/shields/sofle/Kconfig.defconfig b/zmk/app/boards/shields/sofle/Kconfig.defconfig deleted file mode 100644 index 58d82176..00000000 --- a/zmk/app/boards/shields/sofle/Kconfig.defconfig +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright (c) 2020 Ryan Cross -# SPDX-License-Identifier: MIT - -if SHIELD_SOFLE_LEFT - -config ZMK_KEYBOARD_NAME - default "Sofle Left" -endif - -if SHIELD_SOFLE_RIGHT - -config ZMK_KEYBOARD_NAME - default "Sofle Right" -endif - -if SHIELD_SOFLE_LEFT || SHIELD_SOFLE_RIGHT - -if ZMK_DISPLAY - -config I2C - default y - -config SSD1306 - default y - -config SSD1306_REVERSE_MODE - default y - -endif # ZMK_DISPLAY - -if LVGL - -config LVGL_HOR_RES - default 128 - -config LVGL_VER_RES - default 32 - -config LVGL_VDB_SIZE - default 64 - -config LVGL_DPI - default 148 - -config LVGL_BITS_PER_PIXEL - default 1 - -choice LVGL_COLOR_DEPTH - default LVGL_COLOR_DEPTH_1 -endchoice - -endif # LVGL - -endif diff --git a/zmk/app/boards/shields/sofle/Kconfig.shield b/zmk/app/boards/shields/sofle/Kconfig.shield deleted file mode 100644 index e23a97a1..00000000 --- a/zmk/app/boards/shields/sofle/Kconfig.shield +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020 Ryan Cross -# SPDX-License-Identifier: MIT - -config SHIELD_SOFLE_LEFT - def_bool $(shields_list_contains,sofle_left) - -config SHIELD_SOFLE_RIGHT - def_bool $(shields_list_contains,sofle_right) diff --git a/zmk/app/boards/shields/sofle/sofle.conf b/zmk/app/boards/shields/sofle/sofle.conf deleted file mode 100644 index fe3f0f4f..00000000 --- a/zmk/app/boards/shields/sofle/sofle.conf +++ /dev/null @@ -1,9 +0,0 @@ -# Copyright (c) 2020 Ryan Cross -# SPDX-License-Identifier: MIT - -# Uncomment the following line to enable the Sofle OLED Display -# CONFIG_ZMK_DISPLAY=y - -# Uncomment these two lines to add support for encoders -# CONFIG_EC11=y -# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y diff --git a/zmk/app/boards/shields/sofle/sofle.dtsi b/zmk/app/boards/shields/sofle/sofle.dtsi deleted file mode 100644 index b4edb5f6..00000000 --- a/zmk/app/boards/shields/sofle/sofle.dtsi +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson, Ryan Cross - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <16>; - rows = <4>; -// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | -// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | -// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | -// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 | -// | SW30 | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 | SW30 | - map = < -RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) -RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) -RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) -RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) - RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) - >; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - row-gpios - = <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - }; - - left_encoder: encoder_left { - compatible = "alps,ec11"; - label = "LEFT_ENCODER"; - a-gpios = <&pro_micro_a 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - b-gpios = <&pro_micro_a 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - resolution = <4>; - status = "disabled"; - }; - - right_encoder: encoder_right { - compatible = "alps,ec11"; - label = "RIGHT_ENCODER"; - a-gpios = <&pro_micro_a 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - b-gpios = <&pro_micro_a 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - resolution = <4>; - status = "disabled"; - }; - - sensors { - compatible = "zmk,keymap-sensors"; - sensors = <&left_encoder &right_encoder>; - }; -}; - -&pro_micro_i2c { - status = "okay"; - - ssd1306@3c { - compatible = "solomon,ssd1306fb"; - reg = <0x3c>; - label = "DISPLAY"; - width = <128>; - height = <32>; - segment-offset = <0>; - page-offset = <0>; - display-offset = <0>; - multiplex-ratio = <31>; - segment-remap; - com-invdir; - com-sequential; - prechargep = <0x22>; - }; -}; diff --git a/zmk/app/boards/shields/sofle/sofle.keymap b/zmk/app/boards/shields/sofle/sofle.keymap deleted file mode 100644 index 0bebb781..00000000 --- a/zmk/app/boards/shields/sofle/sofle.keymap +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// ------------------------------------------------------------------------------------------------------------ -// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | -// | ESC | Q | W | E | R | T | | Y | U | I | O | P | BKSPC | -// | TAB | A | S | D | F | G | | H | J | K | L | ; | ' | -// | SHIFT | Z | X | C | V | B | MUTE | | | N | M | , | . | / | SHIFT | -// | GUI | ALT | CTRL | LOWER| ENTER | | SPACE | RAISE| CTRL | ALT | GUI | - bindings = < -&kp GRAV &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &none -&kp ESC &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BKSP -&kp TAB &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &kp QUOT -&kp LSFT &kp Z &kp X &kp C &kp V &kp B &kp M_MUTE &none &kp N &kp M &kp CMMA &kp DOT &kp FSLH &kp RSFT - &kp LGUI &kp LALT &kp LCTL &mo 1 &kp RET &kp SPC &mo 2 &kp RCTL &kp RALT &kp RGUI - >; - - sensor-bindings = <&inc_dec_kp M_VOLU M_VOLD &inc_dec_kp PGUP PGDN>; - }; - - lower_layer { -// TODO: Some binds are waiting for shifted keycode support. -// ------------------------------------------------------------------------------------------------------------ -// | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | -// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | -// | | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | | -// | | = | - | + | { | } | | | | [ | ] | ; | : | \ | | -// | | | | | | | | | | | | - bindings = < -&trans &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 -&kp GRAV &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &kp F12 -&trans &kp BANG &kp ATSN &kp HASH &kp CURU &kp PRCT &kp CRRT &kp AMPS &kp KMLT &kp LPRN &kp RPRN &kp PIPE -&trans &kp EQL &kp MINUS &kp KPLS &kp LCUR &kp RCUR &trans &trans &kp LBKT &kp RBKT &kp SCLN &kp COLN &kp BSLH &trans - &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans - >; - - sensor-bindings = <&inc_dec_kp M_VOLU M_VOLD &inc_dec_kp PGUP PGDN>; - }; - - raise_layer { -// ------------------------------------------------------------------------------------------------------------ -// |BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 | | | | | | | | -// | | INS | PSCR | GUI | | | | PGUP | | ^ | | | | -// | | ALT | CTRL | SHIFT | | CAPS | | PGDN | <- | v | -> | DEL | BKSPC | -// | | UNDO | CUT | COPY | PASTE | | | | | | | | | | | -// | | | | | | | | | | | | - bindings = < -&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &trans &trans &trans &trans &trans &trans -&trans &kp INS &kp PRSC &kp GUI &trans &trans &kp PGUP &trans &kp UARW &trans &kp NUM_0 &trans -&trans &kp LALT &kp LCTL &kp LSFT &trans &kp CLCK &kp PGDN &kp LARW &kp DARW &kp RARW &kp DEL &kp BKSP -&trans &kp UNDO &kp CUT &kp COPY &kp PSTE &trans &trans &trans &trans &trans &trans &trans &trans &trans - &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans - >; - - sensor-bindings = <&inc_dec_kp M_VOLU M_VOLD &inc_dec_kp PGUP PGDN>; - }; - }; -}; diff --git a/zmk/app/boards/shields/sofle/sofle_left.conf b/zmk/app/boards/shields/sofle/sofle_left.conf deleted file mode 100644 index bbac7359..00000000 --- a/zmk/app/boards/shields/sofle/sofle_left.conf +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (c) 2020 Ryan Cross -# SPDX-License-Identifier: MIT - -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y diff --git a/zmk/app/boards/shields/sofle/sofle_left.overlay b/zmk/app/boards/shields/sofle/sofle_left.overlay deleted file mode 100644 index eb2bfeda..00000000 --- a/zmk/app/boards/shields/sofle/sofle_left.overlay +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2020 Ryan Cross - * - * SPDX-License-Identifier: MIT - */ - -#include "sofle.dtsi" - -&kscan0 { - col-gpios - = <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 10 GPIO_ACTIVE_HIGH> - ; -}; - -&left_encoder { - status = "okay"; -}; diff --git a/zmk/app/boards/shields/sofle/sofle_right.conf b/zmk/app/boards/shields/sofle/sofle_right.conf deleted file mode 100644 index ca5de382..00000000 --- a/zmk/app/boards/shields/sofle/sofle_right.conf +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (c) 2020 Ryan Cross -# SPDX-License-Identifier: MIT - -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL=y diff --git a/zmk/app/boards/shields/sofle/sofle_right.overlay b/zmk/app/boards/shields/sofle/sofle_right.overlay deleted file mode 100644 index c35cf52c..00000000 --- a/zmk/app/boards/shields/sofle/sofle_right.overlay +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2020 Ryan Cross - * - * SPDX-License-Identifier: MIT - */ - -#include "sofle.dtsi" - -&default_transform { - col-offset = <6>; -}; - -&kscan0 { - col-gpios - = <&pro_micro_d 10 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - ; -}; - -&right_encoder { - status = "okay"; -}; diff --git a/zmk/app/boards/shields/splitreus62/Kconfig.defconfig b/zmk/app/boards/shields/splitreus62/Kconfig.defconfig deleted file mode 100644 index a2464a79..00000000 --- a/zmk/app/boards/shields/splitreus62/Kconfig.defconfig +++ /dev/null @@ -1,22 +0,0 @@ - -#Copyright (c) 2020 Derek Schmell -#SPDX-License-Identifier: MIT - - -if SHIELD_SPLITREUS62_LEFT - -config ZMK_KEYBOARD_NAME - default "Splitreus62 Left" - -endif - -if SHIELD_SPLITREUS62_RIGHT - -config ZMK_KEYBOARD_NAME - default "Splitreus62 Right" - -endif - -if SHIELD_SPLITREUS62_LEFT || SHIELD_SPLITREUS62_RIGHT - -endif diff --git a/zmk/app/boards/shields/splitreus62/Kconfig.shield b/zmk/app/boards/shields/splitreus62/Kconfig.shield deleted file mode 100644 index 762d991b..00000000 --- a/zmk/app/boards/shields/splitreus62/Kconfig.shield +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020 Derek Schmell -# SPDX-License-Identifier: MIT - -config SHIELD_SPLITREUS62_LEFT - def_bool $(shields_list_contains,splitreus62_left) - -config SHIELD_SPLITREUS62_RIGHT - def_bool $(shields_list_contains,splitreus62_right) diff --git a/zmk/app/boards/shields/splitreus62/splitreus62.conf b/zmk/app/boards/shields/splitreus62/splitreus62.conf deleted file mode 100644 index e69de29b..00000000 diff --git a/zmk/app/boards/shields/splitreus62/splitreus62.dtsi b/zmk/app/boards/shields/splitreus62/splitreus62.dtsi deleted file mode 100644 index c2bfbc40..00000000 --- a/zmk/app/boards/shields/splitreus62/splitreus62.dtsi +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2020 Derek Schmell - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <12>; - rows = <6>; -// | SW0 | SW5 | SW10 | SW15 | SW20 | SW25 | SW25 | SW20 | SW15 | SW10 | SW5 | SW1 | -// | SW1 | SW6 | SW11 | SW16 | SW21 | SW26 | SW26 | SW21 | SW16 | SW11 | SW6 | SW2 | -// | SW2 | SW7 | SW12 | SW17 | SW22 | SW27 | SW27 | SW22 | SW17 | SW12 | SW7 | SW3 | -// | SW3 | SW8 | SW13 | SW18 | SW23 | SW28 | SW28 | SW23 | SW18 | SW13 | SW8 | SW4 | -// | SW4 | SW9 | SW14 | SW19 | SW24 | SW29 | SW29 | SW24 | SW19 | SW14 | SW9 | SW5 | -// SW30 | SW30 - map = < -RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) -RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) -RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) -RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) -RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) - RC(5,5) RC(5,6) - >; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "row2col"; - row-gpios - = <&pro_micro_d 1 GPIO_ACTIVE_HIGH > - , <&pro_micro_d 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 4 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 5 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 6 GPIO_ACTIVE_HIGH> - ; - - }; -}; diff --git a/zmk/app/boards/shields/splitreus62/splitreus62.keymap b/zmk/app/boards/shields/splitreus62/splitreus62.keymap deleted file mode 100644 index 07dd2ad6..00000000 --- a/zmk/app/boards/shields/splitreus62/splitreus62.keymap +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - - -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// ------------------------------------------------------------------------------------------------------------ -// | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | -// | TAB | Q | W | E | R | T | | Y | U | I | O | P | \ | -// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' | -// | SHIFT | Z | X | C | V | B | | N | M | , | . | / | SHIFT | -// | LCTL | LGUI | LALT | GRAV | | EQL | DEL | BKSP| | RET | SPC | LBKT | RBKT | LBKT | HOME | END | - bindings = < -&kp ESC &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &kp MINUS -&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSLH -&kp LCTL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &kp QUOT -&kp LSFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT &kp FSLH &kp RSFT -&kp LCTL &kp LGUI &kp LALT &kp GRAV &kp EQL &kp DEL &kp SPC &kp LBKT &kp RBKT &kp MINUS &kp HOME &kp END - &kp BKSP &kp RET - >; - }; - }; -}; diff --git a/zmk/app/boards/shields/splitreus62/splitreus62_left.conf b/zmk/app/boards/shields/splitreus62/splitreus62_left.conf deleted file mode 100644 index e51dee44..00000000 --- a/zmk/app/boards/shields/splitreus62/splitreus62_left.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y \ No newline at end of file diff --git a/zmk/app/boards/shields/splitreus62/splitreus62_left.overlay b/zmk/app/boards/shields/splitreus62/splitreus62_left.overlay deleted file mode 100644 index b156d608..00000000 --- a/zmk/app/boards/shields/splitreus62/splitreus62_left.overlay +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright (c) 2020 Derek Schmell - * - * SPDX-License-Identifier: MIT - */ - -#include "splitreus62.dtsi" - -&kscan0 { - col-gpios - = <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; -}; diff --git a/zmk/app/boards/shields/splitreus62/splitreus62_right.conf b/zmk/app/boards/shields/splitreus62/splitreus62_right.conf deleted file mode 100644 index a835adc1..00000000 --- a/zmk/app/boards/shields/splitreus62/splitreus62_right.conf +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL=y \ No newline at end of file diff --git a/zmk/app/boards/shields/splitreus62/splitreus62_right.overlay b/zmk/app/boards/shields/splitreus62/splitreus62_right.overlay deleted file mode 100644 index 5db87cc3..00000000 --- a/zmk/app/boards/shields/splitreus62/splitreus62_right.overlay +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2020 Derek Schmell - * - * SPDX-License-Identifier: MIT - */ - -#include "splitreus62.dtsi" - -&default_transform { - col-offset = <6>; -}; - -&kscan0 { - col-gpios - = <&pro_micro_d 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; -}; diff --git a/zmk/app/boards/shields/tg4x/Kconfig.defconfig b/zmk/app/boards/shields/tg4x/Kconfig.defconfig deleted file mode 100644 index ca9fa2c3..00000000 --- a/zmk/app/boards/shields/tg4x/Kconfig.defconfig +++ /dev/null @@ -1,9 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -if SHIELD_TG4X - -config ZMK_KEYBOARD_NAME - default "TG4X" - -endif \ No newline at end of file diff --git a/zmk/app/boards/shields/tg4x/Kconfig.shield b/zmk/app/boards/shields/tg4x/Kconfig.shield deleted file mode 100644 index 7e98b710..00000000 --- a/zmk/app/boards/shields/tg4x/Kconfig.shield +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config SHIELD_TG4X - def_bool $(shields_list_contains,tg4x) diff --git a/zmk/app/boards/shields/tg4x/tg4x.keymap b/zmk/app/boards/shields/tg4x/tg4x.keymap deleted file mode 100644 index bee5c87b..00000000 --- a/zmk/app/boards/shields/tg4x/tg4x.keymap +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -#define DEFAULT 0 -#define LOWER 1 -#define RAISE 2 - -/ { - behaviors { - hm: homerow_mods { - compatible = "zmk,behavior-hold-tap"; - label = "homerow mods"; - #binding-cells = <2>; - tapping_term_ms = <225>; - flavor = "tap-preferred"; - bindings = <&kp>, <&kp>; - }; - }; -}; - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { - bindings = < - &kp ESC &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BKSP - &kp TAB &hm LGUI A &hm LALT S &hm LCTL D &hm LSFT F &kp G &kp H &hm RSFT J &hm RCTL K &hm RALT L &hm RGUI SCLN &kp RET - &kp LSFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT &kp FSLH &kp QUOT - &kp LCTL &kp LALT &kp LGUI < 1 BKSP < 2 SPC &kp LARW &kp DARW &kp UARW &kp RARW - >; - }; - lower { - bindings = < - &kp GRAV &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp PRSC - &kp DEL &trans &kp VOLU &trans &trans &trans &trans &kp LARW &kp DARW &kp UARW &kp RARW &trans - &trans &trans &kp VOLD &trans &trans &trans &trans &trans &trans &bt BT_PRV &bt BT_NXT &bt BT_CLR - &bootloader &reset &trans &trans &trans &trans &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 - >; - }; - - raise { - bindings = < - &kp GRAV &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &kp PRSC - &kp DEL &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp MINUS &kp EQL &kp LBKT &kp RBKT &kp BSLH - &trans &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp TILD &kp HOME &kp PGUP &kp PGDN &kp END - &trans &trans &trans &trans &trans &trans &kp M_NEXT &kp M_VOLD &kp M_VOLU &kp M_PLAY - >; - }; - }; -}; \ No newline at end of file diff --git a/zmk/app/boards/shields/tg4x/tg4x.overlay b/zmk/app/boards/shields/tg4x/tg4x.overlay deleted file mode 100644 index 10ce524a..00000000 --- a/zmk/app/boards/shields/tg4x/tg4x.overlay +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contrbutors - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <7>; - rows = <8>; - map = < - RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,5) - RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(5,0) RC(5,1) RC(5,2) RC(5,3) RC(5,4) - RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(6,0) RC(6,1) RC(6,2) RC(6,3) RC(6,4) - RC(3,0) RC(3,1) RC(3,2) RC(3,4) RC(3,5) RC(7,1) RC(7,2) RC(7,3) RC(7,4) - >; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - diode-direction = "col2row"; - - col-gpios - = <&pro_micro_d 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 3 GPIO_ACTIVE_HIGH> - ; - - row-gpios - = <&pro_micro_a 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - - }; - -}; - diff --git a/zmk/app/boards/shields/tidbit/Kconfig.defconfig b/zmk/app/boards/shields/tidbit/Kconfig.defconfig deleted file mode 100644 index 6ecb3e79..00000000 --- a/zmk/app/boards/shields/tidbit/Kconfig.defconfig +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -if SHIELD_TIDBIT - -config ZMK_KEYBOARD_NAME - default "tidbit" - -endif - -if ZMK_DISPLAY - -config I2C - default y - -config SSD1306 - default y - -config SSD1306_REVERSE_MODE - default y - -endif # ZMK_DISPLAY - -if LVGL - -config LVGL_HOR_RES - default 128 - -config LVGL_VER_RES - default 32 - -config LVGL_VDB_SIZE - default 64 - -config LVGL_DPI - default 148 - -config LVGL_BITS_PER_PIXEL - default 1 - -choice LVGL_COLOR_DEPTH - default LVGL_COLOR_DEPTH_1 -endchoice - -endif # LVGL diff --git a/zmk/app/boards/shields/tidbit/Kconfig.shield b/zmk/app/boards/shields/tidbit/Kconfig.shield deleted file mode 100644 index c1e8ecca..00000000 --- a/zmk/app/boards/shields/tidbit/Kconfig.shield +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config SHIELD_TIDBIT - def_bool $(shields_list_contains,tidbit) diff --git a/zmk/app/boards/shields/tidbit/README.md b/zmk/app/boards/shields/tidbit/README.md deleted file mode 100644 index 0a20b4ad..00000000 --- a/zmk/app/boards/shields/tidbit/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# Building ZMK for the Tidbit - -Some general notes/commands for building standard Tidbit layouts from the assembly documentation. - -## Standard "Non Dense" Build - -``` - -west build -p --board nice_nano -d build/tidbit/default -- -DSHIELD=tidbit - -``` - -## Dense "19 keys" Build - -``` - -west build -p --board nice_nano -d build/tidbit/19_key -- -DSHIELD=tidbit_19key - -``` - -## Underglow / LEDs - -If you built your tidbit without the underglow leds, you'll need to add the following to one of the above commands. - -``` - --DCONFIG_ZMK_RGB_UNDERGLOW=n -DCONFIG_WS2812_STRIP=n - -``` - -## Encoder Notes - -If you built your tidbit without encoders, you'll need to add the following to one of the above commands. - -``` - --DCONFIG_EC11=n -DCONFIG_EC11_TRIGGER_GLOBAL_THREAD=n - -``` - -## OLED Builds - -If using an OLED screen you'll need to include the following at the *end* of one of the above commands to build support for the OLED into the firmware. - -``` --DZMK_DISPLAY=yes - -``` - -You'll also need to add the following to your keymap file. - -``` - -&pro_micro_i2c { - status = "okay"; -}; - -``` - -## Graphcs Library - -If you'd like to use ```lvgl``` with an OLED please append *BOTH* the above OLED parameter and the below to one of the above commands. - -``` - --DLVGL=yes - -``` diff --git a/zmk/app/boards/shields/tidbit/boards/nice_nano.overlay b/zmk/app/boards/shields/tidbit/boards/nice_nano.overlay deleted file mode 100644 index d26ca265..00000000 --- a/zmk/app/boards/shields/tidbit/boards/nice_nano.overlay +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -&spi1 { - compatible = "nordic,nrf-spim"; - status = "okay"; - mosi-pin = <9>; - // Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. - sck-pin = <5>; - miso-pin = <7>; - - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "WS2812"; - - /* SPI */ - reg = <0>; /* ignored, but necessary for SPI bindings */ - spi-max-frequency = <4000000>; - - /* WS2812 */ - chain-length = <10>; /* number of LEDs */ - spi-one-frame = <0x70>; - spi-zero-frame = <0x40>; - }; -}; diff --git a/zmk/app/boards/shields/tidbit/tidbit.conf b/zmk/app/boards/shields/tidbit/tidbit.conf deleted file mode 100644 index 2f3ab141..00000000 --- a/zmk/app/boards/shields/tidbit/tidbit.conf +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -# Enable Encoders -CONFIG_EC11=y -CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y - -# Enable underglow -CONFIG_ZMK_RGB_UNDERGLOW=y -# Use the STRIP config specific to the LEDs you're using -CONFIG_WS2812_STRIP=y diff --git a/zmk/app/boards/shields/tidbit/tidbit.dtsi b/zmk/app/boards/shields/tidbit/tidbit.dtsi deleted file mode 100644 index 414699fb..00000000 --- a/zmk/app/boards/shields/tidbit/tidbit.dtsi +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - - row-gpios - = <&pro_micro_d 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - - col-gpios - = <&pro_micro_a 3 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 2 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> - ; - - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <4>; - rows = <5>; - - map = < - RC(0,1) RC(0,2) RC(0,3) - RC(1,0) RC(1,1) RC(1,2) RC(1,3) - RC(2,0) RC(2,1) RC(2,2) RC(2,3) - RC(3,0) RC(3,1) RC(3,2) RC(3,3) - RC(4,0) RC(4,1) RC(4,2) RC(4,3) - >; - }; - - encoder_1_top_row: encoder_1_top_row { - compatible = "alps,ec11"; - label = "Top Row Encoder"; - a-gpios = <&pro_micro_d 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - b-gpios = <&pro_micro_d 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - resolution = <4>; - status = "disabled"; - }; - - encoder_1: encoder_1 { - compatible = "alps,ec11"; - label = "Encoder 1"; - a-gpios = <&pro_micro_d 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - b-gpios = <&pro_micro_d 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - resolution = <4>; - status = "disabled"; - }; - - encoder_2: encoder_2 { - compatible = "alps,ec11"; - label = "Encoder 2"; - a-gpios = <&pro_micro_d 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - b-gpios = <&pro_micro_d 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - resolution = <4>; - status = "disabled"; - }; - - encoder_3: encoder_3 { - compatible = "alps,ec11"; - label = "Encoder 3"; - a-gpios = <&pro_micro_d 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - b-gpios = <&pro_micro_d 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - resolution = <4>; - status = "disabled"; - }; - - encoder_4: encoder_4 { - compatible = "alps,ec11"; - label = "Encoder 4"; - a-gpios = <&pro_micro_d 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - b-gpios = <&pro_micro_d 0 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; - resolution = <4>; - status = "disabled"; - }; - - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - zmk,underglow = &led_strip; - }; -}; - -&pro_micro_i2c { - status = "disabled"; - - oled: ssd1306@3c { - compatible = "solomon,ssd1306fb"; - reg = <0x3c>; - label = "DISPLAY"; - width = <128>; - height = <32>; - segment-offset = <0>; - page-offset = <0>; - display-offset = <0>; - multiplex-ratio = <31>; - segment-remap; - com-invdir; - com-sequential; - prechargep = <0x22>; - }; -}; diff --git a/zmk/app/boards/shields/tidbit/tidbit.keymap b/zmk/app/boards/shields/tidbit/tidbit.keymap deleted file mode 100644 index b2144dc0..00000000 --- a/zmk/app/boards/shields/tidbit/tidbit.keymap +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include -#include - -&encoder_1_top_row { - status = "okay"; -}; - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { - bindings = < - &kp KP_NUMLOCK &kp KP_ASTERISK &kp KP_MINUS - &kp KP_NUMBER_7 &kp KP_NUMBER_8 &kp KP_NUMBER_9 &kp KP_PLUS - &kp KP_NUMBER_4 &kp KP_NUMBER_5 &kp KP_NUMBER_6 &kp &none - &kp KP_NUMBER_1 &kp KP_NUMBER_2 &kp KP_NUMBER_3 < 1 KP_ENTER - &none &kp KP_NUMBER_0 &kp KP_DOT &none - >; - - sensor-bindings = <&inc_dec_kp K_VOLUME_UP K_VOLUME_DOWN>; - }; - - func_layer { - bindings = < - &none &none &none - &none &bt BT_CLR_CMD &none &out OUT_TOG - &none &bt BT_NXT_CMD &none &out OUT_BLE - &reset &bt BT_PRV_CMD &none &out OUT_USB - &bootloader &bt BT_SEL_CMD &none &tog 0 - >; - - sensor-bindings = <&inc_dec_kp K_VOLUME_UP K_VOLUME_DOWN>; - }; - }; -}; diff --git a/zmk/app/boards/shields/tidbit/tidbit.overlay b/zmk/app/boards/shields/tidbit/tidbit.overlay deleted file mode 100644 index dc425618..00000000 --- a/zmk/app/boards/shields/tidbit/tidbit.overlay +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include "tidbit.dtsi" diff --git a/zmk/app/boards/shields/tidbit/tidbit_19key.keymap b/zmk/app/boards/shields/tidbit/tidbit_19key.keymap deleted file mode 100644 index fdfa974b..00000000 --- a/zmk/app/boards/shields/tidbit/tidbit_19key.keymap +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include -#include -#include - -&encoder_4 { - status = "okay"; -}; - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { - bindings = < - &tog 1 &kp KP_NUMLOCK &kp KP_SLASH - &kp KP_NUMBER_7 &kp KP_NUMBER_8 &kp KP_NUMBER_9 &kp KP_ASTERISK - &kp KP_NUMBER_4 &kp KP_NUMBER_5 &kp KP_NUMBER_6 &kp KP_MINUS - &kp KP_NUMBER_1 &kp KP_NUMBER_2 &kp KP_NUMBER_3 &kp KP_PLUS - &none &kp KP_NUMBER_0 &kp KP_DOT &kp KP_ENTER - >; - - layer-bindings = <&layer_rgb RGB_BLUE &layer_lock NUMLOCK>; - - sensor-bindings = <&inc_dec_kp K_VOLUME_UP K_VOLUME_DOWN>; - }; - - func_layer { - bindings = < - &tog 0 &bootloader &reset - &none &bt BT_CLR_CMD &none &out OUT_TOG - &none &bt BT_NXT_CMD &none &out OUT_BLE - &none &bt BT_PRV_CMD &none &out OUT_USB - &none &bt BT_SEL_CMD &none &none - >; - - sensor-bindings = <&inc_dec_kp K_VOLUME_UP K_VOLUME_DOWN>; - }; - }; -}; diff --git a/zmk/app/boards/shields/tidbit/tidbit_19key.overlay b/zmk/app/boards/shields/tidbit/tidbit_19key.overlay deleted file mode 100644 index dc46233e..00000000 --- a/zmk/app/boards/shields/tidbit/tidbit_19key.overlay +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include "tidbit.dtsi" -#include "tidbit_19key.keymap" diff --git a/zmk/app/cmake/zmk_config.cmake b/zmk/app/cmake/zmk_config.cmake deleted file mode 100644 index 145352a3..00000000 --- a/zmk/app/cmake/zmk_config.cmake +++ /dev/null @@ -1,151 +0,0 @@ -# TODO: Check for env or command line "ZMK_CONFIG" setting. -# * That directory should load -# * defconfigs, -# * .conf file, -# * single overlay, -# * or per board/shield. - -cmake_minimum_required(VERSION 3.15) - -get_property(cached_user_config_value CACHE ZMK_CONFIG PROPERTY VALUE) - -set(user_config_cli_argument ${cached_user_config_value}) # Either new or old -if(user_config_cli_argument STREQUAL CACHED_ZMK_CONFIG) - # We already have a CACHED_ZMK_CONFIG so there is no new input on the CLI - unset(user_config_cli_argument) -endif() - -set(user_config_app_cmake_lists ${ZMK_CONFIG}) -if(cached_user_config_value STREQUAL ZMK_CONFIG) - # The app build scripts did not set a default, The ZMK_CONFIG we are - # reading is the cached value from the CLI - unset(user_config_app_cmake_lists) -endif() - -if(CACHED_ZMK_CONFIG) - # Warn the user if it looks like he is trying to change the user_config - # without cleaning first - if(user_config_cli_argument) - if(NOT (CACHED_ZMK_CONFIG STREQUAL user_config_cli_argument)) - message(WARNING "The build directory must be cleaned pristinely when changing user ZMK config") - endif() - endif() - - set(ZMK_CONFIG ${CACHED_ZMK_CONFIG}) -elseif(user_config_cli_argument) - set(ZMK_CONFIG ${user_config_cli_argument}) - -elseif(DEFINED ENV{ZMK_CONFIG}) - set(ZMK_CONFIG $ENV{ZMK_CONFIG}) - -elseif(user_config_app_cmake_lists) - set(ZMK_CONFIG ${user_config_app_cmake_lists}) -endif() - -# Store the selected user_config in the cache -set(CACHED_ZMK_CONFIG ${ZMK_CONFIG} CACHE STRING "Selected user ZMK config") - -if (ZMK_CONFIG) - set(ENV{ZMK_CONFIG} "${ZMK_CONFIG}") - if(EXISTS ${ZMK_CONFIG}/boards) - message(STATUS "Adding ZMK config directory as board root: ${ZMK_CONFIG}") - list(APPEND BOARD_ROOT ${ZMK_CONFIG}) - endif() - if(EXISTS ${ZMK_CONFIG}/dts) - message(STATUS "Adding ZMK config directory as DTS root: ${ZMK_CONFIG}") - list(APPEND DTS_ROOT ${ZMK_CONFIG}) - endif() -endif() - -foreach(root ${BOARD_ROOT}) - if (EXISTS "${root}/boards/${BOARD}.overlay") - list(APPEND ZMK_DTC_FILES "${root}/boards/${BOARD}.overlay") - endif() - find_path(BOARD_DIR - NAMES ${BOARD}_defconfig - PATHS ${root}/boards/*/* - NO_DEFAULT_PATH - ) - if(BOARD_DIR) - list(APPEND KEYMAP_DIRS ${BOARD_DIR}) - endif() - - if(DEFINED SHIELD) - find_path(shields_refs_list - NAMES ${SHIELD}.overlay - PATHS ${root}/boards/shields/* - NO_DEFAULT_PATH - ) - foreach(shield_path ${shields_refs_list}) - get_filename_component(SHIELD_DIR ${shield_path} NAME) - list(APPEND KEYMAP_DIRS ${shield_path}) - endforeach() - endif() -endforeach() - -if (ZMK_CONFIG) - if (EXISTS ${ZMK_CONFIG}) - message(STATUS "ZMK Config directory: ${ZMK_CONFIG}") - list(APPEND DTS_ROOT ${ZMK_CONFIG}) - list(PREPEND KEYMAP_DIRS "${ZMK_CONFIG}") - - if (SHIELD) - message(STATUS "Board: ${BOARD}, ${BOARD_DIR}, ${SHIELD}, ${SHIELD_DIR}") - list(APPEND overlay_candidates "${ZMK_CONFIG}/${SHIELD_DIR}.overlay") - list(APPEND overlay_candidates "${ZMK_CONFIG}/${SHIELD_DIR}_${BOARD}.overlay") - list(APPEND overlay_candidates "${ZMK_CONFIG}/${SHIELD}_${BOARD}.overlay") - list(APPEND overlay_candidates "${ZMK_CONFIG}/${SHIELD}.overlay") - list(APPEND config_candidates "${ZMK_CONFIG}/${SHIELD_DIR}.conf") - list(APPEND config_candidates "${ZMK_CONFIG}/${SHIELD_DIR}_${BOARD}.conf") - list(APPEND config_candidates "${ZMK_CONFIG}/${SHIELD}_${BOARD}.conf") - list(APPEND config_candidates "${ZMK_CONFIG}/${SHIELD}.conf") - endif() - - # TODO: Board revisions? - list(APPEND overlay_candidates "${ZMK_CONFIG}/${BOARD}.overlay") - list(APPEND overlay_candidates "${ZMK_CONFIG}/default.overlay") - list(APPEND config_candidates "${ZMK_CONFIG}/${BOARD}.conf") - list(APPEND config_candidates "${ZMK_CONFIG}/default.conf") - - foreach(overlay ${overlay_candidates}) - if (EXISTS "${overlay}") - message(STATUS "ZMK Config devicetree overlay: ${overlay}") - list(APPEND ZMK_DTC_FILES "${overlay}") - break() - endif() - endforeach() - - foreach(conf ${config_candidates}) - if (EXISTS "${conf}") - message(STATUS "ZMK Config Kconfig: ${conf}") - set(CONF_FILE "${conf}") - break() - endif() - endforeach() - else() - message(WARNING "Unable to locate ZMK config at: ${ZMK_CONFIG}") - endif() -endif() - - -if(NOT KEYMAP_FILE) - foreach(keymap_dir ${KEYMAP_DIRS}) - foreach(keymap_prefix ${SHIELD} ${SHIELD_DIR} ${BOARD} ${BOARD_DIR}) - if (EXISTS ${keymap_dir}/${keymap_prefix}.keymap) - set(KEYMAP_FILE "${keymap_dir}/${keymap_prefix}.keymap" CACHE STRING "Selected keymap file") - message(STATUS "Using keymap file: ${KEYMAP_FILE}") - break() - endif() - endforeach() - endforeach() -endif() - -if (NOT KEYMAP_FILE) - message(FATAL_ERROR "Failed to locate keymap file!") -endif() - -list(APPEND ZMK_DTC_FILES ${KEYMAP_FILE}) - -if (ZMK_DTC_FILES) - string(REPLACE ";" " " DTC_OVERLAY_FILE "${ZMK_DTC_FILES}") -endif() diff --git a/zmk/app/drivers/zephyr/CMakeLists.txt b/zmk/app/drivers/zephyr/CMakeLists.txt deleted file mode 100644 index e3a192d2..00000000 --- a/zmk/app/drivers/zephyr/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -if(CONFIG_ZMK_KSCAN_GPIO_DRIVER) - zephyr_include_directories(.) - - zephyr_library() - zephyr_library_sources( - kscan_gpio_matrix.c - kscan_gpio_direct.c - kscan_gpio_demux.c - ) - - zephyr_library_sources_ifdef(CONFIG_EC11 ec11.c) - zephyr_library_sources_ifdef(CONFIG_EC11_TRIGGER ec11_trigger.c) - zephyr_library_sources_ifdef(CONFIG_ZMK_BATTERY_VOLTAGE_DIVIDER battery_voltage_divider.c) -endif() diff --git a/zmk/app/drivers/zephyr/Kconfig b/zmk/app/drivers/zephyr/Kconfig deleted file mode 100644 index b8b2b1be..00000000 --- a/zmk/app/drivers/zephyr/Kconfig +++ /dev/null @@ -1,79 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -config ZMK_KSCAN_GPIO_DRIVER - bool "Enable GPIO kscan driver to simulate key presses" - default y - select GPIO - -if ZMK_KSCAN_GPIO_DRIVER - -config ZMK_KSCAN_MATRIX_POLLING - bool "Poll for key event triggers instead of using interrupts on matrix boards." - default n - -config ZMK_KSCAN_DIRECT_POLLING - bool "Poll for key event triggers instead of using interrupts on direct wired boards." - default n - -endif - -config ZMK_KSCAN_INIT_PRIORITY - int "Keyboard scan driver init priority" - default 40 - help - Keyboard scan device driver initialization priority. - -config ZMK_BATTERY_VOLTAGE_DIVIDER - bool "ZMK battery voltage divider" - select ADC - help - Enable ZMK battery voltage divider driver for battery monitoring. - -menuconfig EC11 - bool "EC11 Incremental Encoder Sensor" - depends on GPIO - help - Enable driver for EC11 incremental encoder sensors. - -if EC11 - -choice - prompt "Trigger mode" - default EC11_TRIGGER_NONE - help - Specify the type of triggering to be used by the driver. - -config EC11_TRIGGER_NONE - bool "No trigger" - -config EC11_TRIGGER_GLOBAL_THREAD - bool "Use global thread" - depends on GPIO - select EC11_TRIGGER - -config EC11_TRIGGER_OWN_THREAD - bool "Use own thread" - depends on GPIO - select EC11_TRIGGER - -endchoice - -config EC11_TRIGGER - bool - -config EC11_THREAD_PRIORITY - int "Thread priority" - depends on EC11_TRIGGER_OWN_THREAD - default 10 - help - Priority of thread used by the driver to handle interrupts. - -config EC11_THREAD_STACK_SIZE - int "Thread stack size" - depends on EC11_TRIGGER_OWN_THREAD - default 1024 - help - Stack size of thread used by the driver to handle interrupts. - -endif # EC11 diff --git a/zmk/app/drivers/zephyr/battery_voltage_divider.c b/zmk/app/drivers/zephyr/battery_voltage_divider.c deleted file mode 100644 index b94e2a27..00000000 --- a/zmk/app/drivers/zephyr/battery_voltage_divider.c +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_battery_voltage_divider - -#include -#include -#include -#include -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -struct io_channel_config { - const char *label; - uint8_t channel; -}; - -struct gpio_channel_config { - const char *label; - uint8_t pin; - uint8_t flags; -}; - -struct bvd_config { - struct io_channel_config io_channel; - struct gpio_channel_config power_gpios; - uint32_t output_ohm; - uint32_t full_ohm; -}; - -struct bvd_data { - struct device *adc; - struct device *gpio; - struct adc_channel_cfg acc; - struct adc_sequence as; - uint16_t adc_raw; - uint16_t voltage; - uint8_t state_of_charge; -}; - -static uint8_t lithium_ion_mv_to_pct(int16_t bat_mv) { - // Simple linear approximation of a battery based off adafruit's discharge graph: - // https://learn.adafruit.com/li-ion-and-lipoly-batteries/voltages - - if (bat_mv >= 4200) { - return 100; - } else if (bat_mv <= 3450) { - return 0; - } - - return bat_mv * 2 / 15 - 459; -} - -static int bvd_sample_fetch(struct device *dev, enum sensor_channel chan) { - struct bvd_data *drv_data = dev->driver_data; - const struct bvd_config *drv_cfg = dev->config_info; - struct adc_sequence *as = &drv_data->as; - - // Make sure selected channel is supported - if (chan != SENSOR_CHAN_GAUGE_VOLTAGE && chan != SENSOR_CHAN_GAUGE_STATE_OF_CHARGE && - chan != SENSOR_CHAN_ALL) { - LOG_DBG("Selected channel is not supported: %d.", chan); - return -ENOTSUP; - } - - int rc = 0; - - // Enable power GPIO if present - if (drv_data->gpio) { - rc = gpio_pin_set(drv_data->gpio, drv_cfg->power_gpios.pin, 1); - - if (rc != 0) { - LOG_DBG("Failed to enable ADC power GPIO: %d", rc); - return rc; - } - } - - // Read ADC - rc = adc_read(drv_data->adc, as); - as->calibrate = false; - - if (rc == 0) { - int32_t val = drv_data->adc_raw; - - adc_raw_to_millivolts(adc_ref_internal(drv_data->adc), drv_data->acc.gain, as->resolution, - &val); - - uint16_t millivolts = val * (uint64_t)drv_cfg->full_ohm / drv_cfg->output_ohm; - LOG_DBG("ADC raw %d ~ %d mV => %d mV\n", drv_data->adc_raw, val, millivolts); - uint8_t percent = lithium_ion_mv_to_pct(millivolts); - LOG_DBG("Percent: %d", percent); - - drv_data->voltage = millivolts; - drv_data->state_of_charge = percent; - } else { - LOG_DBG("Failed to read ADC: %d", rc); - } - - // Disable power GPIO if present - if (drv_data->gpio) { - int rc2 = gpio_pin_set(drv_data->gpio, drv_cfg->power_gpios.pin, 0); - - if (rc2 != 0) { - LOG_DBG("Failed to disable ADC power GPIO: %d", rc2); - return rc2; - } - } - - return rc; -} - -static int bvd_channel_get(struct device *dev, enum sensor_channel chan, struct sensor_value *val) { - struct bvd_data *drv_data = dev->driver_data; - - switch (chan) { - case SENSOR_CHAN_GAUGE_VOLTAGE: - val->val1 = drv_data->voltage / 1000; - val->val2 = (drv_data->voltage % 1000) * 1000U; - break; - - case SENSOR_CHAN_GAUGE_STATE_OF_CHARGE: - val->val1 = drv_data->state_of_charge; - val->val2 = 0; - break; - - default: - return -ENOTSUP; - } - - return 0; -} - -static const struct sensor_driver_api bvd_api = { - .sample_fetch = bvd_sample_fetch, - .channel_get = bvd_channel_get, -}; - -static int bvd_init(struct device *dev) { - struct bvd_data *drv_data = dev->driver_data; - const struct bvd_config *drv_cfg = dev->config_info; - - drv_data->adc = device_get_binding(drv_cfg->io_channel.label); - - if (drv_data->adc == NULL) { - LOG_ERR("ADC %s failed to retrieve", drv_cfg->io_channel.label); - return -ENODEV; - } - - int rc = 0; - - if (drv_cfg->power_gpios.label) { - drv_data->gpio = device_get_binding(drv_cfg->power_gpios.label); - if (drv_data->gpio == NULL) { - LOG_ERR("Failed to get GPIO %s", drv_cfg->power_gpios.label); - return -ENODEV; - } - rc = gpio_pin_configure(drv_data->gpio, drv_cfg->power_gpios.pin, - GPIO_OUTPUT_INACTIVE | drv_cfg->power_gpios.flags); - if (rc != 0) { - LOG_ERR("Failed to control feed %s.%u: %d", drv_cfg->power_gpios.label, - drv_cfg->power_gpios.pin, rc); - return rc; - } - } - - drv_data->as = (struct adc_sequence){ - .channels = BIT(0), - .buffer = &drv_data->adc_raw, - .buffer_size = sizeof(drv_data->adc_raw), - .oversampling = 4, - .calibrate = true, - }; - -#ifdef CONFIG_ADC_NRFX_SAADC - drv_data->acc = (struct adc_channel_cfg){ - .gain = ADC_GAIN_1_5, - .reference = ADC_REF_INTERNAL, - .acquisition_time = ADC_ACQ_TIME(ADC_ACQ_TIME_MICROSECONDS, 40), - .input_positive = SAADC_CH_PSELP_PSELP_AnalogInput0 + drv_cfg->io_channel.channel, - }; - - drv_data->as.resolution = 12; -#else -#error Unsupported ADC -#endif - - rc = adc_channel_setup(drv_data->adc, &drv_data->acc); - LOG_DBG("AIN%u setup returned %d", drv_cfg->io_channel.channel, rc); - - return rc; -} - -static struct bvd_data bvd_data; -static const struct bvd_config bvd_cfg = { - .io_channel = - { - DT_INST_IO_CHANNELS_LABEL(0), - DT_INST_IO_CHANNELS_INPUT(0), - }, -#if DT_INST_NODE_HAS_PROP(0, power_gpios) - .power_gpios = - { - DT_INST_GPIO_LABEL(0, power_gpios), - DT_INST_PIN(0, power_gpios), - DT_INST_FLAGS(0, power_gpios), - }, -#endif - .output_ohm = DT_INST_PROP(0, output_ohms), - .full_ohm = DT_INST_PROP(0, full_ohms), -}; - -DEVICE_AND_API_INIT(bvd_dev, DT_INST_LABEL(0), &bvd_init, &bvd_data, &bvd_cfg, POST_KERNEL, - CONFIG_SENSOR_INIT_PRIORITY, &bvd_api); diff --git a/zmk/app/drivers/zephyr/dts/bindings/alps,ec11.yaml b/zmk/app/drivers/zephyr/dts/bindings/alps,ec11.yaml deleted file mode 100644 index 5cbe77a2..00000000 --- a/zmk/app/drivers/zephyr/dts/bindings/alps,ec11.yaml +++ /dev/null @@ -1,21 +0,0 @@ -description: | - Sensor driver for the Alps EC11 rotary encoder - -compatible: "alps,ec11" - -properties: - label: - type: string - required: true - a-gpios: - type: phandle-array - required: true - description: A pin for the encoder - b-gpios: - type: phandle-array - required: true - description: A pin for the encoder - resolution: - type: int - description: Number of pulses per tick - required: false diff --git a/zmk/app/drivers/zephyr/dts/bindings/zmk,battery-voltage-divider.yaml b/zmk/app/drivers/zephyr/dts/bindings/zmk,battery-voltage-divider.yaml deleted file mode 100644 index 3f391d78..00000000 --- a/zmk/app/drivers/zephyr/dts/bindings/zmk,battery-voltage-divider.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -description: Battery SoC monitoring using voltage divider - -compatible: "zmk,battery-voltage-divider" - -include: voltage-divider.yaml - -properties: - label: - required: true - type: string - \ No newline at end of file diff --git a/zmk/app/drivers/zephyr/dts/bindings/zmk,kscan-gpio-demux.yaml b/zmk/app/drivers/zephyr/dts/bindings/zmk,kscan-gpio-demux.yaml deleted file mode 100644 index a2d8d244..00000000 --- a/zmk/app/drivers/zephyr/dts/bindings/zmk,kscan-gpio-demux.yaml +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright (c) 2020, The ZMK Contributors -# SPDX-License-Identifier: MIT - -description: GPIO keyboard demux controller - -compatible: "zmk,kscan-gpio-demux" - -include: kscan.yaml - -properties: - input-gpios: - type: phandle-array - required: true - output-gpios: - type: phandle-array - required: true - debounce-period: - type: int - default: 5 - polling-interval-msec: - type: int - default: 25 diff --git a/zmk/app/drivers/zephyr/dts/bindings/zmk,kscan-gpio-direct.yaml b/zmk/app/drivers/zephyr/dts/bindings/zmk,kscan-gpio-direct.yaml deleted file mode 100644 index 09a9b6c0..00000000 --- a/zmk/app/drivers/zephyr/dts/bindings/zmk,kscan-gpio-direct.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright (c) 2020, Pete Johanson -# SPDX-License-Identifier: MIT - -description: Direct GPIO keyboard KSCAN controller - -compatible: "zmk,kscan-gpio-direct" - -include: kscan.yaml - -properties: - input-gpios: - type: phandle-array - required: true - debounce-period: - type: int - default: 5 diff --git a/zmk/app/drivers/zephyr/dts/bindings/zmk,kscan-gpio-matrix.yaml b/zmk/app/drivers/zephyr/dts/bindings/zmk,kscan-gpio-matrix.yaml deleted file mode 100644 index 5ebcbdd3..00000000 --- a/zmk/app/drivers/zephyr/dts/bindings/zmk,kscan-gpio-matrix.yaml +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (c) 2020, Pete Johanson -# SPDX-License-Identifier: MIT - -description: GPIO keyboard matrix controller - -compatible: "zmk,kscan-gpio-matrix" - -include: kscan.yaml - -properties: - row-gpios: - type: phandle-array - required: true - col-gpios: - type: phandle-array - required: true - debounce-period: - type: int - default: 5 - diode-direction: - type: string - default: row2col - enum: - - row2col - - col2row diff --git a/zmk/app/drivers/zephyr/ec11.c b/zmk/app/drivers/zephyr/ec11.c deleted file mode 100644 index 00d00905..00000000 --- a/zmk/app/drivers/zephyr/ec11.c +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT alps_ec11 - -#include -#include -#include -#include -#include -#include -#include - -#include "ec11.h" - -LOG_MODULE_REGISTER(EC11, CONFIG_SENSOR_LOG_LEVEL); - -static int ec11_get_ab_state(struct device *dev) { - struct ec11_data *drv_data = dev->driver_data; - const struct ec11_config *drv_cfg = dev->config_info; - - return (gpio_pin_get(drv_data->a, drv_cfg->a_pin) << 1) | - gpio_pin_get(drv_data->b, drv_cfg->b_pin); -} - -static int ec11_sample_fetch(struct device *dev, enum sensor_channel chan) { - struct ec11_data *drv_data = dev->driver_data; - const struct ec11_config *drv_cfg = dev->config_info; - u8_t val; - s8_t delta; - - __ASSERT_NO_MSG(chan == SENSOR_CHAN_ALL || chan == SENSOR_CHAN_ROTATION); - - val = ec11_get_ab_state(dev); - - LOG_DBG("prev: %d, new: %d", drv_data->ab_state, val); - - switch (val | (drv_data->ab_state << 2)) { - case 0b0010: - case 0b0100: - case 0b1101: - case 0b1011: - delta = -1; - break; - case 0b0001: - case 0b0111: - case 0b1110: - case 0b1000: - delta = 1; - break; - default: - delta = 0; - break; - } - - LOG_DBG("Delta: %d", delta); - - drv_data->pulses += delta; - drv_data->ab_state = val; - - drv_data->ticks = drv_data->pulses / drv_cfg->resolution; - drv_data->delta = delta; - drv_data->pulses %= drv_cfg->resolution; - - return 0; -} - -static int ec11_channel_get(struct device *dev, enum sensor_channel chan, - struct sensor_value *val) { - struct ec11_data *drv_data = dev->driver_data; - - if (chan != SENSOR_CHAN_ROTATION) { - return -ENOTSUP; - } - - val->val1 = drv_data->ticks; - val->val2 = drv_data->delta; - - return 0; -} - -static const struct sensor_driver_api ec11_driver_api = { -#ifdef CONFIG_EC11_TRIGGER - .trigger_set = ec11_trigger_set, -#endif - .sample_fetch = ec11_sample_fetch, - .channel_get = ec11_channel_get, -}; - -int ec11_init(struct device *dev) { - struct ec11_data *drv_data = dev->driver_data; - const struct ec11_config *drv_cfg = dev->config_info; - - LOG_DBG("A: %s %d B: %s %d resolution %d", drv_cfg->a_label, drv_cfg->a_pin, drv_cfg->b_label, - drv_cfg->b_pin, drv_cfg->resolution); - - drv_data->a = device_get_binding(drv_cfg->a_label); - if (drv_data->a == NULL) { - LOG_ERR("Failed to get pointer to A GPIO device"); - return -EINVAL; - } - - drv_data->b = device_get_binding(drv_cfg->b_label); - if (drv_data->b == NULL) { - LOG_ERR("Failed to get pointer to B GPIO device"); - return -EINVAL; - } - - if (gpio_pin_configure(drv_data->a, drv_cfg->a_pin, drv_cfg->a_flags | GPIO_INPUT)) { - LOG_DBG("Failed to configure A pin"); - return -EIO; - } - - if (gpio_pin_configure(drv_data->b, drv_cfg->b_pin, drv_cfg->b_flags | GPIO_INPUT)) { - LOG_DBG("Failed to configure B pin"); - return -EIO; - } - -#ifdef CONFIG_EC11_TRIGGER - if (ec11_init_interrupt(dev) < 0) { - LOG_DBG("Failed to initialize interrupt!"); - return -EIO; - } -#endif - - drv_data->ab_state = ec11_get_ab_state(dev); - - return 0; -} - -#define EC11_INST(n) \ - struct ec11_data ec11_data_##n; \ - const struct ec11_config ec11_cfg_##n = { \ - .a_label = DT_INST_GPIO_LABEL(n, a_gpios), \ - .a_pin = DT_INST_GPIO_PIN(n, a_gpios), \ - .a_flags = DT_INST_GPIO_FLAGS(n, a_gpios), \ - .b_label = DT_INST_GPIO_LABEL(n, b_gpios), \ - .b_pin = DT_INST_GPIO_PIN(n, b_gpios), \ - .b_flags = DT_INST_GPIO_FLAGS(n, b_gpios), \ - COND_CODE_0(DT_INST_NODE_HAS_PROP(n, resolution), (1), (DT_INST_PROP(n, resolution))), \ - }; \ - DEVICE_AND_API_INIT(ec11_##n, DT_INST_LABEL(n), ec11_init, &ec11_data_##n, &ec11_cfg_##n, \ - POST_KERNEL, CONFIG_SENSOR_INIT_PRIORITY, &ec11_driver_api); - -DT_INST_FOREACH_STATUS_OKAY(EC11_INST) \ No newline at end of file diff --git a/zmk/app/drivers/zephyr/ec11.h b/zmk/app/drivers/zephyr/ec11.h deleted file mode 100644 index e62e7333..00000000 --- a/zmk/app/drivers/zephyr/ec11.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include -#include - -struct ec11_config { - const char *a_label; - const u8_t a_pin; - const u8_t a_flags; - - const char *b_label; - const u8_t b_pin; - const u8_t b_flags; - - const u8_t resolution; -}; - -struct ec11_data { - struct device *a; - struct device *b; - u8_t ab_state; - s8_t pulses; - s8_t ticks; - s8_t delta; - -#ifdef CONFIG_EC11_TRIGGER - struct gpio_callback a_gpio_cb; - struct gpio_callback b_gpio_cb; - struct device *dev; - - sensor_trigger_handler_t handler; - const struct sensor_trigger *trigger; - -#if defined(CONFIG_EC11_TRIGGER_OWN_THREAD) - K_THREAD_STACK_MEMBER(thread_stack, CONFIG_EC11_THREAD_STACK_SIZE); - struct k_sem gpio_sem; - struct k_thread thread; -#elif defined(CONFIG_EC11_TRIGGER_GLOBAL_THREAD) - struct k_work work; -#endif - -#endif /* CONFIG_EC11_TRIGGER */ -}; - -#ifdef CONFIG_EC11_TRIGGER - -int ec11_trigger_set(struct device *dev, const struct sensor_trigger *trig, - sensor_trigger_handler_t handler); - -int ec11_init_interrupt(struct device *dev); -#endif diff --git a/zmk/app/drivers/zephyr/ec11_trigger.c b/zmk/app/drivers/zephyr/ec11_trigger.c deleted file mode 100644 index 248ac320..00000000 --- a/zmk/app/drivers/zephyr/ec11_trigger.c +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT alps_ec11 - -#include -#include -#include -#include -#include - -#include "ec11.h" - -extern struct ec11_data ec11_driver; - -#include -LOG_MODULE_DECLARE(EC11, CONFIG_SENSOR_LOG_LEVEL); - -static inline void setup_int(struct device *dev, bool enable) { - struct ec11_data *data = dev->driver_data; - const struct ec11_config *cfg = dev->config_info; - - LOG_DBG("enabled %s", (enable ? "true" : "false")); - - if (gpio_pin_interrupt_configure(data->a, cfg->a_pin, - enable ? GPIO_INT_EDGE_BOTH : GPIO_INT_DISABLE)) { - LOG_WRN("Unable to set A pin GPIO interrupt"); - } - - if (gpio_pin_interrupt_configure(data->b, cfg->b_pin, - enable ? GPIO_INT_EDGE_BOTH : GPIO_INT_DISABLE)) { - LOG_WRN("Unable to set A pin GPIO interrupt"); - } -} - -static void ec11_a_gpio_callback(struct device *dev, struct gpio_callback *cb, u32_t pins) { - struct ec11_data *drv_data = CONTAINER_OF(cb, struct ec11_data, a_gpio_cb); - - LOG_DBG(""); - - setup_int(drv_data->dev, false); - -#if defined(CONFIG_EC11_TRIGGER_OWN_THREAD) - k_sem_give(&drv_data->gpio_sem); -#elif defined(CONFIG_EC11_TRIGGER_GLOBAL_THREAD) - k_work_submit(&drv_data->work); -#endif -} - -static void ec11_b_gpio_callback(struct device *dev, struct gpio_callback *cb, u32_t pins) { - struct ec11_data *drv_data = CONTAINER_OF(cb, struct ec11_data, b_gpio_cb); - - LOG_DBG(""); - - setup_int(drv_data->dev, false); - -#if defined(CONFIG_EC11_TRIGGER_OWN_THREAD) - k_sem_give(&drv_data->gpio_sem); -#elif defined(CONFIG_EC11_TRIGGER_GLOBAL_THREAD) - k_work_submit(&drv_data->work); -#endif -} - -static void ec11_thread_cb(void *arg) { - struct device *dev = arg; - struct ec11_data *drv_data = dev->driver_data; - - drv_data->handler(dev, drv_data->trigger); - - setup_int(dev, true); -} - -#ifdef CONFIG_EC11_TRIGGER_OWN_THREAD -static void ec11_thread(int dev_ptr, int unused) { - struct device *dev = INT_TO_POINTER(dev_ptr); - struct ec11_data *drv_data = dev->driver_data; - - ARG_UNUSED(unused); - - while (1) { - k_sem_take(&drv_data->gpio_sem, K_FOREVER); - ec11_thread_cb(dev); - } -} -#endif - -#ifdef CONFIG_EC11_TRIGGER_GLOBAL_THREAD -static void ec11_work_cb(struct k_work *work) { - struct ec11_data *drv_data = CONTAINER_OF(work, struct ec11_data, work); - - LOG_DBG(""); - - ec11_thread_cb(drv_data->dev); -} -#endif - -int ec11_trigger_set(struct device *dev, const struct sensor_trigger *trig, - sensor_trigger_handler_t handler) { - struct ec11_data *drv_data = dev->driver_data; - - setup_int(dev, false); - - k_msleep(5); - - drv_data->trigger = trig; - drv_data->handler = handler; - - setup_int(dev, true); - - return 0; -} - -int ec11_init_interrupt(struct device *dev) { - struct ec11_data *drv_data = dev->driver_data; - const struct ec11_config *drv_cfg = dev->config_info; - - drv_data->dev = dev; - /* setup gpio interrupt */ - - gpio_init_callback(&drv_data->a_gpio_cb, ec11_a_gpio_callback, BIT(drv_cfg->a_pin)); - - if (gpio_add_callback(drv_data->a, &drv_data->a_gpio_cb) < 0) { - LOG_DBG("Failed to set A callback!"); - return -EIO; - } - - gpio_init_callback(&drv_data->b_gpio_cb, ec11_b_gpio_callback, BIT(drv_cfg->b_pin)); - - if (gpio_add_callback(drv_data->b, &drv_data->b_gpio_cb) < 0) { - LOG_DBG("Failed to set B callback!"); - return -EIO; - } - -#if defined(CONFIG_EC11_TRIGGER_OWN_THREAD) - k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX); - - k_thread_create(&drv_data->thread, drv_data->thread_stack, CONFIG_EC11_THREAD_STACK_SIZE, - (k_thread_entry_t)ec11_thread, dev, 0, NULL, - K_PRIO_COOP(CONFIG_EC11_THREAD_PRIORITY), 0, K_NO_WAIT); -#elif defined(CONFIG_EC11_TRIGGER_GLOBAL_THREAD) - k_work_init(&drv_data->work, ec11_work_cb); -#endif - - return 0; -} diff --git a/zmk/app/drivers/zephyr/kscan_gpio_demux.c b/zmk/app/drivers/zephyr/kscan_gpio_demux.c deleted file mode 100644 index 6113d7c4..00000000 --- a/zmk/app/drivers/zephyr/kscan_gpio_demux.c +++ /dev/null @@ -1,254 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_kscan_gpio_demux - -#include -#include -#include -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#if DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT) - -struct kscan_gpio_item_config { - char *label; - gpio_pin_t pin; - gpio_flags_t flags; -}; - -// Helper macro -#define PWR_TWO(x) (1 << (x)) - -// Define GPIO cfg -#define _KSCAN_GPIO_ITEM_CFG_INIT(n, prop, idx) \ - { \ - .label = DT_INST_GPIO_LABEL_BY_IDX(n, prop, idx), \ - .pin = DT_INST_GPIO_PIN_BY_IDX(n, prop, idx), \ - .flags = DT_INST_GPIO_FLAGS_BY_IDX(n, prop, idx), \ - }, - -// Define row and col cfg -#define _KSCAN_GPIO_INPUT_CFG_INIT(idx, n) _KSCAN_GPIO_ITEM_CFG_INIT(n, input_gpios, idx) -#define _KSCAN_GPIO_OUTPUT_CFG_INIT(idx, n) _KSCAN_GPIO_ITEM_CFG_INIT(n, output_gpios, idx) - -// Check debounce config -#define CHECK_DEBOUNCE_CFG(n, a, b) COND_CODE_0(DT_INST_PROP(n, debounce_period), a, b) - -// Define the row and column lengths -#define INST_MATRIX_INPUTS(n) DT_INST_PROP_LEN(n, input_gpios) -#define INST_DEMUX_GPIOS(n) DT_INST_PROP_LEN(n, output_gpios) -#define INST_MATRIX_OUTPUTS(n) PWR_TWO(INST_DEMUX_GPIOS(n)) -#define POLL_INTERVAL(n) DT_INST_PROP(n, polling_interval_msec) - -#define GPIO_INST_INIT(n) \ - struct kscan_gpio_irq_callback_##n { \ - struct CHECK_DEBOUNCE_CFG(n, (k_work), (k_delayed_work)) * work; \ - struct gpio_callback callback; \ - struct device *dev; \ - }; \ - \ - struct kscan_gpio_config_##n { \ - struct kscan_gpio_item_config rows[INST_MATRIX_INPUTS(n)]; \ - struct kscan_gpio_item_config cols[INST_DEMUX_GPIOS(n)]; \ - }; \ - \ - struct kscan_gpio_data_##n { \ - kscan_callback_t callback; \ - struct k_timer poll_timer; \ - struct CHECK_DEBOUNCE_CFG(n, (k_work), (k_delayed_work)) work; \ - bool matrix_state[INST_MATRIX_INPUTS(n)][INST_MATRIX_OUTPUTS(n)]; \ - struct device *rows[INST_MATRIX_INPUTS(n)]; \ - struct device *cols[INST_MATRIX_OUTPUTS(n)]; \ - struct device *dev; \ - }; \ - /* IO/GPIO SETUP */ \ - /* gpio_input_devices are PHYSICAL IO devices */ \ - static struct device **kscan_gpio_input_devices_##n(struct device *dev) { \ - struct kscan_gpio_data_##n *data = dev->driver_data; \ - return data->rows; \ - } \ - \ - static const struct kscan_gpio_item_config *kscan_gpio_input_configs_##n(struct device *dev) { \ - const struct kscan_gpio_config_##n *cfg = dev->config_info; \ - return cfg->rows; \ - } \ - \ - /* gpio_output_devices are PHYSICAL IO devices */ \ - static struct device **kscan_gpio_output_devices_##n(struct device *dev) { \ - struct kscan_gpio_data_##n *data = dev->driver_data; \ - return data->cols; \ - } \ - \ - static const struct kscan_gpio_item_config *kscan_gpio_output_configs_##n( \ - struct device *dev) { \ - const struct kscan_gpio_config_##n *cfg = dev->config_info; \ - /* If row2col, rows = outputs & cols = inputs */ \ - return cfg->cols; \ - } \ - /* POLLING SETUP */ \ - static void kscan_gpio_timer_handler(struct k_timer *timer) { \ - struct kscan_gpio_data_##n *data = \ - CONTAINER_OF(timer, struct kscan_gpio_data_##n, poll_timer); \ - k_work_submit(&data->work.work); \ - } \ - \ - /* Read the state of the input GPIOs */ \ - /* This is the core matrix_scan func */ \ - static int kscan_gpio_read_##n(struct device *dev) { \ - bool submit_follow_up_read = false; \ - struct kscan_gpio_data_##n *data = dev->driver_data; \ - static bool read_state[INST_MATRIX_INPUTS(n)][INST_MATRIX_OUTPUTS(n)]; \ - for (int o = 0; o < INST_MATRIX_OUTPUTS(n); o++) { \ - /* Iterate over bits and set GPIOs accordingly */ \ - for (u8_t bit = 0; bit < INST_DEMUX_GPIOS(n); bit++) { \ - u8_t state = (o & (0b1 << bit)) >> bit; \ - struct device *out_dev = kscan_gpio_output_devices_##n(dev)[bit]; \ - const struct kscan_gpio_item_config *out_cfg = \ - &kscan_gpio_output_configs_##n(dev)[bit]; \ - gpio_pin_set(out_dev, out_cfg->pin, state); \ - } \ - \ - for (int i = 0; i < INST_MATRIX_INPUTS(n); i++) { \ - /* Get the input device (port) */ \ - struct device *in_dev = kscan_gpio_input_devices_##n(dev)[i]; \ - /* Get the input device config (pin) */ \ - const struct kscan_gpio_item_config *in_cfg = \ - &kscan_gpio_input_configs_##n(dev)[i]; \ - read_state[i][o] = gpio_pin_get(in_dev, in_cfg->pin) > 0; \ - } \ - } \ - for (int r = 0; r < INST_MATRIX_INPUTS(n); r++) { \ - for (int c = 0; c < INST_MATRIX_OUTPUTS(n); c++) { \ - bool pressed = read_state[r][c]; \ - submit_follow_up_read = (submit_follow_up_read || pressed); \ - if (pressed != data->matrix_state[r][c]) { \ - LOG_DBG("Sending event at %d,%d state %s", r, c, (pressed ? "on" : "off")); \ - data->matrix_state[r][c] = pressed; \ - data->callback(dev, r, c, pressed); \ - } \ - } \ - } \ - if (submit_follow_up_read) { \ - CHECK_DEBOUNCE_CFG(n, ({ k_work_submit(&data->work); }), ({ \ - k_delayed_work_cancel(&data->work); \ - k_delayed_work_submit(&data->work, K_MSEC(5)); \ - })) \ - } \ - return 0; \ - } \ - \ - static void kscan_gpio_work_handler_##n(struct k_work *work) { \ - struct kscan_gpio_data_##n *data = CONTAINER_OF(work, struct kscan_gpio_data_##n, work); \ - kscan_gpio_read_##n(data->dev); \ - } \ - \ - static struct kscan_gpio_data_##n kscan_gpio_data_##n = { \ - .rows = {[INST_MATRIX_INPUTS(n) - 1] = NULL}, .cols = {[INST_DEMUX_GPIOS(n) - 1] = NULL}}; \ - \ - /* KSCAN API configure function */ \ - static int kscan_gpio_configure_##n(struct device *dev, kscan_callback_t callback) { \ - LOG_DBG("KSCAN API configure"); \ - struct kscan_gpio_data_##n *data = dev->driver_data; \ - if (!callback) { \ - return -EINVAL; \ - } \ - data->callback = callback; \ - LOG_DBG("Configured GPIO %d", n); \ - return 0; \ - }; \ - \ - /* KSCAN API enable function */ \ - static int kscan_gpio_enable_##n(struct device *dev) { \ - LOG_DBG("KSCAN API enable"); \ - struct kscan_gpio_data_##n *data = dev->driver_data; \ - /* TODO: we might want a follow up to hook into the sleep state hooks in Zephyr, */ \ - /* and disable this timer when we enter a sleep state */ \ - k_timer_start(&data->poll_timer, K_MSEC(POLL_INTERVAL(n)), K_MSEC(POLL_INTERVAL(n))); \ - return 0; \ - }; \ - \ - /* KSCAN API disable function */ \ - static int kscan_gpio_disable_##n(struct device *dev) { \ - LOG_DBG("KSCAN API disable"); \ - struct kscan_gpio_data_##n *data = dev->driver_data; \ - k_timer_stop(&data->poll_timer); \ - return 0; \ - }; \ - \ - /* GPIO init function*/ \ - static int kscan_gpio_init_##n(struct device *dev) { \ - LOG_DBG("KSCAN GPIO init"); \ - struct kscan_gpio_data_##n *data = dev->driver_data; \ - int err; \ - /* configure input devices*/ \ - struct device **input_devices = kscan_gpio_input_devices_##n(dev); \ - for (int i = 0; i < INST_MATRIX_INPUTS(n); i++) { \ - const struct kscan_gpio_item_config *in_cfg = &kscan_gpio_input_configs_##n(dev)[i]; \ - input_devices[i] = device_get_binding(in_cfg->label); \ - if (!input_devices[i]) { \ - LOG_ERR("Unable to find input GPIO device"); \ - return -EINVAL; \ - } \ - err = gpio_pin_configure(input_devices[i], in_cfg->pin, GPIO_INPUT | in_cfg->flags); \ - if (err) { \ - LOG_ERR("Unable to configure pin %d on %s for input", in_cfg->pin, in_cfg->label); \ - return err; \ - } else { \ - LOG_DBG("Configured pin %d on %s for input", in_cfg->pin, in_cfg->label); \ - } \ - if (err) { \ - LOG_ERR("Error adding the callback to the column device"); \ - return err; \ - } \ - } \ - /* configure output devices*/ \ - struct device **output_devices = kscan_gpio_output_devices_##n(dev); \ - for (int o = 0; o < INST_DEMUX_GPIOS(n); o++) { \ - const struct kscan_gpio_item_config *out_cfg = &kscan_gpio_output_configs_##n(dev)[o]; \ - output_devices[o] = device_get_binding(out_cfg->label); \ - if (!output_devices[o]) { \ - LOG_ERR("Unable to find output GPIO device"); \ - return -EINVAL; \ - } \ - err = gpio_pin_configure(output_devices[o], out_cfg->pin, \ - GPIO_OUTPUT_ACTIVE | out_cfg->flags); \ - if (err) { \ - LOG_ERR("Unable to configure pin %d on %s for output", out_cfg->pin, \ - out_cfg->label); \ - return err; \ - } else { \ - LOG_DBG("Configured pin %d on %s for output", out_cfg->pin, out_cfg->label); \ - } \ - } \ - data->dev = dev; \ - \ - k_timer_init(&data->poll_timer, kscan_gpio_timer_handler, NULL); \ - \ - (CHECK_DEBOUNCE_CFG(n, (k_work_init), (k_delayed_work_init)))( \ - &data->work, kscan_gpio_work_handler_##n); \ - return 0; \ - } \ - \ - static const struct kscan_driver_api gpio_driver_api_##n = { \ - .config = kscan_gpio_configure_##n, \ - .enable_callback = kscan_gpio_enable_##n, \ - .disable_callback = kscan_gpio_disable_##n, \ - }; \ - \ - static const struct kscan_gpio_config_##n kscan_gpio_config_##n = { \ - .rows = {UTIL_LISTIFY(INST_MATRIX_INPUTS(n), _KSCAN_GPIO_INPUT_CFG_INIT, n)}, \ - .cols = {UTIL_LISTIFY(INST_DEMUX_GPIOS(n), _KSCAN_GPIO_OUTPUT_CFG_INIT, n)}, \ - }; \ - \ - DEVICE_AND_API_INIT(kscan_gpio_##n, DT_INST_LABEL(n), kscan_gpio_init_##n, \ - &kscan_gpio_data_##n, &kscan_gpio_config_##n, APPLICATION, \ - CONFIG_APPLICATION_INIT_PRIORITY, &gpio_driver_api_##n); - -DT_INST_FOREACH_STATUS_OKAY(GPIO_INST_INIT) - -#endif /* DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT) */ diff --git a/zmk/app/drivers/zephyr/kscan_gpio_direct.c b/zmk/app/drivers/zephyr/kscan_gpio_direct.c deleted file mode 100644 index 4818c995..00000000 --- a/zmk/app/drivers/zephyr/kscan_gpio_direct.c +++ /dev/null @@ -1,230 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_kscan_gpio_direct - -#include -#include -#include -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#if DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT) - -struct kscan_gpio_item_config { - char *label; - gpio_pin_t pin; - gpio_flags_t flags; -}; - -union work_reference { - struct k_delayed_work delayed; - struct k_work direct; -}; - -struct kscan_gpio_config { - u8_t num_of_inputs; - u8_t debounce_period; - struct kscan_gpio_item_config inputs[]; -}; - -struct kscan_gpio_data { -#if defined(CONFIG_ZMK_KSCAN_DIRECT_POLLING) - struct k_timer poll_timer; -#endif /* defined(CONFIG_ZMK_KSCAN_DIRECT_POLLING) */ - kscan_callback_t callback; - union work_reference work; - struct device *dev; - u32_t pin_state; - struct device *inputs[]; -}; - -static struct device **kscan_gpio_input_devices(struct device *dev) { - struct kscan_gpio_data *data = dev->driver_data; - return data->inputs; -} - -static const struct kscan_gpio_item_config *kscan_gpio_input_configs(struct device *dev) { - const struct kscan_gpio_config *cfg = dev->config_info; - return cfg->inputs; -} - -#if !defined(CONFIG_ZMK_KSCAN_DIRECT_POLLING) - -struct kscan_gpio_irq_callback { - union work_reference *work; - u8_t debounce_period; - struct gpio_callback callback; -}; - -static int kscan_gpio_config_interrupts(struct device *dev, gpio_flags_t flags) { - const struct kscan_gpio_config *cfg = dev->config_info; - struct device **devices = kscan_gpio_input_devices(dev); - const struct kscan_gpio_item_config *configs = kscan_gpio_input_configs(dev); - - for (int i = 0; i < cfg->num_of_inputs; i++) { - struct device *dev = devices[i]; - const struct kscan_gpio_item_config *cfg = &configs[i]; - - int err = gpio_pin_interrupt_configure(dev, cfg->pin, flags); - - if (err) { - LOG_ERR("Unable to enable matrix GPIO interrupt"); - return err; - } - } - - return 0; -} - -static int kscan_gpio_direct_enable(struct device *dev) { - return kscan_gpio_config_interrupts(dev, GPIO_INT_DEBOUNCE | GPIO_INT_EDGE_BOTH); -} -static int kscan_gpio_direct_disable(struct device *dev) { - return kscan_gpio_config_interrupts(dev, GPIO_INT_DISABLE); -} - -static void kscan_gpio_irq_callback_handler(struct device *dev, struct gpio_callback *cb, - gpio_port_pins_t pin) { - struct kscan_gpio_irq_callback *data = - CONTAINER_OF(cb, struct kscan_gpio_irq_callback, callback); - - if (data->debounce_period > 0) { - k_delayed_work_cancel(&data->work->delayed); - k_delayed_work_submit(&data->work->delayed, K_MSEC(data->debounce_period)); - } else { - k_work_submit(&data->work->direct); - } -} - -#else /* !defined(CONFIG_ZMK_KSCAN_DIRECT_POLLING) */ - -static void kscan_gpio_timer_handler(struct k_timer *timer) { - struct kscan_gpio_data *data = CONTAINER_OF(timer, struct kscan_gpio_data, poll_timer); - - k_work_submit(&data->work.direct); -} - -static int kscan_gpio_direct_enable(struct device *dev) { - struct kscan_gpio_data *data = dev->driver_data; - k_timer_start(&data->poll_timer, K_MSEC(10), K_MSEC(10)); - return 0; -} -static int kscan_gpio_direct_disable(struct device *dev) { - struct kscan_gpio_data *data = dev->driver_data; - k_timer_stop(&data->poll_timer); - return 0; -} - -#endif /* defined(CONFIG_ZMK_KSCAN_DIRECT_POLLING) */ - -static int kscan_gpio_direct_configure(struct device *dev, kscan_callback_t callback) { - struct kscan_gpio_data *data = dev->driver_data; - if (!callback) { - return -EINVAL; - } - data->callback = callback; - return 0; -} - -static int kscan_gpio_read(struct device *dev) { - struct kscan_gpio_data *data = dev->driver_data; - const struct kscan_gpio_config *cfg = dev->config_info; - u32_t read_state = data->pin_state; - for (int i = 0; i < cfg->num_of_inputs; i++) { - struct device *in_dev = kscan_gpio_input_devices(dev)[i]; - const struct kscan_gpio_item_config *in_cfg = &kscan_gpio_input_configs(dev)[i]; - WRITE_BIT(read_state, i, gpio_pin_get(in_dev, in_cfg->pin) > 0); - } - for (int i = 0; i < cfg->num_of_inputs; i++) { - bool prev_pressed = BIT(i) & data->pin_state; - bool pressed = BIT(i) & read_state; - if (pressed != prev_pressed) { - LOG_DBG("Sending event at %d,%d state %s", 0, i, (pressed ? "on" : "off")); - WRITE_BIT(data->pin_state, i, pressed); - data->callback(dev, 0, i, pressed); - } - } - return 0; -} - -static void kscan_gpio_work_handler(struct k_work *work) { - struct kscan_gpio_data *data = CONTAINER_OF(work, struct kscan_gpio_data, work); - kscan_gpio_read(data->dev); -} - -static const struct kscan_driver_api gpio_driver_api = { - .config = kscan_gpio_direct_configure, - .enable_callback = kscan_gpio_direct_enable, - .disable_callback = kscan_gpio_direct_disable, -}; - -#define KSCAN_DIRECT_INPUT_ITEM(i, n) \ - { \ - .label = DT_INST_GPIO_LABEL_BY_IDX(n, input_gpios, i), \ - .pin = DT_INST_GPIO_PIN_BY_IDX(n, input_gpios, i), \ - .flags = DT_INST_GPIO_FLAGS_BY_IDX(n, input_gpios, i), \ - }, - -#define INST_INPUT_LEN(n) DT_INST_PROP_LEN(n, input_gpios) - -#define GPIO_INST_INIT(n) \ - COND_CODE_0(IS_ENABLED(CONFIG_ZMK_KSCAN_DIRECT_POLLING), \ - (static struct kscan_gpio_irq_callback irq_callbacks_##n[INST_INPUT_LEN(n)];), ()) \ - static struct kscan_gpio_data kscan_gpio_data_##n = { \ - .inputs = {[INST_INPUT_LEN(n) - 1] = NULL}}; \ - static int kscan_gpio_init_##n(struct device *dev) { \ - struct kscan_gpio_data *data = dev->driver_data; \ - const struct kscan_gpio_config *cfg = dev->config_info; \ - int err; \ - struct device **input_devices = kscan_gpio_input_devices(dev); \ - for (int i = 0; i < cfg->num_of_inputs; i++) { \ - const struct kscan_gpio_item_config *in_cfg = &kscan_gpio_input_configs(dev)[i]; \ - input_devices[i] = device_get_binding(in_cfg->label); \ - if (!input_devices[i]) { \ - LOG_ERR("Unable to find input GPIO device"); \ - return -EINVAL; \ - } \ - err = gpio_pin_configure(input_devices[i], in_cfg->pin, GPIO_INPUT | in_cfg->flags); \ - if (err) { \ - LOG_ERR("Unable to configure pin %d on %s for input", in_cfg->pin, in_cfg->label); \ - return err; \ - } \ - COND_CODE_0( \ - IS_ENABLED(CONFIG_ZMK_KSCAN_DIRECT_POLLING), \ - (irq_callbacks_##n[i].work = &data->work; \ - irq_callbacks_##n[i].debounce_period = cfg->debounce_period; \ - gpio_init_callback(&irq_callbacks_##n[i].callback, \ - kscan_gpio_irq_callback_handler, BIT(in_cfg->pin)); \ - err = gpio_add_callback(input_devices[i], &irq_callbacks_##n[i].callback); \ - if (err) { \ - LOG_ERR("Error adding the callback to the column device"); \ - return err; \ - }), \ - ()) \ - } \ - data->dev = dev; \ - COND_CODE_1(IS_ENABLED(CONFIG_ZMK_KSCAN_DIRECT_POLLING), \ - (k_timer_init(&data->poll_timer, kscan_gpio_timer_handler, NULL);), ()) \ - if (cfg->debounce_period > 0) { \ - k_delayed_work_init(&data->work.delayed, kscan_gpio_work_handler); \ - } else { \ - k_work_init(&data->work.direct, kscan_gpio_work_handler); \ - } \ - return 0; \ - } \ - static const struct kscan_gpio_config kscan_gpio_config_##n = { \ - .inputs = {UTIL_LISTIFY(INST_INPUT_LEN(n), KSCAN_DIRECT_INPUT_ITEM, n)}, \ - .num_of_inputs = INST_INPUT_LEN(n), \ - .debounce_period = DT_INST_PROP(n, debounce_period)}; \ - DEVICE_AND_API_INIT(kscan_gpio_##n, DT_INST_LABEL(n), kscan_gpio_init_##n, \ - &kscan_gpio_data_##n, &kscan_gpio_config_##n, POST_KERNEL, \ - CONFIG_ZMK_KSCAN_INIT_PRIORITY, &gpio_driver_api); - -DT_INST_FOREACH_STATUS_OKAY(GPIO_INST_INIT) - -#endif /* DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT) */ diff --git a/zmk/app/drivers/zephyr/kscan_gpio_matrix.c b/zmk/app/drivers/zephyr/kscan_gpio_matrix.c deleted file mode 100644 index ec4fb39a..00000000 --- a/zmk/app/drivers/zephyr/kscan_gpio_matrix.c +++ /dev/null @@ -1,294 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_kscan_gpio_matrix - -#include -#include -#include -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#if DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT) - -struct kscan_gpio_item_config { - char *label; - gpio_pin_t pin; - gpio_flags_t flags; -}; - -#define _KSCAN_GPIO_ITEM_CFG_INIT(n, prop, idx) \ - { \ - .label = DT_INST_GPIO_LABEL_BY_IDX(n, prop, idx), \ - .pin = DT_INST_GPIO_PIN_BY_IDX(n, prop, idx), \ - .flags = DT_INST_GPIO_FLAGS_BY_IDX(n, prop, idx), \ - }, - -#define _KSCAN_GPIO_ROW_CFG_INIT(idx, n) _KSCAN_GPIO_ITEM_CFG_INIT(n, row_gpios, idx) -#define _KSCAN_GPIO_COL_CFG_INIT(idx, n) _KSCAN_GPIO_ITEM_CFG_INIT(n, col_gpios, idx) - -#if !defined(CONFIG_ZMK_KSCAN_MATRIX_POLLING) -static int kscan_gpio_config_interrupts(struct device **devices, - const struct kscan_gpio_item_config *configs, size_t len, - gpio_flags_t flags) { - for (int i = 0; i < len; i++) { - struct device *dev = devices[i]; - const struct kscan_gpio_item_config *cfg = &configs[i]; - - int err = gpio_pin_interrupt_configure(dev, cfg->pin, flags); - - if (err) { - LOG_ERR("Unable to enable matrix GPIO interrupt"); - return err; - } - } - - return 0; -} -#endif - -#define INST_MATRIX_ROWS(n) DT_INST_PROP_LEN(n, row_gpios) -#define INST_MATRIX_COLS(n) DT_INST_PROP_LEN(n, col_gpios) -#define INST_OUTPUT_LEN(n) \ - COND_CODE_0(DT_ENUM_IDX(DT_DRV_INST(n), diode_direction), (INST_MATRIX_ROWS(n)), \ - (INST_MATRIX_COLS(n))) -#define INST_INPUT_LEN(n) \ - COND_CODE_0(DT_ENUM_IDX(DT_DRV_INST(n), diode_direction), (INST_MATRIX_COLS(n)), \ - (INST_MATRIX_ROWS(n))) - -#define GPIO_INST_INIT(n) \ - struct kscan_gpio_irq_callback_##n { \ - struct COND_CODE_0(DT_INST_PROP(n, debounce_period), (k_work), (k_delayed_work)) * work; \ - struct gpio_callback callback; \ - struct device *dev; \ - }; \ - static struct kscan_gpio_irq_callback_##n irq_callbacks_##n[INST_INPUT_LEN(n)]; \ - struct kscan_gpio_config_##n { \ - struct kscan_gpio_item_config rows[INST_MATRIX_ROWS(n)]; \ - struct kscan_gpio_item_config cols[INST_MATRIX_COLS(n)]; \ - }; \ - struct kscan_gpio_data_##n { \ - kscan_callback_t callback; \ - COND_CODE_1(CONFIG_ZMK_KSCAN_MATRIX_POLLING, (struct k_timer poll_timer;), ()) \ - struct COND_CODE_0(DT_INST_PROP(n, debounce_period), (k_work), (k_delayed_work)) work; \ - bool matrix_state[INST_MATRIX_ROWS(n)][INST_MATRIX_COLS(n)]; \ - struct device *rows[INST_MATRIX_ROWS(n)]; \ - struct device *cols[INST_MATRIX_COLS(n)]; \ - struct device *dev; \ - }; \ - static struct device **kscan_gpio_input_devices_##n(struct device *dev) { \ - struct kscan_gpio_data_##n *data = dev->driver_data; \ - return (COND_CODE_0(DT_ENUM_IDX(DT_DRV_INST(n), diode_direction), (data->cols), \ - (data->rows))); \ - } \ - static const struct kscan_gpio_item_config *kscan_gpio_input_configs_##n(struct device *dev) { \ - const struct kscan_gpio_config_##n *cfg = dev->config_info; \ - return (( \ - COND_CODE_0(DT_ENUM_IDX(DT_DRV_INST(n), diode_direction), (cfg->cols), (cfg->rows)))); \ - } \ - static struct device **kscan_gpio_output_devices_##n(struct device *dev) { \ - struct kscan_gpio_data_##n *data = dev->driver_data; \ - return (COND_CODE_0(DT_ENUM_IDX(DT_DRV_INST(n), diode_direction), (data->rows), \ - (data->cols))); \ - } \ - static const struct kscan_gpio_item_config *kscan_gpio_output_configs_##n( \ - struct device *dev) { \ - const struct kscan_gpio_config_##n *cfg = dev->config_info; \ - return ( \ - COND_CODE_0(DT_ENUM_IDX(DT_DRV_INST(n), diode_direction), (cfg->rows), (cfg->cols))); \ - } \ - COND_CODE_1(CONFIG_ZMK_KSCAN_MATRIX_POLLING, (), \ - ( \ - static int kscan_gpio_enable_interrupts_##n(struct device *dev) { \ - return kscan_gpio_config_interrupts( \ - kscan_gpio_input_devices_##n(dev), kscan_gpio_input_configs_##n(dev), \ - INST_INPUT_LEN(n), GPIO_INT_LEVEL_ACTIVE); \ - } static int kscan_gpio_disable_interrupts_##n(struct device *dev) { \ - return kscan_gpio_config_interrupts(kscan_gpio_input_devices_##n(dev), \ - kscan_gpio_input_configs_##n(dev), \ - INST_INPUT_LEN(n), GPIO_INT_DISABLE); \ - })) \ - static void kscan_gpio_set_output_state_##n(struct device *dev, int value) { \ - int err; \ - for (int i = 0; i < INST_OUTPUT_LEN(n); i++) { \ - struct device *in_dev = kscan_gpio_output_devices_##n(dev)[i]; \ - const struct kscan_gpio_item_config *cfg = &kscan_gpio_output_configs_##n(dev)[i]; \ - if ((err = gpio_pin_set(in_dev, cfg->pin, value))) { \ - LOG_DBG("FAILED TO SET OUTPUT %d to %d", cfg->pin, err); \ - } \ - } \ - } \ - static void kscan_gpio_set_matrix_state_##n( \ - bool state[INST_MATRIX_ROWS(n)][INST_MATRIX_COLS(n)], u32_t input_index, \ - u32_t output_index, bool value) { \ - state[COND_CODE_0(DT_ENUM_IDX(DT_DRV_INST(n), diode_direction), (output_index), \ - (input_index))] \ - [COND_CODE_0(DT_ENUM_IDX(DT_DRV_INST(n), diode_direction), (input_index), \ - (output_index))] = value; \ - } \ - static int kscan_gpio_read_##n(struct device *dev) { \ - bool submit_follow_up_read = false; \ - struct kscan_gpio_data_##n *data = dev->driver_data; \ - static bool read_state[INST_MATRIX_ROWS(n)][INST_MATRIX_COLS(n)]; \ - /* Disable our interrupts temporarily while we scan, to avoid */ \ - /* re-entry while we iterate columns and set them active one by one */ \ - /* to get pressed state for each matrix cell. */ \ - kscan_gpio_set_output_state_##n(dev, 0); \ - for (int o = 0; o < INST_OUTPUT_LEN(n); o++) { \ - struct device *out_dev = kscan_gpio_output_devices_##n(dev)[o]; \ - const struct kscan_gpio_item_config *out_cfg = &kscan_gpio_output_configs_##n(dev)[o]; \ - gpio_pin_set(out_dev, out_cfg->pin, 1); \ - for (int i = 0; i < INST_INPUT_LEN(n); i++) { \ - struct device *in_dev = kscan_gpio_input_devices_##n(dev)[i]; \ - const struct kscan_gpio_item_config *in_cfg = \ - &kscan_gpio_input_configs_##n(dev)[i]; \ - kscan_gpio_set_matrix_state_##n(read_state, i, o, \ - gpio_pin_get(in_dev, in_cfg->pin) > 0); \ - } \ - gpio_pin_set(out_dev, out_cfg->pin, 0); \ - } \ - /* Set all our outputs as active again. */ \ - kscan_gpio_set_output_state_##n(dev, 1); \ - for (int r = 0; r < INST_MATRIX_ROWS(n); r++) { \ - for (int c = 0; c < INST_MATRIX_COLS(n); c++) { \ - bool pressed = read_state[r][c]; \ - /* Follow up reads needed because further interrupts won't fire on already tripped \ - * input GPIO pins */ \ - submit_follow_up_read = (submit_follow_up_read || pressed); \ - if (pressed != data->matrix_state[r][c]) { \ - LOG_DBG("Sending event at %d,%d state %s", r, c, (pressed ? "on" : "off")); \ - data->matrix_state[r][c] = pressed; \ - data->callback(dev, r, c, pressed); \ - } \ - } \ - } \ - if (submit_follow_up_read) { \ - COND_CODE_0(DT_INST_PROP(n, debounce_period), ({ k_work_submit(&data->work); }), ({ \ - k_delayed_work_cancel(&data->work); \ - k_delayed_work_submit(&data->work, K_MSEC(5)); \ - })) \ - } else { \ - COND_CODE_1(CONFIG_ZMK_KSCAN_MATRIX_POLLING, (), \ - (kscan_gpio_enable_interrupts_##n(dev);)) \ - } \ - return 0; \ - } \ - static void kscan_gpio_work_handler_##n(struct k_work *work) { \ - struct kscan_gpio_data_##n *data = CONTAINER_OF(work, struct kscan_gpio_data_##n, work); \ - kscan_gpio_read_##n(data->dev); \ - } \ - static void kscan_gpio_irq_callback_handler_##n(struct device *dev, struct gpio_callback *cb, \ - gpio_port_pins_t pin) { \ - struct kscan_gpio_irq_callback_##n *data = \ - CONTAINER_OF(cb, struct kscan_gpio_irq_callback_##n, callback); \ - COND_CODE_1(CONFIG_ZMK_KSCAN_MATRIX_POLLING, (), \ - (kscan_gpio_disable_interrupts_##n(data->dev);)) \ - COND_CODE_0(DT_INST_PROP(n, debounce_period), ({ k_work_submit(data->work); }), ({ \ - k_delayed_work_cancel(data->work); \ - k_delayed_work_submit(data->work, \ - K_MSEC(DT_INST_PROP(n, debounce_period))); \ - })) \ - } \ - \ - static struct kscan_gpio_data_##n kscan_gpio_data_##n = { \ - .rows = {[INST_MATRIX_ROWS(n) - 1] = NULL}, .cols = {[INST_MATRIX_COLS(n) - 1] = NULL}}; \ - static int kscan_gpio_configure_##n(struct device *dev, kscan_callback_t callback) { \ - struct kscan_gpio_data_##n *data = dev->driver_data; \ - if (!callback) { \ - return -EINVAL; \ - } \ - data->callback = callback; \ - LOG_DBG("Configured GPIO %d", n); \ - return 0; \ - }; \ - static int kscan_gpio_enable_##n(struct device *dev) { \ - COND_CODE_1(CONFIG_ZMK_KSCAN_MATRIX_POLLING, \ - (struct kscan_gpio_data_##n *data = dev->driver_data; \ - k_timer_start(&data->poll_timer, K_MSEC(10), K_MSEC(10)); return 0;), \ - (int err = kscan_gpio_enable_interrupts_##n(dev); \ - if (err) { return err; } return kscan_gpio_read_##n(dev);)) \ - }; \ - static int kscan_gpio_disable_##n(struct device *dev) { \ - COND_CODE_1(CONFIG_ZMK_KSCAN_MATRIX_POLLING, \ - (struct kscan_gpio_data_##n *data = dev->driver_data; \ - k_timer_stop(&data->poll_timer); return 0;), \ - (return kscan_gpio_disable_interrupts_##n(dev);)) \ - }; \ - COND_CODE_1(CONFIG_ZMK_KSCAN_MATRIX_POLLING, \ - (static void kscan_gpio_timer_handler(struct k_timer *timer) { \ - struct kscan_gpio_data_##n *data = \ - CONTAINER_OF(timer, struct kscan_gpio_data_##n, poll_timer); \ - k_work_submit(&data->work.work); \ - }), \ - ()) \ - static int kscan_gpio_init_##n(struct device *dev) { \ - struct kscan_gpio_data_##n *data = dev->driver_data; \ - int err; \ - struct device **input_devices = kscan_gpio_input_devices_##n(dev); \ - for (int i = 0; i < INST_INPUT_LEN(n); i++) { \ - const struct kscan_gpio_item_config *in_cfg = &kscan_gpio_input_configs_##n(dev)[i]; \ - input_devices[i] = device_get_binding(in_cfg->label); \ - if (!input_devices[i]) { \ - LOG_ERR("Unable to find input GPIO device"); \ - return -EINVAL; \ - } \ - err = gpio_pin_configure(input_devices[i], in_cfg->pin, GPIO_INPUT | in_cfg->flags); \ - if (err) { \ - LOG_ERR("Unable to configure pin %d on %s for input", in_cfg->pin, in_cfg->label); \ - return err; \ - } else { \ - LOG_DBG("Configured pin %d on %s for input", in_cfg->pin, in_cfg->label); \ - } \ - irq_callbacks_##n[i].work = &data->work; \ - irq_callbacks_##n[i].dev = dev; \ - gpio_init_callback(&irq_callbacks_##n[i].callback, \ - kscan_gpio_irq_callback_handler_##n, BIT(in_cfg->pin)); \ - err = gpio_add_callback(input_devices[i], &irq_callbacks_##n[i].callback); \ - if (err) { \ - LOG_ERR("Error adding the callback to the column device"); \ - return err; \ - } \ - } \ - struct device **output_devices = kscan_gpio_output_devices_##n(dev); \ - for (int o = 0; o < INST_OUTPUT_LEN(n); o++) { \ - const struct kscan_gpio_item_config *out_cfg = &kscan_gpio_output_configs_##n(dev)[o]; \ - output_devices[o] = device_get_binding(out_cfg->label); \ - if (!output_devices[o]) { \ - LOG_ERR("Unable to find output GPIO device"); \ - return -EINVAL; \ - } \ - err = gpio_pin_configure(output_devices[o], out_cfg->pin, \ - GPIO_OUTPUT_ACTIVE | out_cfg->flags); \ - if (err) { \ - LOG_ERR("Unable to configure pin %d on %s for output", out_cfg->pin, \ - out_cfg->label); \ - return err; \ - } \ - } \ - data->dev = dev; \ - COND_CODE_1(CONFIG_ZMK_KSCAN_MATRIX_POLLING, \ - (k_timer_init(&data->poll_timer, kscan_gpio_timer_handler, NULL);), ()) \ - (COND_CODE_0(DT_INST_PROP(n, debounce_period), (k_work_init), (k_delayed_work_init)))( \ - &data->work, kscan_gpio_work_handler_##n); \ - return 0; \ - } \ - static const struct kscan_driver_api gpio_driver_api_##n = { \ - .config = kscan_gpio_configure_##n, \ - .enable_callback = kscan_gpio_enable_##n, \ - .disable_callback = kscan_gpio_disable_##n, \ - }; \ - static const struct kscan_gpio_config_##n kscan_gpio_config_##n = { \ - .rows = {UTIL_LISTIFY(INST_MATRIX_ROWS(n), _KSCAN_GPIO_ROW_CFG_INIT, n)}, \ - .cols = {UTIL_LISTIFY(INST_MATRIX_COLS(n), _KSCAN_GPIO_COL_CFG_INIT, n)}, \ - }; \ - DEVICE_AND_API_INIT(kscan_gpio_##n, DT_INST_LABEL(n), kscan_gpio_init_##n, \ - &kscan_gpio_data_##n, &kscan_gpio_config_##n, APPLICATION, \ - CONFIG_APPLICATION_INIT_PRIORITY, &gpio_driver_api_##n); - -DT_INST_FOREACH_STATUS_OKAY(GPIO_INST_INIT) - -#endif /* DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT) */ diff --git a/zmk/app/drivers/zephyr/module.yaml b/zmk/app/drivers/zephyr/module.yaml deleted file mode 100644 index cbff6a1a..00000000 --- a/zmk/app/drivers/zephyr/module.yaml +++ /dev/null @@ -1,3 +0,0 @@ -build: - cmake: zephyr - kconfig: zephyr/Kconfig diff --git a/zmk/app/drivers/zephyr/module.yml b/zmk/app/drivers/zephyr/module.yml deleted file mode 100644 index cbff6a1a..00000000 --- a/zmk/app/drivers/zephyr/module.yml +++ /dev/null @@ -1,3 +0,0 @@ -build: - cmake: zephyr - kconfig: zephyr/Kconfig diff --git a/zmk/app/dts/behaviors.dtsi b/zmk/app/dts/behaviors.dtsi deleted file mode 100644 index a120b84b..00000000 --- a/zmk/app/dts/behaviors.dtsi +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include diff --git a/zmk/app/dts/behaviors/bluetooth.dtsi b/zmk/app/dts/behaviors/bluetooth.dtsi deleted file mode 100644 index 9df974b4..00000000 --- a/zmk/app/dts/behaviors/bluetooth.dtsi +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/ { - behaviors { - bt: behavior_bluetooth { - compatible = "zmk,behavior-bluetooth"; - label = "BLUETOOTH"; - #binding-cells = <2>; - }; - }; -}; diff --git a/zmk/app/dts/behaviors/ext_power.dtsi b/zmk/app/dts/behaviors/ext_power.dtsi deleted file mode 100644 index 471e9fa2..00000000 --- a/zmk/app/dts/behaviors/ext_power.dtsi +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/ { - behaviors { - ext_power: behavior_ext_power { - compatible = "zmk,behavior-ext-power"; - label = "EXT_POWER_BEHAVIOR"; - #binding-cells = <1>; - }; - }; -}; diff --git a/zmk/app/dts/behaviors/key_press.dtsi b/zmk/app/dts/behaviors/key_press.dtsi deleted file mode 100644 index 98064f69..00000000 --- a/zmk/app/dts/behaviors/key_press.dtsi +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/ { - behaviors { - /* DEPRECATED: `cp` will be removed in the future */ - cp: kp: behavior_key_press { - compatible = "zmk,behavior-key-press"; - label = "KEY_PRESS"; - #binding-cells = <1>; - }; - }; -}; diff --git a/zmk/app/dts/behaviors/layer_tap.dtsi b/zmk/app/dts/behaviors/layer_tap.dtsi deleted file mode 100644 index cca481a7..00000000 --- a/zmk/app/dts/behaviors/layer_tap.dtsi +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/ { - behaviors { - lt: behavior_layer_tap { - compatible = "zmk,behavior-hold-tap"; - label = "LAYER_TAP"; - #binding-cells = <2>; - flavor = "tap-preferred"; - tapping_term_ms = <200>; - bindings = <&mo>, <&kp>; - }; - }; -}; diff --git a/zmk/app/dts/behaviors/mod_tap.dtsi b/zmk/app/dts/behaviors/mod_tap.dtsi deleted file mode 100644 index b972aba1..00000000 --- a/zmk/app/dts/behaviors/mod_tap.dtsi +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/ { - behaviors { - mt: behavior_mod_tap { - compatible = "zmk,behavior-hold-tap"; - label = "MOD_TAP"; - #binding-cells = <2>; - flavor = "hold-preferred"; - tapping_term_ms = <200>; - bindings = <&kp>, <&kp>; - }; - }; -}; diff --git a/zmk/app/dts/behaviors/momentary_layer.dtsi b/zmk/app/dts/behaviors/momentary_layer.dtsi deleted file mode 100644 index d3b21da9..00000000 --- a/zmk/app/dts/behaviors/momentary_layer.dtsi +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/ { - behaviors { - mo: behavior_momentary_layer { - compatible = "zmk,behavior-momentary-layer"; - label = "MO"; - #binding-cells = <1>; - }; - }; -}; diff --git a/zmk/app/dts/behaviors/none.dtsi b/zmk/app/dts/behaviors/none.dtsi deleted file mode 100644 index 1fe2cff7..00000000 --- a/zmk/app/dts/behaviors/none.dtsi +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/ { - behaviors { - none: behavior_none { - compatible = "zmk,behavior-none"; - label = "NONE"; - #binding-cells = <0>; - }; - }; -}; diff --git a/zmk/app/dts/behaviors/outputs.dtsi b/zmk/app/dts/behaviors/outputs.dtsi deleted file mode 100644 index ee17e1df..00000000 --- a/zmk/app/dts/behaviors/outputs.dtsi +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/ { - behaviors { - out: behavior_outputs { - compatible = "zmk,behavior-outputs"; - label = "OUTPUTS"; - #binding-cells = <1>; - }; - }; -}; diff --git a/zmk/app/dts/behaviors/reset.dtsi b/zmk/app/dts/behaviors/reset.dtsi deleted file mode 100644 index cf363425..00000000 --- a/zmk/app/dts/behaviors/reset.dtsi +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - -/ { - behaviors { - reset: behavior_reset { - compatible = "zmk,behavior-reset"; - label = "RESET"; - #binding-cells = <0>; - }; - - bootloader: behavior_reset_dfu { - compatible = "zmk,behavior-reset"; - label = "BOOTLOADER_RESET"; - type = ; - #binding-cells = <0>; - }; - }; -}; diff --git a/zmk/app/dts/behaviors/rgb_underglow.dtsi b/zmk/app/dts/behaviors/rgb_underglow.dtsi deleted file mode 100644 index 22aff93f..00000000 --- a/zmk/app/dts/behaviors/rgb_underglow.dtsi +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/ { - behaviors { - rgb_ug: behavior_rgb_underglow { - compatible = "zmk,behavior-rgb-underglow"; - label = "RGB_UNDERGLOW"; - #binding-cells = <1>; - }; - }; -}; diff --git a/zmk/app/dts/behaviors/sensor_rotate_key_press.dtsi b/zmk/app/dts/behaviors/sensor_rotate_key_press.dtsi deleted file mode 100644 index 075fc38e..00000000 --- a/zmk/app/dts/behaviors/sensor_rotate_key_press.dtsi +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/ { - behaviors { - /* DEPRECATED: `inc_dec_cp` will be removed in the future */ - inc_dec_cp: inc_dec_kp: behavior_sensor_rotate_key_press { - compatible = "zmk,behavior-sensor-rotate-key-press"; - label = "ENC_KEY_PRESS"; - #sensor-binding-cells = <2>; - }; - }; -}; diff --git a/zmk/app/dts/behaviors/toggle_layer.dtsi b/zmk/app/dts/behaviors/toggle_layer.dtsi deleted file mode 100644 index 40453962..00000000 --- a/zmk/app/dts/behaviors/toggle_layer.dtsi +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/ { - behaviors { - tog: behavior_toggle_layer { - compatible = "zmk,behavior-toggle-layer"; - label = "TOGGLE_LAYER"; - #binding-cells = <1>; - }; - }; -}; diff --git a/zmk/app/dts/behaviors/transparent.dtsi b/zmk/app/dts/behaviors/transparent.dtsi deleted file mode 100644 index 09f9ea00..00000000 --- a/zmk/app/dts/behaviors/transparent.dtsi +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -/ { - behaviors { - trans: behavior_transparent { - compatible = "zmk,behavior-transparent"; - label = "TRANS"; - #binding-cells = <0>; - }; - }; -}; diff --git a/zmk/app/dts/bindings/behaviors/one_param.yaml b/zmk/app/dts/bindings/behaviors/one_param.yaml deleted file mode 100644 index 1f33aee2..00000000 --- a/zmk/app/dts/bindings/behaviors/one_param.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright (c) 2020, Pete Johanson -# SPDX-License-Identifier: MIT - -properties: - label: - type: string - required: true - "#binding-cells": - type: int - required: true - const: 1 - -binding-cells: - - param1 diff --git a/zmk/app/dts/bindings/behaviors/two_param.yaml b/zmk/app/dts/bindings/behaviors/two_param.yaml deleted file mode 100644 index f8b3af93..00000000 --- a/zmk/app/dts/bindings/behaviors/two_param.yaml +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright (c) 2020, Pete Johanson -# SPDX-License-Identifier: MIT - -properties: - label: - type: string - required: true - "#binding-cells": - type: int - required: true - const: 2 - -binding-cells: - - param1 - - param2 diff --git a/zmk/app/dts/bindings/behaviors/zero_param.yaml b/zmk/app/dts/bindings/behaviors/zero_param.yaml deleted file mode 100644 index 20f15288..00000000 --- a/zmk/app/dts/bindings/behaviors/zero_param.yaml +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright (c) 2020, Pete Johanson -# SPDX-License-Identifier: MIT - -properties: - label: - type: string - required: true - "#binding-cells": - type: int - required: true - const: 0 diff --git a/zmk/app/dts/bindings/behaviors/zmk,behavior-bluetooth.yaml b/zmk/app/dts/bindings/behaviors/zmk,behavior-bluetooth.yaml deleted file mode 100644 index 127ebe0b..00000000 --- a/zmk/app/dts/bindings/behaviors/zmk,behavior-bluetooth.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020, Peter Johanson -# SPDX-License-Identifier: MIT - -description: Bluetooth Behavior - -compatible: "zmk,behavior-bluetooth" - -include: two_param.yaml diff --git a/zmk/app/dts/bindings/behaviors/zmk,behavior-ext-power.yaml b/zmk/app/dts/bindings/behaviors/zmk,behavior-ext-power.yaml deleted file mode 100644 index d86c6f9f..00000000 --- a/zmk/app/dts/bindings/behaviors/zmk,behavior-ext-power.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# -# Copyright (c) 2020, The ZMK Contributors -# SPDX-License-Identifier: MIT -# - -description: External power control Behavior - -compatible: "zmk,behavior-ext-power" - -include: one_param.yaml diff --git a/zmk/app/dts/bindings/behaviors/zmk,behavior-hold-tap.yaml b/zmk/app/dts/bindings/behaviors/zmk,behavior-hold-tap.yaml deleted file mode 100644 index 5f74e9ad..00000000 --- a/zmk/app/dts/bindings/behaviors/zmk,behavior-hold-tap.yaml +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -description: Hold or Tap behavior - -compatible: "zmk,behavior-hold-tap" - -include: two_param.yaml - -properties: - bindings: - type: phandles - required: true - tapping_term_ms: - type: int - flavor: - type: string - required: false - default: "hold-preferred" - enum: - - "hold-preferred" - - "balanced" - - "tap-preferred" diff --git a/zmk/app/dts/bindings/behaviors/zmk,behavior-key-press.yaml b/zmk/app/dts/bindings/behaviors/zmk,behavior-key-press.yaml deleted file mode 100644 index 0169d7d5..00000000 --- a/zmk/app/dts/bindings/behaviors/zmk,behavior-key-press.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020, Pete Johanson -# SPDX-License-Identifier: MIT - -description: Key press/release behavior - -compatible: "zmk,behavior-key-press" - -include: one_param.yaml diff --git a/zmk/app/dts/bindings/behaviors/zmk,behavior-momentary-layer.yaml b/zmk/app/dts/bindings/behaviors/zmk,behavior-momentary-layer.yaml deleted file mode 100644 index 70c7c7f9..00000000 --- a/zmk/app/dts/bindings/behaviors/zmk,behavior-momentary-layer.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020, Pete Johanson -# SPDX-License-Identifier: MIT - -description: Momentary layer on press/release behavior - -compatible: "zmk,behavior-momentary-layer" - -include: one_param.yaml diff --git a/zmk/app/dts/bindings/behaviors/zmk,behavior-none.yaml b/zmk/app/dts/bindings/behaviors/zmk,behavior-none.yaml deleted file mode 100644 index 9c66c947..00000000 --- a/zmk/app/dts/bindings/behaviors/zmk,behavior-none.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020, Pete Johanson -# SPDX-License-Identifier: MIT - -description: None Binding Behavior - -compatible: "zmk,behavior-none" - -include: zero_param.yaml diff --git a/zmk/app/dts/bindings/behaviors/zmk,behavior-outputs.yaml b/zmk/app/dts/bindings/behaviors/zmk,behavior-outputs.yaml deleted file mode 100644 index 8bcefd94..00000000 --- a/zmk/app/dts/bindings/behaviors/zmk,behavior-outputs.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# -# Copyright (c) 2020, The ZMK Contributors -# SPDX-License-Identifier: MIT -# - -description: Output Selection Behavior - -compatible: "zmk,behavior-outputs" - -include: one_param.yaml diff --git a/zmk/app/dts/bindings/behaviors/zmk,behavior-reset.yaml b/zmk/app/dts/bindings/behaviors/zmk,behavior-reset.yaml deleted file mode 100644 index 061b15e3..00000000 --- a/zmk/app/dts/bindings/behaviors/zmk,behavior-reset.yaml +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright (c) 2020, Pete Johanson -# SPDX-License-Identifier: MIT - -description: Keyboard Reset Behavior - -compatible: "zmk,behavior-reset" - -include: zero_param.yaml - -properties: - type: - type: int - default: 0 diff --git a/zmk/app/dts/bindings/behaviors/zmk,behavior-rgb-underglow.yaml b/zmk/app/dts/bindings/behaviors/zmk,behavior-rgb-underglow.yaml deleted file mode 100644 index 2cb74b9c..00000000 --- a/zmk/app/dts/bindings/behaviors/zmk,behavior-rgb-underglow.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -description: RGB Underglow Action - -compatible: "zmk,behavior-rgb-underglow" - -include: one_param.yaml diff --git a/zmk/app/dts/bindings/behaviors/zmk,behavior-sensor-rotate-key-press.yaml b/zmk/app/dts/bindings/behaviors/zmk,behavior-sensor-rotate-key-press.yaml deleted file mode 100644 index b34507f7..00000000 --- a/zmk/app/dts/bindings/behaviors/zmk,behavior-sensor-rotate-key-press.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (c) 2020, The ZMK Contributors -# SPDX-License-Identifier: MIT - -description: Sensor rotate key press/release behavior - -compatible: "zmk,behavior-sensor-rotate-key-press" - -properties: - label: - type: string - required: true - "#sensor-binding-cells": - type: int - required: true - const: 2 - -sensor-binding-cells: - - param1 - - param2 diff --git a/zmk/app/dts/bindings/behaviors/zmk,behavior-toggle-layer.yaml b/zmk/app/dts/bindings/behaviors/zmk,behavior-toggle-layer.yaml deleted file mode 100644 index 0a9723f7..00000000 --- a/zmk/app/dts/bindings/behaviors/zmk,behavior-toggle-layer.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# SPDX-License-Identifier: MIT - -description: Toggle Layer - -compatible: "zmk,behavior-toggle-layer" - -include: one_param.yaml diff --git a/zmk/app/dts/bindings/behaviors/zmk,behavior-transparent.yaml b/zmk/app/dts/bindings/behaviors/zmk,behavior-transparent.yaml deleted file mode 100644 index 33f1abae..00000000 --- a/zmk/app/dts/bindings/behaviors/zmk,behavior-transparent.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020, Pete Johanson -# SPDX-License-Identifier: MIT - -description: Transparent Binding Behavior - -compatible: "zmk,behavior-transparent" - -include: zero_param.yaml diff --git a/zmk/app/dts/bindings/zmk,ext-power-generic.yaml b/zmk/app/dts/bindings/zmk,ext-power-generic.yaml deleted file mode 100644 index 5a38a09a..00000000 --- a/zmk/app/dts/bindings/zmk,ext-power-generic.yaml +++ /dev/null @@ -1,20 +0,0 @@ -# -# Copyright (c) 2020, The ZMK Contributors -# SPDX-License-Identifier: MIT -# - -description: | - Generic driver for controlling the external power output - by toggling the control-gpio pin status - (Only in supported hardware) - -compatible: "zmk,ext-power-generic" - -properties: - control-gpios: - type: phandle-array - required: true - label: - type: string - required: true - diff --git a/zmk/app/dts/bindings/zmk,keymap-sensors.yaml b/zmk/app/dts/bindings/zmk,keymap-sensors.yaml deleted file mode 100644 index 86ae5c22..00000000 --- a/zmk/app/dts/bindings/zmk,keymap-sensors.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# -# Copyright (c) 2020, The ZMK Contributors -# SPDX-License-Identifier: MIT -# - -description: | - Allows defining the collection of sensors bound in the keymap layers - -compatible: "zmk,keymap-sensors" - -properties: - sensors: - type: phandles - required: true diff --git a/zmk/app/dts/bindings/zmk,keymap.yaml b/zmk/app/dts/bindings/zmk,keymap.yaml deleted file mode 100644 index fb6d9147..00000000 --- a/zmk/app/dts/bindings/zmk,keymap.yaml +++ /dev/null @@ -1,15 +0,0 @@ -description: | - Allows defining a keymap composed of multiple layers - -compatible: "zmk,keymap" - -child-binding: - description: "A layer to be used in a keymap" - - properties: - bindings: - type: phandle-array - required: true - sensor-bindings: - type: phandle-array - required: false diff --git a/zmk/app/dts/bindings/zmk,kscan-composite.yaml b/zmk/app/dts/bindings/zmk,kscan-composite.yaml deleted file mode 100644 index 6126c303..00000000 --- a/zmk/app/dts/bindings/zmk,kscan-composite.yaml +++ /dev/null @@ -1,27 +0,0 @@ -description: | - Allows composing multiple KSCAN devices into one virtual device - -compatible: "zmk,kscan-composite" - -properties: - label: - type: string - rows: - type: int - columns: - type: int - -child-binding: - description: "Details of an included KSCAN devices" - - properties: - label: - type: string - kscan: - type: phandle - row-offset: - type: int - default: 0 - column-offset: - type: int - default: 0 diff --git a/zmk/app/dts/bindings/zmk,kscan-mock.yaml b/zmk/app/dts/bindings/zmk,kscan-mock.yaml deleted file mode 100644 index f9d83fa7..00000000 --- a/zmk/app/dts/bindings/zmk,kscan-mock.yaml +++ /dev/null @@ -1,19 +0,0 @@ -description: | - Allows defining a mock keyboard scan driver that simulates periodic events. - -compatible: "zmk,kscan-mock" - -properties: - label: - type: string - event-period: - type: int - description: Milliseconds between each generated event - events: - type: array - rows: - type: int - columns: - type: int - exit-after: - type: boolean diff --git a/zmk/app/dts/bindings/zmk,matrix-transform.yaml b/zmk/app/dts/bindings/zmk,matrix-transform.yaml deleted file mode 100644 index b7d000c5..00000000 --- a/zmk/app/dts/bindings/zmk,matrix-transform.yaml +++ /dev/null @@ -1,18 +0,0 @@ -description: | - Defines a mapping from keymap logical positions to matrix physical positions - -compatible: "zmk,matrix-transform" - -properties: - columns: - type: int - required: true - rows: - type: int - required: true - col-offset: - type: int - default: 0 - map: - type: array - required: true diff --git a/zmk/app/dts/common/arduino_uno_pro_micro_map.dtsi b/zmk/app/dts/common/arduino_uno_pro_micro_map.dtsi deleted file mode 100644 index fe59a866..00000000 --- a/zmk/app/dts/common/arduino_uno_pro_micro_map.dtsi +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2020 Pete Johanson - * - * SPDX-License-Identifier: MIT - */ - -/* This provies a mapping from Arduino Uno to Arduino Pro Micro pins for development */ - -/ { - pro_micro_d: connector_d { - compatible = "arduino-pro-micro"; - #gpio-cells = <2>; - gpio-map-mask = <0xffffffff 0xffffffc0>; - gpio-map-pass-thru = <0 0x3f>; - gpio-map - = <0 0 &arduino_header 6 0> /* D0 */ - , <1 0 &arduino_header 7 0> /* D1 */ - , <2 0 &arduino_header 8 0> /* D2 */ - , <3 0 &arduino_header 9 0> /* D3 */ - , <4 0 &arduino_header 10 0> /* D4/A6 */ - , <5 0 &arduino_header 11 0> /* D5 */ - , <6 0 &arduino_header 12 0> /* D6/A7 */ - , <7 0 &arduino_header 13 0> /* D7 */ - , <8 0 &arduino_header 14 0> /* D8/A8 */ - , <9 0 &arduino_header 15 0> /* D9/A9 */ - , <10 0 &arduino_header 16 0> /* D10/A10 */ - , <16 0 &arduino_header 17 0> /* D16 */ - , <14 0 &arduino_header 18 0> /* D14 */ - , <15 0 &arduino_header 19 0> /* D15 */ - ; - }; - - pro_micro_a: connector_a { - compatible = "arduino-pro-micro"; - #gpio-cells = <2>; - gpio-map-mask = <0xffffffff 0xffffffc0>; - gpio-map-pass-thru = <0 0x3f>; - gpio-map - = <0 0 &arduino_header 0 0> /* A0 */ - , <1 0 &arduino_header 1 0> /* A1 */ - , <2 0 &arduino_header 2 0> /* A2 */ - , <3 0 &arduino_header 3 0> /* A3 */ - ; - }; -}; - -pro_micro_i2c: &arduino_i2c {}; -pro_micro_spi: &arduino_spi {}; -pro_micro_serial: &arduino_serial {}; diff --git a/zmk/app/include/drivers/behavior.h b/zmk/app/include/drivers/behavior.h deleted file mode 100644 index cf259b13..00000000 --- a/zmk/app/include/drivers/behavior.h +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include -#include -#include -#include - -/** - * @cond INTERNAL_HIDDEN - * - * Behavior driver API definition and system call entry points. - * - * (Internal use only.) - */ - -typedef int (*behavior_keymap_binding_callback_t)(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event); -typedef int (*behavior_sensor_keymap_binding_callback_t)(struct zmk_behavior_binding *binding, - struct device *sensor); - -__subsystem struct behavior_driver_api { - behavior_keymap_binding_callback_t binding_pressed; - behavior_keymap_binding_callback_t binding_released; - behavior_sensor_keymap_binding_callback_t sensor_binding_triggered; -}; -/** - * @endcond - */ - -/** - * @brief Handle the keymap binding being pressed - * @param dev Pointer to the device structure for the driver instance. - * @param param1 User parameter specified at time of behavior binding. - * @param param2 User parameter specified at time of behavior binding. - * - * @retval 0 If successful. - * @retval Negative errno code if failure. - */ -__syscall int behavior_keymap_binding_pressed(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event); - -static inline int z_impl_behavior_keymap_binding_pressed(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - struct device *dev = device_get_binding(binding->behavior_dev); - const struct behavior_driver_api *api = (const struct behavior_driver_api *)dev->driver_api; - - if (api->binding_pressed == NULL) { - return -ENOTSUP; - } - - return api->binding_pressed(binding, event); -} - -/** - * @brief Handle the assigned position being pressed - * @param dev Pointer to the device structure for the driver instance. - * @param param1 User parameter specified at time of behavior assignment. - * - * @retval 0 If successful. - * @retval Negative errno code if failure. - */ -__syscall int behavior_keymap_binding_released(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event); - -static inline int z_impl_behavior_keymap_binding_released(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - struct device *dev = device_get_binding(binding->behavior_dev); - const struct behavior_driver_api *api = (const struct behavior_driver_api *)dev->driver_api; - - if (api->binding_released == NULL) { - return -ENOTSUP; - } - - return api->binding_released(binding, event); -} - -/** - * @brief Handle the a sensor keymap binding being triggered - * @param dev Pointer to the device structure for the driver instance. - * @param sensor Pointer to the sensor device structure for the sensor driver instance. - * @param param1 User parameter specified at time of behavior binding. - * @param param2 User parameter specified at time of behavior binding. - * - * @retval 0 If successful. - * @retval Negative errno code if failure. - */ -__syscall int behavior_sensor_keymap_binding_triggered(struct zmk_behavior_binding *binding, - struct device *sensor); - -static inline int -z_impl_behavior_sensor_keymap_binding_triggered(struct zmk_behavior_binding *binding, - struct device *sensor) { - struct device *dev = device_get_binding(binding->behavior_dev); - const struct behavior_driver_api *api = (const struct behavior_driver_api *)dev->driver_api; - - if (api->sensor_binding_triggered == NULL) { - return -ENOTSUP; - } - - return api->sensor_binding_triggered(binding, sensor); -} - -/** - * @} - */ - -#include diff --git a/zmk/app/include/drivers/ext_power.h b/zmk/app/include/drivers/ext_power.h deleted file mode 100644 index 6c1923e8..00000000 --- a/zmk/app/include/drivers/ext_power.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @cond INTERNAL_HIDDEN - * - * Behavior driver API definition and system call entry points. - * - * (Internal use only.) - */ - -typedef int (*ext_power_enable_t)(struct device *dev); -typedef int (*ext_power_disable_t)(struct device *dev); -typedef int (*ext_power_get_t)(struct device *dev); - -__subsystem struct ext_power_api { - ext_power_enable_t enable; - ext_power_disable_t disable; - ext_power_get_t get; -}; -/** - * @endcond - */ - -/** - * @brief Enable the external power output - * @param dev Pointer to the device structure for the driver instance. - * - * @retval 0 If successful. - * @retval Negative errno code if failure. - */ -__syscall int ext_power_enable(struct device *dev); - -static inline int z_impl_ext_power_enable(struct device *dev) { - const struct ext_power_api *api = (const struct ext_power_api *)dev->driver_api; - - if (api->enable == NULL) { - return -ENOTSUP; - } - - return api->enable(dev); -} - -/** - * @brief Disable the external power output - * @param dev Pointer to the device structure for the driver instance. - * - * @retval 0 If successful. - * @retval Negative errno code if failure. - */ -__syscall int ext_power_disable(struct device *dev); - -static inline int z_impl_ext_power_disable(struct device *dev) { - const struct ext_power_api *api = (const struct ext_power_api *)dev->driver_api; - - if (api->disable == NULL) { - return -ENOTSUP; - } - - return api->disable(dev); -} - -/** - * @brief Get the current status of the external power output - * @param dev Pointer to the device structure for the driver instance. - * - * @retval 0 If ext power is disabled. - * @retval 1 if ext power is enabled. - * @retval Negative errno code if failure. - */ -__syscall int ext_power_get(struct device *dev); - -static inline int z_impl_ext_power_get(struct device *dev) { - const struct ext_power_api *api = (const struct ext_power_api *)dev->driver_api; - - if (api->get == NULL) { - return -ENOTSUP; - } - - return api->get(dev); -} - -#ifdef __cplusplus -} -#endif - -/** - * @} - */ - -#include diff --git a/zmk/app/include/dt-bindings/zmk/bt.h b/zmk/app/include/dt-bindings/zmk/bt.h deleted file mode 100644 index 8ca10606..00000000 --- a/zmk/app/include/dt-bindings/zmk/bt.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define BT_CLR_CMD 0 -#define BT_NXT_CMD 1 -#define BT_PRV_CMD 2 -#define BT_SEL_CMD 3 -// #define BT_FULL_RESET_CMD 4 - -/* -Note: Some future commands will include additional parameters, so we -defines these aliases up front. -*/ - -#define BT_CLR BT_CLR_CMD 0 -#define BT_NXT BT_NXT_CMD 0 -#define BT_PRV BT_PRV_CMD 0 -#define BT_SEL BT_SEL_CMD diff --git a/zmk/app/include/dt-bindings/zmk/ext_power.h b/zmk/app/include/dt-bindings/zmk/ext_power.h deleted file mode 100644 index 2a3e8460..00000000 --- a/zmk/app/include/dt-bindings/zmk/ext_power.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define EXT_POWER_OFF_CMD 0 -#define EXT_POWER_ON_CMD 1 -#define EXT_POWER_TOGGLE_CMD 2 - -#define EP_ON EXT_POWER_ON_CMD -#define EP_OFF EXT_POWER_OFF_CMD -#define EP_TOG EXT_POWER_TOGGLE_CMD diff --git a/zmk/app/include/dt-bindings/zmk/hid_usage.h b/zmk/app/include/dt-bindings/zmk/hid_usage.h deleted file mode 100644 index 0555f004..00000000 --- a/zmk/app/include/dt-bindings/zmk/hid_usage.h +++ /dev/null @@ -1,2566 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - * - * Based on HID Usage Tables 1.21, - * Copyright © 1996-2020, USB Implementers Forum, - * https://www.usb.org/sites/default/files/hut1_21.pdf - */ - -#pragma once - -/* Page 0x01: Generic Desktop */ -#define HID_USAGE_GD_UNDEFINED (0x00) -#define HID_USAGE_GD_POINTER (0x01) // CP -#define HID_USAGE_GD_MOUSE (0x02) // CA -#define HID_USAGE_GD_JOYSTICK (0x04) // CA -#define HID_USAGE_GD_GAMEPAD (0x05) // CA -#define HID_USAGE_GD_KEYBOARD (0x06) // CA -#define HID_USAGE_GD_KEYPAD (0x07) // CA -#define HID_USAGE_GD_MULTI_AXIS_CONTROLLER (0x08) // CA -#define HID_USAGE_GD_TABLET_PC_SYSTEM_CONTROLS (0x09) // CA -#define HID_USAGE_GD_WATER_COOLING_DEVICE (0x0A) // CA -#define HID_USAGE_GD_COMPUTER_CHASSIS_DEVICE (0x0B) // CA -#define HID_USAGE_GD_WIRELESS_RADIO_CONTROLS (0x0C) // CA -#define HID_USAGE_GD_PORTABLE_DEVICE_CONTROL (0x0D) // CA -#define HID_USAGE_GD_SYSTEM_MULTI_AXIS_CONTROLLER (0x0E) // CA -#define HID_USAGE_GD_SPATIAL_CONTROLLER (0x0F) // CA -#define HID_USAGE_GD_ASSISTIVE_CONTROL (0x10) // CA -#define HID_USAGE_GD_DEVICE_DOCK (0x11) // CA -#define HID_USAGE_GD_DOCKABLE_DEVICE (0x12) // CA -#define HID_USAGE_GD_X (0x30) // DV -#define HID_USAGE_GD_Y (0x31) // DV -#define HID_USAGE_GD_Z (0x32) // DV -#define HID_USAGE_GD_RX (0x33) // DV -#define HID_USAGE_GD_RY (0x34) // DV -#define HID_USAGE_GD_RZ (0x35) // DV -#define HID_USAGE_GD_SLIDER (0x36) // DV -#define HID_USAGE_GD_DIAL (0x37) // DV -#define HID_USAGE_GD_WHEEL (0x38) // DV -#define HID_USAGE_GD_HAT_SWITCH (0x39) // DV -#define HID_USAGE_GD_COUNTED_BUFFER (0x3A) // CL -#define HID_USAGE_GD_BYTE_COUNT (0x3B) // DV -#define HID_USAGE_GD_MOTION_WAKEUP (0x3C) // OSC, DF -#define HID_USAGE_GD_START (0x3D) // OOC -#define HID_USAGE_GD_SELECT (0x3E) // OOC -#define HID_USAGE_GD_VX (0x40) // DV -#define HID_USAGE_GD_VY (0x41) // DV -#define HID_USAGE_GD_VZ (0x42) // DV -#define HID_USAGE_GD_VBRX (0x43) // DV -#define HID_USAGE_GD_VBRY (0x44) // DV -#define HID_USAGE_GD_VBRZ (0x45) // DV -#define HID_USAGE_GD_VNO (0x46) // DV -#define HID_USAGE_GD_FEATURE_NOTIFICATION (0x47) // DV, DF -#define HID_USAGE_GD_RESOLUTION_MULTIPLIER (0x48) // DV -#define HID_USAGE_GD_QX (0x49) // DV -#define HID_USAGE_GD_QY (0x4A) // DV -#define HID_USAGE_GD_QZ (0x4B) // DV -#define HID_USAGE_GD_QW (0x4C) // DV -#define HID_USAGE_GD_SYSTEM_CONTROL (0x80) // CA -#define HID_USAGE_GD_SYSTEM_POWER_DOWN (0x81) // OSC -#define HID_USAGE_GD_SYSTEM_SLEEP (0x82) // OSC -#define HID_USAGE_GD_SYSTEM_WAKE_UP (0x83) // OSC -#define HID_USAGE_GD_SYSTEM_CONTEXT_MENU (0x84) // OSC -#define HID_USAGE_GD_SYSTEM_MAIN_MENU (0x85) // OSC -#define HID_USAGE_GD_SYSTEM_APP_MENU (0x86) // OSC -#define HID_USAGE_GD_SYSTEM_MENU_HELP (0x87) // OSC -#define HID_USAGE_GD_SYSTEM_MENU_EXIT (0x88) // OSC -#define HID_USAGE_GD_SYSTEM_MENU_SELECT (0x89) // OSC -#define HID_USAGE_GD_SYSTEM_MENU_RIGHT (0x8A) // RTC -#define HID_USAGE_GD_SYSTEM_MENU_LEFT (0x8B) // RTC -#define HID_USAGE_GD_SYSTEM_MENU_UP (0x8C) // RTC -#define HID_USAGE_GD_SYSTEM_MENU_DOWN (0x8D) // RTC -#define HID_USAGE_GD_SYSTEM_COLD_RESTART (0x8E) // OSC -#define HID_USAGE_GD_SYSTEM_WARM_RESTART (0x8F) // OSC -#define HID_USAGE_GD_D_PAD_UP (0x90) // OOC -#define HID_USAGE_GD_D_PAD_DOWN (0x91) // OOC -#define HID_USAGE_GD_D_PAD_RIGHT (0x92) // OOC -#define HID_USAGE_GD_D_PAD_LEFT (0x93) // OOC -#define HID_USAGE_GD_INDEX_TRIGGER (0x94) // MC, DV -#define HID_USAGE_GD_PALM_TRIGGER (0x95) // MC, DV -#define HID_USAGE_GD_THUMBSTICK (0x96) // CP -#define HID_USAGE_GD_SYSTEM_FUNCTION_SHIFT (0x97) // MC -#define HID_USAGE_GD_SYSTEM_FUNCTION_SHIFT_LOCK (0x98) // OOC -#define HID_USAGE_GD_SYSTEM_FUNCTION_SHIFT_LOCK_INDICATOR (0x99) // DV -#define HID_USAGE_GD_SYSTEM_DISMISS_NOTIFICATION (0x9A) // OSC -#define HID_USAGE_GD_SYSTEM_DO_NOT_DISTURB (0x9B) // OOC -#define HID_USAGE_GD_SYSTEM_DOCK (0xA0) // OSC -#define HID_USAGE_GD_SYSTEM_UNDOCK (0xA1) // OSC -#define HID_USAGE_GD_SYSTEM_SETUP (0xA2) // OSC -#define HID_USAGE_GD_SYSTEM_BREAK (0xA3) // OSC -#define HID_USAGE_GD_SYSTEM_DEBUGGER_BREAK (0xA4) // OSC -#define HID_USAGE_GD_APPLICATION_BREAK (0xA5) // OSC -#define HID_USAGE_GD_APPLICATION_DEBUGGER_BREAK (0xA6) // OSC -#define HID_USAGE_GD_SYSTEM_SPEAKER_MUTE (0xA7) // OSC -#define HID_USAGE_GD_SYSTEM_HIBERNATE (0xA8) // OSC -#define HID_USAGE_GD_SYSTEM_DISPLAY_INVERT (0xB0) // OSC -#define HID_USAGE_GD_SYSTEM_DISPLAY_INTERNAL (0xB1) // OSC -#define HID_USAGE_GD_SYSTEM_DISPLAY_EXTERNAL (0xB2) // OSC -#define HID_USAGE_GD_SYSTEM_DISPLAY_BOTH (0xB3) // OSC -#define HID_USAGE_GD_SYSTEM_DISPLAY_DUAL (0xB4) // OSC -#define HID_USAGE_GD_SYSTEM_DISPLAY_TOGGLE_INT_EXT_MODE (0xB5) // OSC -#define HID_USAGE_GD_SYSTEM_DISPLAY_SWAP_PRIMARY_SECONDARY (0xB6) // OSC -#define HID_USAGE_GD_SYSTEM_DISPLAY_TOGGLE_LCD_AUTOSCALE (0xB7) // OSC -#define HID_USAGE_GD_SENSOR_ZONE (0xC0) // CL -#define HID_USAGE_GD_RPM (0xC1) // DV -#define HID_USAGE_GD_COOLANT_LEVEL (0xC2) // DV -#define HID_USAGE_GD_COOLANT_CRITICAL_LEVEL (0xC3) // SV -#define HID_USAGE_GD_COOLANT_PUMP (0xC4) // US -#define HID_USAGE_GD_CHASSIS_ENCLOSURE (0xC5) // CL -#define HID_USAGE_GD_WIRELESS_RADIO_BUTTON (0xC6) // OOC -#define HID_USAGE_GD_WIRELESS_RADIO_LED (0xC7) // OOC -#define HID_USAGE_GD_WIRELESS_RADIO_SLIDER_SWITCH (0xC8) // OOC -#define HID_USAGE_GD_SYSTEM_DISPLAY_ROTATION_LOCK_BUTTON (0xC9) // OOC -#define HID_USAGE_GD_SYSTEM_DISPLAY_ROTATION_LOCK_SLIDER_SWITCH (0xCA) // OOC -#define HID_USAGE_GD_CONTROL_ENABLE (0xCB) // DF -#define HID_USAGE_GD_DOCKABLE_DEVICE_UNIQUE_ID (0xD0) // DV -#define HID_USAGE_GD_DOCKABLE_DEVICE_VENDOR_ID (0xD1) // DV -#define HID_USAGE_GD_DOCKABLE_DEVICE_PRIMARY_USAGE_PAGE (0xD2) // DV -#define HID_USAGE_GD_DOCKABLE_DEVICE_PRIMARY_USAGE_ID (0xD3) // DV -#define HID_USAGE_GD_DOCKABLE_DEVICE_DOCKING_STATE (0xD4) // DF -#define HID_USAGE_GD_DOCKABLE_DEVICE_DISPLAY_OCCLUSION (0xD5) // CL -#define HID_USAGE_GD_DOCKABLE_DEVICE_OBJECT_TYPE (0xD6) // DV - -/* Page 0x02: Simulation Controls */ -#define HID_USAGE_SIM_UNDEFINED (0x00) -#define HID_USAGE_SIM_FLIGHT_SIMULATION_DEVICE (0x01) // CA -#define HID_USAGE_SIM_AUTOMOBILE_SIMULATION_DEVICE (0x02) // CA -#define HID_USAGE_SIM_TANK_SIMULATION_DEVICE (0x03) // CA -#define HID_USAGE_SIM_SPACESHIP_SIMULATION_DEVICE (0x04) // CA -#define HID_USAGE_SIM_SUBMARINE_SIMULATION_DEVICE (0x05) // CA -#define HID_USAGE_SIM_SAILING_SIMULATION_DEVICE (0x06) // CA -#define HID_USAGE_SIM_MOTORCYCLE_SIMULATION_DEVICE (0x07) // CA -#define HID_USAGE_SIM_SPORTS_SIMULATION_DEVICE (0x08) // CA -#define HID_USAGE_SIM_AIRPLANE_SIMULATION_DEVICE (0x09) // CA -#define HID_USAGE_SIM_HELICOPTER_SIMULATION_DEVICE (0x0A) // CA -#define HID_USAGE_SIM_MAGIC_CARPET_SIMULATION_DEVICE (0x0B) // CA -#define HID_USAGE_SIM_BICYCLE_SIMULATION_DEVICE (0x0C) // CA -#define HID_USAGE_SIM_FLIGHT_CONTROL_STICK (0x20) // CA -#define HID_USAGE_SIM_FLIGHT_STICK (0x21) // CA -#define HID_USAGE_SIM_CYCLIC_CONTROL (0x22) // CP -#define HID_USAGE_SIM_CYCLIC_TRIM (0x23) // CP -#define HID_USAGE_SIM_FLIGHT_YOKE (0x24) // CA -#define HID_USAGE_SIM_TRACK_CONTROL (0x25) // CP -#define HID_USAGE_SIM_AILERON (0xB0) // DV -#define HID_USAGE_SIM_AILERON_TRIM (0xB1) // DV -#define HID_USAGE_SIM_ANTI_TORQUE_CONTROL (0xB2) // DV -#define HID_USAGE_SIM_AUTOPILOT_ENABLE (0xB3) // OOC -#define HID_USAGE_SIM_CHAFF_RELEASE (0xB4) // OSC -#define HID_USAGE_SIM_COLLECTIVE_CONTROL (0xB5) // DV -#define HID_USAGE_SIM_DIVE_BRAKE (0xB6) // DV -#define HID_USAGE_SIM_ELECTRONIC_COUNTERMEASURES (0xB7) // OOC -#define HID_USAGE_SIM_ELEVATOR (0xB8) // DV -#define HID_USAGE_SIM_ELEVATOR_TRIM (0xB9) // DV -#define HID_USAGE_SIM_RUDDER (0xBA) // DV -#define HID_USAGE_SIM_THROTTLE (0xBB) // DV -#define HID_USAGE_SIM_FLIGHT_COMMUNICATIONS (0xBC) // OOC -#define HID_USAGE_SIM_FLARE_RELEASE (0xBD) // OSC -#define HID_USAGE_SIM_LANDING_GEAR (0xBE) // OOC -#define HID_USAGE_SIM_TOE_BRAKE (0xBF) // DV -#define HID_USAGE_SIM_TRIGGER (0xC0) // MC -#define HID_USAGE_SIM_WEAPONS_ARM (0xC1) // OOC -#define HID_USAGE_SIM_WEAPONS_SELECT (0xC2) // OSC -#define HID_USAGE_SIM_WING_FLAPS (0xC3) // DV -#define HID_USAGE_SIM_ACCELERATOR (0xC4) // DV -#define HID_USAGE_SIM_BRAKE (0xC5) // DV -#define HID_USAGE_SIM_CLUTCH (0xC6) // DV -#define HID_USAGE_SIM_SHIFTER (0xC7) // DV -#define HID_USAGE_SIM_STEERING (0xC8) // DV -#define HID_USAGE_SIM_TURRET_DIRECTION (0xC9) // DV -#define HID_USAGE_SIM_BARREL_ELEVATION (0xCA) // DV -#define HID_USAGE_SIM_DIVE_PLANE (0xCB) // DV -#define HID_USAGE_SIM_BALLAST (0xCC) // DV -#define HID_USAGE_SIM_BICYCLE_CRANK (0xCD) // DV -#define HID_USAGE_SIM_HANDLE_BARS (0xCE) // DV -#define HID_USAGE_SIM_FRONT_BRAKE (0xCF) // DV -#define HID_USAGE_SIM_REAR_BRAKE (0xD0) // DV - -/* Page 0x03: VR Controls */ -#define HID_USAGE_VR_UNDEFINED (0x00) -#define HID_USAGE_VR_BELT (0x01) // CA -#define HID_USAGE_VR_BODY_SUIT (0x02) // CA -#define HID_USAGE_VR_FLEXOR (0x03) // CP -#define HID_USAGE_VR_GLOVE (0x04) // CA -#define HID_USAGE_VR_HEAD_TRACKER (0x05) // CP -#define HID_USAGE_VR_HEAD_MOUNTED_DISPLAY (0x06) // CA -#define HID_USAGE_VR_HAND_TRACKER (0x07) // CA -#define HID_USAGE_VR_OCULOMETER (0x08) // CA -#define HID_USAGE_VR_VEST (0x09) // CA -#define HID_USAGE_VR_ANIMATRONIC_DEVICE (0x0A) // CA -#define HID_USAGE_VR_STEREO_ENABLE (0x20) // OOC -#define HID_USAGE_VR_DISPLAY_ENABLE (0x21) // OOC - -/* Page 0x04: Sport Controls */ -#define HID_USAGE_SPORT_UNDEFINED (0x00) -#define HID_USAGE_SPORT_BASEBALL_BAT (0x01) // CA -#define HID_USAGE_SPORT_GOLF_CLUB (0x02) // CA -#define HID_USAGE_SPORT_ROWING_MACHINE (0x03) // CA -#define HID_USAGE_SPORT_TREADMILL (0x04) // CA -#define HID_USAGE_SPORT_OAR (0x30) // DV -#define HID_USAGE_SPORT_SLOPE (0x31) // DV -#define HID_USAGE_SPORT_RATE (0x32) // DV -#define HID_USAGE_SPORT_STICK_SPEED (0x33) // DV -#define HID_USAGE_SPORT_STICK_FACE_ANGLE (0x34) // DV -#define HID_USAGE_SPORT_STICK_HEEL_TOE (0x35) // DV -#define HID_USAGE_SPORT_STICK_FOLLOW_THROUGH (0x36) // DV -#define HID_USAGE_SPORT_STICK_TEMPO (0x37) // DV -#define HID_USAGE_SPORT_STICK_TYPE (0x38) // NAry -#define HID_USAGE_SPORT_STICK_HEIGHT (0x39) // DV -#define HID_USAGE_SPORT_PUTTER (0x50) // Sel -#define HID_USAGE_SPORT_1_IRON (0x51) // Sel -#define HID_USAGE_SPORT_2_IRON (0x52) // Sel -#define HID_USAGE_SPORT_3_IRON (0x53) // Sel -#define HID_USAGE_SPORT_4_IRON (0x54) // Sel -#define HID_USAGE_SPORT_5_IRON (0x55) // Sel -#define HID_USAGE_SPORT_6_IRON (0x56) // Sel -#define HID_USAGE_SPORT_7_IRON (0x57) // Sel -#define HID_USAGE_SPORT_8_IRON (0x58) // Sel -#define HID_USAGE_SPORT_9_IRON (0x59) // Sel -#define HID_USAGE_SPORT_10_IRON (0x5A) // Sel -#define HID_USAGE_SPORT_11_IRON (0x5B) // Sel -#define HID_USAGE_SPORT_SAND_WEDGE (0x5C) // Sel -#define HID_USAGE_SPORT_LOFT_WEDGE (0x5D) // Sel -#define HID_USAGE_SPORT_POWER_WEDGE (0x5E) // Sel -#define HID_USAGE_SPORT_1_WOOD (0x5F) // Sel -#define HID_USAGE_SPORT_3_WOOD (0x60) // Sel -#define HID_USAGE_SPORT_5_WOOD (0x61) // Sel -#define HID_USAGE_SPORT_7_WOOD (0x62) // Sel -#define HID_USAGE_SPORT_9_WOOD (0x63) // Sel - -/* Page 0x05: Game Controls */ -#define HID_USAGE_GAME_UNDEFINED (0x00) -#define HID_USAGE_GAME_3D_GAME_CONTROLLER (0x01) // CA -#define HID_USAGE_GAME_PINBALL_DEVICE (0x02) // CA -#define HID_USAGE_GAME_GUN_DEVICE (0x03) // CA -#define HID_USAGE_GAME_POINT_OF_VIEW (0x20) // CP -#define HID_USAGE_GAME_TURN_RIGHT_LEFT (0x21) // DV -#define HID_USAGE_GAME_PITCH_FORWARD_BACKWARD (0x22) // DV -#define HID_USAGE_GAME_ROLL_RIGHT_LEFT (0x23) // DV -#define HID_USAGE_GAME_MOVE_RIGHT_LEFT (0x24) // DV -#define HID_USAGE_GAME_MOVE_FORWARD_BACKWARD (0x25) // DV -#define HID_USAGE_GAME_MOVE_UP_DOWN (0x26) // DV -#define HID_USAGE_GAME_LEAN_RIGHT_LEFT (0x27) // DV -#define HID_USAGE_GAME_LEAN_FORWARD_BACKWARD (0x28) // DV -#define HID_USAGE_GAME_HEIGHT_OF_POV (0x29) // DV -#define HID_USAGE_GAME_FLIPPER (0x2A) // MC -#define HID_USAGE_GAME_SECONDARY_FLIPPER (0x2B) // MC -#define HID_USAGE_GAME_BUMP (0x2C) // MC -#define HID_USAGE_GAME_NEW_GAME (0x2D) // OSC -#define HID_USAGE_GAME_SHOOT_BALL (0x2E) // OSC -#define HID_USAGE_GAME_PLAYER (0x2F) // OSC -#define HID_USAGE_GAME_GUN_BOLT (0x30) // OOC -#define HID_USAGE_GAME_GUN_CLIP (0x31) // OOC -#define HID_USAGE_GAME_GUN_SELECTOR (0x32) // NAry -#define HID_USAGE_GAME_GUN_SINGLE_SHOT (0x33) // Sel -#define HID_USAGE_GAME_GUN_BURST (0x34) // Sel -#define HID_USAGE_GAME_GUN_AUTOMATIC (0x35) // Sel -#define HID_USAGE_GAME_GUN_SAFETY (0x36) // OOC -#define HID_USAGE_GAME_GAMEPAD_FIRE_JUMP (0x37) // CL -#define HID_USAGE_GAME_GAMEPAD_TRIGGER (0x39) // CL -#define HID_USAGE_GAME_FORM_FITTING_GAMEPAD (0x3A) // SF - -/* Page 0x06: Generic Device Controls */ -#define HID_USAGE_GDV_UNDEFINED (0x00) -#define HID_USAGE_GDV_BACKGROUND_NONUSER_CONTROLS (0x01) // CA -#define HID_USAGE_GDV_BATTERY_STRENGTH (0x20) // DV -#define HID_USAGE_GDV_WIRELESS_CHANNEL (0x21) // DV -#define HID_USAGE_GDV_WIRELESS_ID (0x22) // DV -#define HID_USAGE_GDV_DISCOVER_WIRELESS_CONTROL (0x23) // OSC -#define HID_USAGE_GDV_SECURITY_CODE_CHARACTER_ENTERED (0x24) // OSC -#define HID_USAGE_GDV_SECURITY_CODE_CHARACTER_ERASED (0x25) // OSC -#define HID_USAGE_GDV_SECURITY_CODE_CLEARED (0x26) // OSC -#define HID_USAGE_GDV_SEQUENCE_ID (0x27) // DV -#define HID_USAGE_GDV_SEQUENCE_ID_RESET (0x28) // DF -#define HID_USAGE_GDV_RF_SIGNAL_STRENGTH (0x29) // DV -#define HID_USAGE_GDV_SOFTWARE_VERSION (0x2A) // CL -#define HID_USAGE_GDV_PROTOCOL_VERSION (0x2B) // CL -#define HID_USAGE_GDV_HARDWARE_VERSION (0x2C) // CL -#define HID_USAGE_GDV_MAJOR (0x2D) // SV -#define HID_USAGE_GDV_MINOR (0x2E) // SV -#define HID_USAGE_GDV_REVISION (0x2F) // SV -#define HID_USAGE_GDV_HANDEDNESS (0x30) // NAry -#define HID_USAGE_GDV_EITHER_HAND (0x31) // Sel -#define HID_USAGE_GDV_LEFT_HAND (0x32) // Sel -#define HID_USAGE_GDV_RIGHT_HAND (0x33) // Sel -#define HID_USAGE_GDV_BOTH_HANDS (0x34) // Sel -#define HID_USAGE_GDV_GRIP_POSE_OFFSET (0x40) // CP -#define HID_USAGE_GDV_POINTER_POSE_OFFSET (0x41) // CP - -/* Page 0x07: Keyboard/Keypad */ -#define HID_USAGE_KEY_KEYBOARD_ERRORROLLOVER (0x01) // Sel -#define HID_USAGE_KEY_KEYBOARD_POSTFAIL (0x02) // Sel -#define HID_USAGE_KEY_KEYBOARD_ERRORUNDEFINED (0x03) // Sel -#define HID_USAGE_KEY_KEYBOARD_A (0x04) // Sel -#define HID_USAGE_KEY_KEYBOARD_B (0x05) // Sel -#define HID_USAGE_KEY_KEYBOARD_C (0x06) // Sel -#define HID_USAGE_KEY_KEYBOARD_D (0x07) // Sel -#define HID_USAGE_KEY_KEYBOARD_E (0x08) // Sel -#define HID_USAGE_KEY_KEYBOARD_F (0x09) // Sel -#define HID_USAGE_KEY_KEYBOARD_G (0x0A) // Sel -#define HID_USAGE_KEY_KEYBOARD_H (0x0B) // Sel -#define HID_USAGE_KEY_KEYBOARD_I (0x0C) // Sel -#define HID_USAGE_KEY_KEYBOARD_J (0x0D) // Sel -#define HID_USAGE_KEY_KEYBOARD_K (0x0E) // Sel -#define HID_USAGE_KEY_KEYBOARD_L (0x0F) // Sel -#define HID_USAGE_KEY_KEYBOARD_M (0x10) // Sel -#define HID_USAGE_KEY_KEYBOARD_N (0x11) // Sel -#define HID_USAGE_KEY_KEYBOARD_O (0x12) // Sel -#define HID_USAGE_KEY_KEYBOARD_P (0x13) // Sel -#define HID_USAGE_KEY_KEYBOARD_Q (0x14) // Sel -#define HID_USAGE_KEY_KEYBOARD_R (0x15) // Sel -#define HID_USAGE_KEY_KEYBOARD_S (0x16) // Sel -#define HID_USAGE_KEY_KEYBOARD_T (0x17) // Sel -#define HID_USAGE_KEY_KEYBOARD_U (0x18) // Sel -#define HID_USAGE_KEY_KEYBOARD_V (0x19) // Sel -#define HID_USAGE_KEY_KEYBOARD_W (0x1A) // Sel -#define HID_USAGE_KEY_KEYBOARD_X (0x1B) // Sel -#define HID_USAGE_KEY_KEYBOARD_Y (0x1C) // Sel -#define HID_USAGE_KEY_KEYBOARD_Z (0x1D) // Sel -#define HID_USAGE_KEY_KEYBOARD_1_AND_EXCLAMATION (0x1E) // Sel -#define HID_USAGE_KEY_KEYBOARD_2_AND_AT (0x1F) // Sel -#define HID_USAGE_KEY_KEYBOARD_3_AND_HASH (0x20) // Sel -#define HID_USAGE_KEY_KEYBOARD_4_AND_DOLLAR (0x21) // Sel -#define HID_USAGE_KEY_KEYBOARD_5_AND_PERCENT (0x22) // Sel -#define HID_USAGE_KEY_KEYBOARD_6_AND_CARET (0x23) // Sel -#define HID_USAGE_KEY_KEYBOARD_7_AND_AMPERSAND (0x24) // Sel -#define HID_USAGE_KEY_KEYBOARD_8_AND_ASTERISK (0x25) // Sel -#define HID_USAGE_KEY_KEYBOARD_9_AND_LEFT_PARENTHESIS (0x26) // Sel -#define HID_USAGE_KEY_KEYBOARD_0_AND_RIGHT_PARENTHESIS (0x27) // Sel -#define HID_USAGE_KEY_KEYBOARD_RETURN_ENTER (0x28) // Sel -#define HID_USAGE_KEY_KEYBOARD_ESCAPE (0x29) // Sel -#define HID_USAGE_KEY_KEYBOARD_DELETE_BACKSPACE (0x2A) // Sel -#define HID_USAGE_KEY_KEYBOARD_TAB (0x2B) // Sel -#define HID_USAGE_KEY_KEYBOARD_SPACEBAR (0x2C) // Sel -#define HID_USAGE_KEY_KEYBOARD_MINUS_AND_UNDERSCORE (0x2D) // Sel -#define HID_USAGE_KEY_KEYBOARD_EQUAL_AND_PLUS (0x2E) // Sel -#define HID_USAGE_KEY_KEYBOARD_LEFT_BRACKET_AND_LEFT_BRACE (0x2F) // Sel -#define HID_USAGE_KEY_KEYBOARD_RIGHT_BRACKET_AND_RIGHT_BRACE (0x30) // Sel -#define HID_USAGE_KEY_KEYBOARD_BACKSLASH_AND_PIPE (0x31) // Sel -#define HID_USAGE_KEY_KEYBOARD_NON_US_HASH_AND_TILDE (0x32) // Sel -#define HID_USAGE_KEY_KEYBOARD_SEMICOLON_AND_COLON (0x33) // Sel -#define HID_USAGE_KEY_KEYBOARD_APOSTROPHE_AND_QUOTE (0x34) // Sel -#define HID_USAGE_KEY_KEYBOARD_GRAVE_ACCENT_AND_TILDE (0x35) // Sel -#define HID_USAGE_KEY_KEYBOARD_COMMA_AND_LESS_THAN (0x36) // Sel -#define HID_USAGE_KEY_KEYBOARD_PERIOD_AND_GREATER_THAN (0x37) // Sel -#define HID_USAGE_KEY_KEYBOARD_SLASH_AND_QUESTION_MARK (0x38) // Sel -#define HID_USAGE_KEY_KEYBOARD_CAPS_LOCK (0x39) // Sel -#define HID_USAGE_KEY_KEYBOARD_F1 (0x3A) // Sel -#define HID_USAGE_KEY_KEYBOARD_F2 (0x3B) // Sel -#define HID_USAGE_KEY_KEYBOARD_F3 (0x3C) // Sel -#define HID_USAGE_KEY_KEYBOARD_F4 (0x3D) // Sel -#define HID_USAGE_KEY_KEYBOARD_F5 (0x3E) // Sel -#define HID_USAGE_KEY_KEYBOARD_F6 (0x3F) // Sel -#define HID_USAGE_KEY_KEYBOARD_F7 (0x40) // Sel -#define HID_USAGE_KEY_KEYBOARD_F8 (0x41) // Sel -#define HID_USAGE_KEY_KEYBOARD_F9 (0x42) // Sel -#define HID_USAGE_KEY_KEYBOARD_F10 (0x43) // Sel -#define HID_USAGE_KEY_KEYBOARD_F11 (0x44) // Sel -#define HID_USAGE_KEY_KEYBOARD_F12 (0x45) // Sel -#define HID_USAGE_KEY_KEYBOARD_PRINTSCREEN (0x46) // Sel -#define HID_USAGE_KEY_KEYBOARD_SCROLL_LOCK (0x47) // Sel -#define HID_USAGE_KEY_KEYBOARD_PAUSE (0x48) // Sel -#define HID_USAGE_KEY_KEYBOARD_INSERT (0x49) // Sel -#define HID_USAGE_KEY_KEYBOARD_HOME (0x4A) // Sel -#define HID_USAGE_KEY_KEYBOARD_PAGEUP (0x4B) // Sel -#define HID_USAGE_KEY_KEYBOARD_DELETE_FORWARD (0x4C) // Sel -#define HID_USAGE_KEY_KEYBOARD_END (0x4D) // Sel -#define HID_USAGE_KEY_KEYBOARD_PAGEDOWN (0x4E) // Sel -#define HID_USAGE_KEY_KEYBOARD_RIGHTARROW (0x4F) // Sel -#define HID_USAGE_KEY_KEYBOARD_LEFTARROW (0x50) // Sel -#define HID_USAGE_KEY_KEYBOARD_DOWNARROW (0x51) // Sel -#define HID_USAGE_KEY_KEYBOARD_UPARROW (0x52) // Sel -#define HID_USAGE_KEY_KEYPAD_NUM_LOCK_AND_CLEAR (0x53) // Sel -#define HID_USAGE_KEY_KEYPAD_SLASH (0x54) // Sel -#define HID_USAGE_KEY_KEYPAD_ASTERISK (0x55) // Sel -#define HID_USAGE_KEY_KEYPAD_MINUS (0x56) // Sel -#define HID_USAGE_KEY_KEYPAD_PLUS (0x57) // Sel -#define HID_USAGE_KEY_KEYPAD_ENTER (0x58) // Sel -#define HID_USAGE_KEY_KEYPAD_1_AND_END (0x59) // Sel -#define HID_USAGE_KEY_KEYPAD_2_AND_DOWN_ARROW (0x5A) // Sel -#define HID_USAGE_KEY_KEYPAD_3_AND_PAGEDN (0x5B) // Sel -#define HID_USAGE_KEY_KEYPAD_4_AND_LEFT_ARROW (0x5C) // Sel -#define HID_USAGE_KEY_KEYPAD_5 (0x5D) // Sel -#define HID_USAGE_KEY_KEYPAD_6_AND_RIGHT_ARROW (0x5E) // Sel -#define HID_USAGE_KEY_KEYPAD_7_AND_HOME (0x5F) // Sel -#define HID_USAGE_KEY_KEYPAD_8_AND_UP_ARROW (0x60) // Sel -#define HID_USAGE_KEY_KEYPAD_9_AND_PAGEUP (0x61) // Sel -#define HID_USAGE_KEY_KEYPAD_0_AND_INSERT (0x62) // Sel -#define HID_USAGE_KEY_KEYPAD_PERIOD_AND_DELETE (0x63) // Sel -#define HID_USAGE_KEY_KEYBOARD_NON_US_BACKSLASH_AND_PIPE (0x64) // Sel -#define HID_USAGE_KEY_KEYBOARD_APPLICATION (0x65) // Sel -#define HID_USAGE_KEY_KEYBOARD_POWER (0x66) // Sel -#define HID_USAGE_KEY_KEYPAD_EQUAL (0x67) // Sel -#define HID_USAGE_KEY_KEYBOARD_F13 (0x68) // Sel -#define HID_USAGE_KEY_KEYBOARD_F14 (0x69) // Sel -#define HID_USAGE_KEY_KEYBOARD_F15 (0x6A) // Sel -#define HID_USAGE_KEY_KEYBOARD_F16 (0x6B) // Sel -#define HID_USAGE_KEY_KEYBOARD_F17 (0x6C) // Sel -#define HID_USAGE_KEY_KEYBOARD_F18 (0x6D) // Sel -#define HID_USAGE_KEY_KEYBOARD_F19 (0x6E) // Sel -#define HID_USAGE_KEY_KEYBOARD_F20 (0x6F) // Sel -#define HID_USAGE_KEY_KEYBOARD_F21 (0x70) // Sel -#define HID_USAGE_KEY_KEYBOARD_F22 (0x71) // Sel -#define HID_USAGE_KEY_KEYBOARD_F23 (0x72) // Sel -#define HID_USAGE_KEY_KEYBOARD_F24 (0x73) // Sel -#define HID_USAGE_KEY_KEYBOARD_EXECUTE (0x74) // Sel -#define HID_USAGE_KEY_KEYBOARD_HELP (0x75) // Sel -#define HID_USAGE_KEY_KEYBOARD_MENU (0x76) // Sel -#define HID_USAGE_KEY_KEYBOARD_SELECT (0x77) // Sel -#define HID_USAGE_KEY_KEYBOARD_STOP (0x78) // Sel -#define HID_USAGE_KEY_KEYBOARD_AGAIN (0x79) // Sel -#define HID_USAGE_KEY_KEYBOARD_UNDO (0x7A) // Sel -#define HID_USAGE_KEY_KEYBOARD_CUT (0x7B) // Sel -#define HID_USAGE_KEY_KEYBOARD_COPY (0x7C) // Sel -#define HID_USAGE_KEY_KEYBOARD_PASTE (0x7D) // Sel -#define HID_USAGE_KEY_KEYBOARD_FIND (0x7E) // Sel -#define HID_USAGE_KEY_KEYBOARD_MUTE (0x7F) // Sel -#define HID_USAGE_KEY_KEYBOARD_VOLUME_UP (0x80) // Sel -#define HID_USAGE_KEY_KEYBOARD_VOLUME_DOWN (0x81) // Sel -#define HID_USAGE_KEY_KEYBOARD_LOCKING_CAPS_LOCK (0x82) // Sel -#define HID_USAGE_KEY_KEYBOARD_LOCKING_NUM_LOCK (0x83) // Sel -#define HID_USAGE_KEY_KEYBOARD_LOCKING_SCROLL_LOCK (0x84) // Sel -#define HID_USAGE_KEY_KEYPAD_COMMA (0x85) // Sel -#define HID_USAGE_KEY_KEYPAD_EQUAL_SIGN (0x86) // Sel -#define HID_USAGE_KEY_KEYBOARD_INTERNATIONAL1 (0x87) // Sel -#define HID_USAGE_KEY_KEYBOARD_INTERNATIONAL2 (0x88) // Sel -#define HID_USAGE_KEY_KEYBOARD_INTERNATIONAL3 (0x89) // Sel -#define HID_USAGE_KEY_KEYBOARD_INTERNATIONAL4 (0x8A) // Sel -#define HID_USAGE_KEY_KEYBOARD_INTERNATIONAL5 (0x8B) // Sel -#define HID_USAGE_KEY_KEYBOARD_INTERNATIONAL6 (0x8C) // Sel -#define HID_USAGE_KEY_KEYBOARD_INTERNATIONAL7 (0x8D) // Sel -#define HID_USAGE_KEY_KEYBOARD_INTERNATIONAL8 (0x8E) // Sel -#define HID_USAGE_KEY_KEYBOARD_INTERNATIONAL9 (0x8F) // Sel -#define HID_USAGE_KEY_KEYBOARD_LANG1 (0x90) // Sel -#define HID_USAGE_KEY_KEYBOARD_LANG2 (0x91) // Sel -#define HID_USAGE_KEY_KEYBOARD_LANG3 (0x92) // Sel -#define HID_USAGE_KEY_KEYBOARD_LANG4 (0x93) // Sel -#define HID_USAGE_KEY_KEYBOARD_LANG5 (0x94) // Sel -#define HID_USAGE_KEY_KEYBOARD_LANG6 (0x95) // Sel -#define HID_USAGE_KEY_KEYBOARD_LANG7 (0x96) // Sel -#define HID_USAGE_KEY_KEYBOARD_LANG8 (0x97) // Sel -#define HID_USAGE_KEY_KEYBOARD_LANG9 (0x98) // Sel -#define HID_USAGE_KEY_KEYBOARD_ALTERNATE_ERASE (0x99) // Sel -#define HID_USAGE_KEY_KEYBOARD_SYSREQ_ATTENTION (0x9A) // Sel -#define HID_USAGE_KEY_KEYBOARD_CANCEL (0x9B) // Sel -#define HID_USAGE_KEY_KEYBOARD_CLEAR (0x9C) // Sel -#define HID_USAGE_KEY_KEYBOARD_PRIOR (0x9D) // Sel -#define HID_USAGE_KEY_KEYBOARD_RETURN (0x9E) // Sel -#define HID_USAGE_KEY_KEYBOARD_SEPARATOR (0x9F) // Sel -#define HID_USAGE_KEY_KEYBOARD_OUT (0xA0) // Sel -#define HID_USAGE_KEY_KEYBOARD_OPER (0xA1) // Sel -#define HID_USAGE_KEY_KEYBOARD_CLEAR_AGAIN (0xA2) // Sel -#define HID_USAGE_KEY_KEYBOARD_CRSEL_PROPS (0xA3) // Sel -#define HID_USAGE_KEY_KEYBOARD_EXSEL (0xA4) // Sel -#define HID_USAGE_KEY_KEYPAD_00 (0xB0) // Sel -#define HID_USAGE_KEY_KEYPAD_000 (0xB1) // Sel -#define HID_USAGE_KEY_THOUSANDS_SEPARATOR (0xB2) // Sel -#define HID_USAGE_KEY_DECIMAL_SEPARATOR (0xB3) // Sel -#define HID_USAGE_KEY_CURRENCY_UNIT (0xB4) // Sel -#define HID_USAGE_KEY_CURRENCY_SUB_UNIT (0xB5) // Sel -#define HID_USAGE_KEY_KEYPAD_LEFT_PARENTHESIS (0xB6) // Sel -#define HID_USAGE_KEY_KEYPAD_RIGHT_PARENTHESIS (0xB7) // Sel -#define HID_USAGE_KEY_KEYPAD_LEFT_BRACE (0xB8) // Sel -#define HID_USAGE_KEY_KEYPAD_RIGHT_BRACE (0xB9) // Sel -#define HID_USAGE_KEY_KEYPAD_TAB (0xBA) // Sel -#define HID_USAGE_KEY_KEYPAD_BACKSPACE (0xBB) // Sel -#define HID_USAGE_KEY_KEYPAD_A (0xBC) // Sel -#define HID_USAGE_KEY_KEYPAD_B (0xBD) // Sel -#define HID_USAGE_KEY_KEYPAD_C (0xBE) // Sel -#define HID_USAGE_KEY_KEYPAD_D (0xBF) // Sel -#define HID_USAGE_KEY_KEYPAD_E (0xC0) // Sel -#define HID_USAGE_KEY_KEYPAD_F (0xC1) // Sel -#define HID_USAGE_KEY_KEYPAD_XOR (0xC2) // Sel -#define HID_USAGE_KEY_KEYPAD_CARET (0xC3) // Sel -#define HID_USAGE_KEY_KEYPAD_PERCENT (0xC4) // Sel -#define HID_USAGE_KEY_KEYPAD_LESS_THAN (0xC5) // Sel -#define HID_USAGE_KEY_KEYPAD_GREATER_THAN (0xC6) // Sel -#define HID_USAGE_KEY_KEYPAD_AMPERSAND (0xC7) // Sel -#define HID_USAGE_KEY_KEYPAD_AMPERSAND_AMPERSAND (0xC8) // Sel -#define HID_USAGE_KEY_KEYPAD_PIPE (0xC9) // Sel -#define HID_USAGE_KEY_KEYPAD_PIPE_PIPE (0xCA) // Sel -#define HID_USAGE_KEY_KEYPAD_COLON (0xCB) // Sel -#define HID_USAGE_KEY_KEYPAD_HASH (0xCC) // Sel -#define HID_USAGE_KEY_KEYPAD_SPACE (0xCD) // Sel -#define HID_USAGE_KEY_KEYPAD_AT (0xCE) // Sel -#define HID_USAGE_KEY_KEYPAD_EXCLAMATION (0xCF) // Sel -#define HID_USAGE_KEY_KEYPAD_MEMORY_STORE (0xD0) // Sel -#define HID_USAGE_KEY_KEYPAD_MEMORY_RECALL (0xD1) // Sel -#define HID_USAGE_KEY_KEYPAD_MEMORY_CLEAR (0xD2) // Sel -#define HID_USAGE_KEY_KEYPAD_MEMORY_ADD (0xD3) // Sel -#define HID_USAGE_KEY_KEYPAD_MEMORY_SUBTRACT (0xD4) // Sel -#define HID_USAGE_KEY_KEYPAD_MEMORY_MULTIPLY (0xD5) // Sel -#define HID_USAGE_KEY_KEYPAD_MEMORY_DIVIDE (0xD6) // Sel -#define HID_USAGE_KEY_KEYPAD_PLUS_MINUS (0xD7) // Sel -#define HID_USAGE_KEY_KEYPAD_CLEAR (0xD8) // Sel -#define HID_USAGE_KEY_KEYPAD_CLEAR_ENTRY (0xD9) // Sel -#define HID_USAGE_KEY_KEYPAD_BINARY (0xDA) // Sel -#define HID_USAGE_KEY_KEYPAD_OCTAL (0xDB) // Sel -#define HID_USAGE_KEY_KEYPAD_DECIMAL (0xDC) // Sel -#define HID_USAGE_KEY_KEYPAD_HEXADECIMAL (0xDD) // Sel -#define HID_USAGE_KEY_KEYBOARD_LEFTCONTROL (0xE0) // DV -#define HID_USAGE_KEY_KEYBOARD_LEFTSHIFT (0xE1) // DV -#define HID_USAGE_KEY_KEYBOARD_LEFTALT (0xE2) // DV -#define HID_USAGE_KEY_KEYBOARD_LEFT_GUI (0xE3) // DV -#define HID_USAGE_KEY_KEYBOARD_RIGHTCONTROL (0xE4) // DV -#define HID_USAGE_KEY_KEYBOARD_RIGHTSHIFT (0xE5) // DV -#define HID_USAGE_KEY_KEYBOARD_RIGHTALT (0xE6) // DV -#define HID_USAGE_KEY_KEYBOARD_RIGHT_GUI (0xE7) // DV - -/* Page 0x08: LED */ -#define HID_USAGE_LED_UNDEFINED (0x00) -#define HID_USAGE_LED_NUM_LOCK (0x01) // OOC -#define HID_USAGE_LED_CAPS_LOCK (0x02) // OOC -#define HID_USAGE_LED_SCROLL_LOCK (0x03) // OOC -#define HID_USAGE_LED_COMPOSE (0x04) // OOC -#define HID_USAGE_LED_KANA (0x05) // OOC -#define HID_USAGE_LED_POWER (0x06) // OOC -#define HID_USAGE_LED_SHIFT (0x07) // OOC -#define HID_USAGE_LED_DO_NOT_DISTURB (0x08) // OOC -#define HID_USAGE_LED_MUTE (0x09) // OOC -#define HID_USAGE_LED_TONE_ENABLE (0x0A) // OOC -#define HID_USAGE_LED_HIGH_CUT_FILTER (0x0B) // OOC -#define HID_USAGE_LED_LOW_CUT_FILTER (0x0C) // OOC -#define HID_USAGE_LED_EQUALIZER_ENABLE (0x0D) // OOC -#define HID_USAGE_LED_SOUND_FIELD_ON (0x0E) // OOC -#define HID_USAGE_LED_SURROUND_ON (0x0F) // OOC -#define HID_USAGE_LED_REPEAT (0x10) // OOC -#define HID_USAGE_LED_STEREO (0x11) // OOC -#define HID_USAGE_LED_SAMPLING_RATE_DETECT (0x12) // OOC -#define HID_USAGE_LED_SPINNING (0x13) // OOC -#define HID_USAGE_LED_CAV (0x14) // OOC -#define HID_USAGE_LED_CLV (0x15) // OOC -#define HID_USAGE_LED_RECORDING_FORMAT_DETECT (0x16) // OOC -#define HID_USAGE_LED_OFF_HOOK (0x17) // OOC -#define HID_USAGE_LED_RING (0x18) // OOC -#define HID_USAGE_LED_MESSAGE_WAITING (0x19) // OOC -#define HID_USAGE_LED_DATA_MODE (0x1A) // OOC -#define HID_USAGE_LED_BATTERY_OPERATION (0x1B) // OOC -#define HID_USAGE_LED_BATTERY_OK (0x1C) // OOC -#define HID_USAGE_LED_BATTERY_LOW (0x1D) // OOC -#define HID_USAGE_LED_SPEAKER (0x1E) // OOC -#define HID_USAGE_LED_HEAD_SET (0x1F) // OOC -#define HID_USAGE_LED_HOLD (0x20) // OOC -#define HID_USAGE_LED_MICROPHONE (0x21) // OOC -#define HID_USAGE_LED_COVERAGE (0x22) // OOC -#define HID_USAGE_LED_NIGHT_MODE (0x23) // OOC -#define HID_USAGE_LED_SEND_CALLS (0x24) // OOC -#define HID_USAGE_LED_CALL_PICKUP (0x25) // OOC -#define HID_USAGE_LED_CONFERENCE (0x26) // OOC -#define HID_USAGE_LED_STAND_BY (0x27) // OOC -#define HID_USAGE_LED_CAMERA_ON (0x28) // OOC -#define HID_USAGE_LED_CAMERA_OFF (0x29) // OOC -#define HID_USAGE_LED_ON_LINE (0x2A) // OOC -#define HID_USAGE_LED_OFF_LINE (0x2B) // OOC -#define HID_USAGE_LED_BUSY (0x2C) // OOC -#define HID_USAGE_LED_READY (0x2D) // OOC -#define HID_USAGE_LED_PAPER_OUT (0x2E) // OOC -#define HID_USAGE_LED_PAPER_JAM (0x2F) // OOC -#define HID_USAGE_LED_REMOTE (0x30) // OOC -#define HID_USAGE_LED_FORWARD (0x31) // OOC -#define HID_USAGE_LED_REVERSE (0x32) // OOC -#define HID_USAGE_LED_STOP (0x33) // OOC -#define HID_USAGE_LED_REWIND (0x34) // OOC -#define HID_USAGE_LED_FAST_FORWARD (0x35) // OOC -#define HID_USAGE_LED_PLAY (0x36) // OOC -#define HID_USAGE_LED_PAUSE (0x37) // OOC -#define HID_USAGE_LED_RECORD (0x38) // OOC -#define HID_USAGE_LED_ERROR (0x39) // OOC -#define HID_USAGE_LED_USAGE_SELECTED_INDICATOR (0x3A) // US -#define HID_USAGE_LED_USAGE_IN_USE_INDICATOR (0x3B) // US -#define HID_USAGE_LED_USAGE_MULTI_MODE_INDICATOR (0x3C) // UM -#define HID_USAGE_LED_INDICATOR_ON (0x3D) // Sel -#define HID_USAGE_LED_INDICATOR_FLASH (0x3E) // Sel -#define HID_USAGE_LED_INDICATOR_SLOW_BLINK (0x3F) // Sel -#define HID_USAGE_LED_INDICATOR_FAST_BLINK (0x40) // Sel -#define HID_USAGE_LED_INDICATOR_OFF (0x41) // Sel -#define HID_USAGE_LED_FLASH_ON_TIME (0x42) // DV -#define HID_USAGE_LED_SLOW_BLINK_ON_TIME (0x43) // DV -#define HID_USAGE_LED_SLOW_BLINK_OFF_TIME (0x44) // DV -#define HID_USAGE_LED_FAST_BLINK_ON_TIME (0x45) // DV -#define HID_USAGE_LED_FAST_BLINK_OFF_TIME (0x46) // DV -#define HID_USAGE_LED_USAGE_INDICATOR_COLOR (0x47) // UM -#define HID_USAGE_LED_INDICATOR_RED (0x48) // Sel -#define HID_USAGE_LED_INDICATOR_GREEN (0x49) // Sel -#define HID_USAGE_LED_INDICATOR_AMBER (0x4A) // Sel -#define HID_USAGE_LED_GENERIC_INDICATOR (0x4B) // OOC -#define HID_USAGE_LED_SYSTEM_SUSPEND (0x4C) // OOC -#define HID_USAGE_LED_EXTERNAL_POWER_CONNECTED (0x4D) // OOC -#define HID_USAGE_LED_INDICATOR_BLUE (0x4E) // Sel -#define HID_USAGE_LED_INDICATOR_ORANGE (0x4F) // Sel -#define HID_USAGE_LED_GOOD_STATUS (0x50) // OOC -#define HID_USAGE_LED_WARNING_STATUS (0x51) // OOC -#define HID_USAGE_LED_RGB_LED (0x52) // CL -#define HID_USAGE_LED_RED_LED_CHANNEL (0x53) // DV -#define HID_USAGE_LED_BLUE_LED_CHANNEL (0x54) // DV -#define HID_USAGE_LED_GREEN_LED_CHANNEL (0x55) // DV -#define HID_USAGE_LED_LED_INTENSITY (0x56) // DV -#define HID_USAGE_LED_PLAYER_INDICATOR (0x60) // NAry -#define HID_USAGE_LED_PLAYER_1 (0x61) // Sel -#define HID_USAGE_LED_PLAYER_2 (0x62) // Sel -#define HID_USAGE_LED_PLAYER_3 (0x63) // Sel -#define HID_USAGE_LED_PLAYER_4 (0x64) // Sel -#define HID_USAGE_LED_PLAYER_5 (0x65) // Sel -#define HID_USAGE_LED_PLAYER_6 (0x66) // Sel -#define HID_USAGE_LED_PLAYER_7 (0x67) // Sel -#define HID_USAGE_LED_PLAYER_8 (0x68) // Sel - -/* Page 0x0B: Telephony Device */ -#define HID_USAGE_TELEPHONY_UNDEFINED (0x00) -#define HID_USAGE_TELEPHONY_PHONE (0x01) // CA -#define HID_USAGE_TELEPHONY_ANSWERING_MACHINE (0x02) // CA -#define HID_USAGE_TELEPHONY_MESSAGE_CONTROLS (0x03) // CL -#define HID_USAGE_TELEPHONY_HANDSET (0x04) // CL -#define HID_USAGE_TELEPHONY_HEADSET (0x05) // CL -#define HID_USAGE_TELEPHONY_TELEPHONY_KEY_PAD (0x06) // NAry -#define HID_USAGE_TELEPHONY_PROGRAMMABLE_BUTTON (0x07) // NAry -#define HID_USAGE_TELEPHONY_HOOK_SWITCH (0x20) // OOC -#define HID_USAGE_TELEPHONY_FLASH (0x21) // MC -#define HID_USAGE_TELEPHONY_FEATURE (0x22) // OSC -#define HID_USAGE_TELEPHONY_HOLD (0x23) // OOC -#define HID_USAGE_TELEPHONY_REDIAL (0x24) // OSC -#define HID_USAGE_TELEPHONY_TRANSFER (0x25) // OSC -#define HID_USAGE_TELEPHONY_DROP (0x26) // OSC -#define HID_USAGE_TELEPHONY_PARK (0x27) // OOC -#define HID_USAGE_TELEPHONY_FORWARD_CALLS (0x28) // OOC -#define HID_USAGE_TELEPHONY_ALTERNATE_FUNCTION (0x29) // MC -#define HID_USAGE_TELEPHONY_LINE (0x2A) // OSC, NAry -#define HID_USAGE_TELEPHONY_SPEAKER_PHONE (0x2B) // OOC -#define HID_USAGE_TELEPHONY_CONFERENCE (0x2C) // OOC -#define HID_USAGE_TELEPHONY_RING_ENABLE (0x2D) // OOC -#define HID_USAGE_TELEPHONY_RING_SELECT (0x2E) // OSC -#define HID_USAGE_TELEPHONY_PHONE_MUTE (0x2F) // OOC -#define HID_USAGE_TELEPHONY_CALLER_ID (0x30) // MC -#define HID_USAGE_TELEPHONY_SEND (0x31) // OOC -#define HID_USAGE_TELEPHONY_SPEED_DIAL (0x50) // OSC -#define HID_USAGE_TELEPHONY_STORE_NUMBER (0x51) // OSC -#define HID_USAGE_TELEPHONY_RECALL_NUMBER (0x52) // OSC -#define HID_USAGE_TELEPHONY_PHONE_DIRECTORY (0x53) // OOC -#define HID_USAGE_TELEPHONY_VOICE_MAIL (0x70) // OOC -#define HID_USAGE_TELEPHONY_SCREEN_CALLS (0x71) // OOC -#define HID_USAGE_TELEPHONY_DO_NOT_DISTURB (0x72) // OOC -#define HID_USAGE_TELEPHONY_MESSAGE (0x73) // OSC -#define HID_USAGE_TELEPHONY_ANSWER_ON_OFF (0x74) // OOC -#define HID_USAGE_TELEPHONY_INSIDE_DIAL_TONE (0x90) // MC -#define HID_USAGE_TELEPHONY_OUTSIDE_DIAL_TONE (0x91) // MC -#define HID_USAGE_TELEPHONY_INSIDE_RING_TONE (0x92) // MC -#define HID_USAGE_TELEPHONY_OUTSIDE_RING_TONE (0x93) // MC -#define HID_USAGE_TELEPHONY_PRIORITY_RING_TONE (0x94) // MC -#define HID_USAGE_TELEPHONY_INSIDE_RINGBACK (0x95) // MC -#define HID_USAGE_TELEPHONY_PRIORITY_RINGBACK (0x96) // MC -#define HID_USAGE_TELEPHONY_LINE_BUSY_TONE (0x97) // MC -#define HID_USAGE_TELEPHONY_REORDER_TONE (0x98) // MC -#define HID_USAGE_TELEPHONY_CALL_WAITING_TONE (0x99) // MC -#define HID_USAGE_TELEPHONY_CONFIRMATION_TONE_1 (0x9A) // MC -#define HID_USAGE_TELEPHONY_CONFIRMATION_TONE_2 (0x9B) // MC -#define HID_USAGE_TELEPHONY_TONES_OFF (0x9C) // OOC -#define HID_USAGE_TELEPHONY_OUTSIDE_RINGBACK (0x9D) // MC -#define HID_USAGE_TELEPHONY_RINGER (0x9E) // OOC -#define HID_USAGE_TELEPHONY_PHONE_KEY_0 (0xB0) // Sel -#define HID_USAGE_TELEPHONY_PHONE_KEY_1 (0xB1) // Sel -#define HID_USAGE_TELEPHONY_PHONE_KEY_2 (0xB2) // Sel -#define HID_USAGE_TELEPHONY_PHONE_KEY_3 (0xB3) // Sel -#define HID_USAGE_TELEPHONY_PHONE_KEY_4 (0xB4) // Sel -#define HID_USAGE_TELEPHONY_PHONE_KEY_5 (0xB5) // Sel -#define HID_USAGE_TELEPHONY_PHONE_KEY_6 (0xB6) // Sel -#define HID_USAGE_TELEPHONY_PHONE_KEY_7 (0xB7) // Sel -#define HID_USAGE_TELEPHONY_PHONE_KEY_8 (0xB8) // Sel -#define HID_USAGE_TELEPHONY_PHONE_KEY_9 (0xB9) // Sel -#define HID_USAGE_TELEPHONY_PHONE_KEY_STAR (0xBA) // Sel -#define HID_USAGE_TELEPHONY_PHONE_KEY_POUND (0xBB) // Sel -#define HID_USAGE_TELEPHONY_PHONE_KEY_A (0xBC) // Sel -#define HID_USAGE_TELEPHONY_PHONE_KEY_B (0xBD) // Sel -#define HID_USAGE_TELEPHONY_PHONE_KEY_C (0xBE) // Sel -#define HID_USAGE_TELEPHONY_PHONE_KEY_D (0xBF) // Sel -#define HID_USAGE_TELEPHONY_PHONE_CALL_HISTORY_KEY (0xC0) // Sel -#define HID_USAGE_TELEPHONY_PHONE_CALLER_ID_KEY (0xC1) // Sel -#define HID_USAGE_TELEPHONY_PHONE_SETTINGS_KEY (0xC2) // Sel -#define HID_USAGE_TELEPHONY_HOST_CONTROL (0xF0) // OOC -#define HID_USAGE_TELEPHONY_HOST_AVAILABLE (0xF1) // OOC -#define HID_USAGE_TELEPHONY_HOST_CALL_ACTIVE (0xF2) // OOC -#define HID_USAGE_TELEPHONY_ACTIVATE_HANDSET_AUDIO (0xF3) // OOC -#define HID_USAGE_TELEPHONY_RING_TYPE (0xF4) // NAry -#define HID_USAGE_TELEPHONY_RE_DIALABLE_PHONE_NUMBER (0xF5) // OOC -#define HID_USAGE_TELEPHONY_STOP_RING_TONE (0xF8) // Sel -#define HID_USAGE_TELEPHONY_PSTN_RING_TONE (0xF9) // Sel -#define HID_USAGE_TELEPHONY_HOST_RING_TONE (0xFA) // Sel -#define HID_USAGE_TELEPHONY_ALERT_SOUND_ERROR (0xFB) // Sel -#define HID_USAGE_TELEPHONY_ALERT_SOUND_CONFIRM (0xFC) // Sel -#define HID_USAGE_TELEPHONY_ALERT_SOUND_NOTIFICATION (0xFD) // Sel -#define HID_USAGE_TELEPHONY_SILENT_RING (0xFE) // Sel -#define HID_USAGE_TELEPHONY_EMAIL_MESSAGE_WAITING (0x108) // OOC -#define HID_USAGE_TELEPHONY_VOICEMAIL_MESSAGE_WAITING (0x109) // OOC -#define HID_USAGE_TELEPHONY_HOST_HOLD (0x10A) // OOC -#define HID_USAGE_TELEPHONY_INCOMING_CALL_HISTORY_COUNT (0x110) // DV -#define HID_USAGE_TELEPHONY_OUTGOING_CALL_HISTORY_COUNT (0x111) // DV -#define HID_USAGE_TELEPHONY_INCOMING_CALL_HISTORY (0x112) // CL -#define HID_USAGE_TELEPHONY_OUTGOING_CALL_HISTORY (0x113) // CL -#define HID_USAGE_TELEPHONY_PHONE_LOCALE (0x114) // DV -#define HID_USAGE_TELEPHONY_PHONE_TIME_SECOND (0x140) // DV -#define HID_USAGE_TELEPHONY_PHONE_TIME_MINUTE (0x141) // DV -#define HID_USAGE_TELEPHONY_PHONE_TIME_HOUR (0x142) // DV -#define HID_USAGE_TELEPHONY_PHONE_DATE_DAY (0x143) // DV -#define HID_USAGE_TELEPHONY_PHONE_DATE_MONTH (0x144) // DV -#define HID_USAGE_TELEPHONY_PHONE_DATE_YEAR (0x145) // DV -#define HID_USAGE_TELEPHONY_HANDSET_NICKNAME (0x146) // DV -#define HID_USAGE_TELEPHONY_ADDRESS_BOOK_ID (0x147) // DV -#define HID_USAGE_TELEPHONY_CALL_DURATION (0x14A) // DV -#define HID_USAGE_TELEPHONY_DUAL_MODE_PHONE (0x14B) // CA - -/* Page 0x0C: Consumer */ -#define HID_USAGE_CONSUMER_UNDEFINED (0x00) -#define HID_USAGE_CONSUMER_CONSUMER_CONTROL (0x01) // CA -#define HID_USAGE_CONSUMER_NUMERIC_KEY_PAD (0x02) // NAry -#define HID_USAGE_CONSUMER_PROGRAMMABLE_BUTTONS (0x03) // NAry -#define HID_USAGE_CONSUMER_MICROPHONE (0x04) // CA -#define HID_USAGE_CONSUMER_HEADPHONE (0x05) // CA -#define HID_USAGE_CONSUMER_GRAPHIC_EQUALIZER (0x06) // CA -#define HID_USAGE_CONSUMER_INCREMENT10 (0x20) // OSC -#define HID_USAGE_CONSUMER_INCREMENT100 (0x21) // OSC -#define HID_USAGE_CONSUMER_AM_PM (0x22) // OSC -#define HID_USAGE_CONSUMER_POWER (0x30) // OOC -#define HID_USAGE_CONSUMER_RESET (0x31) // OSC -#define HID_USAGE_CONSUMER_SLEEP (0x32) // OSC -#define HID_USAGE_CONSUMER_SLEEP_AFTER (0x33) // OSC -#define HID_USAGE_CONSUMER_SLEEP_MODE (0x34) // RTC -#define HID_USAGE_CONSUMER_ILLUMINATION (0x35) // OOC -#define HID_USAGE_CONSUMER_FUNCTION_BUTTONS (0x36) // NAry -#define HID_USAGE_CONSUMER_MENU (0x40) // OOC -#define HID_USAGE_CONSUMER_MENU_PICK (0x41) // OSC -#define HID_USAGE_CONSUMER_MENU_UP (0x42) // OSC -#define HID_USAGE_CONSUMER_MENU_DOWN (0x43) // OSC -#define HID_USAGE_CONSUMER_MENU_LEFT (0x44) // OSC -#define HID_USAGE_CONSUMER_MENU_RIGHT (0x45) // OSC -#define HID_USAGE_CONSUMER_MENU_ESCAPE (0x46) // OSC -#define HID_USAGE_CONSUMER_MENU_VALUE_INCREASE (0x47) // OSC -#define HID_USAGE_CONSUMER_MENU_VALUE_DECREASE (0x48) // OSC -#define HID_USAGE_CONSUMER_DATA_ON_SCREEN (0x60) // OOC -#define HID_USAGE_CONSUMER_CLOSED_CAPTION (0x61) // OOC -#define HID_USAGE_CONSUMER_CLOSED_CAPTION_SELECT (0x62) // OSC -#define HID_USAGE_CONSUMER_VCR_TV (0x63) // OOC -#define HID_USAGE_CONSUMER_BROADCAST_MODE (0x64) // OSC -#define HID_USAGE_CONSUMER_SNAPSHOT (0x65) // OSC -#define HID_USAGE_CONSUMER_STILL (0x66) // OSC -#define HID_USAGE_CONSUMER_PICTURE_IN_PICTURE_TOGGLE (0x67) // OSC -#define HID_USAGE_CONSUMER_PICTURE_IN_PICTURE_SWAP (0x68) // OSC -#define HID_USAGE_CONSUMER_RED_MENU_BUTTON (0x69) // MC -#define HID_USAGE_CONSUMER_GREEN_MENU_BUTTON (0x6A) // MC -#define HID_USAGE_CONSUMER_BLUE_MENU_BUTTON (0x6B) // MC -#define HID_USAGE_CONSUMER_YELLOW_MENU_BUTTON (0x6C) // MC -#define HID_USAGE_CONSUMER_ASPECT (0x6D) // OSC -#define HID_USAGE_CONSUMER_3D_MODE_SELECT (0x6E) // OSC -#define HID_USAGE_CONSUMER_DISPLAY_BRIGHTNESS_INCREMENT (0x6F) // RTC -#define HID_USAGE_CONSUMER_DISPLAY_BRIGHTNESS_DECREMENT (0x70) // RTC -#define HID_USAGE_CONSUMER_DISPLAY_BRIGHTNESS (0x71) // LC -#define HID_USAGE_CONSUMER_DISPLAY_BACKLIGHT_TOGGLE (0x72) // OOC -#define HID_USAGE_CONSUMER_DISPLAY_SET_BRIGHTNESS_TO_MINIMUM (0x73) // OSC -#define HID_USAGE_CONSUMER_DISPLAY_SET_BRIGHTNESS_TO_MAXIMUM (0x74) // OSC -#define HID_USAGE_CONSUMER_DISPLAY_SET_AUTO_BRIGHTNESS (0x75) // OOC -#define HID_USAGE_CONSUMER_CAMERA_ACCESS_ENABLED (0x76) // OOC -#define HID_USAGE_CONSUMER_CAMERA_ACCESS_DISABLED (0x77) // OOC -#define HID_USAGE_CONSUMER_CAMERA_ACCESS_TOGGLE (0x78) // OOC -#define HID_USAGE_CONSUMER_KEYBOARD_BRIGHTNESS_INCREMENT (0x79) // OSC -#define HID_USAGE_CONSUMER_KEYBOARD_BRIGHTNESS_DECREMENT (0x7A) // OSC -#define HID_USAGE_CONSUMER_KEYBOARD_BACKLIGHT_SET_LEVEL (0x7B) // LC -#define HID_USAGE_CONSUMER_KEYBOARD_BACKLIGHT_OOC (0x7C) // OOC -#define HID_USAGE_CONSUMER_KEYBOARD_BACKLIGHT_SET_MINIMUM (0x7D) // OSC -#define HID_USAGE_CONSUMER_KEYBOARD_BACKLIGHT_SET_MAXIMUM (0x7E) // OSC -#define HID_USAGE_CONSUMER_KEYBOARD_BACKLIGHT_AUTO (0x7F) // OOC -#define HID_USAGE_CONSUMER_SELECTION (0x80) // NAry -#define HID_USAGE_CONSUMER_ASSIGN_SELECTION (0x81) // OSC -#define HID_USAGE_CONSUMER_MODE_STEP (0x82) // OSC -#define HID_USAGE_CONSUMER_RECALL_LAST (0x83) // OSC -#define HID_USAGE_CONSUMER_ENTER_CHANNEL (0x84) // OSC -#define HID_USAGE_CONSUMER_ORDER_MOVIE (0x85) // OSC -#define HID_USAGE_CONSUMER_CHANNEL (0x86) // LC -#define HID_USAGE_CONSUMER_MEDIA_SELECTION (0x87) // NAry -#define HID_USAGE_CONSUMER_MEDIA_SELECT_COMPUTER (0x88) // Sel -#define HID_USAGE_CONSUMER_MEDIA_SELECT_TV (0x89) // Sel -#define HID_USAGE_CONSUMER_MEDIA_SELECT_WWW (0x8A) // Sel -#define HID_USAGE_CONSUMER_MEDIA_SELECT_DVD (0x8B) // Sel -#define HID_USAGE_CONSUMER_MEDIA_SELECT_TELEPHONE (0x8C) // Sel -#define HID_USAGE_CONSUMER_MEDIA_SELECT_PROGRAM_GUIDE (0x8D) // Sel -#define HID_USAGE_CONSUMER_MEDIA_SELECT_VIDEO_PHONE (0x8E) // Sel -#define HID_USAGE_CONSUMER_MEDIA_SELECT_GAMES (0x8F) // Sel -#define HID_USAGE_CONSUMER_MEDIA_SELECT_MESSAGES (0x90) // Sel -#define HID_USAGE_CONSUMER_MEDIA_SELECT_CD (0x91) // Sel -#define HID_USAGE_CONSUMER_MEDIA_SELECT_VCR (0x92) // Sel -#define HID_USAGE_CONSUMER_MEDIA_SELECT_TUNER (0x93) // Sel -#define HID_USAGE_CONSUMER_QUIT (0x94) // OSC -#define HID_USAGE_CONSUMER_HELP (0x95) // OOC -#define HID_USAGE_CONSUMER_MEDIA_SELECT_TAPE (0x96) // Sel -#define HID_USAGE_CONSUMER_MEDIA_SELECT_CABLE (0x97) // Sel -#define HID_USAGE_CONSUMER_MEDIA_SELECT_SATELLITE (0x98) // Sel -#define HID_USAGE_CONSUMER_MEDIA_SELECT_SECURITY (0x99) // Sel -#define HID_USAGE_CONSUMER_MEDIA_SELECT_HOME (0x9A) // Sel -#define HID_USAGE_CONSUMER_MEDIA_SELECT_CALL (0x9B) // Sel -#define HID_USAGE_CONSUMER_CHANNEL_INCREMENT (0x9C) // OSC -#define HID_USAGE_CONSUMER_CHANNEL_DECREMENT (0x9D) // OSC -#define HID_USAGE_CONSUMER_MEDIA_SELECT_SAP (0x9E) // Sel -#define HID_USAGE_CONSUMER_VCR_PLUS (0xA0) // OSC -#define HID_USAGE_CONSUMER_ONCE (0xA1) // OSC -#define HID_USAGE_CONSUMER_DAILY (0xA2) // OSC -#define HID_USAGE_CONSUMER_WEEKLY (0xA3) // OSC -#define HID_USAGE_CONSUMER_MONTHLY (0xA4) // OSC -#define HID_USAGE_CONSUMER_PLAY (0xB0) // OOC -#define HID_USAGE_CONSUMER_PAUSE (0xB1) // OOC -#define HID_USAGE_CONSUMER_RECORD (0xB2) // OOC -#define HID_USAGE_CONSUMER_FAST_FORWARD (0xB3) // OOC -#define HID_USAGE_CONSUMER_REWIND (0xB4) // OOC -#define HID_USAGE_CONSUMER_SCAN_NEXT_TRACK (0xB5) // OSC -#define HID_USAGE_CONSUMER_SCAN_PREVIOUS_TRACK (0xB6) // OSC -#define HID_USAGE_CONSUMER_STOP (0xB7) // OSC -#define HID_USAGE_CONSUMER_EJECT (0xB8) // OSC -#define HID_USAGE_CONSUMER_RANDOM_PLAY (0xB9) // OOC -#define HID_USAGE_CONSUMER_SELECT_DISC (0xBA) // NAry -#define HID_USAGE_CONSUMER_ENTER_DISC (0xBB) // MC -#define HID_USAGE_CONSUMER_REPEAT (0xBC) // OSC -#define HID_USAGE_CONSUMER_TRACKING (0xBD) // LC -#define HID_USAGE_CONSUMER_TRACK_NORMAL (0xBE) // OSC -#define HID_USAGE_CONSUMER_SLOW_TRACKING (0xBF) // LC -#define HID_USAGE_CONSUMER_FRAME_FORWARD (0xC0) // RTC -#define HID_USAGE_CONSUMER_FRAME_BACK (0xC1) // RTC -#define HID_USAGE_CONSUMER_MARK (0xC2) // OSC -#define HID_USAGE_CONSUMER_CLEAR_MARK (0xC3) // OSC -#define HID_USAGE_CONSUMER_REPEAT_FROM_MARK (0xC4) // OOC -#define HID_USAGE_CONSUMER_RETURN_TO_MARK (0xC5) // OSC -#define HID_USAGE_CONSUMER_SEARCH_MARK_FORWARD (0xC6) // OSC -#define HID_USAGE_CONSUMER_SEARCH_MARK_BACKWARDS (0xC7) // OSC -#define HID_USAGE_CONSUMER_COUNTER_RESET (0xC8) // OSC -#define HID_USAGE_CONSUMER_SHOW_COUNTER (0xC9) // OSC -#define HID_USAGE_CONSUMER_TRACKING_INCREMENT (0xCA) // RTC -#define HID_USAGE_CONSUMER_TRACKING_DECREMENT (0xCB) // RTC -#define HID_USAGE_CONSUMER_STOP_EJECT (0xCC) // OSC -#define HID_USAGE_CONSUMER_PLAY_PAUSE (0xCD) // OSC -#define HID_USAGE_CONSUMER_PLAY_SKIP (0xCE) // OSC -#define HID_USAGE_CONSUMER_VOICE_COMMAND (0xCF) // OSC -#define HID_USAGE_CONSUMER_INVOKE_CAPTURE_INTERFACE (0xD0) // Sel -#define HID_USAGE_CONSUMER_START_OR_STOP_GAME_RECORDING (0xD1) // Sel -#define HID_USAGE_CONSUMER_HISTORICAL_GAME_CAPTURE (0xD2) // Sel -#define HID_USAGE_CONSUMER_CAPTURE_GAME_SCREENSHOT (0xD3) // Sel -#define HID_USAGE_CONSUMER_SHOW_OR_HIDE_RECORDING_INDICATOR (0xD4) // Sel -#define HID_USAGE_CONSUMER_START_OR_STOP_MICROPHONE_CAPTURE (0xD5) // Sel -#define HID_USAGE_CONSUMER_START_OR_STOP_CAMERA_CAPTURE (0xD6) // Sel -#define HID_USAGE_CONSUMER_START_OR_STOP_GAME_BROADCAST (0xD7) // Sel -#define HID_USAGE_CONSUMER_VOLUME (0xE0) // LC -#define HID_USAGE_CONSUMER_BALANCE (0xE1) // LC -#define HID_USAGE_CONSUMER_MUTE (0xE2) // OOC -#define HID_USAGE_CONSUMER_BASS (0xE3) // LC -#define HID_USAGE_CONSUMER_TREBLE (0xE4) // LC -#define HID_USAGE_CONSUMER_BASS_BOOST (0xE5) // OOC -#define HID_USAGE_CONSUMER_SURROUND_MODE (0xE6) // OSC -#define HID_USAGE_CONSUMER_LOUDNESS (0xE7) // OOC -#define HID_USAGE_CONSUMER_MPX (0xE8) // OOC -#define HID_USAGE_CONSUMER_VOLUME_INCREMENT (0xE9) // RTC -#define HID_USAGE_CONSUMER_VOLUME_DECREMENT (0xEA) // RTC -#define HID_USAGE_CONSUMER_SPEED_SELECT (0xF0) // OSC -#define HID_USAGE_CONSUMER_PLAYBACK_SPEED (0xF1) // NAry -#define HID_USAGE_CONSUMER_STANDARD_PLAY (0xF2) // Sel -#define HID_USAGE_CONSUMER_LONG_PLAY (0xF3) // Sel -#define HID_USAGE_CONSUMER_EXTENDED_PLAY (0xF4) // Sel -#define HID_USAGE_CONSUMER_SLOW (0xF5) // OSC -#define HID_USAGE_CONSUMER_FAN_ENABLE (0x100) // OOC -#define HID_USAGE_CONSUMER_FAN_SPEED (0x101) // LC -#define HID_USAGE_CONSUMER_LIGHT_ENABLE (0x102) // OOC -#define HID_USAGE_CONSUMER_LIGHT_ILLUMINATION_LEVEL (0x103) // LC -#define HID_USAGE_CONSUMER_CLIMATE_CONTROL_ENABLE (0x104) // OOC -#define HID_USAGE_CONSUMER_ROOM_TEMPERATURE (0x105) // LC -#define HID_USAGE_CONSUMER_SECURITY_ENABLE (0x106) // OOC -#define HID_USAGE_CONSUMER_FIRE_ALARM (0x107) // OSC -#define HID_USAGE_CONSUMER_POLICE_ALARM (0x108) // OSC -#define HID_USAGE_CONSUMER_PROXIMITY (0x109) // LC -#define HID_USAGE_CONSUMER_MOTION (0x10A) // OSC -#define HID_USAGE_CONSUMER_DURESS_ALARM (0x10B) // OSC -#define HID_USAGE_CONSUMER_HOLDUP_ALARM (0x10C) // OSC -#define HID_USAGE_CONSUMER_MEDICAL_ALARM (0x10D) // OSC -#define HID_USAGE_CONSUMER_BALANCE_RIGHT (0x150) // RTC -#define HID_USAGE_CONSUMER_BALANCE_LEFT (0x151) // RTC -#define HID_USAGE_CONSUMER_BASS_INCREMENT (0x152) // RTC -#define HID_USAGE_CONSUMER_BASS_DECREMENT (0x153) // RTC -#define HID_USAGE_CONSUMER_TREBLE_INCREMENT (0x154) // RTC -#define HID_USAGE_CONSUMER_TREBLE_DECREMENT (0x155) // RTC -#define HID_USAGE_CONSUMER_SPEAKER_SYSTEM (0x160) // CL -#define HID_USAGE_CONSUMER_CHANNEL_LEFT (0x161) // CL -#define HID_USAGE_CONSUMER_CHANNEL_RIGHT (0x162) // CL -#define HID_USAGE_CONSUMER_CHANNEL_CENTER (0x163) // CL -#define HID_USAGE_CONSUMER_CHANNEL_FRONT (0x164) // CL -#define HID_USAGE_CONSUMER_CHANNEL_CENTER_FRONT (0x165) // CL -#define HID_USAGE_CONSUMER_CHANNEL_SIDE (0x166) // CL -#define HID_USAGE_CONSUMER_CHANNEL_SURROUND (0x167) // CL -#define HID_USAGE_CONSUMER_CHANNEL_LOW_FREQUENCY_ENHANCEMENT (0x168) // CL -#define HID_USAGE_CONSUMER_CHANNEL_TOP (0x169) // CL -#define HID_USAGE_CONSUMER_CHANNEL_UNKNOWN (0x16A) // CL -#define HID_USAGE_CONSUMER_SUB_CHANNEL (0x170) // LC -#define HID_USAGE_CONSUMER_SUB_CHANNEL_INCREMENT (0x171) // OSC -#define HID_USAGE_CONSUMER_SUB_CHANNEL_DECREMENT (0x172) // OSC -#define HID_USAGE_CONSUMER_ALTERNATE_AUDIO_INCREMENT (0x173) // OSC -#define HID_USAGE_CONSUMER_ALTERNATE_AUDIO_DECREMENT (0x174) // OSC -#define HID_USAGE_CONSUMER_APPLICATION_LAUNCH_BUTTONS (0x180) // NAry -#define HID_USAGE_CONSUMER_AL_LAUNCH_BUTTON_CONFIGURATION_TOOL (0x181) // Sel -#define HID_USAGE_CONSUMER_AL_PROGRAMMABLE_BUTTON_CONFIGURATION (0x182) // Sel -#define HID_USAGE_CONSUMER_AL_CONSUMER_CONTROL_CONFIGURATION (0x183) // Sel -#define HID_USAGE_CONSUMER_AL_WORD_PROCESSOR (0x184) // Sel -#define HID_USAGE_CONSUMER_AL_TEXT_EDITOR (0x185) // Sel -#define HID_USAGE_CONSUMER_AL_SPREADSHEET (0x186) // Sel -#define HID_USAGE_CONSUMER_AL_GRAPHICS_EDITOR (0x187) // Sel -#define HID_USAGE_CONSUMER_AL_PRESENTATION_APP (0x188) // Sel -#define HID_USAGE_CONSUMER_AL_DATABASE_APP (0x189) // Sel -#define HID_USAGE_CONSUMER_AL_EMAIL_READER (0x18A) // Sel -#define HID_USAGE_CONSUMER_AL_NEWSREADER (0x18B) // Sel -#define HID_USAGE_CONSUMER_AL_VOICEMAIL (0x18C) // Sel -#define HID_USAGE_CONSUMER_AL_CONTACTS_ADDRESS_BOOK (0x18D) // Sel -#define HID_USAGE_CONSUMER_AL_CALENDAR_SCHEDULE (0x18E) // Sel -#define HID_USAGE_CONSUMER_AL_TASK_PROJECT_MANAGER (0x18F) // Sel -#define HID_USAGE_CONSUMER_AL_LOG_JOURNAL_TIMECARD (0x190) // Sel -#define HID_USAGE_CONSUMER_AL_CHECKBOOK_FINANCE (0x191) // Sel -#define HID_USAGE_CONSUMER_AL_CALCULATOR (0x192) // Sel -#define HID_USAGE_CONSUMER_AL_A_V_CAPTURE_PLAYBACK (0x193) // Sel -#define HID_USAGE_CONSUMER_AL_LOCAL_MACHINE_BROWSER (0x194) // Sel -#define HID_USAGE_CONSUMER_AL_LAN_WAN_BROWSER (0x195) // Sel -#define HID_USAGE_CONSUMER_AL_INTERNET_BROWSER (0x196) // Sel -#define HID_USAGE_CONSUMER_AL_REMOTE_NETWORKING_ISP_CONNECT (0x197) // Sel -#define HID_USAGE_CONSUMER_AL_NETWORK_CONFERENCE (0x198) // Sel -#define HID_USAGE_CONSUMER_AL_NETWORK_CHAT (0x199) // Sel -#define HID_USAGE_CONSUMER_AL_TELEPHONY_DIALER (0x19A) // Sel -#define HID_USAGE_CONSUMER_AL_LOGON (0x19B) // Sel -#define HID_USAGE_CONSUMER_AL_LOGOFF (0x19C) // Sel -#define HID_USAGE_CONSUMER_AL_LOGON_LOGOFF (0x19D) // Sel -#define HID_USAGE_CONSUMER_AL_TERMINAL_LOCK_SCREENSAVER (0x19E) // Sel -#define HID_USAGE_CONSUMER_AL_CONTROL_PANEL (0x19F) // Sel -#define HID_USAGE_CONSUMER_AL_COMMAND_LINE_PROCESSOR_RUN (0x1A0) // Sel -#define HID_USAGE_CONSUMER_AL_PROCESS_TASK_MANAGER (0x1A1) // Sel -#define HID_USAGE_CONSUMER_AL_SELECT_TASK_APPLICATION (0x1A2) // Sel -#define HID_USAGE_CONSUMER_AL_NEXT_TASK_APPLICATION (0x1A3) // Sel -#define HID_USAGE_CONSUMER_AL_PREVIOUS_TASK_APPLICATION (0x1A4) // Sel -#define HID_USAGE_CONSUMER_AL_PREEMPTIVE_HALT_TASK_APPLICATION (0x1A5) // Sel -#define HID_USAGE_CONSUMER_AL_INTEGRATED_HELP_CENTER (0x1A6) // Sel -#define HID_USAGE_CONSUMER_AL_DOCUMENTS (0x1A7) // Sel -#define HID_USAGE_CONSUMER_AL_THESAURUS (0x1A8) // Sel -#define HID_USAGE_CONSUMER_AL_DICTIONARY (0x1A9) // Sel -#define HID_USAGE_CONSUMER_AL_DESKTOP (0x1AA) // Sel -#define HID_USAGE_CONSUMER_AL_SPELL_CHECK (0x1AB) // Sel -#define HID_USAGE_CONSUMER_AL_GRAMMAR_CHECK (0x1AC) // Sel -#define HID_USAGE_CONSUMER_AL_WIRELESS_STATUS (0x1AD) // Sel -#define HID_USAGE_CONSUMER_AL_KEYBOARD_LAYOUT (0x1AE) // Sel -#define HID_USAGE_CONSUMER_AL_VIRUS_PROTECTION (0x1AF) // Sel -#define HID_USAGE_CONSUMER_AL_ENCRYPTION (0x1B0) // Sel -#define HID_USAGE_CONSUMER_AL_SCREEN_SAVER (0x1B1) // Sel -#define HID_USAGE_CONSUMER_AL_ALARMS (0x1B2) // Sel -#define HID_USAGE_CONSUMER_AL_CLOCK (0x1B3) // Sel -#define HID_USAGE_CONSUMER_AL_FILE_BROWSER (0x1B4) // Sel -#define HID_USAGE_CONSUMER_AL_POWER_STATUS (0x1B5) // Sel -#define HID_USAGE_CONSUMER_AL_IMAGE_BROWSER (0x1B6) // Sel -#define HID_USAGE_CONSUMER_AL_AUDIO_BROWSER (0x1B7) // Sel -#define HID_USAGE_CONSUMER_AL_MOVIE_BROWSER (0x1B8) // Sel -#define HID_USAGE_CONSUMER_AL_DIGITAL_RIGHTS_MANAGER (0x1B9) // Sel -#define HID_USAGE_CONSUMER_AL_DIGITAL_WALLET (0x1BA) // Sel -#define HID_USAGE_CONSUMER_AL_INSTANT_MESSAGING (0x1BC) // Sel -#define HID_USAGE_CONSUMER_AL_OEM_FEATURES_TIPS_TUTORIAL_BROWSER (0x1BD) // Sel -#define HID_USAGE_CONSUMER_AL_OEM_HELP (0x1BE) // Sel -#define HID_USAGE_CONSUMER_AL_ONLINE_COMMUNITY (0x1BF) // Sel -#define HID_USAGE_CONSUMER_AL_ENTERTAINMENT_CONTENT_BROWSER (0x1C0) // Sel -#define HID_USAGE_CONSUMER_AL_ONLINE_SHOPPING_BROWSER (0x1C1) // Sel -#define HID_USAGE_CONSUMER_AL_SMARTCARD_INFORMATION_HELP (0x1C2) // Sel -#define HID_USAGE_CONSUMER_AL_MARKET_MONITOR_FINANCE_BROWSER (0x1C3) // Sel -#define HID_USAGE_CONSUMER_AL_CUSTOMIZED_CORPORATE_NEWS_BROWSER (0x1C4) // Sel -#define HID_USAGE_CONSUMER_AL_ONLINE_ACTIVITY_BROWSER (0x1C5) // Sel -#define HID_USAGE_CONSUMER_AL_RESEARCH_SEARCH_BROWSER (0x1C6) // Sel -#define HID_USAGE_CONSUMER_AL_AUDIO_PLAYER (0x1C7) // Sel -#define HID_USAGE_CONSUMER_AL_MESSAGE_STATUS (0x1C8) // Sel -#define HID_USAGE_CONSUMER_AL_CONTACT_SYNC (0x1C9) // Sel -#define HID_USAGE_CONSUMER_AL_NAVIGATION (0x1CA) // Sel -#define HID_USAGE_CONSUMER_AL_CONTEXT_AWARE_DESKTOP_ASSISTANT (0x1CB) // Sel -#define HID_USAGE_CONSUMER_GENERIC_GUI_APPLICATION_CONTROLS (0x200) // NAry -#define HID_USAGE_CONSUMER_AC_NEW (0x201) // Sel -#define HID_USAGE_CONSUMER_AC_OPEN (0x202) // Sel -#define HID_USAGE_CONSUMER_AC_CLOSE (0x203) // Sel -#define HID_USAGE_CONSUMER_AC_EXIT (0x204) // Sel -#define HID_USAGE_CONSUMER_AC_MAXIMIZE (0x205) // Sel -#define HID_USAGE_CONSUMER_AC_MINIMIZE (0x206) // Sel -#define HID_USAGE_CONSUMER_AC_SAVE (0x207) // Sel -#define HID_USAGE_CONSUMER_AC_PRINT (0x208) // Sel -#define HID_USAGE_CONSUMER_AC_PROPERTIES (0x209) // Sel -#define HID_USAGE_CONSUMER_AC_UNDO (0x21A) // Sel -#define HID_USAGE_CONSUMER_AC_COPY (0x21B) // Sel -#define HID_USAGE_CONSUMER_AC_CUT (0x21C) // Sel -#define HID_USAGE_CONSUMER_AC_PASTE (0x21D) // Sel -#define HID_USAGE_CONSUMER_AC_SELECT_ALL (0x21E) // Sel -#define HID_USAGE_CONSUMER_AC_FIND (0x21F) // Sel -#define HID_USAGE_CONSUMER_AC_FIND_AND_REPLACE (0x220) // Sel -#define HID_USAGE_CONSUMER_AC_SEARCH (0x221) // Sel -#define HID_USAGE_CONSUMER_AC_GO_TO (0x222) // Sel -#define HID_USAGE_CONSUMER_AC_HOME (0x223) // Sel -#define HID_USAGE_CONSUMER_AC_BACK (0x224) // Sel -#define HID_USAGE_CONSUMER_AC_FORWARD (0x225) // Sel -#define HID_USAGE_CONSUMER_AC_STOP (0x226) // Sel -#define HID_USAGE_CONSUMER_AC_REFRESH (0x227) // Sel -#define HID_USAGE_CONSUMER_AC_PREVIOUS_LINK (0x228) // Sel -#define HID_USAGE_CONSUMER_AC_NEXT_LINK (0x229) // Sel -#define HID_USAGE_CONSUMER_AC_BOOKMARKS (0x22A) // Sel -#define HID_USAGE_CONSUMER_AC_HISTORY (0x22B) // Sel -#define HID_USAGE_CONSUMER_AC_SUBSCRIPTIONS (0x22C) // Sel -#define HID_USAGE_CONSUMER_AC_ZOOM_IN (0x22D) // Sel -#define HID_USAGE_CONSUMER_AC_ZOOM_OUT (0x22E) // Sel -#define HID_USAGE_CONSUMER_AC_ZOOM (0x22F) // LC -#define HID_USAGE_CONSUMER_AC_FULL_SCREEN_VIEW (0x230) // Sel -#define HID_USAGE_CONSUMER_AC_NORMAL_VIEW (0x231) // Sel -#define HID_USAGE_CONSUMER_AC_VIEW_TOGGLE (0x232) // Sel -#define HID_USAGE_CONSUMER_AC_SCROLL_UP (0x233) // Sel -#define HID_USAGE_CONSUMER_AC_SCROLL_DOWN (0x234) // Sel -#define HID_USAGE_CONSUMER_AC_SCROLL (0x235) // LC -#define HID_USAGE_CONSUMER_AC_PAN_LEFT (0x236) // Sel -#define HID_USAGE_CONSUMER_AC_PAN_RIGHT (0x237) // Sel -#define HID_USAGE_CONSUMER_AC_PAN (0x238) // LC -#define HID_USAGE_CONSUMER_AC_NEW_WINDOW (0x239) // Sel -#define HID_USAGE_CONSUMER_AC_TILE_HORIZONTALLY (0x23A) // Sel -#define HID_USAGE_CONSUMER_AC_TILE_VERTICALLY (0x23B) // Sel -#define HID_USAGE_CONSUMER_AC_FORMAT (0x23C) // Sel -#define HID_USAGE_CONSUMER_AC_EDIT (0x23D) // Sel -#define HID_USAGE_CONSUMER_AC_BOLD (0x23E) // Sel -#define HID_USAGE_CONSUMER_AC_ITALICS (0x23F) // Sel -#define HID_USAGE_CONSUMER_AC_UNDERLINE (0x240) // Sel -#define HID_USAGE_CONSUMER_AC_STRIKETHROUGH (0x241) // Sel -#define HID_USAGE_CONSUMER_AC_SUBSCRIPT (0x242) // Sel -#define HID_USAGE_CONSUMER_AC_SUPERSCRIPT (0x243) // Sel -#define HID_USAGE_CONSUMER_AC_ALL_CAPS (0x244) // Sel -#define HID_USAGE_CONSUMER_AC_ROTATE (0x245) // Sel -#define HID_USAGE_CONSUMER_AC_RESIZE (0x246) // Sel -#define HID_USAGE_CONSUMER_AC_FLIP_HORIZONTAL (0x247) // Sel -#define HID_USAGE_CONSUMER_AC_FLIP_VERTICAL (0x248) // Sel -#define HID_USAGE_CONSUMER_AC_MIRROR_HORIZONTAL (0x249) // Sel -#define HID_USAGE_CONSUMER_AC_MIRROR_VERTICAL (0x24A) // Sel -#define HID_USAGE_CONSUMER_AC_FONT_SELECT (0x24B) // Sel -#define HID_USAGE_CONSUMER_AC_FONT_COLOR (0x24C) // Sel -#define HID_USAGE_CONSUMER_AC_FONT_SIZE (0x24D) // Sel -#define HID_USAGE_CONSUMER_AC_JUSTIFY_LEFT (0x24E) // Sel -#define HID_USAGE_CONSUMER_AC_JUSTIFY_CENTER_H (0x24F) // Sel -#define HID_USAGE_CONSUMER_AC_JUSTIFY_RIGHT (0x250) // Sel -#define HID_USAGE_CONSUMER_AC_JUSTIFY_BLOCK_H (0x251) // Sel -#define HID_USAGE_CONSUMER_AC_JUSTIFY_TOP (0x252) // Sel -#define HID_USAGE_CONSUMER_AC_JUSTIFY_CENTER_V (0x253) // Sel -#define HID_USAGE_CONSUMER_AC_JUSTIFY_BOTTOM (0x254) // Sel -#define HID_USAGE_CONSUMER_AC_JUSTIFY_BLOCK_V (0x255) // Sel -#define HID_USAGE_CONSUMER_AC_INDENT_DECREASE (0x256) // Sel -#define HID_USAGE_CONSUMER_AC_INDENT_INCREASE (0x257) // Sel -#define HID_USAGE_CONSUMER_AC_NUMBERED_LIST (0x258) // Sel -#define HID_USAGE_CONSUMER_AC_RESTART_NUMBERING (0x259) // Sel -#define HID_USAGE_CONSUMER_AC_BULLETED_LIST (0x25A) // Sel -#define HID_USAGE_CONSUMER_AC_PROMOTE (0x25B) // Sel -#define HID_USAGE_CONSUMER_AC_DEMOTE (0x25C) // Sel -#define HID_USAGE_CONSUMER_AC_YES (0x25D) // Sel -#define HID_USAGE_CONSUMER_AC_NO (0x25E) // Sel -#define HID_USAGE_CONSUMER_AC_CANCEL (0x25F) // Sel -#define HID_USAGE_CONSUMER_AC_CATALOG (0x260) // Sel -#define HID_USAGE_CONSUMER_AC_BUY_CHECKOUT (0x261) // Sel -#define HID_USAGE_CONSUMER_AC_ADD_TO_CART (0x262) // Sel -#define HID_USAGE_CONSUMER_AC_EXPAND (0x263) // Sel -#define HID_USAGE_CONSUMER_AC_EXPAND_ALL (0x264) // Sel -#define HID_USAGE_CONSUMER_AC_COLLAPSE (0x265) // Sel -#define HID_USAGE_CONSUMER_AC_COLLAPSE_ALL (0x266) // Sel -#define HID_USAGE_CONSUMER_AC_PRINT_PREVIEW (0x267) // Sel -#define HID_USAGE_CONSUMER_AC_PASTE_SPECIAL (0x268) // Sel -#define HID_USAGE_CONSUMER_AC_INSERT_MODE (0x269) // Sel -#define HID_USAGE_CONSUMER_AC_DELETE (0x26A) // Sel -#define HID_USAGE_CONSUMER_AC_LOCK (0x26B) // Sel -#define HID_USAGE_CONSUMER_AC_UNLOCK (0x26C) // Sel -#define HID_USAGE_CONSUMER_AC_PROTECT (0x26D) // Sel -#define HID_USAGE_CONSUMER_AC_UNPROTECT (0x26E) // Sel -#define HID_USAGE_CONSUMER_AC_ATTACH_COMMENT (0x26F) // Sel -#define HID_USAGE_CONSUMER_AC_DELETE_COMMENT (0x270) // Sel -#define HID_USAGE_CONSUMER_AC_VIEW_COMMENT (0x271) // Sel -#define HID_USAGE_CONSUMER_AC_SELECT_WORD (0x272) // Sel -#define HID_USAGE_CONSUMER_AC_SELECT_SENTENCE (0x273) // Sel -#define HID_USAGE_CONSUMER_AC_SELECT_PARAGRAPH (0x274) // Sel -#define HID_USAGE_CONSUMER_AC_SELECT_COLUMN (0x275) // Sel -#define HID_USAGE_CONSUMER_AC_SELECT_ROW (0x276) // Sel -#define HID_USAGE_CONSUMER_AC_SELECT_TABLE (0x277) // Sel -#define HID_USAGE_CONSUMER_AC_SELECT_OBJECT (0x278) // Sel -#define HID_USAGE_CONSUMER_AC_REDO_REPEAT (0x279) // Sel -#define HID_USAGE_CONSUMER_AC_SORT (0x27A) // Sel -#define HID_USAGE_CONSUMER_AC_SORT_ASCENDING (0x27B) // Sel -#define HID_USAGE_CONSUMER_AC_SORT_DESCENDING (0x27C) // Sel -#define HID_USAGE_CONSUMER_AC_FILTER (0x27D) // Sel -#define HID_USAGE_CONSUMER_AC_SET_CLOCK (0x27E) // Sel -#define HID_USAGE_CONSUMER_AC_VIEW_CLOCK (0x27F) // Sel -#define HID_USAGE_CONSUMER_AC_SELECT_TIME_ZONE (0x280) // Sel -#define HID_USAGE_CONSUMER_AC_EDIT_TIME_ZONES (0x281) // Sel -#define HID_USAGE_CONSUMER_AC_SET_ALARM (0x282) // Sel -#define HID_USAGE_CONSUMER_AC_CLEAR_ALARM (0x283) // Sel -#define HID_USAGE_CONSUMER_AC_SNOOZE_ALARM (0x284) // Sel -#define HID_USAGE_CONSUMER_AC_RESET_ALARM (0x285) // Sel -#define HID_USAGE_CONSUMER_AC_SYNCHRONIZE (0x286) // Sel -#define HID_USAGE_CONSUMER_AC_SEND_RECEIVE (0x287) // Sel -#define HID_USAGE_CONSUMER_AC_SEND_TO (0x288) // Sel -#define HID_USAGE_CONSUMER_AC_REPLY (0x289) // Sel -#define HID_USAGE_CONSUMER_AC_REPLY_ALL (0x28A) // Sel -#define HID_USAGE_CONSUMER_AC_FORWARD_MSG (0x28B) // Sel -#define HID_USAGE_CONSUMER_AC_SEND (0x28C) // Sel -#define HID_USAGE_CONSUMER_AC_ATTACH_FILE (0x28D) // Sel -#define HID_USAGE_CONSUMER_AC_UPLOAD (0x28E) // Sel -#define HID_USAGE_CONSUMER_AC_DOWNLOAD_SAVE_TARGET_AS (0x28F) // Sel -#define HID_USAGE_CONSUMER_AC_SET_BORDERS (0x290) // Sel -#define HID_USAGE_CONSUMER_AC_INSERT_ROW (0x291) // Sel -#define HID_USAGE_CONSUMER_AC_INSERT_COLUMN (0x292) // Sel -#define HID_USAGE_CONSUMER_AC_INSERT_FILE (0x293) // Sel -#define HID_USAGE_CONSUMER_AC_INSERT_PICTURE (0x294) // Sel -#define HID_USAGE_CONSUMER_AC_INSERT_OBJECT (0x295) // Sel -#define HID_USAGE_CONSUMER_AC_INSERT_SYMBOL (0x296) // Sel -#define HID_USAGE_CONSUMER_AC_SAVE_AND_CLOSE (0x297) // Sel -#define HID_USAGE_CONSUMER_AC_RENAME (0x298) // Sel -#define HID_USAGE_CONSUMER_AC_MERGE (0x299) // Sel -#define HID_USAGE_CONSUMER_AC_SPLIT (0x29A) // Sel -#define HID_USAGE_CONSUMER_AC_DISRIBUTE_HORIZONTALLY (0x29B) // Sel -#define HID_USAGE_CONSUMER_AC_DISTRIBUTE_VERTICALLY (0x29C) // Sel -#define HID_USAGE_CONSUMER_AC_NEXT_KEYBOARD_LAYOUT_SELECT (0x29D) // Sel -#define HID_USAGE_CONSUMER_AC_NAVIGATION_GUIDANCE (0x29E) // Sel -#define HID_USAGE_CONSUMER_AC_DESKTOP_SHOW_ALL_WINDOWS (0x29F) // Sel -#define HID_USAGE_CONSUMER_AC_SOFT_KEY_LEFT (0x2A0) // Sel -#define HID_USAGE_CONSUMER_AC_SOFT_KEY_RIGHT (0x2A1) // Sel -#define HID_USAGE_CONSUMER_AC_DESKTOP_SHOW_ALL_APPLICATIONS (0x2A2) // Sel -#define HID_USAGE_CONSUMER_AC_IDLE_KEEP_ALIVE (0x2B0) // Sel -#define HID_USAGE_CONSUMER_EXTENDED_KEYBOARD_ATTRIBUTES_COLLECTION (0x2C0) // CL -#define HID_USAGE_CONSUMER_KEYBOARD_FORM_FACTOR (0x2C1) // SV -#define HID_USAGE_CONSUMER_KEYBOARD_KEY_TYPE (0x2C2) // SV -#define HID_USAGE_CONSUMER_KEYBOARD_PHYSICAL_LAYOUT (0x2C3) // SV -#define HID_USAGE_CONSUMER_VENDOR_SPECIFIC_KEYBOARD_PHYSICAL_LAYOUT (0x2C4) // SV -#define HID_USAGE_CONSUMER_KEYBOARD_IETF_LANGUAGE_TAG_INDEX (0x2C5) // SV -#define HID_USAGE_CONSUMER_IMPLEMENTED_KEYBOARD_INPUT_ASSIST_CONTROLS (0x2C6) // SV -#define HID_USAGE_CONSUMER_KEYBOARD_INPUT_ASSIST_PREVIOUS (0x2C7) // Sel -#define HID_USAGE_CONSUMER_KEYBOARD_INPUT_ASSIST_NEXT (0x2C8) // Sel -#define HID_USAGE_CONSUMER_KEYBOARD_INPUT_ASSIST_PREVIOUS_GROUP (0x2C9) // Sel -#define HID_USAGE_CONSUMER_KEYBOARD_INPUT_ASSIST_NEXT_GROUP (0x2CA) // Sel -#define HID_USAGE_CONSUMER_KEYBOARD_INPUT_ASSIST_ACCEPT (0x2CB) // Sel -#define HID_USAGE_CONSUMER_KEYBOARD_INPUT_ASSIST_CANCEL (0x2CC) // Sel -#define HID_USAGE_CONSUMER_PRIVACY_SCREEN_TOGGLE (0x2D0) // OOC -#define HID_USAGE_CONSUMER_PRIVACY_SCREEN_LEVEL_DECREMENT (0x2D1) // RTC -#define HID_USAGE_CONSUMER_PRIVACY_SCREEN_LEVEL_INCREMENT (0x2D2) // RTC -#define HID_USAGE_CONSUMER_PRIVACY_SCREEN_LEVEL_MINIMUM (0x2D3) // OSC -#define HID_USAGE_CONSUMER_PRIVACY_SCREEN_LEVEL_MAXIMUM (0x2D4) // OSC -#define HID_USAGE_CONSUMER_CONTACT_EDITED (0x500) // OOC -#define HID_USAGE_CONSUMER_CONTACT_ADDED (0x501) // OOC -#define HID_USAGE_CONSUMER_CONTACT_RECORD_ACTIVE (0x502) // OOC -#define HID_USAGE_CONSUMER_CONTACT_INDEX (0x503) // DV -#define HID_USAGE_CONSUMER_CONTACT_NICKNAME (0x504) // DV -#define HID_USAGE_CONSUMER_CONTACT_FIRST_NAME (0x505) // DV -#define HID_USAGE_CONSUMER_CONTACT_LAST_NAME (0x506) // DV -#define HID_USAGE_CONSUMER_CONTACT_FULL_NAME (0x507) // DV -#define HID_USAGE_CONSUMER_CONTACT_PHONE_NUMBER_PERSONAL (0x508) // DV -#define HID_USAGE_CONSUMER_CONTACT_PHONE_NUMBER_BUSINESS (0x509) // DV -#define HID_USAGE_CONSUMER_CONTACT_PHONE_NUMBER_MOBILE (0x50A) // DV -#define HID_USAGE_CONSUMER_CONTACT_PHONE_NUMBER_PAGER (0x50B) // DV -#define HID_USAGE_CONSUMER_CONTACT_PHONE_NUMBER_FAX (0x50C) // DV -#define HID_USAGE_CONSUMER_CONTACT_PHONE_NUMBER_OTHER (0x50D) // DV -#define HID_USAGE_CONSUMER_CONTACT_EMAIL_PERSONAL (0x50E) // DV -#define HID_USAGE_CONSUMER_CONTACT_EMAIL_BUSINESS (0x50F) // DV -#define HID_USAGE_CONSUMER_CONTACT_EMAIL_OTHER (0x510) // DV -#define HID_USAGE_CONSUMER_CONTACT_EMAIL_MAIN (0x511) // DV -#define HID_USAGE_CONSUMER_CONTACT_SPEED_DIAL_NUMBER (0x512) // DV -#define HID_USAGE_CONSUMER_CONTACT_STATUS_FLAG (0x513) // DV -#define HID_USAGE_CONSUMER_CONTACT_MISC (0x514) // DV - -/* Page 0x0D: Digitizers */ -#define HID_USAGE_DIGITIZERS_UNDEFINED (0x00) -#define HID_USAGE_DIGITIZERS_DIGITIZER (0x01) // CA -#define HID_USAGE_DIGITIZERS_PEN (0x02) // CA -#define HID_USAGE_DIGITIZERS_LIGHT_PEN (0x03) // CA -#define HID_USAGE_DIGITIZERS_TOUCH_SCREEN (0x04) // CA -#define HID_USAGE_DIGITIZERS_TOUCH_PAD (0x05) // CA -#define HID_USAGE_DIGITIZERS_WHITEBOARD (0x06) // CA -#define HID_USAGE_DIGITIZERS_COORDINATE_MEASURING_MACHINE (0x07) // CA -#define HID_USAGE_DIGITIZERS_3D_DIGITIZER (0x08) // CA -#define HID_USAGE_DIGITIZERS_STEREO_PLOTTER (0x09) // CA -#define HID_USAGE_DIGITIZERS_ARTICULATED_ARM (0x0A) // CA -#define HID_USAGE_DIGITIZERS_ARMATURE (0x0B) // CA -#define HID_USAGE_DIGITIZERS_MULTIPLE_POINT_DIGITIZER (0x0C) // CA -#define HID_USAGE_DIGITIZERS_FREE_SPACE_WAND (0x0D) // CA -#define HID_USAGE_DIGITIZERS_DEVICE_CONFIGURATION (0x0E) // CA -#define HID_USAGE_DIGITIZERS_CAPACITIVE_HEAT_MAP_DIGITIZER (0x0F) // CA -#define HID_USAGE_DIGITIZERS_STYLUS (0x20) // CA, CL -#define HID_USAGE_DIGITIZERS_PUCK (0x21) // CL -#define HID_USAGE_DIGITIZERS_FINGER (0x22) // CL -#define HID_USAGE_DIGITIZERS_DEVICE_SETTINGS (0x23) // CL -#define HID_USAGE_DIGITIZERS_CHARACTER_GESTURE (0x24) // CL -#define HID_USAGE_DIGITIZERS_TIP_PRESSURE (0x30) // DV -#define HID_USAGE_DIGITIZERS_BARREL_PRESSURE (0x31) // DV -#define HID_USAGE_DIGITIZERS_IN_RANGE (0x32) // MC -#define HID_USAGE_DIGITIZERS_TOUCH (0x33) // MC -#define HID_USAGE_DIGITIZERS_UNTOUCH (0x34) // OSC -#define HID_USAGE_DIGITIZERS_TAP (0x35) // OSC -#define HID_USAGE_DIGITIZERS_QUALITY (0x36) // DV -#define HID_USAGE_DIGITIZERS_DATA_VALID (0x37) // MC -#define HID_USAGE_DIGITIZERS_TRANSDUCER_INDEX (0x38) // DV -#define HID_USAGE_DIGITIZERS_TABLET_FUNCTION_KEYS (0x39) // CL -#define HID_USAGE_DIGITIZERS_PROGRAM_CHANGE_KEYS (0x3A) // CL -#define HID_USAGE_DIGITIZERS_BATTERY_STRENGTH (0x3B) // DV -#define HID_USAGE_DIGITIZERS_INVERT (0x3C) // MC -#define HID_USAGE_DIGITIZERS_X_TILT (0x3D) // DV -#define HID_USAGE_DIGITIZERS_Y_TILT (0x3E) // DV -#define HID_USAGE_DIGITIZERS_AZIMUTH (0x3F) // DV -#define HID_USAGE_DIGITIZERS_ALTITUDE (0x40) // DV -#define HID_USAGE_DIGITIZERS_TWIST (0x41) // DV -#define HID_USAGE_DIGITIZERS_TIP_SWITCH (0x42) // MC -#define HID_USAGE_DIGITIZERS_SECONDARY_TIP_SWITCH (0x43) // MC -#define HID_USAGE_DIGITIZERS_BARREL_SWITCH (0x44) // MC -#define HID_USAGE_DIGITIZERS_ERASER (0x45) // MC -#define HID_USAGE_DIGITIZERS_TABLET_PICK (0x46) // MC -#define HID_USAGE_DIGITIZERS_TOUCH_VALID (0x47) // MC -#define HID_USAGE_DIGITIZERS_WIDTH (0x48) // DV -#define HID_USAGE_DIGITIZERS_HEIGHT (0x49) // DV -#define HID_USAGE_DIGITIZERS_CONTACT_IDENTIFIER (0x51) // DV -#define HID_USAGE_DIGITIZERS_DEVICE_MODE (0x52) // DV -#define HID_USAGE_DIGITIZERS_DEVICE_IDENTIFIER (0x53) // DV, SV -#define HID_USAGE_DIGITIZERS_CONTACT_COUNT (0x54) // DV -#define HID_USAGE_DIGITIZERS_CONTACT_COUNT_MAXIMUM (0x55) // SV -#define HID_USAGE_DIGITIZERS_SCAN_TIME (0x56) // DV -#define HID_USAGE_DIGITIZERS_SURFACE_SWITCH (0x57) // DF -#define HID_USAGE_DIGITIZERS_BUTTON_SWITCH (0x58) // DF -#define HID_USAGE_DIGITIZERS_PAD_TYPE (0x59) // SF -#define HID_USAGE_DIGITIZERS_SECONDARY_BARREL_SWITCH (0x5A) // MC -#define HID_USAGE_DIGITIZERS_TRANSDUCER_SERIAL_NUMBER (0x5B) // SV -#define HID_USAGE_DIGITIZERS_PREFERRED_COLOR (0x5C) // DV -#define HID_USAGE_DIGITIZERS_PREFERRED_COLOR_IS_LOCKED (0x5D) // MC -#define HID_USAGE_DIGITIZERS_PREFERRED_LINE_WIDTH (0x5E) // DV -#define HID_USAGE_DIGITIZERS_PREFERRED_LINE_WIDTH_IS_LOCKED (0x5F) // MC -#define HID_USAGE_DIGITIZERS_LATENCY_MODE (0x60) // DF -#define HID_USAGE_DIGITIZERS_GESTURE_CHARACTER_QUALITY (0x61) // DV -#define HID_USAGE_DIGITIZERS_CHARACTER_GESTURE_DATA_LENGTH (0x62) // DV -#define HID_USAGE_DIGITIZERS_CHARACTER_GESTURE_DATA (0x63) // DV -#define HID_USAGE_DIGITIZERS_GESTURE_CHARACTER_ENCODING (0x64) // NAry -#define HID_USAGE_DIGITIZERS_UTF8_CHARACTER_GESTURE_ENCODING (0x65) // Sel -#define HID_USAGE_DIGITIZERS_UTF16_LITTLE_ENDIAN_CHARACTER_GESTURE_ENCODING (0x66) // Sel -#define HID_USAGE_DIGITIZERS_UTF16_BIG_ENDIAN_CHARACTER_GESTURE_ENCODING (0x67) // Sel -#define HID_USAGE_DIGITIZERS_UTF32_LITTLE_ENDIAN_CHARACTER_GESTURE_ENCODING (0x68) // Sel -#define HID_USAGE_DIGITIZERS_UTF32_BIG_ENDIAN_CHARACTER_GESTURE_ENCODING (0x69) // Sel -#define HID_USAGE_DIGITIZERS_CAPACITIVE_HEAT_MAP_PROTOCOL_VENDOR_ID (0x6A) // SV -#define HID_USAGE_DIGITIZERS_CAPACITIVE_HEAT_MAP_PROTOCOL_VERSION (0x6B) // SV -#define HID_USAGE_DIGITIZERS_CAPACITIVE_HEAT_MAP_FRAME_DATA (0x6C) // DV -#define HID_USAGE_DIGITIZERS_GESTURE_CHARACTER_ENABLE (0x6D) // DF -#define HID_USAGE_DIGITIZERS_PREFERRED_LINE_STYLE (0x70) // NAry -#define HID_USAGE_DIGITIZERS_PREFERRED_LINE_STYLE_IS_LOCKED (0x71) // MC -#define HID_USAGE_DIGITIZERS_INK (0x72) // Sel -#define HID_USAGE_DIGITIZERS_PENCIL (0x73) // Sel -#define HID_USAGE_DIGITIZERS_HIGHLIGHTER (0x74) // Sel -#define HID_USAGE_DIGITIZERS_CHISEL_MARKER (0x75) // Sel -#define HID_USAGE_DIGITIZERS_BRUSH (0x76) // Sel -#define HID_USAGE_DIGITIZERS_NO_PREFERENCE (0x77) // Sel -#define HID_USAGE_DIGITIZERS_DIGITIZER_DIAGNOSTIC (0x80) // CL -#define HID_USAGE_DIGITIZERS_DIGITIZER_ERROR (0x81) // NAry -#define HID_USAGE_DIGITIZERS_ERR_NORMAL_STATUS (0x82) // Sel -#define HID_USAGE_DIGITIZERS_ERR_TRANSDUCERS_EXCEEDED (0x83) // Sel -#define HID_USAGE_DIGITIZERS_ERR_FULL_TRANS_FEATURES_UNAVAILABLE (0x84) // Sel -#define HID_USAGE_DIGITIZERS_ERR_CHARGE_LOW (0x85) // Sel -#define HID_USAGE_DIGITIZERS_TRANSDUCER_SOFTWARE_INFO (0x90) // CL -#define HID_USAGE_DIGITIZERS_TRANSDUCER_VENDOR_ID (0x91) // SV -#define HID_USAGE_DIGITIZERS_TRANSDUCER_PRODUCT_ID (0x92) // SV -#define HID_USAGE_DIGITIZERS_DEVICE_SUPPORTED_PROTOCOLS (0x93) // NAry, CL -#define HID_USAGE_DIGITIZERS_TRANSDUCER_SUPPORTED_PROTOCOLS (0x94) // NAry, CL -#define HID_USAGE_DIGITIZERS_NO_PROTOCOL (0x95) // Sel -#define HID_USAGE_DIGITIZERS_WACOM_AES_PROTOCOL (0x96) // Sel -#define HID_USAGE_DIGITIZERS_USI_PROTOCOL (0x97) // Sel -#define HID_USAGE_DIGITIZERS_MICROSOFT_PEN_PROTOCOL (0x98) // Sel -#define HID_USAGE_DIGITIZERS_SUPPORTED_REPORT_RATES (0xA0) // SV, CL -#define HID_USAGE_DIGITIZERS_REPORT_RATE (0xA1) // DV -#define HID_USAGE_DIGITIZERS_TRANSDUCER_CONNECTED (0xA2) // SF -#define HID_USAGE_DIGITIZERS_SWITCH_DISABLED (0xA3) // Sel -#define HID_USAGE_DIGITIZERS_SWITCH_UNIMPLEMENTED (0xA4) // Sel -#define HID_USAGE_DIGITIZERS_TRANSDUCER_SWITCHES (0xA5) // Sel - -/* Page 0x0E: Haptics */ -#define HID_USAGE_HAPTICS_UNDEFINED (0x00) -#define HID_USAGE_HAPTICS_SIMPLE_HAPTIC_CONTROLLER (0x01) // CA, CL -#define HID_USAGE_HAPTICS_WAVEFORM_LIST (0x10) // NAry -#define HID_USAGE_HAPTICS_DURATION_LIST (0x11) // NAry -#define HID_USAGE_HAPTICS_AUTO_TRIGGER (0x20) // DV -#define HID_USAGE_HAPTICS_MANUAL_TRIGGER (0x21) // DV -#define HID_USAGE_HAPTICS_AUTO_TRIGGER_ASSOCIATED_CONTROL (0x22) // SV -#define HID_USAGE_HAPTICS_INTENSITY (0x23) // DV -#define HID_USAGE_HAPTICS_REPEAT_COUNT (0x24) // DV -#define HID_USAGE_HAPTICS_RETRIGGER_PERIOD (0x25) // DV -#define HID_USAGE_HAPTICS_WAVEFORM_VENDOR_PAGE (0x26) // SV -#define HID_USAGE_HAPTICS_WAVEFORM_VENDOR_ID (0x27) // SV -#define HID_USAGE_HAPTICS_WAVEFORM_CUTOFF_TIME (0x28) // SV -#define HID_USAGE_HAPTICS_WAVEFORM_NONE (0x1001) // SV -#define HID_USAGE_HAPTICS_WAVEFORM_STOP (0x1002) // SV -#define HID_USAGE_HAPTICS_WAVEFORM_CLICK (0x1003) // SV -#define HID_USAGE_HAPTICS_WAVEFORM_BUZZ_CONTINUOUS (0x1004) // SV -#define HID_USAGE_HAPTICS_WAVEFORM_RUMBLE_CONTINUOUS (0x1005) // SV -#define HID_USAGE_HAPTICS_WAVEFORM_PRESS (0x1006) // SV -#define HID_USAGE_HAPTICS_WAVEFORM_RELEASE (0x1007) // SV - -/* Page 0x0F: PID */ -#define HID_USAGE_PID_UNDEFINED (0x00) -#define HID_USAGE_PID_PHYSICAL_INTERFACE_DEVICE (0x01) -#define HID_USAGE_PID_NORMAL (0x20) -#define HID_USAGE_PID_SET_EFFECT_REPORT (0x21) -#define HID_USAGE_PID_EFFECT_BLOCK_INDEX (0x22) -#define HID_USAGE_PID_PARAMETER_BLOCK_OFFSET (0x23) -#define HID_USAGE_PID_ROM_FLAG (0x24) -#define HID_USAGE_PID_EFFECT_TYPE (0x25) -#define HID_USAGE_PID_ET_CONSTANT_FORCE (0x26) -#define HID_USAGE_PID_ET_RAMP (0x27) -#define HID_USAGE_PID_ET_CUSTOM_FORCE_DATA (0x28) -#define HID_USAGE_PID_ET_SQUARE (0x30) -#define HID_USAGE_PID_ET_SINE (0x31) -#define HID_USAGE_PID_ET_TRIANGLE (0x32) -#define HID_USAGE_PID_ET_SAWTOOTH_UP (0x33) -#define HID_USAGE_PID_ET_SAWTOOTH_DOWN (0x34) -#define HID_USAGE_PID_ET_SPRING (0x40) -#define HID_USAGE_PID_ET_DAMPER (0x41) -#define HID_USAGE_PID_ET_INERTIA (0x42) -#define HID_USAGE_PID_ET_FRICTION (0x43) -#define HID_USAGE_PID_DURATION (0x50) -#define HID_USAGE_PID_SAMPLE_PERIOD (0x51) -#define HID_USAGE_PID_GAIN (0x52) -#define HID_USAGE_PID_TRIGGER_BUTTON (0x53) -#define HID_USAGE_PID_TRIGGER_REPEAT_INTERVAL (0x54) -#define HID_USAGE_PID_AXES_ENABLE (0x55) -#define HID_USAGE_PID_DIRECTION_ENABLE (0x56) -#define HID_USAGE_PID_DIRECTION (0x57) -#define HID_USAGE_PID_TYPE_SPECIFIC_BLOCK_OFFSET (0x58) -#define HID_USAGE_PID_BLOCK_TYPE (0x59) -#define HID_USAGE_PID_SET_ENVELOPE_REPORT (0x5A) -#define HID_USAGE_PID_ATTACK_LEVEL (0x5B) -#define HID_USAGE_PID_ATTACK_TIME (0x5C) -#define HID_USAGE_PID_FADE_LEVEL (0x5D) -#define HID_USAGE_PID_FADE_TIME (0x5E) -#define HID_USAGE_PID_SET_CONDITION_REPORT (0x5F) -#define HID_USAGE_PID_CP_OFFSET (0x60) -#define HID_USAGE_PID_POSITIVE_COEFFICIENT (0x61) -#define HID_USAGE_PID_NEGATIVE_COEFFICIENT (0x62) -#define HID_USAGE_PID_POSITIVE_SATURATION (0x63) -#define HID_USAGE_PID_NEGATIVE_SATURATION (0x64) -#define HID_USAGE_PID_DEAD_BAND (0x65) -#define HID_USAGE_PID_DOWNLOAD_FORCE_SAMPLE (0x66) -#define HID_USAGE_PID_ISOCH_CUSTOM_FORCE_ENABLE (0x67) -#define HID_USAGE_PID_CUSTOM_FORCE_DATA_REPORT (0x68) -#define HID_USAGE_PID_CUSTOM_FORCE_DATA (0x69) -#define HID_USAGE_PID_CUSTOM_FORCE_VENDOR_DEFINED_DATA (0x6A) -#define HID_USAGE_PID_SET_CUSTOM_FORCE_REPORT (0x6B) -#define HID_USAGE_PID_CUSTOM_FORCE_DATA_OFFSET (0x6C) -#define HID_USAGE_PID_SAMPLE_COUNT (0x6D) -#define HID_USAGE_PID_SET_PERIODIC_REPORT (0x6E) -#define HID_USAGE_PID_OFFSET (0x6F) -#define HID_USAGE_PID_MAGNITUDE (0x70) -#define HID_USAGE_PID_PHASE (0x71) -#define HID_USAGE_PID_PERIOD (0x72) -#define HID_USAGE_PID_SET_CONSTANT_FORCE_REPORT (0x73) -#define HID_USAGE_PID_SET_RAMP_FORCE_REPORT (0x74) -#define HID_USAGE_PID_RAMP_START (0x75) -#define HID_USAGE_PID_RAMP_END (0x76) -#define HID_USAGE_PID_EFFECT_OPERATION_REPORT (0x77) -#define HID_USAGE_PID_EFFECT_OPERATION (0x78) -#define HID_USAGE_PID_OP_EFFECT_START (0x79) -#define HID_USAGE_PID_OP_EFFECT_START_SOLO (0x7A) -#define HID_USAGE_PID_OP_EFFECT_STOP (0x7B) -#define HID_USAGE_PID_LOOP_COUNT (0x7C) -#define HID_USAGE_PID_DEVICE_GAIN_REPORT (0x7D) -#define HID_USAGE_PID_DEVICE_GAIN (0x7E) -#define HID_USAGE_PID_PID_POOL_REPORT (0x7F) -#define HID_USAGE_PID_RAM_POOL_SIZE (0x80) -#define HID_USAGE_PID_ROM_POOL_SIZE (0x81) -#define HID_USAGE_PID_ROM_EFFECT_BLOCK_COUNT (0x82) -#define HID_USAGE_PID_SIMULTANEOUS_EFFECTS_MAX (0x83) -#define HID_USAGE_PID_POOL_ALIGNMENT (0x84) -#define HID_USAGE_PID_PID_POOL_MOVE_REPORT (0x85) -#define HID_USAGE_PID_MOVE_SOURCE (0x86) -#define HID_USAGE_PID_MOVE_DESTINATION (0x87) -#define HID_USAGE_PID_MOVE_LENGTH (0x88) -#define HID_USAGE_PID_PID_BLOCK_LOAD_REPORT (0x89) -#define HID_USAGE_PID_BLOCK_LOAD_STATUS (0x8B) -#define HID_USAGE_PID_BLOCK_LOAD_SUCCESS (0x8C) -#define HID_USAGE_PID_BLOCK_LOAD_FULL (0x8D) -#define HID_USAGE_PID_BLOCK_LOAD_ERROR (0x8E) -#define HID_USAGE_PID_BLOCK_HANDLE (0x8F) -#define HID_USAGE_PID_PID_BLOCK_FREE_REPORT (0x90) -#define HID_USAGE_PID_TYPE_SPECIFIC_BLOCK_HANDLE (0x91) -#define HID_USAGE_PID_PID_STATE_REPORT (0x92) -#define HID_USAGE_PID_EFFECT_PLAYING (0x94) -#define HID_USAGE_PID_PID_DEVICE_CONTROL_REPORT (0x95) -#define HID_USAGE_PID_PID_DEVICE_CONTROL (0x96) -#define HID_USAGE_PID_DC_ENABLE_ACTUATORS (0x97) -#define HID_USAGE_PID_DC_DISABLE_ACTUATORS (0x98) -#define HID_USAGE_PID_DC_STOP_ALL_EFFECTS (0x99) -#define HID_USAGE_PID_DC_DEVICE_RESET (0x9A) -#define HID_USAGE_PID_DC_DEVICE_PAUSE (0x9B) -#define HID_USAGE_PID_DC_DEVICE_CONTINUE (0x9C) -#define HID_USAGE_PID_DEVICE_PAUSED (0x9F) -#define HID_USAGE_PID_ACTUATORS_ENABLED (0xA0) -#define HID_USAGE_PID_SAFETY_SWITCH (0xA4) -#define HID_USAGE_PID_ACTUATOR_OVERRIDE_SWITCH (0xA5) -#define HID_USAGE_PID_ACTUATOR_POWER (0xA6) -#define HID_USAGE_PID_START_DELAY (0xA7) -#define HID_USAGE_PID_PARAMETER_BLOCK_SIZE (0xA8) -#define HID_USAGE_PID_DEVICE_MANAGED_POOL (0xA9) -#define HID_USAGE_PID_SHARED_PARAMETER_BLOCKS (0xAA) -#define HID_USAGE_PID_CREATE_NEW_EFFECT_REPORT (0xAB) -#define HID_USAGE_PID_RAM_POOL_AVAILABLE (0xAC) - -/* Page 0x12: Eye and Head Trackers */ -#define HID_USAGE_EHT_UNDEFINED (0x00) -#define HID_USAGE_EHT_EYE_TRACKER (0x01) // CA -#define HID_USAGE_EHT_HEAD_TRACKER (0x02) // CA -#define HID_USAGE_EHT_TRACKING_DATA (0x10) // CP -#define HID_USAGE_EHT_CAPABILITIES (0x11) // CL -#define HID_USAGE_EHT_CONFIGURATION (0x12) // CL -#define HID_USAGE_EHT_STATUS (0x13) // CL -#define HID_USAGE_EHT_CONTROL (0x14) // CL -#define HID_USAGE_EHT_SENSOR_TIMESTAMP (0x20) // DV -#define HID_USAGE_EHT_POSITION_X (0x21) // DV -#define HID_USAGE_EHT_POSITION_Y (0x22) // DV -#define HID_USAGE_EHT_POSITION_Z (0x23) // DV -#define HID_USAGE_EHT_GAZE_POINT (0x24) // CP -#define HID_USAGE_EHT_LEFT_EYE_POSITION (0x25) // CP -#define HID_USAGE_EHT_RIGHT_EYE_POSITION (0x26) // CP -#define HID_USAGE_EHT_HEAD_POSITION (0x27) // CP -#define HID_USAGE_EHT_HEAD_DIRECTION_POINT (0x28) // CP -#define HID_USAGE_EHT_ROTATION_ABOUT_X_AXIS (0x29) // DV -#define HID_USAGE_EHT_ROTATION_ABOUT_Y_AXIS (0x2A) // DV -#define HID_USAGE_EHT_ROTATION_ABOUT_Z_AXIS (0x2B) // DV -#define HID_USAGE_EHT_TRACKER_QUALITY (0x100) // SV -#define HID_USAGE_EHT_MINIMUM_TRACKING_DISTANCE (0x101) // SV -#define HID_USAGE_EHT_OPTIMUM_TRACKING_DISTANCE (0x102) // SV -#define HID_USAGE_EHT_MAXIMUM_TRACKING_DISTANCE (0x103) // SV -#define HID_USAGE_EHT_MAXIMUM_SCREEN_PLANE_WIDTH (0x104) // SV -#define HID_USAGE_EHT_MAXIMUM_SCREEN_PLANE_HEIGHT (0x105) // SV -#define HID_USAGE_EHT_DISPLAY_MANUFACTURER_ID (0x200) // SV -#define HID_USAGE_EHT_DISPLAY_PRODUCT_ID (0x201) // SV -#define HID_USAGE_EHT_DISPLAY_SERIAL_NUMBER (0x202) // SV -#define HID_USAGE_EHT_DISPLAY_MANUFACTURER_DATE (0x203) // SV -#define HID_USAGE_EHT_CALIBRATED_SCREEN_WIDTH (0x204) // SV -#define HID_USAGE_EHT_CALIBRATED_SCREEN_HEIGHT (0x205) // SV -#define HID_USAGE_EHT_SAMPLING_FREQUENCY (0x300) // DV -#define HID_USAGE_EHT_CONFIGURATION_STATUS (0x301) // DV -#define HID_USAGE_EHT_DEVICE_MODE_REQUEST (0x400) // DV - -/* Page 0x14: Auxiliary Display */ -#define HID_USAGE_AUXDISP_UNDEFINED (0x00) -#define HID_USAGE_AUXDISP_ALPHANUMERIC_DISPLAY (0x01) // CA -#define HID_USAGE_AUXDISP_AUXILIARY_DISPLAY (0x02) // CA -#define HID_USAGE_AUXDISP_DISPLAY_ATTRIBUTES_REPORT (0x20) // CL -#define HID_USAGE_AUXDISP_ASCII_CHARACTER_SET (0x21) // SF -#define HID_USAGE_AUXDISP_DATA_READ_BACK (0x22) // SF -#define HID_USAGE_AUXDISP_FONT_READ_BACK (0x23) // SF -#define HID_USAGE_AUXDISP_DISPLAY_CONTROL_REPORT (0x24) // CL -#define HID_USAGE_AUXDISP_CLEAR_DISPLAY (0x25) // DF -#define HID_USAGE_AUXDISP_DISPLAY_ENABLE (0x26) // DF -#define HID_USAGE_AUXDISP_SCREEN_SAVER_DELAY (0x27) // SV, DV -#define HID_USAGE_AUXDISP_SCREEN_SAVER_ENABLE (0x28) // DF -#define HID_USAGE_AUXDISP_VERTICAL_SCROLL (0x29) // SF, DF -#define HID_USAGE_AUXDISP_HORIZONTAL_SCROLL (0x2A) // SF, DF -#define HID_USAGE_AUXDISP_CHARACTER_REPORT (0x2B) // CL -#define HID_USAGE_AUXDISP_DISPLAY_DATA (0x2C) // DV -#define HID_USAGE_AUXDISP_DISPLAY_STATUS (0x2D) // CL -#define HID_USAGE_AUXDISP_STAT_NOT_READY (0x2E) // Sel -#define HID_USAGE_AUXDISP_STAT_READY (0x2F) // Sel -#define HID_USAGE_AUXDISP_ERR_NOT_A_LOADABLE_CHARACTER (0x30) // Sel -#define HID_USAGE_AUXDISP_ERR_FONT_DATA_CANNOT_BE_READ (0x31) // Sel -#define HID_USAGE_AUXDISP_CURSOR_POSITION_REPORT (0x32) // Sel -#define HID_USAGE_AUXDISP_ROW (0x33) // DV -#define HID_USAGE_AUXDISP_COLUMN (0x34) // DV -#define HID_USAGE_AUXDISP_ROWS (0x35) // SV -#define HID_USAGE_AUXDISP_COLUMNS (0x36) // SV -#define HID_USAGE_AUXDISP_CURSOR_PIXEL_POSITIONING (0x37) // SF -#define HID_USAGE_AUXDISP_CURSOR_MODE (0x38) // DF -#define HID_USAGE_AUXDISP_CURSOR_ENABLE (0x39) // DF -#define HID_USAGE_AUXDISP_CURSOR_BLINK (0x3A) // DF -#define HID_USAGE_AUXDISP_FONT_REPORT (0x3B) // CL -#define HID_USAGE_AUXDISP_FONT_DATA (0x3C) // Buffered Bytes -#define HID_USAGE_AUXDISP_CHARACTER_WIDTH (0x3D) // SV -#define HID_USAGE_AUXDISP_CHARACTER_HEIGHT (0x3E) // SV -#define HID_USAGE_AUXDISP_CHARACTER_SPACING_HORIZONTAL (0x3F) // SV -#define HID_USAGE_AUXDISP_CHARACTER_SPACING_VERTICAL (0x40) // SV -#define HID_USAGE_AUXDISP_UNICODE_CHARACTER_SET (0x41) // SF -#define HID_USAGE_AUXDISP_FONT_7_SEGMENT (0x42) // SF -#define HID_USAGE_AUXDISP_7_SEGMENT_DIRECT_MAP (0x43) // SF -#define HID_USAGE_AUXDISP_FONT_14_SEGMENT (0x44) // SF -#define HID_USAGE_AUXDISP_14_SEGMENT_DIRECT_MAP (0x45) // SF -#define HID_USAGE_AUXDISP_DISPLAY_BRIGHTNESS (0x46) // DV -#define HID_USAGE_AUXDISP_DISPLAY_CONTRAST (0x47) // DV -#define HID_USAGE_AUXDISP_CHARACTER_ATTRIBUTE (0x48) // CL -#define HID_USAGE_AUXDISP_ATTRIBUTE_READBACK (0x49) // SF -#define HID_USAGE_AUXDISP_ATTRIBUTE_DATA (0x4A) // DV -#define HID_USAGE_AUXDISP_CHAR_ATTR_ENHANCE (0x4B) // OOC -#define HID_USAGE_AUXDISP_CHAR_ATTR_UNDERLINE (0x4C) // OOC -#define HID_USAGE_AUXDISP_CHAR_ATTR_BLINK (0x4D) // OOC -#define HID_USAGE_AUXDISP_BITMAP_SIZE_X (0x80) // SV -#define HID_USAGE_AUXDISP_BITMAP_SIZE_Y (0x81) // SV -#define HID_USAGE_AUXDISP_MAX_BLIT_SIZE (0x82) // SV -#define HID_USAGE_AUXDISP_BIT_DEPTH_FORMAT (0x83) // SV -#define HID_USAGE_AUXDISP_DISPLAY_ORIENTATION (0x84) // DV -#define HID_USAGE_AUXDISP_PALETTE_REPORT (0x85) // CL -#define HID_USAGE_AUXDISP_PALETTE_DATA_SIZE (0x86) // SV -#define HID_USAGE_AUXDISP_PALETTE_DATA_OFFSET (0x87) // SV -#define HID_USAGE_AUXDISP_PALETTE_DATA (0x88) // Buffered Bytes -#define HID_USAGE_AUXDISP_BLIT_REPORT (0x8A) // CL -#define HID_USAGE_AUXDISP_BLIT_RECTANGLE_X1 (0x8B) // SV -#define HID_USAGE_AUXDISP_BLIT_RECTANGLE_Y1 (0x8C) // SV -#define HID_USAGE_AUXDISP_BLIT_RECTANGLE_X2 (0x8D) // SV -#define HID_USAGE_AUXDISP_BLIT_RECTANGLE_Y2 (0x8E) // SV -#define HID_USAGE_AUXDISP_BLIT_DATA (0x8F) // Buffered Bytes -#define HID_USAGE_AUXDISP_SOFT_BUTTON (0x90) // CL -#define HID_USAGE_AUXDISP_SOFT_BUTTON_ID (0x91) // SV -#define HID_USAGE_AUXDISP_SOFT_BUTTON_SIDE (0x92) // SV -#define HID_USAGE_AUXDISP_SOFT_BUTTON_OFFSET_1 (0x93) // SV -#define HID_USAGE_AUXDISP_SOFT_BUTTON_OFFSET_2 (0x94) // SV -#define HID_USAGE_AUXDISP_SOFT_BUTTON_REPORT (0x95) // SV -#define HID_USAGE_AUXDISP_SOFT_KEYS (0xC2) // SV -#define HID_USAGE_AUXDISP_DISPLAY_DATA_EXTENSIONS (0xCC) // SF -#define HID_USAGE_AUXDISP_CHARACTER_MAPPING (0xCF) // SV -#define HID_USAGE_AUXDISP_UNICODE_EQUIVALENT (0xDD) // SV -#define HID_USAGE_AUXDISP_CHARACTER_PAGE_MAPPING (0xDF) // SV -#define HID_USAGE_AUXDISP_REQUEST_REPORT (0xFF) // DV - -/* Page 0x20: Sensors */ -#define HID_USAGE_SENSORS_UNDEFINED (0x00) -#define HID_USAGE_SENSORS_SENSOR (0x01) // CA, CP -#define HID_USAGE_SENSORS_BIOMETRIC (0x10) // CA, CP -#define HID_USAGE_SENSORS_BIOMETRIC_HUMAN_PRESENCE (0x11) // CA, CP -#define HID_USAGE_SENSORS_BIOMETRIC_HUMAN_PROXIMITY (0x12) // CA, CP -#define HID_USAGE_SENSORS_BIOMETRIC_HUMAN_TOUCH (0x13) // CA, CP -#define HID_USAGE_SENSORS_BIOMETRIC_BLOOD_PRESSURE (0x14) // CA, CP -#define HID_USAGE_SENSORS_BIOMETRIC_BODY_TEMPERATURE (0x15) // CA, CP -#define HID_USAGE_SENSORS_BIOMETRIC_HEART_RATE (0x16) // CA, CP -#define HID_USAGE_SENSORS_BIOMETRIC_HEART_RATE_VARIABILITY (0x17) // CA, CP -#define HID_USAGE_SENSORS_BIOMETRIC_PERIPHERAL_OXYGEN_SATURATION (0x18) // CA, CP -#define HID_USAGE_SENSORS_BIOMETRIC_RESPIRATORY_RATE (0x19) // CA, CP -#define HID_USAGE_SENSORS_ELECTRICAL (0x20) // CA, CP -#define HID_USAGE_SENSORS_ELECTRICAL_CAPACITANCE (0x21) // CA, CP -#define HID_USAGE_SENSORS_ELECTRICAL_CURRENT (0x22) // CA, CP -#define HID_USAGE_SENSORS_ELECTRICAL_POWER (0x23) // CA, CP -#define HID_USAGE_SENSORS_ELECTRICAL_INDUCTANCE (0x24) // CA, CP -#define HID_USAGE_SENSORS_ELECTRICAL_RESISTANCE (0x25) // CA, CP -#define HID_USAGE_SENSORS_ELECTRICAL_VOLTAGE (0x26) // CA, CP -#define HID_USAGE_SENSORS_ELECTRICAL_POTENTIOMETER (0x27) // CA, CP -#define HID_USAGE_SENSORS_ELECTRICAL_FREQUENCY (0x28) // CA, CP -#define HID_USAGE_SENSORS_ELECTRICAL_PERIOD (0x29) // CA, CP -#define HID_USAGE_SENSORS_ENVIRONMENTAL (0x30) // CA, CP -#define HID_USAGE_SENSORS_ENVIRONMENTAL_ATMOSPHERIC_PRESSURE (0x31) // CA, CP -#define HID_USAGE_SENSORS_ENVIRONMENTAL_HUMIDITY (0x32) // CA, CP -#define HID_USAGE_SENSORS_ENVIRONMENTAL_TEMPERATURE (0x33) // CA, CP -#define HID_USAGE_SENSORS_ENVIRONMENTAL_WIND_DIRECTION (0x34) // CA, CP -#define HID_USAGE_SENSORS_ENVIRONMENTAL_WIND_SPEED (0x35) // CA, CP -#define HID_USAGE_SENSORS_ENVIRONMENTAL_AIR_QUALITY (0x36) // CA, CP -#define HID_USAGE_SENSORS_ENVIRONMENTAL_HEAT_INDEX (0x37) // CA, CP -#define HID_USAGE_SENSORS_ENVIRONMENTAL_SURFACE_TEMPERATURE (0x38) // CA, CP -#define HID_USAGE_SENSORS_ENVIRONMENTAL_VOLATILE_ORGANIC_COMPOUNDS (0x39) // CA, CP -#define HID_USAGE_SENSORS_ENVIRONMENTAL_OBJECT_PRESENCE (0x3A) // CA, CP -#define HID_USAGE_SENSORS_ENVIRONMENTAL_OBJECT_PROXIMITY (0x3B) // CA, CP -#define HID_USAGE_SENSORS_LIGHT (0x40) // CA, CP -#define HID_USAGE_SENSORS_LIGHT_AMBIENT_LIGHT (0x41) // CA, CP -#define HID_USAGE_SENSORS_LIGHT_CONSUMER_INFRARED (0x42) // CA, CP -#define HID_USAGE_SENSORS_LIGHT_INFRARED_LIGHT (0x43) // CA, CP -#define HID_USAGE_SENSORS_LIGHT_VISIBLE_LIGHT (0x44) // CA, CP -#define HID_USAGE_SENSORS_LIGHT_ULTRAVIOLET_LIGHT (0x45) // CA, CP -#define HID_USAGE_SENSORS_LOCATION (0x50) // CA, CP -#define HID_USAGE_SENSORS_LOCATION_BROADCAST (0x51) // CA, CP -#define HID_USAGE_SENSORS_LOCATION_DEAD_RECKONING (0x52) // CA, CP -#define HID_USAGE_SENSORS_LOCATION_GPS_GLOBAL_POSITIONING_SYSTEM (0x53) // CA, CP -#define HID_USAGE_SENSORS_LOCATION_LOOKUP (0x54) // CA, CP -#define HID_USAGE_SENSORS_LOCATION_OTHER (0x55) // CA, CP -#define HID_USAGE_SENSORS_LOCATION_STATIC (0x56) // CA, CP -#define HID_USAGE_SENSORS_LOCATION_TRIANGULATION (0x57) // CA, CP -#define HID_USAGE_SENSORS_MECHANICAL (0x60) // CA, CP -#define HID_USAGE_SENSORS_MECHANICAL_BOOLEAN_SWITCH (0x61) // CA, CP -#define HID_USAGE_SENSORS_MECHANICAL_BOOLEAN_SWITCH_ARRAY (0x62) // CA, CP -#define HID_USAGE_SENSORS_MECHANICAL_MULTIVALUE_SWITCH (0x63) // CA, CP -#define HID_USAGE_SENSORS_MECHANICAL_FORCE (0x64) // CA, CP -#define HID_USAGE_SENSORS_MECHANICAL_PRESSURE (0x65) // CA, CP -#define HID_USAGE_SENSORS_MECHANICAL_STRAIN (0x66) // CA, CP -#define HID_USAGE_SENSORS_MECHANICAL_WEIGHT (0x67) // CA, CP -#define HID_USAGE_SENSORS_MECHANICAL_HAPTIC_VIBRATOR (0x68) // CA, CP -#define HID_USAGE_SENSORS_MECHANICAL_HALL_EFFECT_SWITCH (0x69) // CA, CP -#define HID_USAGE_SENSORS_MOTION (0x70) // CA, CP -#define HID_USAGE_SENSORS_MOTION_ACCELEROMETER_1D (0x71) // CA, CP -#define HID_USAGE_SENSORS_MOTION_ACCELEROMETER_2D (0x72) // CA, CP -#define HID_USAGE_SENSORS_MOTION_ACCELEROMETER_3D (0x73) // CA, CP -#define HID_USAGE_SENSORS_MOTION_GYROMETER_1D (0x74) // CA, CP -#define HID_USAGE_SENSORS_MOTION_GYROMETER_2D (0x75) // CA, CP -#define HID_USAGE_SENSORS_MOTION_GYROMETER_3D (0x76) // CA, CP -#define HID_USAGE_SENSORS_MOTION_MOTION_DETECTOR (0x77) // CA, CP -#define HID_USAGE_SENSORS_MOTION_SPEEDOMETER (0x78) // CA, CP -#define HID_USAGE_SENSORS_MOTION_ACCELEROMETER (0x79) // CA, CP -#define HID_USAGE_SENSORS_MOTION_GYROMETER (0x7A) // CA, CP -#define HID_USAGE_SENSORS_MOTION_GRAVITY_VECTOR (0x7B) // CA, CP -#define HID_USAGE_SENSORS_MOTION_LINEAR_ACCELEROMETER (0x7C) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION (0x80) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_COMPASS_1D (0x81) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_COMPASS_2D (0x82) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_COMPASS_3D (0x83) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_INCLINOMETER_1D (0x84) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_INCLINOMETER_2D (0x85) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_INCLINOMETER_3D (0x86) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_DISTANCE_1D (0x87) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_DISTANCE_2D (0x88) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_DISTANCE_3D (0x89) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_DEVICE_ORIENTATION (0x8A) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_COMPASS (0x8B) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_INCLINOMETER (0x8C) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_DISTANCE (0x8D) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_RELATIVE_ORIENTATION (0x8E) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_SIMPLE_ORIENTATION (0x8F) // CA, CP -#define HID_USAGE_SENSORS_SCANNER (0x90) // CA, CP -#define HID_USAGE_SENSORS_SCANNER_BARCODE (0x91) // CA, CP -#define HID_USAGE_SENSORS_SCANNER_RFID (0x92) // CA, CP -#define HID_USAGE_SENSORS_SCANNER_NFC (0x93) // CA, CP -#define HID_USAGE_SENSORS_TIME (0xA0) // CA, CP -#define HID_USAGE_SENSORS_TIME_ALARM_TIMER (0xA1) // CA, CP -#define HID_USAGE_SENSORS_TIME_REAL_TIME_CLOCK (0xA2) // CA, CP -#define HID_USAGE_SENSORS_PERSONAL_ACTIVITY (0xB0) // CA, CP -#define HID_USAGE_SENSORS_PERSONAL_ACTIVITY_ACTIVITY_DETECTION (0xB1) // CA, CP -#define HID_USAGE_SENSORS_PERSONAL_ACTIVITY_DEVICE_POSITION (0xB2) // CA, CP -#define HID_USAGE_SENSORS_PERSONAL_ACTIVITY_PEDOMETER (0xB3) // CA, CP -#define HID_USAGE_SENSORS_PERSONAL_ACTIVITY_STEP_DETECTION (0xB4) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_EXTENDED (0xC0) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_EXTENDED_GEOMAGNETIC_ORIENTATION (0xC1) // CA, CP -#define HID_USAGE_SENSORS_ORIENTATION_EXTENDED_MAGNETOMETER (0xC2) // CA, CP -#define HID_USAGE_SENSORS_GESTURE (0xD0) // CA, CP -#define HID_USAGE_SENSORS_GESTURE_CHASSIS_FLIP_GESTURE (0xD1) // CA, CP -#define HID_USAGE_SENSORS_GESTURE_HINGE_FOLD_GESTURE (0xD2) // CA, CP -#define HID_USAGE_SENSORS_OTHER (0xE0) // CA, CP -#define HID_USAGE_SENSORS_OTHER_CUSTOM (0xE1) // CA, CP -#define HID_USAGE_SENSORS_OTHER_GENERIC (0xE2) // CA, CP -#define HID_USAGE_SENSORS_OTHER_GENERIC_ENUMERATOR (0xE3) // CA, CP -#define HID_USAGE_SENSORS_OTHER_HINGE_ANGLE (0xE4) // CA, CP -#define HID_USAGE_SENSORS_EVENT (0x200) // DV -#define HID_USAGE_SENSORS_EVENT_SENSOR_STATE (0x201) // NAry -#define HID_USAGE_SENSORS_EVENT_SENSOR_EVENT (0x202) // NAry -#define HID_USAGE_SENSORS_PROPERTY (0x300) // DV -#define HID_USAGE_SENSORS_PROPERTY_FRIENDLY_NAME (0x301) // SV -#define HID_USAGE_SENSORS_PROPERTY_PERSISTENT_UNIQUE_ID (0x302) // DV -#define HID_USAGE_SENSORS_PROPERTY_SENSOR_STATUS (0x303) // DV -#define HID_USAGE_SENSORS_PROPERTY_MINIMUM_REPORT_INTERVAL (0x304) // SV -#define HID_USAGE_SENSORS_PROPERTY_SENSOR_MANUFACTURER (0x305) // SV -#define HID_USAGE_SENSORS_PROPERTY_SENSOR_MODEL (0x306) // SV -#define HID_USAGE_SENSORS_PROPERTY_SENSOR_SERIAL_NUMBER (0x307) // SV -#define HID_USAGE_SENSORS_PROPERTY_SENSOR_DESCRIPTION (0x308) // SV -#define HID_USAGE_SENSORS_PROPERTY_SENSOR_CONNECTION_TYPE (0x309) // NAry -#define HID_USAGE_SENSORS_PROPERTY_SENSOR_DEVICE_PATH (0x30A) // DV -#define HID_USAGE_SENSORS_PROPERTY_HARDWARE_REVISION (0x30B) // SV -#define HID_USAGE_SENSORS_PROPERTY_FIRMWARE_VERSION (0x30C) // SV -#define HID_USAGE_SENSORS_PROPERTY_RELEASE_DATE (0x30D) // SV -#define HID_USAGE_SENSORS_PROPERTY_REPORT_INTERVAL (0x30E) // DV -#define HID_USAGE_SENSORS_PROPERTY_CHANGE_SENSITIVITY_ABSOLUTE (0x30F) // DV -#define HID_USAGE_SENSORS_PROPERTY_CHANGE_SENSITIVITY_PERCENT_OF_RANGE (0x310) // DV -#define HID_USAGE_SENSORS_PROPERTY_CHANGE_SENSITIVITY_PERCENT_RELATIVE (0x311) // DV -#define HID_USAGE_SENSORS_PROPERTY_ACCURACY (0x312) // DV -#define HID_USAGE_SENSORS_PROPERTY_RESOLUTION (0x313) // DV -#define HID_USAGE_SENSORS_PROPERTY_MAXIMUM (0x314) // DV -#define HID_USAGE_SENSORS_PROPERTY_MINIMUM (0x315) // DV -#define HID_USAGE_SENSORS_PROPERTY_REPORTING_STATE (0x316) // NAry -#define HID_USAGE_SENSORS_PROPERTY_SAMPLING_RATE (0x317) // DV -#define HID_USAGE_SENSORS_PROPERTY_RESPONSE_CURVE (0x318) // DV -#define HID_USAGE_SENSORS_PROPERTY_POWER_STATE (0x319) // NAry -#define HID_USAGE_SENSORS_PROPERTY_MAXIMUM_FIFO_EVENTS (0x31A) // SV -#define HID_USAGE_SENSORS_PROPERTY_REPORT_LATENCY (0x31B) // DV -#define HID_USAGE_SENSORS_PROPERTY_FLUSH_FIFO_EVENTS (0x31C) // DF -#define HID_USAGE_SENSORS_PROPERTY_MAXIMUM_POWER_CONSUMPTION (0x31D) // DV -#define HID_USAGE_SENSORS_PROPERTY_IS_PRIMARY (0x31E) // DF -#define HID_USAGE_SENSORS_DATA_FIELD_LOCATION (0x400) // DV -#define HID_USAGE_SENSORS_DATA_FIELD_ALTITUDE_ANTENNA_SEA_LEVEL (0x402) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_DIFFERENTIAL_REFERENCE_STATION_ID (0x403) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ALTITUDE_ELLIPSOID_ERROR (0x404) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ALTITUDE_ELLIPSOID (0x405) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ALTITUDE_SEA_LEVEL_ERROR (0x406) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ALTITUDE_SEA_LEVEL (0x407) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_DIFFERENTIAL_GPS_DATA_AGE (0x408) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ERROR_RADIUS (0x409) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_FIX_QUALITY (0x40A) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_FIX_TYPE (0x40B) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_GEOIDAL_SEPARATION (0x40C) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GPS_OPERATION_MODE (0x40D) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_GPS_SELECTION_MODE (0x40E) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_GPS_STATUS (0x40F) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_POSITION_DILUTION_OF_PRECISION (0x410) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_HORIZONTAL_DILUTION_OF_PRECISION (0x411) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_VERTICAL_DILUTION_OF_PRECISION (0x412) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_LATITUDE (0x413) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_LONGITUDE (0x414) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_TRUE_HEADING (0x415) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_MAGNETIC_HEADING (0x416) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_MAGNETIC_VARIATION (0x417) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_SPEED (0x418) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_SATELLITES_IN_VIEW (0x419) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_SATELLITES_IN_VIEW_AZIMUTH (0x41A) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_SATELLITES_IN_VIEW_ELEVATION (0x41B) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_SATELLITES_IN_VIEW_IDS (0x41C) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_SATELLITES_IN_VIEW_PRNS (0x41D) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_SATELLITES_IN_VIEW_S_N_RATIOS (0x41E) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_SATELLITES_USED_COUNT (0x41F) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_SATELLITES_USED_PRNS (0x420) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_NMEA_SENTENCE (0x421) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ADDRESS_LINE_1 (0x422) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ADDRESS_LINE_2 (0x423) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CITY (0x424) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_STATE_OR_PROVINCE (0x425) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_COUNTRY_OR_REGION (0x426) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_POSTAL_CODE (0x427) // SV -#define HID_USAGE_SENSORS_PROPERTY_LOCATION (0x42A) // DV -#define HID_USAGE_SENSORS_PROPERTY_LOCATION_DESIRED_ACCURACY (0x42B) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_ENVIRONMENTAL (0x430) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ATMOSPHERIC_PRESSURE (0x431) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_RELATIVE_HUMIDITY (0x433) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_TEMPERATURE (0x434) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_WIND_DIRECTION (0x435) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_WIND_SPEED (0x436) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_AIR_QUALITY_INDEX (0x437) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_EQUIVALENT_CO2 (0x438) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_VOLATILE_ORGANIC_COMPOUND_CONCENTRATION (0x439) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_OBJECT_PRESENCE (0x43A) // SF -#define HID_USAGE_SENSORS_DATA_FIELD_OBJECT_PROXIMITY_RANGE (0x43B) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_OBJECT_PROXIMITY_OUT_OF_RANGE (0x43C) // SF -#define HID_USAGE_SENSORS_PROPERTY_ENVIRONMENTAL (0x440) // SV -#define HID_USAGE_SENSORS_PROPERTY_REFERENCE_PRESSURE (0x441) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_MOTION (0x450) // DV -#define HID_USAGE_SENSORS_DATA_FIELD_MOTION_STATE (0x451) // SF -#define HID_USAGE_SENSORS_DATA_FIELD_ACCELERATION (0x452) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ACCELERATION_AXIS_X (0x453) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ACCELERATION_AXIS_Y (0x454) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ACCELERATION_AXIS_Z (0x455) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ANGULAR_VELOCITY (0x456) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ANGULAR_VELOCITY_ABOUT_X_AXIS (0x457) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ANGULAR_VELOCITY_ABOUT_Y_AXIS (0x458) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ANGULAR_VELOCITY_ABOUT_Z_AXIS (0x459) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ANGULAR_POSITION (0x45A) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ANGULAR_POSITION_ABOUT_X_AXIS (0x45B) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ANGULAR_POSITION_ABOUT_Y_AXIS (0x45C) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ANGULAR_POSITION_ABOUT_Z_AXIS (0x45D) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_MOTION_SPEED (0x45E) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_MOTION_INTENSITY (0x45F) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ORIENTATION (0x470) // DV -#define HID_USAGE_SENSORS_DATA_FIELD_HEADING (0x471) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_HEADING_X_AXIS (0x472) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_HEADING_Y_AXIS (0x473) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_HEADING_Z_AXIS (0x474) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_HEADING_COMPENSATED_MAGNETIC_NORTH (0x475) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_HEADING_COMPENSATED_TRUE_NORTH (0x476) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_HEADING_MAGNETIC_NORTH (0x477) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_HEADING_TRUE_NORTH (0x478) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_DISTANCE (0x479) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_DISTANCE_X_AXIS (0x47A) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_DISTANCE_Y_AXIS (0x47B) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_DISTANCE_Z_AXIS (0x47C) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_DISTANCE_OUT_OF_RANGE (0x47D) // SF -#define HID_USAGE_SENSORS_DATA_FIELD_TILT (0x47E) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_TILT_X_AXIS (0x47F) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_TILT_Y_AXIS (0x480) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_TILT_Z_AXIS (0x481) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ROTATION_MATRIX (0x482) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_QUATERNION (0x483) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_MAGNETIC_FLUX (0x484) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_MAGNETIC_FLUX_X_AXIS (0x485) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_MAGNETIC_FLUX_Y_AXIS (0x486) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_MAGNETIC_FLUX_Z_AXIS (0x487) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_MAGNETOMETER_ACCURACY (0x488) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_SIMPLE_ORIENTATION_DIRECTION (0x489) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_MECHANICAL (0x490) // DV -#define HID_USAGE_SENSORS_DATA_FIELD_BOOLEAN_SWITCH_STATE (0x491) // SF -#define HID_USAGE_SENSORS_DATA_FIELD_BOOLEAN_SWITCH_ARRAY_STATES (0x492) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_MULTIVALUE_SWITCH_VALUE (0x493) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_FORCE (0x494) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ABSOLUTE_PRESSURE (0x495) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GAUGE_PRESSURE (0x496) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_STRAIN (0x497) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_WEIGHT (0x498) // SV -#define HID_USAGE_SENSORS_PROPERTY_MECHANICAL (0x4A0) // DV -#define HID_USAGE_SENSORS_PROPERTY_VIBRATION_STATE (0x4A1) // DF -#define HID_USAGE_SENSORS_PROPERTY_FORWARD_VIBRATION_SPEED (0x4A2) // DV -#define HID_USAGE_SENSORS_PROPERTY_BACKWARD_VIBRATION_SPEED (0x4A3) // DV -#define HID_USAGE_SENSORS_DATA_FIELD_BIOMETRIC (0x4B0) // DV -#define HID_USAGE_SENSORS_DATA_FIELD_HUMAN_PRESENCE (0x4B1) // SF -#define HID_USAGE_SENSORS_DATA_FIELD_HUMAN_PROXIMITY_RANGE (0x4B2) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_HUMAN_PROXIMITY_OUT_OF_RANGE (0x4B3) // SF -#define HID_USAGE_SENSORS_DATA_FIELD_HUMAN_TOUCH_STATE (0x4B4) // SF -#define HID_USAGE_SENSORS_DATA_FIELD_BLOOD_PRESSURE (0x4B5) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_BLOOD_PRESSURE_DIASTOLIC (0x4B6) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_BLOOD_PRESSURE_SYSTOLIC (0x4B7) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_HEART_RATE (0x4B8) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_RESTING_HEART_RATE (0x4B9) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_HEARTBEAT_INTERVAL (0x4BA) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_RESPIRATORY_RATE (0x4BB) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_SPO2 (0x4BC) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_LIGHT (0x4D0) // DV -#define HID_USAGE_SENSORS_DATA_FIELD_ILLUMINANCE (0x4D1) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_COLOR_TEMPERATURE (0x4D2) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CHROMATICITY (0x4D3) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CHROMATICITY_X (0x4D4) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CHROMATICITY_Y (0x4D5) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CONSUMER_IR_SENTENCE_RECEIVE (0x4D6) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_INFRARED_LIGHT (0x4D7) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_RED_LIGHT (0x4D8) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GREEN_LIGHT (0x4D9) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_BLUE_LIGHT (0x4DA) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ULTRAVIOLET_A_LIGHT (0x4DB) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ULTRAVIOLET_B_LIGHT (0x4DC) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ULTRAVIOLET_INDEX (0x4DD) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_NEAR_INFRARED_LIGHT (0x4DE) // SV -#define HID_USAGE_SENSORS_PROPERTY_LIGHT (0x4DF) // DV -#define HID_USAGE_SENSORS_PROPERTY_CONSUMER_IR_SENTENCE_SEND (0x4E0) // DV -#define HID_USAGE_SENSORS_PROPERTY_AUTO_BRIGHTNESS_PREFERRED (0x4E2) // DF -#define HID_USAGE_SENSORS_PROPERTY_AUTO_COLOR_PREFERRED (0x4E3) // DF -#define HID_USAGE_SENSORS_DATA_FIELD_SCANNER (0x4F0) // DV -#define HID_USAGE_SENSORS_DATA_FIELD_RFID_TAG_40_BIT (0x4F1) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_NFC_SENTENCE_RECEIVE (0x4F2) // SV -#define HID_USAGE_SENSORS_PROPERTY_SCANNER (0x4F8) // DV -#define HID_USAGE_SENSORS_PROPERTY_NFC_SENTENCE_SEND (0x4F9) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ELECTRICAL (0x500) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CAPACITANCE (0x501) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CURRENT (0x502) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ELECTRICAL_POWER (0x503) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_INDUCTANCE (0x504) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_RESISTANCE (0x505) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_VOLTAGE (0x506) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_FREQUENCY (0x507) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_PERIOD (0x508) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_PERCENT_OF_RANGE (0x509) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_TIME (0x520) // DV -#define HID_USAGE_SENSORS_DATA_FIELD_YEAR (0x521) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_MONTH (0x522) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_DAY (0x523) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_DAY_OF_WEEK (0x524) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_HOUR (0x525) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_MINUTE (0x526) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_SECOND (0x527) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_MILLISECOND (0x528) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_TIMESTAMP (0x529) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_JULIAN_DAY_OF_YEAR (0x52A) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_TIME_SINCE_SYSTEM_BOOT (0x52B) // SV -#define HID_USAGE_SENSORS_PROPERTY_TIME (0x530) // DV -#define HID_USAGE_SENSORS_PROPERTY_TIME_ZONE_OFFSET_FROM_UTC (0x531) // DV -#define HID_USAGE_SENSORS_PROPERTY_TIME_ZONE_NAME (0x532) // DV -#define HID_USAGE_SENSORS_PROPERTY_DAYLIGHT_SAVINGS_TIME_OBSERVED (0x533) // DF -#define HID_USAGE_SENSORS_PROPERTY_TIME_TRIM_ADJUSTMENT (0x534) // DV -#define HID_USAGE_SENSORS_PROPERTY_ARM_ALARM (0x535) // DF -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM (0x540) // DV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_USAGE (0x541) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_BOOLEAN_ARRAY (0x542) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE (0x543) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_1 (0x544) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_2 (0x545) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_3 (0x546) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_4 (0x547) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_5 (0x548) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_6 (0x549) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_7 (0x54A) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_8 (0x54B) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_9 (0x54C) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_10 (0x54D) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_11 (0x54E) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_12 (0x54F) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_13 (0x550) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_14 (0x551) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_15 (0x552) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_16 (0x553) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_17 (0x554) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_18 (0x555) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_19 (0x556) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_20 (0x557) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_21 (0x558) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_22 (0x559) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_23 (0x55A) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_24 (0x55B) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_25 (0x55C) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_26 (0x55D) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_27 (0x55E) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_VALUE_28 (0x55F) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC (0x560) // DV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_GUID_OR_PROPERTYKEY (0x561) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_CATEGORY_GUID (0x562) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_TYPE_GUID (0x563) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_EVENT_PROPERTYKEY (0x564) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_PROPERTY_PROPERTYKEY (0x565) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_DATA_FIELD_PROPERTYKEY (0x566) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_EVENT (0x567) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_PROPERTY (0x568) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_DATA_FIELD (0x569) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ENUMERATOR_TABLE_ROW_INDEX (0x56A) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_ENUMERATOR_TABLE_ROW_COUNT (0x56B) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_GUID_OR_PROPERTYKEY_KIND (0x56C) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_GUID (0x56D) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_PROPERTYKEY (0x56E) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_TOP_LEVEL_COLLECTION_ID (0x56F) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_REPORT_ID (0x570) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_REPORT_ITEM_POSITION_INDEX (0x571) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_FIRMWARE_VARTYPE (0x572) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_UNIT_OF_MEASURE (0x573) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_UNIT_EXPONENT (0x574) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_REPORT_SIZE (0x575) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_GENERIC_REPORT_COUNT (0x576) // SV -#define HID_USAGE_SENSORS_PROPERTY_GENERIC (0x580) // DV -#define HID_USAGE_SENSORS_PROPERTY_ENUMERATOR_TABLE_ROW_INDEX (0x581) // DV -#define HID_USAGE_SENSORS_PROPERTY_ENUMERATOR_TABLE_ROW_COUNT (0x582) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_PERSONAL_ACTIVITY (0x590) // DV -#define HID_USAGE_SENSORS_DATA_FIELD_ACTIVITY_TYPE (0x591) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_ACTIVITY_STATE (0x592) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_DEVICE_POSITION (0x593) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_STEP_COUNT (0x594) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_STEP_COUNT_RESET (0x595) // DF -#define HID_USAGE_SENSORS_DATA_FIELD_STEP_DURATION (0x596) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_STEP_TYPE (0x597) // NAry -#define HID_USAGE_SENSORS_PROPERTY_MINIMUM_ACTIVITY_DETECTION_INTERVAL (0x5A0) // DV -#define HID_USAGE_SENSORS_PROPERTY_SUPPORTED_ACTIVITY_TYPES (0x5A1) // NAry -#define HID_USAGE_SENSORS_PROPERTY_SUBSCRIBED_ACTIVITY_TYPES (0x5A2) // NAry -#define HID_USAGE_SENSORS_PROPERTY_SUPPORTED_STEP_TYPES (0x5A3) // NAry -#define HID_USAGE_SENSORS_PROPERTY_SUBSCRIBED_STEP_TYPES (0x5A4) // NAry -#define HID_USAGE_SENSORS_PROPERTY_FLOOR_HEIGHT (0x5A5) // DV -#define HID_USAGE_SENSORS_DATA_FIELD_CUSTOM_TYPE_ID (0x5B0) // SV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM (0x5C0) // DV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM_VALUE_1 (0x5C1) // DV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM_VALUE_2 (0x5C2) // DV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM_VALUE_3 (0x5C3) // DV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM_VALUE_4 (0x5C4) // DV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM_VALUE_5 (0x5C5) // DV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM_VALUE_6 (0x5C6) // DV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM_VALUE_7 (0x5C7) // DV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM_VALUE_8 (0x5C8) // DV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM_VALUE_9 (0x5C9) // DV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM_VALUE_10 (0x5CA) // DV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM_VALUE_11 (0x5CB) // DV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM_VALUE_12 (0x5CC) // DV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM_VALUE_13 (0x5CD) // DV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM_VALUE_14 (0x5CE) // DV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM_VALUE_15 (0x5CF) // DV -#define HID_USAGE_SENSORS_PROPERTY_CUSTOM_VALUE_16 (0x5D0) // DV -#define HID_USAGE_SENSORS_DATA_FIELD_HINGE (0x5E0) // SV, DV -#define HID_USAGE_SENSORS_DATA_FIELD_HINGE_ANGLE (0x5E1) // SV, DV -#define HID_USAGE_SENSORS_DATA_FIELD_GESTURE_SENSOR (0x5F0) // DV -#define HID_USAGE_SENSORS_DATA_FIELD_GESTURE_STATE (0x5F1) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_HINGE_FOLD_INITIAL_ANGLE (0x5F2) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_HINGE_FOLD_FINAL_ANGLE (0x5F3) // SV -#define HID_USAGE_SENSORS_DATA_FIELD_HINGE_FOLD_CONTRIBUTING_PANEL (0x5F4) // NAry -#define HID_USAGE_SENSORS_DATA_FIELD_HINGE_FOLD_TYPE (0x5F5) // NAry -#define HID_USAGE_SENSORS_SENSOR_STATE_UNDEFINED (0x800) // Sel -#define HID_USAGE_SENSORS_SENSOR_STATE_READY (0x801) // Sel -#define HID_USAGE_SENSORS_SENSOR_STATE_NOT_AVAILABLE (0x802) // Sel -#define HID_USAGE_SENSORS_SENSOR_STATE_NO_DATA (0x803) // Sel -#define HID_USAGE_SENSORS_SENSOR_STATE_INITIALIZING (0x804) // Sel -#define HID_USAGE_SENSORS_SENSOR_STATE_ACCESS_DENIED (0x805) // Sel -#define HID_USAGE_SENSORS_SENSOR_STATE_ERROR (0x806) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_UNKNOWN (0x810) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_STATE_CHANGED (0x811) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_PROPERTY_CHANGED (0x812) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_DATA_UPDATED (0x813) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_POLL_RESPONSE (0x814) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_CHANGE_SENSITIVITY (0x815) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_RANGE_MAXIMUM_REACHED (0x816) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_RANGE_MINIMUM_REACHED (0x817) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_HIGH_THRESHOLD_CROSS_UPWARD (0x818) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_HIGH_THRESHOLD_CROSS_DOWNWARD (0x819) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_LOW_THRESHOLD_CROSS_UPWARD (0x81A) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_LOW_THRESHOLD_CROSS_DOWNWARD (0x81B) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_ZERO_THRESHOLD_CROSS_UPWARD (0x81C) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_ZERO_THRESHOLD_CROSS_DOWNWARD (0x81D) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_PERIOD_EXCEEDED (0x81E) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_FREQUENCY_EXCEEDED (0x81F) // Sel -#define HID_USAGE_SENSORS_SENSOR_EVENT_COMPLEX_TRIGGER (0x820) // Sel -#define HID_USAGE_SENSORS_CONNECTION_TYPE_PC_INTEGRATED (0x830) // Sel -#define HID_USAGE_SENSORS_CONNECTION_TYPE_PC_ATTACHED (0x831) // Sel -#define HID_USAGE_SENSORS_CONNECTION_TYPE_PC_EXTERNAL (0x832) // Sel -#define HID_USAGE_SENSORS_REPORTING_STATE_REPORT_NO_EVENTS (0x840) // Sel -#define HID_USAGE_SENSORS_REPORTING_STATE_REPORT_ALL_EVENTS (0x841) // Sel -#define HID_USAGE_SENSORS_REPORTING_STATE_REPORT_THRESHOLD_EVENTS (0x842) // Sel -#define HID_USAGE_SENSORS_REPORTING_STATE_WAKE_ON_NO_EVENTS (0x843) // Sel -#define HID_USAGE_SENSORS_REPORTING_STATE_WAKE_ON_ALL_EVENTS (0x844) // Sel -#define HID_USAGE_SENSORS_REPORTING_STATE_WAKE_ON_THRESHOLD_EVENTS (0x845) // Sel -#define HID_USAGE_SENSORS_POWER_STATE_UNDEFINED (0x850) // Sel -#define HID_USAGE_SENSORS_POWER_STATE_D0_FULL_POWER (0x851) // Sel -#define HID_USAGE_SENSORS_POWER_STATE_D1_LOW_POWER (0x852) // Sel -#define HID_USAGE_SENSORS_POWER_STATE_D2_STANDBY_POWER_WITH_WAKEUP (0x853) // Sel -#define HID_USAGE_SENSORS_POWER_STATE_D3_SLEEP_WITH_WAKEUP (0x854) // Sel -#define HID_USAGE_SENSORS_POWER_STATE_D4_POWER_OFF (0x855) // Sel -#define HID_USAGE_SENSORS_FIX_QUALITY_NO_FIX (0x870) // Sel -#define HID_USAGE_SENSORS_FIX_QUALITY_GPS (0x871) // Sel -#define HID_USAGE_SENSORS_FIX_QUALITY_DGPS (0x872) // Sel -#define HID_USAGE_SENSORS_FIX_TYPE_NO_FIX (0x880) // Sel -#define HID_USAGE_SENSORS_FIX_TYPE_GPS_SPS_MODE_FIX_VALID (0x881) // Sel -#define HID_USAGE_SENSORS_FIX_TYPE_DGPS_SPS_MODE_FIX_VALID (0x882) // Sel -#define HID_USAGE_SENSORS_FIX_TYPE_GPS_PPS_MODE_FIX_VALID (0x883) // Sel -#define HID_USAGE_SENSORS_FIX_TYPE_REAL_TIME_KINEMATIC (0x884) // Sel -#define HID_USAGE_SENSORS_FIX_TYPE_FLOAT_RTK (0x885) // Sel -#define HID_USAGE_SENSORS_FIX_TYPE_ESTIMATED_DEAD_RECKONED (0x886) // Sel -#define HID_USAGE_SENSORS_FIX_TYPE_MANUAL_INPUT_MODE (0x887) // Sel -#define HID_USAGE_SENSORS_FIX_TYPE_SIMULATOR_MODE (0x888) // Sel -#define HID_USAGE_SENSORS_GPS_OPERATION_MODE_MANUAL (0x890) // Sel -#define HID_USAGE_SENSORS_GPS_OPERATION_MODE_AUTOMATIC (0x891) // Sel -#define HID_USAGE_SENSORS_GPS_SELECTION_MODE_AUTONOMOUS (0x8A0) // Sel -#define HID_USAGE_SENSORS_GPS_SELECTION_MODE_DGPS (0x8A1) // Sel -#define HID_USAGE_SENSORS_GPS_SELECTION_MODE_ESTIMATED_DEAD_RECKONED (0x8A2) // Sel -#define HID_USAGE_SENSORS_GPS_SELECTION_MODE_MANUAL_INPUT (0x8A3) // Sel -#define HID_USAGE_SENSORS_GPS_SELECTION_MODE_SIMULATOR (0x8A4) // Sel -#define HID_USAGE_SENSORS_GPS_SELECTION_MODE_DATA_NOT_VALID (0x8A5) // Sel -#define HID_USAGE_SENSORS_GPS_STATUS_DATA_VALID (0x8B0) // Sel -#define HID_USAGE_SENSORS_GPS_STATUS_DATA_NOT_VALID (0x8B1) // Sel -#define HID_USAGE_SENSORS_ACCURACY_DEFAULT (0x860) // Sel -#define HID_USAGE_SENSORS_ACCURACY_HIGH (0x861) // Sel -#define HID_USAGE_SENSORS_ACCURACY_MEDIUM (0x862) // Sel -#define HID_USAGE_SENSORS_ACCURACY_LOW (0x863) // Sel -#define HID_USAGE_SENSORS_DAY_OF_WEEK_SUNDAY (0x8C0) // Sel -#define HID_USAGE_SENSORS_DAY_OF_WEEK_MONDAY (0x8C1) // Sel -#define HID_USAGE_SENSORS_DAY_OF_WEEK_TUESDAY (0x8C2) // Sel -#define HID_USAGE_SENSORS_DAY_OF_WEEK_WEDNESDAY (0x8C3) // Sel -#define HID_USAGE_SENSORS_DAY_OF_WEEK_THURSDAY (0x8C4) // Sel -#define HID_USAGE_SENSORS_DAY_OF_WEEK_FRIDAY (0x8C5) // Sel -#define HID_USAGE_SENSORS_DAY_OF_WEEK_SATURDAY (0x8C6) // Sel -#define HID_USAGE_SENSORS_KIND_CATEGORY (0x8D0) // Sel -#define HID_USAGE_SENSORS_KIND_TYPE (0x8D1) // Sel -#define HID_USAGE_SENSORS_KIND_EVENT (0x8D2) // Sel -#define HID_USAGE_SENSORS_KIND_PROPERTY (0x8D3) // Sel -#define HID_USAGE_SENSORS_KIND_DATA_FIELD (0x8D4) // Sel -#define HID_USAGE_SENSORS_MAGNETOMETER_ACCURACY_LOW (0x8E0) // Sel -#define HID_USAGE_SENSORS_MAGNETOMETER_ACCURACY_MEDIUM (0x8E1) // Sel -#define HID_USAGE_SENSORS_MAGNETOMETER_ACCURACY_HIGH (0x8E2) // Sel -#define HID_USAGE_SENSORS_SIMPLE_ORIENTATION_DIRECTION_NOT_ROTATED (0x8F0) // Sel -#define HID_USAGE_SENSORS_SIMPLE_ORIENTATION_DIRECTION_ROTATED_90_DEGREES_CCW (0x8F1) // Sel -#define HID_USAGE_SENSORS_SIMPLE_ORIENTATION_DIRECTION_ROTATED_180_DEGREES_CCW (0x8F2) // Sel -#define HID_USAGE_SENSORS_SIMPLE_ORIENTATION_DIRECTION_ROTATED_270_DEGREES_CCW (0x8F3) // Sel -#define HID_USAGE_SENSORS_SIMPLE_ORIENTATION_DIRECTION_FACE_UP (0x8F4) // Sel -#define HID_USAGE_SENSORS_SIMPLE_ORIENTATION_DIRECTION_FACE_DOWN (0x8F5) // Sel -#define HID_USAGE_SENSORS_VT_NULL (0x900) // Sel -#define HID_USAGE_SENSORS_VT_BOOL (0x901) // Sel -#define HID_USAGE_SENSORS_VT_UI1 (0x902) // Sel -#define HID_USAGE_SENSORS_VT_I1 (0x903) // Sel -#define HID_USAGE_SENSORS_VT_UI2 (0x904) // Sel -#define HID_USAGE_SENSORS_VT_I2 (0x905) // Sel -#define HID_USAGE_SENSORS_VT_UI4 (0x906) // Sel -#define HID_USAGE_SENSORS_VT_I4 (0x907) // Sel -#define HID_USAGE_SENSORS_VT_UI8 (0x908) // Sel -#define HID_USAGE_SENSORS_VT_I8 (0x909) // Sel -#define HID_USAGE_SENSORS_VT_R4 (0x90A) // Sel -#define HID_USAGE_SENSORS_VT_R8 (0x90B) // Sel -#define HID_USAGE_SENSORS_VT_WSTR (0x90C) // Sel -#define HID_USAGE_SENSORS_VT_STR (0x90D) // Sel -#define HID_USAGE_SENSORS_VT_CLSID (0x90E) // Sel -#define HID_USAGE_SENSORS_VT_VECTOR_VT_UI1 (0x90F) // Sel -#define HID_USAGE_SENSORS_VT_F16E0 (0x910) // Sel -#define HID_USAGE_SENSORS_VT_F16E1 (0x911) // Sel -#define HID_USAGE_SENSORS_VT_F16E2 (0x912) // Sel -#define HID_USAGE_SENSORS_VT_F16E3 (0x913) // Sel -#define HID_USAGE_SENSORS_VT_F16E4 (0x914) // Sel -#define HID_USAGE_SENSORS_VT_F16E5 (0x915) // Sel -#define HID_USAGE_SENSORS_VT_F16E6 (0x916) // Sel -#define HID_USAGE_SENSORS_VT_F16E7 (0x917) // Sel -#define HID_USAGE_SENSORS_VT_F16E8 (0x918) // Sel -#define HID_USAGE_SENSORS_VT_F16E9 (0x919) // Sel -#define HID_USAGE_SENSORS_VT_F16EA (0x91A) // Sel -#define HID_USAGE_SENSORS_VT_F16EB (0x91B) // Sel -#define HID_USAGE_SENSORS_VT_F16EC (0x91C) // Sel -#define HID_USAGE_SENSORS_VT_F16ED (0x91D) // Sel -#define HID_USAGE_SENSORS_VT_F16EE (0x91E) // Sel -#define HID_USAGE_SENSORS_VT_F16EF (0x91F) // Sel -#define HID_USAGE_SENSORS_VT_F32E0 (0x920) // Sel -#define HID_USAGE_SENSORS_VT_F32E1 (0x921) // Sel -#define HID_USAGE_SENSORS_VT_F32E2 (0x922) // Sel -#define HID_USAGE_SENSORS_VT_F32E3 (0x923) // Sel -#define HID_USAGE_SENSORS_VT_F32E4 (0x924) // Sel -#define HID_USAGE_SENSORS_VT_F32E5 (0x925) // Sel -#define HID_USAGE_SENSORS_VT_F32E6 (0x926) // Sel -#define HID_USAGE_SENSORS_VT_F32E7 (0x927) // Sel -#define HID_USAGE_SENSORS_VT_F32E8 (0x928) // Sel -#define HID_USAGE_SENSORS_VT_F32E9 (0x929) // Sel -#define HID_USAGE_SENSORS_VT_F32EA (0x92A) // Sel -#define HID_USAGE_SENSORS_VT_F32EB (0x92B) // Sel -#define HID_USAGE_SENSORS_VT_F32EC (0x92C) // Sel -#define HID_USAGE_SENSORS_VT_F32ED (0x92D) // Sel -#define HID_USAGE_SENSORS_VT_F32EE (0x92E) // Sel -#define HID_USAGE_SENSORS_VT_F32EF (0x92F) // Sel -#define HID_USAGE_SENSORS_ACTIVITY_TYPE_UNKNOWN (0x930) // Sel -#define HID_USAGE_SENSORS_ACTIVITY_TYPE_STATIONARY (0x931) // Sel -#define HID_USAGE_SENSORS_ACTIVITY_TYPE_FIDGETING (0x932) // Sel -#define HID_USAGE_SENSORS_ACTIVITY_TYPE_WALKING (0x933) // Sel -#define HID_USAGE_SENSORS_ACTIVITY_TYPE_RUNNING (0x934) // Sel -#define HID_USAGE_SENSORS_ACTIVITY_TYPE_IN_VEHICLE (0x935) // Sel -#define HID_USAGE_SENSORS_ACTIVITY_TYPE_BIKING (0x936) // Sel -#define HID_USAGE_SENSORS_ACTIVITY_TYPE_IDLE (0x937) // Sel -#define HID_USAGE_SENSORS_UNIT_NOT_SPECIFIED (0x940) // Sel -#define HID_USAGE_SENSORS_UNIT_LUX (0x941) // Sel -#define HID_USAGE_SENSORS_UNIT_DEGREES_KELVIN (0x942) // Sel -#define HID_USAGE_SENSORS_UNIT_DEGREES_CELSIUS (0x943) // Sel -#define HID_USAGE_SENSORS_UNIT_PASCAL (0x944) // Sel -#define HID_USAGE_SENSORS_UNIT_NEWTON (0x945) // Sel -#define HID_USAGE_SENSORS_UNIT_METERS_SECOND (0x946) // Sel -#define HID_USAGE_SENSORS_UNIT_KILOGRAM (0x947) // Sel -#define HID_USAGE_SENSORS_UNIT_METER (0x948) // Sel -#define HID_USAGE_SENSORS_UNIT_METERS_SECOND_SECOND (0x949) // Sel -#define HID_USAGE_SENSORS_UNIT_FARAD (0x94A) // Sel -#define HID_USAGE_SENSORS_UNIT_AMPERE (0x94B) // Sel -#define HID_USAGE_SENSORS_UNIT_WATT (0x94C) // Sel -#define HID_USAGE_SENSORS_UNIT_HENRY (0x94D) // Sel -#define HID_USAGE_SENSORS_UNIT_OHM (0x94E) // Sel -#define HID_USAGE_SENSORS_UNIT_VOLT (0x94F) // Sel -#define HID_USAGE_SENSORS_UNIT_HERTZ (0x950) // Sel -#define HID_USAGE_SENSORS_UNIT_BAR (0x951) // Sel -#define HID_USAGE_SENSORS_UNIT_DEGREES_ANTI_CLOCKWISE (0x952) // Sel -#define HID_USAGE_SENSORS_UNIT_DEGREES_CLOCKWISE (0x953) // Sel -#define HID_USAGE_SENSORS_UNIT_DEGREES (0x954) // Sel -#define HID_USAGE_SENSORS_UNIT_DEGREES_SECOND (0x955) // Sel -#define HID_USAGE_SENSORS_UNIT_DEGREES_SECOND_SECOND (0x956) // Sel -#define HID_USAGE_SENSORS_UNIT_KNOT (0x957) // Sel -#define HID_USAGE_SENSORS_UNIT_PERCENT (0x958) // Sel -#define HID_USAGE_SENSORS_UNIT_SECOND (0x959) // Sel -#define HID_USAGE_SENSORS_UNIT_MILLISECOND (0x95A) // Sel -#define HID_USAGE_SENSORS_UNIT_G (0x95B) // Sel -#define HID_USAGE_SENSORS_UNIT_BYTES (0x95C) // Sel -#define HID_USAGE_SENSORS_UNIT_MILLIGAUSS (0x95D) // Sel -#define HID_USAGE_SENSORS_UNIT_BITS (0x95E) // Sel -#define HID_USAGE_SENSORS_ACTIVITY_STATE_NO_STATE_CHANGE (0x960) // Sel -#define HID_USAGE_SENSORS_ACTIVITY_STATE_START_ACTIVITY (0x961) // Sel -#define HID_USAGE_SENSORS_ACTIVITY_STATE_END_ACTIVITY (0x962) // Sel -#define HID_USAGE_SENSORS_EXPONENT_0 (0x970) // Sel -#define HID_USAGE_SENSORS_EXPONENT_1 (0x971) // Sel -#define HID_USAGE_SENSORS_EXPONENT_2 (0x972) // Sel -#define HID_USAGE_SENSORS_EXPONENT_3 (0x973) // Sel -#define HID_USAGE_SENSORS_EXPONENT_4 (0x974) // Sel -#define HID_USAGE_SENSORS_EXPONENT_5 (0x975) // Sel -#define HID_USAGE_SENSORS_EXPONENT_6 (0x976) // Sel -#define HID_USAGE_SENSORS_EXPONENT_7 (0x977) // Sel -#define HID_USAGE_SENSORS_EXPONENT_8 (0x978) // Sel -#define HID_USAGE_SENSORS_EXPONENT_9 (0x979) // Sel -#define HID_USAGE_SENSORS_EXPONENT_A (0x97A) // Sel -#define HID_USAGE_SENSORS_EXPONENT_B (0x97B) // Sel -#define HID_USAGE_SENSORS_EXPONENT_C (0x97C) // Sel -#define HID_USAGE_SENSORS_EXPONENT_D (0x97D) // Sel -#define HID_USAGE_SENSORS_EXPONENT_E (0x97E) // Sel -#define HID_USAGE_SENSORS_EXPONENT_F (0x97F) // Sel -#define HID_USAGE_SENSORS_DEVICE_POSITION_UNKNOWN (0x980) // Sel -#define HID_USAGE_SENSORS_DEVICE_POSITION_UNCHANGED (0x981) // Sel -#define HID_USAGE_SENSORS_DEVICE_POSITION_ON_DESK (0x982) // Sel -#define HID_USAGE_SENSORS_DEVICE_POSITION_IN_HAND (0x983) // Sel -#define HID_USAGE_SENSORS_DEVICE_POSITION_MOVING_IN_BAG (0x984) // Sel -#define HID_USAGE_SENSORS_DEVICE_POSITION_STATIONARY_IN_BAG (0x985) // Sel -#define HID_USAGE_SENSORS_STEP_TYPE_UNKNOWN (0x990) // Sel -#define HID_USAGE_SENSORS_STEP_TYPE_RUNNING (0x991) // Sel -#define HID_USAGE_SENSORS_STEP_TYPE_WALKING (0x992) // Sel -#define HID_USAGE_SENSORS_GESTURE_STATE_UNKNOWN (0x9A0) // Sel -#define HID_USAGE_SENSORS_GESTURE_STATE_STARTED (0x9A1) // Sel -#define HID_USAGE_SENSORS_GESTURE_STATE_COMPLETED (0x9A2) // Sel -#define HID_USAGE_SENSORS_GESTURE_STATE_CANCELLED (0x9A3) // Sel -#define HID_USAGE_SENSORS_HINGE_FOLD_CONTRIBUTING_PANEL_UNKNOWN (0x9B0) // Sel -#define HID_USAGE_SENSORS_HINGE_FOLD_CONTRIBUTING_PANEL_PANEL_1 (0x9B1) // Sel -#define HID_USAGE_SENSORS_HINGE_FOLD_CONTRIBUTING_PANEL_PANEL_2 (0x9B2) // Sel -#define HID_USAGE_SENSORS_HINGE_FOLD_CONTRIBUTING_PANEL_BOTH (0x9B3) // Sel -#define HID_USAGE_SENSORS_HINGE_FOLD_TYPE_UNKNOWN (0x9B4) // Sel -#define HID_USAGE_SENSORS_HINGE_FOLD_TYPE_INCREASING (0x9B5) // Sel -#define HID_USAGE_SENSORS_HINGE_FOLD_TYPE_DECREASING (0x9B6) // Sel -#define HID_USAGE_SENSORS_MODIFIER_CHANGE_SENSITIVITY_ABSOLUTE (0x1000) // US -#define HID_USAGE_SENSORS_MODIFIER_MAXIMUM (0x2000) // US -#define HID_USAGE_SENSORS_MODIFIER_MINIMUM (0x3000) // US -#define HID_USAGE_SENSORS_MODIFIER_ACCURACY (0x4000) // US -#define HID_USAGE_SENSORS_MODIFIER_RESOLUTION (0x5000) // US -#define HID_USAGE_SENSORS_MODIFIER_THRESHOLD_HIGH (0x6000) // US -#define HID_USAGE_SENSORS_MODIFIER_THRESHOLD_LOW (0x7000) // US -#define HID_USAGE_SENSORS_MODIFIER_CALIBRATION_OFFSET (0x8000) // US -#define HID_USAGE_SENSORS_MODIFIER_CALIBRATION_MULTIPLIER (0x9000) // US -#define HID_USAGE_SENSORS_MODIFIER_REPORT_INTERVAL (0xA000) // US -#define HID_USAGE_SENSORS_MODIFIER_FREQUENCY_MAX (0xB000) // US -#define HID_USAGE_SENSORS_MODIFIER_PERIOD_MAX (0xC000) // US -#define HID_USAGE_SENSORS_MODIFIER_CHANGE_SENSITIVITY_PERCENT_OF_RANGE (0xD000) // US -#define HID_USAGE_SENSORS_MODIFIER_CHANGE_SENSITIVITY_PERCENT_RELATIVE (0xE000) // US - -/* Page 0x40: Medical Instrument */ -#define HID_USAGE_MEDICAL_UNDEFINED (0x00) -#define HID_USAGE_MEDICAL_MEDICAL_ULTRASOUND (0x01) // CA -#define HID_USAGE_MEDICAL_VCR_ACQUISITION (0x20) // OOC -#define HID_USAGE_MEDICAL_FREEZE_THAW (0x21) // OOC -#define HID_USAGE_MEDICAL_CLIP_STORE (0x22) // OSC -#define HID_USAGE_MEDICAL_UPDATE (0x23) // OSC -#define HID_USAGE_MEDICAL_NEXT (0x24) // OSC -#define HID_USAGE_MEDICAL_SAVE (0x25) // OSC -#define HID_USAGE_MEDICAL_PRINT (0x26) // OSC -#define HID_USAGE_MEDICAL_MICROPHONE_ENABLE (0x27) // OSC -#define HID_USAGE_MEDICAL_CINE (0x40) // LC -#define HID_USAGE_MEDICAL_TRANSMIT_POWER (0x41) // LC -#define HID_USAGE_MEDICAL_VOLUME (0x42) // LC -#define HID_USAGE_MEDICAL_FOCUS (0x43) // LC -#define HID_USAGE_MEDICAL_DEPTH (0x44) // LC -#define HID_USAGE_MEDICAL_SOFT_STEP_MINUS_PRIMARY (0x60) // LC -#define HID_USAGE_MEDICAL_SOFT_STEP_MINUS_SECONDARY (0x61) // LC -#define HID_USAGE_MEDICAL_DEPTH_GAIN_COMPENSATION (0x70) // LC -#define HID_USAGE_MEDICAL_ZOOM_SELECT (0x80) // OSC -#define HID_USAGE_MEDICAL_ZOOM_ADJUST (0x81) // LC -#define HID_USAGE_MEDICAL_SPECTRAL_DOPPLER_MODE_SELECT (0x82) // OSC -#define HID_USAGE_MEDICAL_SPECTRAL_DOPPLER_ADJUST (0x83) // LC -#define HID_USAGE_MEDICAL_COLOR_DOPPLER_MODE_SELECT (0x84) // OSC -#define HID_USAGE_MEDICAL_COLOR_DOPPLER_ADJUST (0x85) // LC -#define HID_USAGE_MEDICAL_MOTION_MODE_SELECT (0x86) // OSC -#define HID_USAGE_MEDICAL_MOTION_MODE_ADJUST (0x87) // LC -#define HID_USAGE_MEDICAL_2_D_MODE_SELECT (0x88) // OSC -#define HID_USAGE_MEDICAL_2_D_MODE_ADJUST (0x89) // LC -#define HID_USAGE_MEDICAL_SOFT_CONTROL_SELECT (0xA0) // OSC -#define HID_USAGE_MEDICAL_SOFT_CONTROL_ADJUST (0xA1) // LC - -/* Page 0x41: Braille Display */ -#define HID_USAGE_BRAILLE_UNDEFINED (0x00) -#define HID_USAGE_BRAILLE_BRAILLE_DISPLAY (0x01) // CA -#define HID_USAGE_BRAILLE_BRAILLE_ROW (0x02) // NAry -#define HID_USAGE_BRAILLE_8_DOT_BRAILLE_CELL (0x03) // DV -#define HID_USAGE_BRAILLE_6_DOT_BRAILLE_CELL (0x04) // DV -#define HID_USAGE_BRAILLE_NUMBER_OF_BRAILLE_CELLS (0x05) // DV -#define HID_USAGE_BRAILLE_SCREEN_READER_CONTROL (0x06) // NAry -#define HID_USAGE_BRAILLE_SCREEN_READER_IDENTIFIER (0x07) // DV -#define HID_USAGE_BRAILLE_ROUTER_SET_1 (0xFA) // NAry -#define HID_USAGE_BRAILLE_ROUTER_SET_2 (0xFB) // NAry -#define HID_USAGE_BRAILLE_ROUTER_SET_3 (0xFC) // Nary -#define HID_USAGE_BRAILLE_ROUTER_KEY (0x100) // Sel -#define HID_USAGE_BRAILLE_ROW_ROUTER_KEY (0x101) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_BUTTONS (0x200) // NAry -#define HID_USAGE_BRAILLE_BRAILLE_KEYBOARD_DOT_1 (0x201) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_KEYBOARD_DOT_2 (0x202) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_KEYBOARD_DOT_3 (0x203) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_KEYBOARD_DOT_4 (0x204) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_KEYBOARD_DOT_5 (0x205) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_KEYBOARD_DOT_6 (0x206) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_KEYBOARD_DOT_7 (0x207) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_KEYBOARD_DOT_8 (0x208) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_KEYBOARD_SPACE (0x209) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_KEYBOARD_LEFT_SPACE (0x20A) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_KEYBOARD_RIGHT_SPACE (0x20B) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_FACE_CONTROLS (0x20C) // NAry -#define HID_USAGE_BRAILLE_BRAILLE_LEFT_CONTROLS (0x20D) // NAry -#define HID_USAGE_BRAILLE_BRAILLE_RIGHT_CONTROLS (0x20E) // NAry -#define HID_USAGE_BRAILLE_BRAILLE_TOP_CONTROLS (0x20F) // NAry -#define HID_USAGE_BRAILLE_BRAILLE_JOYSTICK_CENTER (0x210) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_JOYSTICK_UP (0x211) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_JOYSTICK_DOWN (0x212) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_JOYSTICK_LEFT (0x213) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_JOYSTICK_RIGHT (0x214) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_D_PAD_CENTER (0x215) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_D_PAD_UP (0x216) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_D_PAD_DOWN (0x217) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_D_PAD_LEFT (0x218) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_D_PAD_RIGHT (0x219) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_PAN_LEFT (0x21A) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_PAN_RIGHT (0x21B) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_ROCKER_UP (0x21C) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_ROCKER_DOWN (0x21D) // Sel -#define HID_USAGE_BRAILLE_BRAILLE_ROCKER_PRESS (0x21E) // Sel - -/* Page 0x59: Lighting And Illumination */ -#define HID_USAGE_LIGHT_UNDEFINED (0x00) -#define HID_USAGE_LIGHT_LAMP_ARRAY (0x01) // CA -#define HID_USAGE_LIGHT_LAMP_ARRAY_ATTRIBUTES_REPORT (0x02) // CL -#define HID_USAGE_LIGHT_LAMP_COUNT (0x03) // SV, DV -#define HID_USAGE_LIGHT_BOUNDING_BOX_WIDTH_IN_MICROMETERS (0x04) // SV -#define HID_USAGE_LIGHT_BOUNDING_BOX_HEIGHT_IN_MICROMETERS (0x05) // SV -#define HID_USAGE_LIGHT_BOUNDING_BOX_DEPTH_IN_MICROMETERS (0x06) // SV -#define HID_USAGE_LIGHT_LAMP_ARRAY_KIND (0x07) // SV -#define HID_USAGE_LIGHT_MIN_UPDATE_INTERVAL_IN_MICROSECONDS (0x08) // SV -#define HID_USAGE_LIGHT_LAMP_ATTRIBUTES_REQUEST_REPORT (0x20) // CL -#define HID_USAGE_LIGHT_LAMP_ID (0x21) // SV, DV -#define HID_USAGE_LIGHT_LAMP_ATTRIBUTES_RESPONSE_REPORT (0x22) // CL -#define HID_USAGE_LIGHT_POSITION_X_IN_MICROMETERS (0x23) // DV -#define HID_USAGE_LIGHT_POSITION_Y_IN_MICROMETERS (0x24) // DV -#define HID_USAGE_LIGHT_POSITION_Z_IN_MICROMETERS (0x25) // DV -#define HID_USAGE_LIGHT_LAMP_PURPOSES (0x26) // DV -#define HID_USAGE_LIGHT_UPDATE_LATENCY_IN_MICROSECONDS (0x27) // DV -#define HID_USAGE_LIGHT_RED_LEVEL_COUNT (0x28) // DV -#define HID_USAGE_LIGHT_GREEN_LEVEL_COUNT (0x29) // DV -#define HID_USAGE_LIGHT_BLUE_LEVEL_COUNT (0x2A) // DV -#define HID_USAGE_LIGHT_INTENSITY_LEVEL_COUNT (0x2B) // DV -#define HID_USAGE_LIGHT_IS_PROGRAMMABLE (0x2C) // DV -#define HID_USAGE_LIGHT_INPUT_BINDING (0x2D) // DV -#define HID_USAGE_LIGHT_LAMP_MULTI_UPDATE_REPORT (0x50) // CL -#define HID_USAGE_LIGHT_RED_UPDATE_CHANNEL (0x51) // DV -#define HID_USAGE_LIGHT_GREEN_UPDATE_CHANNEL (0x52) // DV -#define HID_USAGE_LIGHT_BLUE_UPDATE_CHANNEL (0x53) // DV -#define HID_USAGE_LIGHT_INTENSITY_UPDATE_CHANNEL (0x54) // DV -#define HID_USAGE_LIGHT_LAMP_UPDATE_FLAGS (0x55) // DV -#define HID_USAGE_LIGHT_LAMP_RANGE_UPDATE_REPORT (0x60) // CL -#define HID_USAGE_LIGHT_LAMP_ID_START (0x61) // DV -#define HID_USAGE_LIGHT_LAMP_ID_END (0x62) // DV -#define HID_USAGE_LIGHT_LAMP_ARRAY_CONTROL_REPORT (0x70) // CL -#define HID_USAGE_LIGHT_AUTONOMOUS_MODE (0x71) // DV - -/* Page 0x80: USB Monitor */ -#define HID_USAGE_MONITOR_MONITOR_CONTROL (0x01) -#define HID_USAGE_MONITOR_EDID_INFORMATION (0x02) -#define HID_USAGE_MONITOR_VDIF_INFORMATION (0x03) -#define HID_USAGE_MONITOR_VESA_VERSION (0x04) - -/* Page 0x82: VESA Virtual Control */ -#define HID_USAGE_MONITOR_VESA_BRIGHTNESS (0x10) -#define HID_USAGE_MONITOR_VESA_CONTRAST (0x12) -#define HID_USAGE_MONITOR_VESA_RED_VIDEO_GAIN (0x16) -#define HID_USAGE_MONITOR_VESA_GREEN_VIDEO_GAIN (0x18) -#define HID_USAGE_MONITOR_VESA_BLUE_VIDEO_GAIN (0x1A) -#define HID_USAGE_MONITOR_VESA_FOCUS (0x1C) -#define HID_USAGE_MONITOR_VESA_HORIZONTAL_POSITION (0x20) -#define HID_USAGE_MONITOR_VESA_HORIZONTAL_SIZE (0x22) -#define HID_USAGE_MONITOR_VESA_HORIZONTAL_PINCUSHION (0x24) -#define HID_USAGE_MONITOR_VESA_HORIZONTAL_PINCUSHION_BALANCE (0x26) -#define HID_USAGE_MONITOR_VESA_HORIZONTAL_MISCONVERGENCE (0x28) -#define HID_USAGE_MONITOR_VESA_HORIZONTAL_LINEARITY (0x2A) -#define HID_USAGE_MONITOR_VESA_HORIZONTAL_LINEARITY_BALANCE (0x2C) -#define HID_USAGE_MONITOR_VESA_VERTICAL_POSITION (0x30) -#define HID_USAGE_MONITOR_VESA_VERTICAL_SIZE (0x32) -#define HID_USAGE_MONITOR_VESA_VERTICAL_PINCUSHION (0x34) -#define HID_USAGE_MONITOR_VESA_VERTICAL_PINCUSHION_BALANCE (0x36) -#define HID_USAGE_MONITOR_VESA_VERTICAL_MISCONVERGENCE (0x38) -#define HID_USAGE_MONITOR_VESA_VERTICAL_LINEARITY (0x3A) -#define HID_USAGE_MONITOR_VESA_VERTICAL_LINEARITY_BALANCE (0x3C) -#define HID_USAGE_MONITOR_VESA_PARALLELOGRAM_DISTORTION_KEY_BALANCE (0x40) -#define HID_USAGE_MONITOR_VESA_TRAPEZOIDAL_DISTORTION_KEY (0x42) -#define HID_USAGE_MONITOR_VESA_TILT_ROTATION (0x44) -#define HID_USAGE_MONITOR_VESA_TOP_CORNER_DISTORTION_CONTROL (0x46) -#define HID_USAGE_MONITOR_VESA_TOP_CORNER_DISTORTION_BALANCE (0x48) -#define HID_USAGE_MONITOR_VESA_BOTTOM_CORNER_DISTORTION_CONTROL (0x4A) -#define HID_USAGE_MONITOR_VESA_BOTTOM_CORNER_DISTORTION_BALANCE (0x4C) -#define HID_USAGE_MONITOR_VESA_HORIZONTAL_MOIR (0x56) -#define HID_USAGE_MONITOR_VESA_VERTICAL_MOIR (0x58) -#define HID_USAGE_MONITOR_VESA_RED_VIDEO_BLACK_LEVEL (0x6C) -#define HID_USAGE_MONITOR_VESA_GREEN_VIDEO_BLACK_LEVEL (0x6E) -#define HID_USAGE_MONITOR_VESA_BLUE_VIDEO_BLACK_LEVEL (0x70) -#define HID_USAGE_MONITOR_VESA_INPUT_LEVEL_SELECT (0x5E) -#define HID_USAGE_MONITOR_VESA_INPUT_SOURCE_SELECT (0x60) -#define HID_USAGE_MONITOR_VESA_ON_SCREEN_DISPLAY (0xCA) -#define HID_USAGE_MONITOR_VESA_STEREOMODE (0xD4) -#define HID_USAGE_MONITOR_VESA_AUTO_SIZE_CENTER (0xA2) -#define HID_USAGE_MONITOR_VESA_POLARITY_HORIZONTAL_SYNCHRONIZATION (0xA4) -#define HID_USAGE_MONITOR_VESA_POLARITY_VERTICAL_SYNCHRONIZATION (0xA6) -#define HID_USAGE_MONITOR_VESA_SYNCHRONIZATION_TYPE (0xA8) -#define HID_USAGE_MONITOR_VESA_SCREEN_ORIENTATION (0xAA) -#define HID_USAGE_MONITOR_VESA_HORIZONTAL_FREQUENCY (0xAC) -#define HID_USAGE_MONITOR_VESA_VERTICAL_FREQUENCY (0xAE) -#define HID_USAGE_MONITOR_VESA_DEGAUSS (0x01) -#define HID_USAGE_MONITOR_VESA_SETTINGS (0xB0) - -/* Page 0x8C: Bar Code Scanner */ -#define HID_USAGE_POS_BARCODE_UNDEFINED (0x00) -#define HID_USAGE_POS_BARCODE_BAR_CODE_BADGE_READER (0x01) // CA -#define HID_USAGE_POS_BARCODE_BAR_CODE_SCANNER (0x02) // CA -#define HID_USAGE_POS_BARCODE_DUMB_BAR_CODE_SCANNER (0x03) // CA -#define HID_USAGE_POS_BARCODE_CORDLESS_SCANNER_BASE (0x04) // CA -#define HID_USAGE_POS_BARCODE_BAR_CODE_SCANNER_CRADLE (0x05) // CA -#define HID_USAGE_POS_BARCODE_ATTRIBUTE_REPORT (0x10) // CL -#define HID_USAGE_POS_BARCODE_SETTINGS_REPORT (0x11) // CL -#define HID_USAGE_POS_BARCODE_SCANNED_DATA_REPORT (0x12) // CL -#define HID_USAGE_POS_BARCODE_RAW_SCANNED_DATA_REPORT (0x13) // CL -#define HID_USAGE_POS_BARCODE_TRIGGER_REPORT (0x14) // CL -#define HID_USAGE_POS_BARCODE_STATUS_REPORT (0x15) // CL -#define HID_USAGE_POS_BARCODE_UPC_EAN_CONTROL_REPORT (0x16) // CL -#define HID_USAGE_POS_BARCODE_EAN_2_3_LABEL_CONTROL_REPORT (0x17) // CL -#define HID_USAGE_POS_BARCODE_CODE_39_CONTROL_REPORT (0x18) // CL -#define HID_USAGE_POS_BARCODE_INTERLEAVED_2_OF_5_CONTROL_REPORT (0x19) // CL -#define HID_USAGE_POS_BARCODE_STANDARD_2_OF_5_CONTROL_REPORT (0x1A) // CL -#define HID_USAGE_POS_BARCODE_MSI_PLESSEY_CONTROL_REPORT (0x1B) // CL -#define HID_USAGE_POS_BARCODE_CODABAR_CONTROL_REPORT (0x1C) // CL -#define HID_USAGE_POS_BARCODE_CODE_128_CONTROL_REPORT (0x1D) // CL -#define HID_USAGE_POS_BARCODE_MISC_1D_CONTROL_REPORT (0x1E) // CL -#define HID_USAGE_POS_BARCODE_2D_CONTROL_REPORT (0x1F) // CL -#define HID_USAGE_POS_BARCODE_AIMING_POINTER_MODE (0x30) // SF -#define HID_USAGE_POS_BARCODE_BAR_CODE_PRESENT_SENSOR (0x31) // SF -#define HID_USAGE_POS_BARCODE_CLASS_1A_LASER (0x32) // SF -#define HID_USAGE_POS_BARCODE_CLASS_2_LASER (0x33) // SF -#define HID_USAGE_POS_BARCODE_HEATER_PRESENT (0x34) // SF -#define HID_USAGE_POS_BARCODE_CONTACT_SCANNER (0x35) // SF -#define HID_USAGE_POS_BARCODE_ELECTRONIC_ARTICLE_SURVEILLANCE_NOTIFICATION (0x36) // SF -#define HID_USAGE_POS_BARCODE_CONSTANT_ELECTRONIC_ARTICLE_SURVEILLANCE (0x37) // SF -#define HID_USAGE_POS_BARCODE_ERROR_INDICATION (0x38) // SF -#define HID_USAGE_POS_BARCODE_FIXED_BEEPER (0x39) // SF -#define HID_USAGE_POS_BARCODE_GOOD_DECODE_INDICATION (0x3A) // SF -#define HID_USAGE_POS_BARCODE_HANDS_FREE_SCANNING (0x3B) // SF -#define HID_USAGE_POS_BARCODE_INTRINSICALLY_SAFE (0x3C) // SF -#define HID_USAGE_POS_BARCODE_KLASSE_EINS_LASER (0x3D) // SF -#define HID_USAGE_POS_BARCODE_LONG_RANGE_SCANNER (0x3E) // SF -#define HID_USAGE_POS_BARCODE_MIRROR_SPEED_CONTROL (0x3F) // SF -#define HID_USAGE_POS_BARCODE_NOT_ON_FILE_INDICATION (0x40) // SF -#define HID_USAGE_POS_BARCODE_PROGRAMMABLE_BEEPER (0x41) // SF -#define HID_USAGE_POS_BARCODE_TRIGGERLESS (0x42) // SF -#define HID_USAGE_POS_BARCODE_WAND (0x43) // SF -#define HID_USAGE_POS_BARCODE_WATER_RESISTANT (0x44) // SF -#define HID_USAGE_POS_BARCODE_MULTI_RANGE_SCANNER (0x45) // SF -#define HID_USAGE_POS_BARCODE_PROXIMITY_SENSOR (0x46) // SF -#define HID_USAGE_POS_BARCODE_FRAGMENT_DECODING (0x4D) // DF -#define HID_USAGE_POS_BARCODE_SCANNER_READ_CONFIDENCE (0x4E) // DV -#define HID_USAGE_POS_BARCODE_DATA_PREFIX (0x4F) // NAry -#define HID_USAGE_POS_BARCODE_PREFIX_AIMI (0x50) // SEL -#define HID_USAGE_POS_BARCODE_PREFIX_NONE (0x51) // SEL -#define HID_USAGE_POS_BARCODE_PREFIX_PROPRIETARY (0x52) // SEL -#define HID_USAGE_POS_BARCODE_ACTIVE_TIME (0x55) // DV -#define HID_USAGE_POS_BARCODE_AIMING_LASER_PATTERN (0x56) // DF -#define HID_USAGE_POS_BARCODE_BAR_CODE_PRESENT (0x57) // OOC -#define HID_USAGE_POS_BARCODE_BEEPER_STATE (0x58) // OOC -#define HID_USAGE_POS_BARCODE_LASER_ON_TIME (0x59) // DV -#define HID_USAGE_POS_BARCODE_LASER_STATE (0x5A) // OOC -#define HID_USAGE_POS_BARCODE_LOCKOUT_TIME (0x5B) // DV -#define HID_USAGE_POS_BARCODE_MOTOR_STATE (0x5C) // OOC -#define HID_USAGE_POS_BARCODE_MOTOR_TIMEOUT (0x5D) // DV -#define HID_USAGE_POS_BARCODE_POWER_ON_RESET_SCANNER (0x5E) // DF -#define HID_USAGE_POS_BARCODE_PREVENT_READ_OF_BARCODES (0x5F) // DF -#define HID_USAGE_POS_BARCODE_INITIATE_BARCODE_READ (0x60) // DF -#define HID_USAGE_POS_BARCODE_TRIGGER_STATE (0x61) // OOC -#define HID_USAGE_POS_BARCODE_TRIGGER_MODE (0x62) // NAry -#define HID_USAGE_POS_BARCODE_TRIGGER_MODE_BLINKING_LASER_ON (0x63) // SEL -#define HID_USAGE_POS_BARCODE_TRIGGER_MODE_CONTINUOUS_LASER_ON (0x64) // SEL -#define HID_USAGE_POS_BARCODE_TRIGGER_MODE_LASER_ON_WHILE_PULLED (0x65) // SEL -#define HID_USAGE_POS_BARCODE_TRIGGER_MODE_LASER_STAYS_ON_AFTER_TRIGGER_RELEASE (0x66) // SEL -#define HID_USAGE_POS_BARCODE_COMMIT_PARAMETERS_TO_NVM (0x6D) // DF -#define HID_USAGE_POS_BARCODE_PARAMETER_SCANNING (0x6E) // DF -#define HID_USAGE_POS_BARCODE_PARAMETERS_CHANGED (0x6F) // OOC -#define HID_USAGE_POS_BARCODE_SET_PARAMETER_DEFAULT_VALUES (0x70) // DF -#define HID_USAGE_POS_BARCODE_SCANNER_IN_CRADLE (0x75) // OOC -#define HID_USAGE_POS_BARCODE_SCANNER_IN_RANGE (0x76) // OOC -#define HID_USAGE_POS_BARCODE_AIM_DURATION (0x7A) // DV -#define HID_USAGE_POS_BARCODE_GOOD_READ_LAMP_DURATION (0x7B) // DV -#define HID_USAGE_POS_BARCODE_GOOD_READ_LAMP_INTENSITY (0x7C) // DV -#define HID_USAGE_POS_BARCODE_GOOD_READ_LED (0x7D) // DF -#define HID_USAGE_POS_BARCODE_GOOD_READ_TONE_FREQUENCY (0x7E) // DV -#define HID_USAGE_POS_BARCODE_GOOD_READ_TONE_LENGTH (0x7F) // DV -#define HID_USAGE_POS_BARCODE_GOOD_READ_TONE_VOLUME (0x80) // DV -#define HID_USAGE_POS_BARCODE_NO_READ_MESSAGE (0x82) // DF -#define HID_USAGE_POS_BARCODE_NOT_ON_FILE_VOLUME (0x83) // DV -#define HID_USAGE_POS_BARCODE_POWERUP_BEEP (0x84) // DF -#define HID_USAGE_POS_BARCODE_SOUND_ERROR_BEEP (0x85) // DF -#define HID_USAGE_POS_BARCODE_SOUND_GOOD_READ_BEEP (0x86) // DF -#define HID_USAGE_POS_BARCODE_SOUND_NOT_ON_FILE_BEEP (0x87) // DF -#define HID_USAGE_POS_BARCODE_GOOD_READ_WHEN_TO_WRITE (0x88) // NAry -#define HID_USAGE_POS_BARCODE_GRWTI_AFTER_DECODE (0x89) // SEL -#define HID_USAGE_POS_BARCODE_GRWTI_BEEP_LAMP_AFTER_TRANSMIT (0x8A) // SEL -#define HID_USAGE_POS_BARCODE_GRWTI_NO_BEEP_LAMP_USE_AT_ALL (0x8B) // SEL -#define HID_USAGE_POS_BARCODE_BOOKLAND_EAN (0x91) // DF -#define HID_USAGE_POS_BARCODE_CONVERT_EAN_8_TO_13_TYPE (0x92) // DF -#define HID_USAGE_POS_BARCODE_CONVERT_UPC_A_TO_EAN_13 (0x93) // DF -#define HID_USAGE_POS_BARCODE_CONVERT_UPC_E_TO_A (0x94) // DF -#define HID_USAGE_POS_BARCODE_EAN_13 (0x95) // DF -#define HID_USAGE_POS_BARCODE_EAN_8 (0x96) // DF -#define HID_USAGE_POS_BARCODE_EAN_99_128_MANDATORY (0x97) // DF -#define HID_USAGE_POS_BARCODE_EAN_99_P5_128_OPTIONAL (0x98) // DF -#define HID_USAGE_POS_BARCODE_UPC_EAN (0x9A) // DF -#define HID_USAGE_POS_BARCODE_UPC_EAN_COUPON_CODE (0x9B) // DF -#define HID_USAGE_POS_BARCODE_UPC_EAN_PERIODICALS (0x9C) // DV -#define HID_USAGE_POS_BARCODE_UPC_A (0x9D) // DF -#define HID_USAGE_POS_BARCODE_UPC_A_WITH_128_MANDATORY (0x9E) // DF -#define HID_USAGE_POS_BARCODE_UPC_A_WITH_128_OPTIONAL (0x9F) // DF -#define HID_USAGE_POS_BARCODE_UPC_A_WITH_P5_OPTIONAL (0xA0) // DF -#define HID_USAGE_POS_BARCODE_UPC_E (0xA1) // DF -#define HID_USAGE_POS_BARCODE_UPC_E1 (0xA2) // DF -#define HID_USAGE_POS_BARCODE_PERIODICAL (0xA9) // NAry -#define HID_USAGE_POS_BARCODE_PERIODICAL_AUTO_DISCRIMINATE_PLUS_2 (0xAA) // SEL -#define HID_USAGE_POS_BARCODE_PERIODICAL_ONLY_DECODE_WITH_PLUS_2 (0xAB) // SEL -#define HID_USAGE_POS_BARCODE_PERIODICAL_IGNORE_PLUS_2 (0xAC) // SEL -#define HID_USAGE_POS_BARCODE_PERIODICAL_AUTO_DISCRIMINATE_PLUS_5 (0xAD) // SEL -#define HID_USAGE_POS_BARCODE_PERIODICAL_ONLY_DECODE_WITH_PLUS_5 (0xAE) // SEL -#define HID_USAGE_POS_BARCODE_PERIODICAL_IGNORE_PLUS_5 (0xAF) // SEL -#define HID_USAGE_POS_BARCODE_CHECK (0xB0) // NAry -#define HID_USAGE_POS_BARCODE_CHECK_DISABLE_PRICE (0xB1) // SEL -#define HID_USAGE_POS_BARCODE_CHECK_ENABLE_4_DIGIT_PRICE (0xB2) // SEL -#define HID_USAGE_POS_BARCODE_CHECK_ENABLE_5_DIGIT_PRICE (0xB3) // SEL -#define HID_USAGE_POS_BARCODE_CHECK_ENABLE_EUROPEAN_4_DIGIT_PRICE (0xB4) // SEL -#define HID_USAGE_POS_BARCODE_CHECK_ENABLE_EUROPEAN_5_DIGIT_PRICE (0xB5) // SEL -#define HID_USAGE_POS_BARCODE_EAN_TWO_LABEL (0xB7) // DF -#define HID_USAGE_POS_BARCODE_EAN_THREE_LABEL (0xB8) // DF -#define HID_USAGE_POS_BARCODE_EAN_8_FLAG_DIGIT_1 (0xB9) // DV -#define HID_USAGE_POS_BARCODE_EAN_8_FLAG_DIGIT_2 (0xBA) // DV -#define HID_USAGE_POS_BARCODE_EAN_8_FLAG_DIGIT_3 (0xBB) // DV -#define HID_USAGE_POS_BARCODE_EAN_13_FLAG_DIGIT_1 (0xBC) // DV -#define HID_USAGE_POS_BARCODE_EAN_13_FLAG_DIGIT_2 (0xBD) // DV -#define HID_USAGE_POS_BARCODE_TRANSMIT_CHECK_DIGIT (0xF0) // NAry -#define HID_USAGE_POS_BARCODE_DISABLE_CHECK_DIGIT_TRANSMIT (0xF1) // SEL -#define HID_USAGE_POS_BARCODE_ENABLE_CHECK_DIGIT_TRANSMIT (0xF2) // SEL -#define HID_USAGE_POS_BARCODE_SYMBOLOGY_IDENTIFIER_1 (0xFB) // DV -#define HID_USAGE_POS_BARCODE_SYMBOLOGY_IDENTIFIER_2 (0xFC) // DV -#define HID_USAGE_POS_BARCODE_SYMBOLOGY_IDENTIFIER_3 (0xFD) // DV -#define HID_USAGE_POS_BARCODE_DECODED_DATA (0xFE) // DV -#define HID_USAGE_POS_BARCODE_DECODE_DATA_CONTINUED (0xFF) // DF -#define HID_USAGE_POS_BARCODE_BAR_SPACE_DATA (0x100) // DV -#define HID_USAGE_POS_BARCODE_SCANNER_DATA_ACCURACY (0x101) // DV -#define HID_USAGE_POS_BARCODE_RAW_DATA_POLARITY (0x102) // NAry -#define HID_USAGE_POS_BARCODE_POLARITY_INVERTED_BAR_CODE (0x103) // SEL -#define HID_USAGE_POS_BARCODE_POLARITY_NORMAL_BAR_CODE (0x104) // SEL -#define HID_USAGE_POS_BARCODE_MINIMUM_LENGTH_TO_DECODE (0x106) // DV -#define HID_USAGE_POS_BARCODE_MAXIMUM_LENGTH_TO_DECODE (0x107) // DV -#define HID_USAGE_POS_BARCODE_FIRST_DISCRETE_LENGTH_TO_DECODE (0x108) // DV -#define HID_USAGE_POS_BARCODE_SECOND_DISCRETE_LENGTH_TO_DECODE (0x109) // DV -#define HID_USAGE_POS_BARCODE_DATA_LENGTH_METHOD (0x10A) // NAry -#define HID_USAGE_POS_BARCODE_DL_METHOD_READ_ANY (0x10B) // SEL -#define HID_USAGE_POS_BARCODE_DL_METHOD_CHECK_IN_RANGE (0x10C) // SEL -#define HID_USAGE_POS_BARCODE_DL_METHOD_CHECK_FOR_DISCRETE (0x10D) // SEL -#define HID_USAGE_POS_BARCODE_AZTEC_CODE (0x110) // DF -#define HID_USAGE_POS_BARCODE_BC412 (0x111) // DF -#define HID_USAGE_POS_BARCODE_CHANNEL_CODE (0x112) // DF -#define HID_USAGE_POS_BARCODE_CODE_16 (0x113) // DF -#define HID_USAGE_POS_BARCODE_CODE_32 (0x114) // DF -#define HID_USAGE_POS_BARCODE_CODE_49 (0x115) // DF -#define HID_USAGE_POS_BARCODE_CODE_ONE (0x116) // DF -#define HID_USAGE_POS_BARCODE_COLORCODE (0x117) // DF -#define HID_USAGE_POS_BARCODE_DATA_MATRIX (0x118) // DF -#define HID_USAGE_POS_BARCODE_MAXICODE (0x119) // DF -#define HID_USAGE_POS_BARCODE_MICROPDF (0x11A) // DF -#define HID_USAGE_POS_BARCODE_PDF_417 (0x11B) // DF -#define HID_USAGE_POS_BARCODE_POSICODE (0x11C) // DF -#define HID_USAGE_POS_BARCODE_QR_CODE (0x11D) // DF -#define HID_USAGE_POS_BARCODE_SUPERCODE (0x11E) // DF -#define HID_USAGE_POS_BARCODE_ULTRACODE (0x11F) // DF -#define HID_USAGE_POS_BARCODE_USD_5_SLUG_CODE (0x120) // DF -#define HID_USAGE_POS_BARCODE_VERICODE (0x121) // DF - -/* Page 0x8D: Scale */ -#define HID_USAGE_POS_SCALE_UNDEFINED (0x00) -#define HID_USAGE_POS_SCALE_WEIGHING_DEVICE (0x01) // CA -#define HID_USAGE_POS_SCALE_SCALE_DEVICE (0x20) // CL -#define HID_USAGE_POS_SCALE_SCALE_CLASS_I_METRIC (0x21) // CL -#define HID_USAGE_POS_SCALE_SCALE_CLASS_I_METRIC_2 (0x22) // SEL -#define HID_USAGE_POS_SCALE_SCALE_CLASS_II_METRIC (0x23) // SEL -#define HID_USAGE_POS_SCALE_SCALE_CLASS_III_METRIC (0x24) // SEL -#define HID_USAGE_POS_SCALE_SCALE_CLASS_IIIL_METRIC (0x25) // SEL -#define HID_USAGE_POS_SCALE_SCALE_CLASS_IV_METRIC (0x26) // SEL -#define HID_USAGE_POS_SCALE_SCALE_CLASS_III_ENGLISH (0x27) // SEL -#define HID_USAGE_POS_SCALE_SCALE_CLASS_IIIL_ENGLISH (0x28) // SEL -#define HID_USAGE_POS_SCALE_SCALE_CLASS_IV_ENGLISH (0x29) // SEL -#define HID_USAGE_POS_SCALE_SCALE_CLASS_GENERIC (0x2A) // SEL -#define HID_USAGE_POS_SCALE_SCALE_ATTRIBUTE_REPORT (0x30) // CL -#define HID_USAGE_POS_SCALE_SCALE_CONTROL_REPORT (0x31) // CL -#define HID_USAGE_POS_SCALE_SCALE_DATA_REPORT (0x32) // CL -#define HID_USAGE_POS_SCALE_SCALE_STATUS_REPORT (0x33) // CL -#define HID_USAGE_POS_SCALE_SCALE_WEIGHT_LIMIT_REPORT (0x34) // CL -#define HID_USAGE_POS_SCALE_SCALE_STATISTICS_REPORT (0x35) // CL -#define HID_USAGE_POS_SCALE_DATA_WEIGHT (0x40) // DV -#define HID_USAGE_POS_SCALE_DATA_SCALING (0x41) // CV -#define HID_USAGE_POS_SCALE_WEIGHT_UNIT (0x50) // CL -#define HID_USAGE_POS_SCALE_WEIGHT_UNIT_MILLIGRAM (0x51) // SEL -#define HID_USAGE_POS_SCALE_WEIGHT_UNIT_GRAM (0x52) // SEL -#define HID_USAGE_POS_SCALE_WEIGHT_UNIT_KILOGRAM (0x53) // SEL -#define HID_USAGE_POS_SCALE_WEIGHT_UNIT_CARATS (0x54) // SEL -#define HID_USAGE_POS_SCALE_WEIGHT_UNIT_TAELS (0x55) // SEL -#define HID_USAGE_POS_SCALE_WEIGHT_UNIT_GRAINS (0x56) // SEL -#define HID_USAGE_POS_SCALE_WEIGHT_UNIT_PENNYWEIGHTS (0x57) // SEL -#define HID_USAGE_POS_SCALE_WEIGHT_UNIT_METRIC_TON (0x58) // SEL -#define HID_USAGE_POS_SCALE_WEIGHT_UNIT_AVOIR_TON (0x59) // SEL -#define HID_USAGE_POS_SCALE_WEIGHT_UNIT_TROY_OUNCE (0x5A) // SEL -#define HID_USAGE_POS_SCALE_WEIGHT_UNIT_OUNCE (0x5B) // SEL -#define HID_USAGE_POS_SCALE_WEIGHT_UNIT_POUND (0x5C) // SEL -#define HID_USAGE_POS_SCALE_CALIBRATION_COUNT (0x60) // DV -#define HID_USAGE_POS_SCALE_RE_ZERO_COUNT (0x61) // DV -#define HID_USAGE_POS_SCALE_SCALE_STATUS (0x70) // CL -#define HID_USAGE_POS_SCALE_SCALE_STATUS_FAULT (0x71) // SEL -#define HID_USAGE_POS_SCALE_SCALE_STATUS_STABLE_AT_CENTER_OF_ZERO (0x72) // SEL -#define HID_USAGE_POS_SCALE_SCALE_STATUS_IN_MOTION (0x73) // SEL -#define HID_USAGE_POS_SCALE_SCALE_STATUS_WEIGHT_STABLE (0x74) // SEL -#define HID_USAGE_POS_SCALE_SCALE_STATUS_UNDER_ZERO (0x75) // SEL -#define HID_USAGE_POS_SCALE_SCALE_STATUS_OVER_WEIGHT_LIMIT (0x76) // SEL -#define HID_USAGE_POS_SCALE_SCALE_STATUS_REQUIRES_CALIBRATION (0x77) // SEL -#define HID_USAGE_POS_SCALE_SCALE_STATUS_REQUIRES_RE_ZEROING (0x78) // SEL -#define HID_USAGE_POS_SCALE_ZERO_SCALE (0x80) // OOC -#define HID_USAGE_POS_SCALE_ENFORCED_ZERO_RETURN (0x81) // OOC - -/* Page 0x8E: Magnetic Stripe Reading (MSR) Devices */ -#define HID_USAGE_POS_MSR_UNDEFINED (0x00) -#define HID_USAGE_POS_MSR_MSR_DEVICE_READ_ONLY (0x01) // CA -#define HID_USAGE_POS_MSR_TRACK_1_LENGTH (0x11) // SF, DF, SEL -#define HID_USAGE_POS_MSR_TRACK_2_LENGTH (0x12) // SF, DF, SEL -#define HID_USAGE_POS_MSR_TRACK_3_LENGTH (0x13) // SF, DF, SEL -#define HID_USAGE_POS_MSR_TRACK_JIS_LENGTH (0x14) // SF, DF, SEL -#define HID_USAGE_POS_MSR_TRACK_DATA (0x20) // SF, DF, SEL -#define HID_USAGE_POS_MSR_TRACK_1_DATA (0x21) // SF, DF, SEL -#define HID_USAGE_POS_MSR_TRACK_2_DATA (0x22) // SF, DF, SEL -#define HID_USAGE_POS_MSR_TRACK_3_DATA (0x23) // SF, DF, SEL -#define HID_USAGE_POS_MSR_TRACK_JIS_DATA (0x24) // SF, DF, SEL - -/* Page 0x90: Camera Control */ -#define HID_USAGE_CAMERA_UNDEFINED (0x00) -#define HID_USAGE_CAMERA_CAMERA_AUTO_FOCUS (0x20) // OSC -#define HID_USAGE_CAMERA_CAMERA_SHUTTER (0x21) // OSC - -/* Page 0xF1D0: FIDO Alliance */ -#define HID_USAGE_FIDO_UNDEFINED (0x00) -#define HID_USAGE_FIDO_U2F_AUTHENTICATOR_DEVICE (0x01) // CA -#define HID_USAGE_FIDO_INPUT_REPORT_DATA (0x20) // DV -#define HID_USAGE_FIDO_OUTPUT_REPORT_DATA (0x21) // DV \ No newline at end of file diff --git a/zmk/app/include/dt-bindings/zmk/hid_usage_pages.h b/zmk/app/include/dt-bindings/zmk/hid_usage_pages.h deleted file mode 100644 index f38f4fd3..00000000 --- a/zmk/app/include/dt-bindings/zmk/hid_usage_pages.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - * - * Based on HID Usage Tables 1.21, - * Copyright © 1996-2020, USB Implementers Forum, - * https://www.usb.org/sites/default/files/hut1_21.pdf - */ - -#pragma once - -#define HID_USAGE(page, id) ((page << 16) | id) -#define HID_USAGE_ID(usage) (usage & 0xFFFF) -#define HID_USAGE_PAGE(usage) (usage >> 16) - -/* WARNING: DEPRECATED from dt-bindings/zmk/keys.h */ -#define USAGE_KEYPAD (0x07) // WARNING: DEPRECATED (DO NOT USE) -#define USAGE_CONSUMER (0x0C) // WARNING: DEPRECATED (DO NOT USE) - -#define HID_USAGE_GD (0x01) // Generic Desktop -#define HID_USAGE_SIM (0x02) // Simulation Controls -#define HID_USAGE_VR (0x03) // VR Controls -#define HID_USAGE_SPORT (0x04) // Sport Controls -#define HID_USAGE_GAME (0x05) // Game Controls -#define HID_USAGE_GDV (0x06) // Generic Device Controls -#define HID_USAGE_KEY (0x07) // Keyboard/Keypad -#define HID_USAGE_LED (0x08) // LED -#define HID_USAGE_TELEPHONY (0x0B) // Telephony Device -#define HID_USAGE_CONSUMER (0x0C) // Consumer -#define HID_USAGE_DIGITIZERS (0x0D) // Digitizers -#define HID_USAGE_HAPTICS (0x0E) // Haptics -#define HID_USAGE_PID (0x0F) // PID -#define HID_USAGE_EHT (0x12) // Eye and Head Trackers -#define HID_USAGE_AUXDISP (0x14) // Auxiliary Display -#define HID_USAGE_SENSORS (0x20) // Sensors -#define HID_USAGE_MEDICAL (0x40) // Medical Instrument -#define HID_USAGE_BRAILLE (0x41) // Braille Display -#define HID_USAGE_LIGHT (0x59) // Lighting And Illumination -#define HID_USAGE_MONITOR (0x80) // USB Monitor -#define HID_USAGE_MONITOR_VALUES (0x81) // Monitor Enumerated Values -#define HID_USAGE_MONITOR_VESA (0x82) // VESA Virtual Control -#define HID_USAGE_POWER (0x84) // Power -#define HID_USAGE_POS_BARCODE (0x8C) // Bar Code Scanner -#define HID_USAGE_POS_SCALE (0x8D) // Scale -#define HID_USAGE_POS_MSR (0x8E) // Magnetic Stripe Reading (MSR) Devices -#define HID_USAGE_POS_RESV (0x8F) // Reserved Point of Sale -#define HID_USAGE_CAMERA (0x90) // Camera Control -#define HID_USAGE_ARCADE (0x91) // Arcade -#define HID_USAGE_GAMING (0x92) // Gaming Device -#define HID_USAGE_FIDO (0xF1D0) // FIDO Alliance \ No newline at end of file diff --git a/zmk/app/include/dt-bindings/zmk/keys.h b/zmk/app/include/dt-bindings/zmk/keys.h deleted file mode 100644 index 8d0873c4..00000000 --- a/zmk/app/include/dt-bindings/zmk/keys.h +++ /dev/null @@ -1,1420 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ -#pragma once - -#include -#include -#include - -/* System Power Down */ -#define SYSTEM_POWER (HID_USAGE(HID_USAGE_GD, HID_USAGE_GD_SYSTEM_POWER_DOWN)) -#define SYS_PWR (SYSTEM_POWER) - -/* System Sleep */ -#define SYSTEM_SLEEP (HID_USAGE(HID_USAGE_GD, HID_USAGE_GD_SYSTEM_SLEEP)) -#define SYS_SLEEP (SYSTEM_SLEEP) - -/* System Wake Up */ -#define SYSTEM_WAKE_UP (HID_USAGE(HID_USAGE_GD, HID_USAGE_GD_SYSTEM_WAKE_UP)) -#define SYS_WAKE (SYSTEM_WAKE_UP) - -/* Keyboard a and A */ -#define A (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_A)) - -/* Keyboard b and B */ -#define B (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_B)) - -/* Keyboard c and C */ -#define C (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_C)) - -/* Keyboard d and D */ -#define D (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_D)) - -/* Keyboard e and E */ -#define E (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_E)) - -/* Keyboard f and F */ -#define F (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F)) - -/* Keyboard g and G */ -#define G (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_G)) - -/* Keyboard h and H */ -#define H (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_H)) - -/* Keyboard i and I */ -#define I (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_I)) - -/* Keyboard j and J */ -#define J (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_J)) - -/* Keyboard k and K */ -#define K (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_K)) - -/* Keyboard l and L */ -#define L (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_L)) - -/* Keyboard m and M */ -#define M (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_M)) - -/* Keyboard n and N */ -#define N (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_N)) - -/* Keyboard o and O */ -#define O (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_O)) - -/* Keyboard p and P */ -#define P (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_P)) - -/* Keyboard q and Q */ -#define Q (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_Q)) - -/* Keyboard r and R */ -#define R (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_R)) - -/* Keyboard s and S */ -#define S (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_S)) - -/* Keyboard t and T */ -#define T (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_T)) - -/* Keyboard u and U */ -#define U (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_U)) - -/* Keyboard v and V */ -#define V (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_V)) - -/* Keyboard w and W */ -#define W (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_W)) - -/* Keyboard x and X */ -#define X (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_X)) - -/* Keyboard y and Y */ -#define Y (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_Y)) - -/* Keyboard z and Z */ -#define Z (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_Z)) - -/* Keyboard 1 and ! (Exclamation) */ -#define NUMBER_1 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_1_AND_EXCLAMATION)) -#define N1 (NUMBER_1) -#define NUM_1 (NUMBER_1) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard ! (Exclamation) */ -#define EXCLAMATION (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_1_AND_EXCLAMATION))) -#define EXCL (EXCLAMATION) -#define BANG (EXCLAMATION) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard 2 and @ (At sign) */ -#define NUMBER_2 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_2_AND_AT)) -#define N2 (NUMBER_2) -#define NUM_2 (NUMBER_2) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard @ (At sign) */ -#define AT_SIGN (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_2_AND_AT))) -#define AT (AT_SIGN) -#define ATSN (AT_SIGN) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard 3 and # (Hash/Number) */ -#define NUMBER_3 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_3_AND_HASH)) -#define N3 (NUMBER_3) -#define NUM_3 (NUMBER_3) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard # (Hash/Number) */ -#define HASH (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_3_AND_HASH))) -#define POUND (HASH) - -/* Keyboard 4 and $ (Dollar) */ -#define NUMBER_4 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_4_AND_DOLLAR)) -#define N4 (NUMBER_4) -#define NUM_4 (NUMBER_4) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard $ (Dollar) */ -#define DOLLAR (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_4_AND_DOLLAR))) -#define DLLR (DOLLAR) - -/* Keyboard 5 and % (Percent) */ -#define NUMBER_5 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_5_AND_PERCENT)) -#define N5 (NUMBER_5) -#define NUM_5 (NUMBER_5) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard % (Percent) */ -#define PERCENT (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_5_AND_PERCENT))) -#define PRCNT (PERCENT) -#define PRCT (PERCENT) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard 6 and ^ (Caret) */ -#define NUMBER_6 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_6_AND_CARET)) -#define N6 (NUMBER_6) -#define NUM_6 (NUMBER_6) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard ^ (Caret) */ -#define CARET (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_6_AND_CARET))) -#define CRRT (CARET) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard 7 and & (Ampersand) */ -#define NUMBER_7 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_7_AND_AMPERSAND)) -#define N7 (NUMBER_7) -#define NUM_7 (NUMBER_7) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard & (Ampersand) */ -#define AMPERSAND (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_7_AND_AMPERSAND))) -#define AMPS (AMPERSAND) - -/* Keyboard 8 and * (Asterisk) */ -#define NUMBER_8 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_8_AND_ASTERISK)) -#define N8 (NUMBER_8) -#define NUM_8 (NUMBER_8) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard * (Asterisk) */ -#define ASTERISK (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_8_AND_ASTERISK))) -#define ASTRK (ASTERISK) -#define STAR (ASTERISK) - -/* Keyboard 9 and ( (Left Parenthesis) */ -#define NUMBER_9 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_9_AND_LEFT_PARENTHESIS)) -#define N9 (NUMBER_9) -#define NUM_9 (NUMBER_9) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard ( (Left Parenthesis) */ -#define LEFT_PARENTHESIS \ - (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_9_AND_LEFT_PARENTHESIS))) -#define LPAR (LEFT_PARENTHESIS) -#define LPRN (LEFT_PARENTHESIS) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard 0 and ) (Right Parenthesis) */ -#define NUMBER_0 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_0_AND_RIGHT_PARENTHESIS)) -#define N0 (NUMBER_0) -#define NUM_0 (NUMBER_0) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard ) (Right Parenthesis) */ -#define RIGHT_PARENTHESIS \ - (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_0_AND_RIGHT_PARENTHESIS))) -#define RPAR (RIGHT_PARENTHESIS) -#define RPRN (RIGHT_PARENTHESIS) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Return (Enter) */ -#define RETURN (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_RETURN_ENTER)) -#define ENTER (RETURN) -#define RET (RETURN) - -/* Keyboard Escape */ -#define ESCAPE (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_ESCAPE)) -#define ESC (ESCAPE) - -/* Keyboard Backspace */ -#define BACKSPACE (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_DELETE_BACKSPACE)) -#define BSPC (BACKSPACE) -#define BKSP (BACKSPACE) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Tab */ -#define TAB (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_TAB)) - -/* Keyboard Space */ -#define SPACE (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_SPACEBAR)) -#define SPC (SPACE) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard - and _ (Minus and Underscore) */ -#define MINUS (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_MINUS_AND_UNDERSCORE)) - -/* Keyboard _ (Underscore) */ -#define UNDERSCORE (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_MINUS_AND_UNDERSCORE))) -#define UNDER (UNDERSCORE) - -/* Keyboard = and + (Equal and Plus) */ -#define EQUAL (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_EQUAL_AND_PLUS)) -#define EQL (EQUAL) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard + (Plus) */ -#define PLUS (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_EQUAL_AND_PLUS))) - -/* Keyboard [ and { (Left Bracket and Left Brace) */ -#define LEFT_BRACKET (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LEFT_BRACKET_AND_LEFT_BRACE)) -#define LBKT (LEFT_BRACKET) - -/* Keyboard { (Left Brace) */ -#define LEFT_BRACE \ - (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LEFT_BRACKET_AND_LEFT_BRACE))) -#define LBRC (LEFT_BRACE) -#define LCUR (LEFT_BRACE) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard ] and } (Right Bracket and Right Brace) */ -#define RIGHT_BRACKET \ - (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_RIGHT_BRACKET_AND_RIGHT_BRACE)) -#define RBKT (RIGHT_BRACKET) - -/* Keyboard } (Right Brace) */ -#define RIGHT_BRACE \ - (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_RIGHT_BRACKET_AND_RIGHT_BRACE))) -#define RBRC (RIGHT_BRACE) -#define RCUR (RIGHT_BRACE) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard \ and | (Backslash and Pipe) */ -#define BACKSLASH (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_BACKSLASH_AND_PIPE)) -#define BSLH (BACKSLASH) - -/* Keyboard | (Pipe) */ -#define PIPE (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_BACKSLASH_AND_PIPE))) - -/* Keyboard Non-US # and ~ (Non-US Hash/Number and Tilde) */ -#define NON_US_HASH (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_NON_US_HASH_AND_TILDE)) - -/* Keyboard ~ (Tilde) */ -#define TILDE2 (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_NON_US_HASH_AND_TILDE))) - -/* Keyboard ; and : (Semicolon and Colon) */ -#define SEMICOLON (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_SEMICOLON_AND_COLON)) -#define SEMI (SEMICOLON) -#define SCLN (SEMICOLON) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard : (Colon) */ -#define COLON (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_SEMICOLON_AND_COLON))) -#define COLN (COLON) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard ' and " (Apostrophe and Quote) */ -#define SINGLE_QUOTE (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_APOSTROPHE_AND_QUOTE)) -#define SQT (SINGLE_QUOTE) -#define APOSTROPHE (SINGLE_QUOTE) -#define APOS (SINGLE_QUOTE) -#define QUOT (SINGLE_QUOTE) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard " (Quote) */ -#define DOUBLE_QUOTES (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_APOSTROPHE_AND_QUOTE))) -#define DQT (DOUBLE_QUOTES) - -/* Keyboard ` and ~ (Grave Accent and Tilde) */ -#define GRAVE (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_GRAVE_ACCENT_AND_TILDE)) -#define GRAV (GRAVE) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard ~ (Tilde) */ -#define TILDE (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_GRAVE_ACCENT_AND_TILDE))) -#define TILD (TILDE) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard , and < (Comma and Less Than) */ -#define COMMA (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_COMMA_AND_LESS_THAN)) -#define CMMA (COMMA) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard < (Less Than) */ -#define LESS_THAN (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_COMMA_AND_LESS_THAN))) -#define LT (LESS_THAN) -#define LABT (LESS_THAN) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard . and > (Period and Greater Than) */ -#define PERIOD (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_PERIOD_AND_GREATER_THAN)) -#define DOT (PERIOD) - -/* Keyboard > (Greater Than) */ -#define GREATER_THAN (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_PERIOD_AND_GREATER_THAN))) -#define GT (GREATER_THAN) -#define RABT (GREATER_THAN) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard / and ? (Forward Slash and Question) */ -#define SLASH (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_SLASH_AND_QUESTION_MARK)) -#define FSLH (SLASH) - -/* Keyboard ? (Question) */ -#define QUESTION (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_SLASH_AND_QUESTION_MARK))) -#define QMARK (QUESTION) - -/* Keyboard Caps Lock */ -#define CAPSLOCK (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_CAPS_LOCK)) -#define CAPS (CAPSLOCK) -#define CLCK (CAPSLOCK) - -/* Keyboard F1 */ -#define F1 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F1)) - -/* Keyboard F2 */ -#define F2 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F2)) - -/* Keyboard F3 */ -#define F3 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F3)) - -/* Keyboard F4 */ -#define F4 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F4)) - -/* Keyboard F5 */ -#define F5 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F5)) - -/* Keyboard F6 */ -#define F6 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F6)) - -/* Keyboard F7 */ -#define F7 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F7)) - -/* Keyboard F8 */ -#define F8 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F8)) - -/* Keyboard F9 */ -#define F9 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F9)) - -/* Keyboard F10 */ -#define F10 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F10)) - -/* Keyboard F11 */ -#define F11 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F11)) - -/* Keyboard F12 */ -#define F12 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F12)) - -/* Keyboard Print Screen */ -#define PRINTSCREEN (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_PRINTSCREEN)) -#define PSCRN (PRINTSCREEN) -#define PRSC (PRINTSCREEN) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Scroll Lock */ -#define SCROLLLOCK (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_SCROLL_LOCK)) -#define SLCK (SCROLLLOCK) -#define SCLK (SCROLLLOCK) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Pause/Break */ -#define PAUSE_BREAK (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_PAUSE)) -#define PAUS (PAUSE_BREAK) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Insert */ -#define INSERT (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_INSERT)) -#define INS (INSERT) - -/* Keyboard Home */ -#define HOME (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_HOME)) - -/* Keyboard Page Up */ -#define PAGE_UP (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_PAGEUP)) -#define PG_UP (PAGE_UP) -#define PGUP (PAGE_UP) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Delete */ -#define DELETE (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_DELETE_FORWARD)) -#define DEL (DELETE) - -/* Keyboard End */ -#define END (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_END)) - -/* Keyboard Page Down */ -#define PAGE_DOWN (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_PAGEDOWN)) -#define PG_DN (PAGE_DOWN) -#define PGDN (PAGE_DOWN) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Right Arrow */ -#define RIGHT_ARROW (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_RIGHTARROW)) -#define RIGHT (RIGHT_ARROW) -#define RARW (RIGHT_ARROW) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Left Arrow */ -#define LEFT_ARROW (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LEFTARROW)) -#define LEFT (LEFT_ARROW) -#define LARW (LEFT_ARROW) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Down Arrow */ -#define DOWN_ARROW (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_DOWNARROW)) -#define DOWN (DOWN_ARROW) -#define DARW (DOWN_ARROW) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Up Arrow */ -#define UP_ARROW (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_UPARROW)) -#define UP (UP_ARROW) -#define UARW (UP_ARROW) // WARNING: DEPRECATED (DO NOT USE) - -/* Keypad Numlock and Clear */ -#define KP_NUMLOCK (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_NUM_LOCK_AND_CLEAR)) -#define KP_NUM (KP_NUMLOCK) -#define KP_NLCK (KP_NUMLOCK) - -/* Keypad Clear */ -#define CLEAR2 (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_NUM_LOCK_AND_CLEAR))) - -/* Keypad / (Slash/Divide) */ -#define KP_DIVIDE (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_SLASH)) -#define KP_SLASH (KP_DIVIDE) -#define KDIV (KP_DIVIDE) // WARNING: DEPRECATED (DO NOT USE) - -/* Keypad * (Multiply) */ -#define KP_MULTIPLY (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_ASTERISK)) -#define KP_ASTERISK (KP_MULTIPLY) -#define KMLT (KP_MULTIPLY) // WARNING: DEPRECATED (DO NOT USE) - -/* Keypad - (Minus) */ -#define KP_MINUS (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_MINUS)) -#define KP_SUBTRACT (KP_MINUS) -#define KMIN (KP_MINUS) // WARNING: DEPRECATED (DO NOT USE) - -/* Keypad + (Plus) */ -#define KP_PLUS (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_PLUS)) -#define KPLS (KP_PLUS) // WARNING: DEPRECATED (DO NOT USE) - -/* Keypad Enter */ -#define KP_ENTER (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_ENTER)) - -/* Keypad 1 */ -#define KP_NUMBER_1 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_1_AND_END)) -#define KP_N1 (KP_NUMBER_1) - -/* Keypad 2 */ -#define KP_NUMBER_2 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_2_AND_DOWN_ARROW)) -#define KP_N2 (KP_NUMBER_2) - -/* Keypad 3 */ -#define KP_NUMBER_3 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_3_AND_PAGEDN)) -#define KP_N3 (KP_NUMBER_3) - -/* Keypad 4 */ -#define KP_NUMBER_4 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_4_AND_LEFT_ARROW)) -#define KP_N4 (KP_NUMBER_4) - -/* Keypad 5 */ -#define KP_NUMBER_5 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_5)) -#define KP_N5 (KP_NUMBER_5) - -/* Keypad 6 */ -#define KP_NUMBER_6 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_6_AND_RIGHT_ARROW)) -#define KP_N6 (KP_NUMBER_6) - -/* Keypad 7 */ -#define KP_NUMBER_7 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_7_AND_HOME)) -#define KP_N7 (KP_NUMBER_7) - -/* Keypad 8 */ -#define KP_NUMBER_8 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_8_AND_UP_ARROW)) -#define KP_N8 (KP_NUMBER_8) - -/* Keypad 9 */ -#define KP_NUMBER_9 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_9_AND_PAGEUP)) -#define KP_N9 (KP_NUMBER_9) - -/* Keypad 0 */ -#define KP_NUMBER_0 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_0_AND_INSERT)) -#define KP_N0 (KP_NUMBER_0) - -/* Keypad . (Dot) */ -#define KP_DOT (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_PERIOD_AND_DELETE)) - -/* Keyboard Non-US \ and | (Non-us Backslash and Pipe) */ -#define NON_US_BACKSLASH \ - (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_NON_US_BACKSLASH_AND_PIPE)) -#define NON_US_BSLH (NON_US_BACKSLASH) - -/* Keyboard Pipe */ -#define PIPE2 (LS(HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_NON_US_BACKSLASH_AND_PIPE))) - -/* Keyboard Application (Context Menu) */ -#define K_APPLICATION (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_APPLICATION)) -#define K_APP (K_APPLICATION) -#define K_CONTEXT_MENU (K_APPLICATION) -#define K_CMENU (K_APPLICATION) -#define GUI (K_APPLICATION) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Power */ -#define K_POWER (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_POWER)) -#define K_PWR (K_POWER) - -/* Keypad = (Equal) */ -#define KP_EQUAL (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_EQUAL)) - -/* Keyboard F13 */ -#define F13 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F13)) - -/* Keyboard F14 */ -#define F14 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F14)) - -/* Keyboard F15 */ -#define F15 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F15)) - -/* Keyboard F16 */ -#define F16 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F16)) - -/* Keyboard F17 */ -#define F17 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F17)) - -/* Keyboard F18 */ -#define F18 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F18)) - -/* Keyboard F19 */ -#define F19 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F19)) - -/* Keyboard F20 */ -#define F20 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F20)) - -/* Keyboard F21 */ -#define F21 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F21)) - -/* Keyboard F22 */ -#define F22 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F22)) - -/* Keyboard F23 */ -#define F23 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F23)) - -/* Keyboard F24 */ -#define F24 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_F24)) - -/* Keyboard Execute */ -#define K_EXECUTE (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_EXECUTE)) -#define K_EXEC (K_EXECUTE) - -/* Keyboard Help */ -#define K_HELP (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_HELP)) - -/* Keyboard Menu */ -#define K_MENU (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_MENU)) - -/* Keyboard Select */ -#define K_SELECT (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_SELECT)) - -/* Keyboard Stop */ -#define K_STOP (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_STOP)) - -/* Keyboard Again */ -#define K_AGAIN (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_AGAIN)) -#define K_REDO (K_AGAIN) - -/* Keyboard Undo */ -#define K_UNDO (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_UNDO)) -#define UNDO (K_UNDO) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Cut */ -#define K_CUT (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_CUT)) -#define CUT (K_CUT) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Copy */ -#define K_COPY (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_COPY)) -#define COPY (K_COPY) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Paste */ -#define K_PASTE (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_PASTE)) -#define PSTE (K_PASTE) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Find */ -#define K_FIND (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_FIND)) - -/* Keyboard Mute */ -#define K_MUTE (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_MUTE)) - -/* Keyboard Volume Up */ -#define K_VOLUME_UP (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_VOLUME_UP)) -#define K_VOL_UP (K_VOLUME_UP) -#define VOLU (K_VOLUME_UP) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Volume Down */ -#define K_VOLUME_DOWN (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_VOLUME_DOWN)) -#define K_VOL_DN (K_VOLUME_DOWN) -#define VOLD (K_VOLUME_DOWN) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Locking Caps Lock */ -#define LOCKING_CAPS (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LOCKING_CAPS_LOCK)) -#define LCAPS (LOCKING_CAPS) - -/* Keyboard Locking Num Lock */ -#define LOCKING_NUM (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LOCKING_NUM_LOCK)) -#define LNLCK (LOCKING_NUM) - -/* Keyboard Locking Scroll Lock */ -#define LOCKING_SCROLL (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LOCKING_SCROLL_LOCK)) -#define LSLCK (LOCKING_SCROLL) - -/* Keypad , (Comma) */ -#define KP_COMMA (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_COMMA)) - -/* Keypad = (Equal) AS/400 */ -#define KP_EQUAL_AS400 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_EQUAL_SIGN)) - -/* Keyboard International 1 */ -#define INTERNATIONAL_1 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_INTERNATIONAL1)) -#define INT1 (INTERNATIONAL_1) -#define INT_RO (INTERNATIONAL_1) - -/* Keyboard International 2 */ -#define INTERNATIONAL_2 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_INTERNATIONAL2)) -#define INT2 (INTERNATIONAL_2) -#define INT_KATAKANAHIRAGANA (INTERNATIONAL_2) -#define INT_KANA (INTERNATIONAL_2) - -/* Keyboard International 3 */ -#define INTERNATIONAL_3 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_INTERNATIONAL3)) -#define INT3 (INTERNATIONAL_3) -#define INT_YEN (INTERNATIONAL_3) - -/* Keyboard International 4 */ -#define INTERNATIONAL_4 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_INTERNATIONAL4)) -#define INT4 (INTERNATIONAL_4) -#define INT_HENKAN (INTERNATIONAL_4) - -/* Keyboard International 5 */ -#define INTERNATIONAL_5 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_INTERNATIONAL5)) -#define INT5 (INTERNATIONAL_5) -#define INT_MUHENKAN (INTERNATIONAL_5) - -/* Keyboard International 6 */ -#define INTERNATIONAL_6 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_INTERNATIONAL6)) -#define INT6 (INTERNATIONAL_6) -#define INT_KPJPCOMMA (INTERNATIONAL_6) - -/* Keyboard International 7 */ -#define INTERNATIONAL_7 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_INTERNATIONAL7)) -#define INT7 (INTERNATIONAL_7) - -/* Keyboard International 8 */ -#define INTERNATIONAL_8 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_INTERNATIONAL8)) -#define INT8 (INTERNATIONAL_8) - -/* Keyboard International 9 */ -#define INTERNATIONAL_9 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_INTERNATIONAL9)) -#define INT9 (INTERNATIONAL_9) - -/* Keyboard Language 1 */ -#define LANGUAGE_1 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LANG1)) -#define LANG1 (LANGUAGE_1) -#define LANG_HANGEUL (LANGUAGE_1) - -/* Keyboard Language 2 */ -#define LANGUAGE_2 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LANG2)) -#define LANG2 (LANGUAGE_2) -#define LANG_HANJA (LANGUAGE_2) - -/* Keyboard Language 3 */ -#define LANGUAGE_3 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LANG3)) -#define LANG3 (LANGUAGE_3) -#define LANG_KATAKANA (LANGUAGE_3) - -/* Keyboard Language 4 */ -#define LANGUAGE_4 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LANG4)) -#define LANG4 (LANGUAGE_4) -#define LANG_HIRAGANA (LANGUAGE_4) - -/* Keyboard Language 5 */ -#define LANGUAGE_5 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LANG5)) -#define LANG5 (LANGUAGE_5) -#define LANG_ZENKAKUHANKAKU (LANGUAGE_5) - -/* Keyboard Language 6 */ -#define LANGUAGE_6 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LANG6)) -#define LANG6 (LANGUAGE_6) - -/* Keyboard Language 7 */ -#define LANGUAGE_7 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LANG7)) -#define LANG7 (LANGUAGE_7) - -/* Keyboard Language 8 */ -#define LANGUAGE_8 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LANG8)) -#define LANG8 (LANGUAGE_8) - -/* Keyboard Language 9 */ -#define LANGUAGE_9 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LANG9)) -#define LANG9 (LANGUAGE_9) - -/* Keyboard Alternate Erase */ -#define ALT_ERASE (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_ALTERNATE_ERASE)) - -/* Keyboard SysReq/Attention */ -#define SYSREQ (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_SYSREQ_ATTENTION)) -#define ATTENTION (SYSREQ) - -/* Keyboard Cancel */ -#define K_CANCEL (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_CANCEL)) - -/* Keyboard Clear */ -#define CLEAR (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_CLEAR)) - -/* Keyboard Prior */ -#define PRIOR (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_PRIOR)) - -/* Keyboard Return */ -#define RETURN2 (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_RETURN)) -#define RET2 (RETURN2) - -/* Keyboard Separator */ -#define SEPARATOR (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_SEPARATOR)) - -/* Keyboard Out */ -#define OUT (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_OUT)) - -/* Keyboard Oper */ -#define OPER (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_OPER)) - -/* Keyboard Clear/Again */ -#define CLEAR_AGAIN (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_CLEAR_AGAIN)) - -/* Keyboard CrSel/Props */ -#define CRSEL (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_CRSEL_PROPS)) - -/* Keyboard ExSel */ -#define EXSEL (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_EXSEL)) - -/* Keyboard Currency Unit */ -#define CURU \ - (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_CURRENCY_UNIT)) // WARNING: DEPRECATED (DO NOT USE) - -/* Keypad ( (Left Parenthesis) */ -#define KP_LEFT_PARENTHESIS (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_LEFT_PARENTHESIS)) -#define KP_LPAR (KP_LEFT_PARENTHESIS) - -/* Keypad ) (Right Parenthesis) */ -#define KP_RIGHT_PARENTHESIS (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_RIGHT_PARENTHESIS)) -#define KP_RPAR (KP_RIGHT_PARENTHESIS) - -/* Keypad Space */ -#define KSPC \ - (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_SPACE)) // WARNING: DEPRECATED (DO NOT USE) - -/* Keypad Clear */ -#define KP_CLEAR (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYPAD_CLEAR)) - -/* Keyboard Left Control */ -#define LEFT_CONTROL (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LEFTCONTROL)) -#define LCTRL (LEFT_CONTROL) -#define LCTL (LEFT_CONTROL) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Left Shift */ -#define LEFT_SHIFT (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LEFTSHIFT)) -#define LSHFT (LEFT_SHIFT) -#define LSFT (LEFT_SHIFT) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Left Alt */ -#define LEFT_ALT (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LEFTALT)) -#define LALT (LEFT_ALT) - -/* Keyboard Left GUI (Windows / Command / Meta) */ -#define LEFT_GUI (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_LEFT_GUI)) -#define LGUI (LEFT_GUI) -#define LEFT_WIN (LEFT_GUI) -#define LWIN (LEFT_GUI) -#define LEFT_COMMAND (LEFT_GUI) -#define LCMD (LEFT_GUI) -#define LEFT_META (LEFT_GUI) -#define LMETA (LEFT_GUI) - -/* Keyboard Right Control */ -#define RIGHT_CONTROL (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_RIGHTCONTROL)) -#define RCTRL (RIGHT_CONTROL) -#define RCTL (RIGHT_CONTROL) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Right Shift */ -#define RIGHT_SHIFT (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_RIGHTSHIFT)) -#define RSHFT (RIGHT_SHIFT) -#define RSFT (RIGHT_SHIFT) // WARNING: DEPRECATED (DO NOT USE) - -/* Keyboard Right Alt */ -#define RIGHT_ALT (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_RIGHTALT)) -#define RALT (RIGHT_ALT) - -/* Keyboard Right GUI (Windows / Command / Meta) */ -#define RIGHT_GUI (HID_USAGE(HID_USAGE_KEY, HID_USAGE_KEY_KEYBOARD_RIGHT_GUI)) -#define RGUI (RIGHT_GUI) -#define RIGHT_WIN (RIGHT_GUI) -#define RWIN (RIGHT_GUI) -#define RIGHT_COMMAND (RIGHT_GUI) -#define RCMD (RIGHT_GUI) -#define RIGHT_META (RIGHT_GUI) -#define RMETA (RIGHT_GUI) - -/* Keyboard Play/Pause */ -#define K_PLAY_PAUSE (HID_USAGE(HID_USAGE_KEY, 0xE8)) -#define K_PP (K_PLAY_PAUSE) - -/* Keyboard Stop */ -#define K_STOP2 (HID_USAGE(HID_USAGE_KEY, 0xE9)) - -/* Keyboard Previous */ -#define K_PREVIOUS (HID_USAGE(HID_USAGE_KEY, 0xEA)) -#define K_PREV (K_PREVIOUS) - -/* Keyboard Next */ -#define K_NEXT (HID_USAGE(HID_USAGE_KEY, 0xEB)) - -/* Keyboard Eject */ -#define K_EJECT (HID_USAGE(HID_USAGE_KEY, 0xEC)) - -/* Keyboard Volume Up */ -#define K_VOLUME_UP2 (HID_USAGE(HID_USAGE_KEY, 0xED)) -#define K_VOL_UP2 (K_VOLUME_UP2) - -/* Keyboard Volume Down */ -#define K_VOLUME_DOWN2 (HID_USAGE(HID_USAGE_KEY, 0xEE)) -#define K_VOL_DN2 (K_VOLUME_DOWN2) - -/* Keyboard Mute */ -#define K_MUTE2 (HID_USAGE(HID_USAGE_KEY, 0xEF)) - -/* Keyboard WWW */ -#define K_WWW (HID_USAGE(HID_USAGE_KEY, 0xF0)) - -/* Keyboard Back */ -#define K_BACK (HID_USAGE(HID_USAGE_KEY, 0xF1)) - -/* Keyboard Forward */ -#define K_FORWARD (HID_USAGE(HID_USAGE_KEY, 0xF2)) - -/* Keyboard Stop */ -#define K_STOP3 (HID_USAGE(HID_USAGE_KEY, 0xF3)) - -/* Keyboard Find */ -#define K_FIND2 (HID_USAGE(HID_USAGE_KEY, 0xF4)) - -/* Keyboard Scroll Up */ -#define K_SCROLL_UP (HID_USAGE(HID_USAGE_KEY, 0xF5)) - -/* Keyboard Scroll Down */ -#define K_SCROLL_DOWN (HID_USAGE(HID_USAGE_KEY, 0xF6)) - -/* Keyboard Edit */ -#define K_EDIT (HID_USAGE(HID_USAGE_KEY, 0xF7)) - -/* Keyboard Sleep */ -#define K_SLEEP (HID_USAGE(HID_USAGE_KEY, 0xF8)) - -/* Keyboard Lock */ -#define K_LOCK (HID_USAGE(HID_USAGE_KEY, 0xF9)) -#define K_SCREENSAVER (K_LOCK) -#define K_COFFEE (K_LOCK) - -/* Keyboard Refresh */ -#define K_REFRESH (HID_USAGE(HID_USAGE_KEY, 0xFA)) - -/* Keyboard Calculator */ -#define K_CALCULATOR (HID_USAGE(HID_USAGE_KEY, 0xFB)) -#define K_CALC (K_CALCULATOR) - -/* Consumer Power */ -#define C_POWER (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_POWER)) -#define C_PWR (C_POWER) - -/* Consumer Reset */ -#define C_RESET (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_RESET)) - -/* Consumer Sleep */ -#define C_SLEEP (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_SLEEP)) - -/* Consumer Sleep Mode */ -#define C_SLEEP_MODE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_SLEEP_MODE)) - -/* Consumer Menu */ -#define C_MENU (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MENU)) - -/* Consumer Menu Pick */ -#define C_MENU_PICK (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MENU_PICK)) -#define C_MENU_SELECT (C_MENU_PICK) - -/* Consumer Menu Up */ -#define C_MENU_UP (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MENU_UP)) - -/* Consumer Menu Down */ -#define C_MENU_DOWN (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MENU_DOWN)) - -/* Consumer Menu Left */ -#define C_MENU_LEFT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MENU_LEFT)) - -/* Consumer Menu Right */ -#define C_MENU_RIGHT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MENU_RIGHT)) - -/* Consumer Menu Escape */ -#define C_MENU_ESCAPE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MENU_ESCAPE)) -#define C_MENU_ESC (C_MENU_ESCAPE) - -/* Consumer Menu Value Increase */ -#define C_MENU_INCREASE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MENU_VALUE_INCREASE)) -#define C_MENU_INC (C_MENU_INCREASE) - -/* Consumer Menu Value Decrease */ -#define C_MENU_DECREASE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MENU_VALUE_DECREASE)) -#define C_MENU_DEC (C_MENU_DECREASE) - -/* Consumer Data On Screen */ -#define C_DATA_ON_SCREEN (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_DATA_ON_SCREEN)) - -/* Consumer Closed Caption */ -#define C_CAPTIONS (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_CLOSED_CAPTION)) -#define C_SUBTITILES (C_CAPTIONS) - -/* Consumer Snapshot */ -#define C_SNAPSHOT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_SNAPSHOT)) - -/* Consumer Picture-in-Picture Toggle */ -#define C_PIP (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_PICTURE_IN_PICTURE_TOGGLE)) - -/* Consumer Red Menu Button */ -#define C_RED_BUTTON (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_RED_MENU_BUTTON)) -#define C_RED (C_RED_BUTTON) - -/* Consumer Green Menu Button */ -#define C_GREEN_BUTTON (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_GREEN_MENU_BUTTON)) -#define C_GREEN (C_GREEN_BUTTON) - -/* Consumer Blue Menu Button */ -#define C_BLUE_BUTTON (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_BLUE_MENU_BUTTON)) -#define C_BLUE (C_BLUE_BUTTON) - -/* Consumer Yellow Menu Button */ -#define C_YELLOW_BUTTON (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_YELLOW_MENU_BUTTON)) -#define C_YELLOW (C_YELLOW_BUTTON) - -/* Consumer Aspect */ -#define C_ASPECT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_ASPECT)) - -/* Consumer Display Brightness Increment */ -#define C_BRIGHTNESS_INC \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_DISPLAY_BRIGHTNESS_INCREMENT)) -#define C_BRI_INC (C_BRIGHTNESS_INC) -#define C_BRI_UP (C_BRIGHTNESS_INC) - -/* Consumer Display Brightness Decrement */ -#define C_BRIGHTNESS_DEC \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_DISPLAY_BRIGHTNESS_DECREMENT)) -#define C_BRI_DEC (C_BRIGHTNESS_DEC) -#define C_BRI_DN (C_BRIGHTNESS_DEC) - -/* Consumer Display Backlight Toggle */ -#define C_BACKLIGHT_TOGGLE \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_DISPLAY_BACKLIGHT_TOGGLE)) -#define C_BKLT_TOG (C_BACKLIGHT_TOGGLE) - -/* Consumer Display Set Brightness to Minimum */ -#define C_BRIGHTNESS_MINIMUM \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_DISPLAY_SET_BRIGHTNESS_TO_MINIMUM)) -#define C_BRI_MIN (C_BRIGHTNESS_MINIMUM) - -/* Consumer Display Set Brightness to Maximum */ -#define C_BRIGHTNESS_MAXIMUM \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_DISPLAY_SET_BRIGHTNESS_TO_MAXIMUM)) -#define C_BRI_MAX (C_BRIGHTNESS_MAXIMUM) - -/* Consumer Display Set Auto Brightness */ -#define C_BRIGHTNESS_AUTO \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_DISPLAY_SET_AUTO_BRIGHTNESS)) -#define C_BRI_AUTO (C_BRIGHTNESS_AUTO) - -/* Consumer Mode Step */ -#define C_MEDIA_STEP (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MODE_STEP)) -#define C_MODE_STEP (C_MEDIA_STEP) - -/* Consumer Recall Last */ -#define C_RECALL_LAST (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_RECALL_LAST)) -#define C_CHAN_LAST (C_RECALL_LAST) - -/* Consumer Media Select Computer */ -#define C_MEDIA_COMPUTER (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MEDIA_SELECT_COMPUTER)) - -/* Consumer Media Select TV */ -#define C_MEDIA_TV (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MEDIA_SELECT_TV)) - -/* Consumer Media Select WWW */ -#define C_MEDIA_WWW (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MEDIA_SELECT_WWW)) - -/* Consumer Media Select DVD */ -#define C_MEDIA_DVD (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MEDIA_SELECT_DVD)) - -/* Consumer Media Select Telephone */ -#define C_MEDIA_PHONE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MEDIA_SELECT_TELEPHONE)) - -/* Consumer Media Select Program Guide */ -#define C_MEDIA_GUIDE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MEDIA_SELECT_PROGRAM_GUIDE)) - -/* Consumer Media Select Video Phone */ -#define C_MEDIA_VIDEOPHONE \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MEDIA_SELECT_VIDEO_PHONE)) - -/* Consumer Media Select Games */ -#define C_MEDIA_GAMES (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MEDIA_SELECT_GAMES)) - -/* Consumer Media Select Messages */ -#define C_MEDIA_MESSAGES (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MEDIA_SELECT_MESSAGES)) - -/* Consumer Media Select CD */ -#define C_MEDIA_CD (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MEDIA_SELECT_CD)) - -/* Consumer Media Select VCR */ -#define C_MEDIA_VCR (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MEDIA_SELECT_VCR)) - -/* Consumer Media Select Tuner */ -#define C_MEDIA_TUNER (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MEDIA_SELECT_TUNER)) - -/* Consumer Quit */ -#define C_QUIT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_QUIT)) - -/* Consumer Help */ -#define C_HELP (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_HELP)) - -/* Consumer Media Select Tape */ -#define C_MEDIA_TAPE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MEDIA_SELECT_TAPE)) - -/* Consumer Media Select Cable */ -#define C_MEDIA_CABLE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MEDIA_SELECT_CABLE)) - -/* Consumer Media Select Satellite */ -#define C_MEDIA_SATELLITE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MEDIA_SELECT_SATELLITE)) - -/* Consumer Media Select Home */ -#define C_MEDIA_HOME (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MEDIA_SELECT_HOME)) - -/* Consumer Channel Increment */ -#define C_CHANNEL_INC (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_CHANNEL_INCREMENT)) -#define C_CHAN_INC (C_CHANNEL_INC) - -/* Consumer Channel Decrement */ -#define C_CHANNEL_DEC (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_CHANNEL_DECREMENT)) -#define C_CHAN_DEC (C_CHANNEL_DEC) - -/* Consumer VCR Plus */ -#define C_MEDIA_VCR_PLUS (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_VCR_PLUS)) - -/* Consumer Play */ -#define C_PLAY (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_PLAY)) - -/* Consumer Pause */ -#define C_PAUSE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_PAUSE)) - -/* Consumer Record */ -#define C_RECORD (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_RECORD)) -#define C_REC (C_RECORD) - -/* Consumer Fast Forward */ -#define C_FAST_FORWARD (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_FAST_FORWARD)) -#define C_FF (C_FAST_FORWARD) - -/* Consumer Rewind */ -#define C_REWIND (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_REWIND)) -#define C_RW (C_REWIND) - -/* Consumer Scan Next Track */ -#define C_NEXT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_SCAN_NEXT_TRACK)) -#define M_NEXT (C_NEXT) // WARNING: DEPRECATED (DO NOT USE) - -/* Consumer Scan Previous Track */ -#define C_PREVIOUS (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_SCAN_PREVIOUS_TRACK)) -#define C_PREV (C_PREVIOUS) -#define M_PREV (C_PREVIOUS) // WARNING: DEPRECATED (DO NOT USE) - -/* Consumer Stop */ -#define C_STOP (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_STOP)) -#define M_STOP (C_STOP) // WARNING: DEPRECATED (DO NOT USE) - -/* Consumer Eject */ -#define C_EJECT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_EJECT)) -#define M_EJCT (C_EJECT) // WARNING: DEPRECATED (DO NOT USE) - -/* Consumer Random Play */ -#define C_RANDOM_PLAY (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_RANDOM_PLAY)) -#define C_SHUFFLE (C_RANDOM_PLAY) - -/* Consumer Repeat */ -#define C_REPEAT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_REPEAT)) - -/* Consumer Slow Tracking */ -#define C_SLOW_TRACKING (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_SLOW_TRACKING)) -#define C_SLOW2 (C_SLOW_TRACKING) - -/* Consumer Stop/Eject */ -#define C_STOP_EJECT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_STOP_EJECT)) - -/* Consumer Play/Pause */ -#define C_PLAY_PAUSE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_PLAY_PAUSE)) -#define C_PP (C_PLAY_PAUSE) -#define M_PLAY (C_PLAY_PAUSE) // WARNING: DEPRECATED (DO NOT USE) - -/* Consumer Voice Command */ -#define C_VOICE_COMMAND (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_VOICE_COMMAND)) - -/* Consumer Mute */ -#define C_MUTE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_MUTE)) -#define M_MUTE (C_MUTE) // WARNING: DEPRECATED (DO NOT USE) - -/* Consumer Bass Boost */ -#define C_BASS_BOOST (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_BASS_BOOST)) - -/* Consumer Volume Increment */ -#define C_VOLUME_UP (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_VOLUME_INCREMENT)) -#define C_VOL_UP (C_VOLUME_UP) -#define M_VOLU (C_VOLUME_UP) // WARNING: DEPRECATED (DO NOT USE) - -/* Consumer Volume Decrement */ -#define C_VOLUME_DOWN (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_VOLUME_DECREMENT)) -#define C_VOL_DN (C_VOLUME_DOWN) -#define M_VOLD (C_VOLUME_DOWN) // WARNING: DEPRECATED (DO NOT USE) - -/* Consumer Slow */ -#define C_SLOW (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_SLOW)) - -/* Consumer Alternate Audio Increment */ -#define C_ALTERNATE_AUDIO_INCREMENT \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_ALTERNATE_AUDIO_INCREMENT)) -#define C_ALT_AUDIO_INC (C_ALTERNATE_AUDIO_INCREMENT) - -/* Consumer AL Consumer Control Configuration */ -#define C_AL_CCC \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_CONSUMER_CONTROL_CONFIGURATION)) - -/* Consumer AL Word Processor */ -#define C_AL_WORD (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_WORD_PROCESSOR)) - -/* Consumer AL Text Editor */ -#define C_AL_TEXT_EDITOR (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_TEXT_EDITOR)) - -/* Consumer AL Spreadsheet */ -#define C_AL_SPREADSHEET (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_SPREADSHEET)) -#define C_AL_SHEET (C_AL_SPREADSHEET) - -/* Consumer AL Graphics Editor */ -#define C_AL_GRAPHICS_EDITOR (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_GRAPHICS_EDITOR)) - -/* Consumer AL Presentation App */ -#define C_AL_PRESENTATION (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_PRESENTATION_APP)) - -/* Consumer AL Database App */ -#define C_AL_DATABASE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_DATABASE_APP)) -#define C_AL_DB (C_AL_DATABASE) - -/* Consumer AL Email Reader */ -#define C_AL_EMAIL (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_EMAIL_READER)) -#define C_AL_MAIL (C_AL_EMAIL) - -/* Consumer AL Newsreader */ -#define C_AL_NEWS (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_NEWSREADER)) - -/* Consumer AL Voicemail */ -#define C_AL_VOICEMAIL (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_VOICEMAIL)) - -/* Consumer AL Contacts/Address Book */ -#define C_AL_CONTACTS (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_CONTACTS_ADDRESS_BOOK)) -#define C_AL_ADDRESS_BOOK (C_AL_CONTACTS) - -/* Consumer AL Calendar/Schedule */ -#define C_AL_CALENDAR (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_CALENDAR_SCHEDULE)) -#define C_AL_CAL (C_AL_CALENDAR) - -/* Consumer AL Task/Project Manager */ -#define C_AL_TASK_MANAGER \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_TASK_PROJECT_MANAGER)) - -/* Consumer AL Log/Journal/Timecard */ -#define C_AL_JOURNAL (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_LOG_JOURNAL_TIMECARD)) - -/* Consumer AL Checkbook/Finance */ -#define C_AL_FINANCE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_CHECKBOOK_FINANCE)) - -/* Consumer AL Calculator */ -#define C_AL_CALCULATOR (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_CALCULATOR)) -#define C_AL_CALC (C_AL_CALCULATOR) - -/* Consumer AL A/V Capture/Playback */ -#define C_AL_AV_CAPTURE_PLAYBACK \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_A_V_CAPTURE_PLAYBACK)) - -/* Consumer AL Local Machine Browser */ -#define C_AL_MY_COMPUTER \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_LOCAL_MACHINE_BROWSER)) - -/* Consumer AL Internet Browser */ -#define C_AL_WWW (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_INTERNET_BROWSER)) - -/* Consumer AL Network Chat */ -#define C_AL_NETWORK_CHAT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_NETWORK_CHAT)) -#define C_AL_CHAT (C_AL_NETWORK_CHAT) - -/* Consumer AL Logoff */ -#define C_AL_LOGOFF (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_LOGOFF)) - -/* Consumer AL Terminal Lock/Screensaver */ -#define C_AL_LOCK (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_TERMINAL_LOCK_SCREENSAVER)) -#define C_AL_SCREENSAVER (C_AL_LOCK) -#define C_AL_COFFEE (C_AL_LOCK) - -/* Consumer AL Control Panel */ -#define C_AL_CONTROL_PANEL (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_CONTROL_PANEL)) - -/* Consumer AL Select Task/Application */ -#define C_AL_SELECT_TASK \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_SELECT_TASK_APPLICATION)) - -/* Consumer AL Next Task/Application */ -#define C_AL_NEXT_TASK (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_NEXT_TASK_APPLICATION)) - -/* Consumer AL Previous Task/Application */ -#define C_AL_PREVIOUS_TASK \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_PREVIOUS_TASK_APPLICATION)) -#define C_AL_PREV_TASK (C_AL_PREVIOUS_TASK) - -/* Consumer AL Integrated Help Center */ -#define C_AL_HELP (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_INTEGRATED_HELP_CENTER)) - -/* Consumer AL Documents */ -#define C_AL_DOCUMENTS (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_DOCUMENTS)) -#define C_AL_DOCS (C_AL_DOCUMENTS) - -/* Consumer AL Spell Check */ -#define C_AL_SPELLCHECK (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_SPELL_CHECK)) -#define C_AL_SPELL (C_AL_SPELLCHECK) - -/* Consumer AL Keyboard Layout */ -#define C_AL_KEYBOARD_LAYOUT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_KEYBOARD_LAYOUT)) - -/* Consumer AL Screen Saver */ -#define C_AL_SCREEN_SAVER (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_SCREEN_SAVER)) - -/* Consumer AL File Browser */ -#define C_AL_FILE_BROWSER (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_FILE_BROWSER)) -#define C_AL_FILES (C_AL_FILE_BROWSER) - -/* Consumer AL Image Browser */ -#define C_AL_IMAGE_BROWSER (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_IMAGE_BROWSER)) -#define C_AL_IMAGES (C_AL_IMAGE_BROWSER) - -/* Consumer AL Audio Browser */ -#define C_AL_AUDIO_BROWSER (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_AUDIO_BROWSER)) -#define C_AL_AUDIO (C_AL_AUDIO_BROWSER) -#define C_AL_MUSIC (C_AL_AUDIO_BROWSER) - -/* Consumer AL Movie Browser */ -#define C_AL_MOVIE_BROWSER (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_MOVIE_BROWSER)) -#define C_AL_MOVIES (C_AL_MOVIE_BROWSER) - -/* Consumer AL Instant Messaging */ -#define C_AL_INSTANT_MESSAGING \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_INSTANT_MESSAGING)) -#define C_AL_IM (C_AL_INSTANT_MESSAGING) - -/* Consumer AL OEM Features/Tips/Tutorial Browser */ -#define C_AL_OEM_FEATURES \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AL_OEM_FEATURES_TIPS_TUTORIAL_BROWSER)) -#define C_AL_TIPS (C_AL_OEM_FEATURES) -#define C_AL_TUTORIAL (C_AL_OEM_FEATURES) - -/* Consumer AC New */ -#define C_AC_NEW (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_NEW)) - -/* Consumer AC Open */ -#define C_AC_OPEN (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_OPEN)) - -/* Consumer AC Close */ -#define C_AC_CLOSE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_CLOSE)) - -/* Consumer AC Exit */ -#define C_AC_EXIT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_EXIT)) - -/* Consumer AC Save */ -#define C_AC_SAVE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_SAVE)) - -/* Consumer AC Print */ -#define C_AC_PRINT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_PRINT)) - -/* Consumer AC Properties */ -#define C_AC_PROPERTIES (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_PROPERTIES)) -#define C_AC_PROPS (C_AC_PROPERTIES) - -/* Consumer AC Undo */ -#define C_AC_UNDO (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_UNDO)) - -/* Consumer AC Copy */ -#define C_AC_COPY (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_COPY)) - -/* Consumer AC Cut */ -#define C_AC_CUT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_CUT)) - -/* Consumer AC Paste */ -#define C_AC_PASTE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_PASTE)) - -/* Consumer AC Find */ -#define C_AC_FIND (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_FIND)) - -/* Consumer AC Search */ -#define C_AC_SEARCH (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_SEARCH)) - -/* Consumer AC Go To */ -#define C_AC_GOTO (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_GO_TO)) - -/* Consumer AC Home */ -#define C_AC_HOME (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_HOME)) - -/* Consumer AC Back */ -#define C_AC_BACK (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_BACK)) - -/* Consumer AC Forward */ -#define C_AC_FORWARD (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_FORWARD)) - -/* Consumer AC Stop */ -#define C_AC_STOP (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_STOP)) - -/* Consumer AC Refresh */ -#define C_AC_REFRESH (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_REFRESH)) - -/* Consumer AC Bookmarks */ -#define C_AC_BOOKMARKS (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_BOOKMARKS)) -#define C_AC_FAVORITES (C_AC_BOOKMARKS) -#define C_AC_FAVOURITES (C_AC_BOOKMARKS) - -/* Consumer AC Zoom In */ -#define C_AC_ZOOM_IN (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_ZOOM_IN)) - -/* Consumer AC Zoom Out */ -#define C_AC_ZOOM_OUT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_ZOOM_OUT)) - -/* Consumer AC Zoom */ -#define C_AC_ZOOM (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_ZOOM)) - -/* Consumer AC View Toggle */ -#define C_AC_VIEW_TOGGLE (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_VIEW_TOGGLE)) - -/* Consumer AC Scroll Up */ -#define C_AC_SCROLL_UP (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_SCROLL_UP)) - -/* Consumer AC Scroll Down */ -#define C_AC_SCROLL_DOWN (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_SCROLL_DOWN)) - -/* Consumer AC Edit */ -#define C_AC_EDIT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_EDIT)) - -/* Consumer AC Cancel */ -#define C_AC_CANCEL (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_CANCEL)) - -/* Consumer AC Insert Mode */ -#define C_AC_INSERT (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_INSERT_MODE)) -#define C_AC_INS (C_AC_INSERT) - -/* Consumer AC Delete */ -#define C_AC_DEL (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_DELETE)) - -/* Consumer AC Redo/Repeat */ -#define C_AC_REDO (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_REDO_REPEAT)) - -/* Consumer AC Reply */ -#define C_AC_REPLY (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_REPLY)) - -/* Consumer AC Forward Msg */ -#define C_AC_FORWARD_MAIL (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_FORWARD_MSG)) - -/* Consumer AC Send */ -#define C_AC_SEND (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_SEND)) - -/* Consumer AC Desktop Show All Windows */ -#define C_AC_DESKTOP_SHOW_ALL_WINDOWS \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_AC_DESKTOP_SHOW_ALL_WINDOWS)) - -/* Consumer Keyboard Input Assist Previous */ -#define C_KEYBOARD_INPUT_ASSIST_PREVIOUS \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_KEYBOARD_INPUT_ASSIST_PREVIOUS)) -#define C_KBIA_PREV (C_KEYBOARD_INPUT_ASSIST_PREVIOUS) - -/* Consumer Keyboard Input Assist Next */ -#define C_KEYBOARD_INPUT_ASSIST_NEXT \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_KEYBOARD_INPUT_ASSIST_NEXT)) -#define C_KBIA_NEXT (C_KEYBOARD_INPUT_ASSIST_NEXT) - -/* Consumer Keyboard Input Assist Previous Group */ -#define C_KEYBOARD_INPUT_ASSIST_PREVIOUS_GROUP \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_KEYBOARD_INPUT_ASSIST_PREVIOUS_GROUP)) -#define C_KBIA_PREV_GRP (C_KEYBOARD_INPUT_ASSIST_PREVIOUS_GROUP) - -/* Consumer Keyboard Input Assist Next Group */ -#define C_KEYBOARD_INPUT_ASSIST_NEXT_GROUP \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_KEYBOARD_INPUT_ASSIST_NEXT_GROUP)) -#define C_KBIA_NEXT_GRP (C_KEYBOARD_INPUT_ASSIST_NEXT_GROUP) - -/* Consumer Keyboard Input Assist Accept */ -#define C_KEYBOARD_INPUT_ASSIST_ACCEPT \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_KEYBOARD_INPUT_ASSIST_ACCEPT)) -#define C_KBIA_ACCEPT (C_KEYBOARD_INPUT_ASSIST_ACCEPT) - -/* Consumer Keyboard Input Assist Cancel */ -#define C_KEYBOARD_INPUT_ASSIST_CANCEL \ - (HID_USAGE(HID_USAGE_CONSUMER, HID_USAGE_CONSUMER_KEYBOARD_INPUT_ASSIST_CANCEL)) -#define C_KBIA_CANCEL (C_KEYBOARD_INPUT_ASSIST_CANCEL) diff --git a/zmk/app/include/dt-bindings/zmk/kscan-mock.h b/zmk/app/include/dt-bindings/zmk/kscan-mock.h deleted file mode 100644 index eff218b2..00000000 --- a/zmk/app/include/dt-bindings/zmk/kscan-mock.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#define ZMK_MOCK_IS_PRESS(v) ((v & (0x01 << 31)) != 0) -#define ZMK_MOCK_PRESS(row, col, msec) (row + (col << 8) + (msec << 16) + (0x01 << 31)) -#define ZMK_MOCK_RELEASE(row, col, msec) (row + (col << 8) + (msec << 16)) -#define ZMK_MOCK_ROW(v) (v & 0xFF) -#define ZMK_MOCK_COL(v) ((v >> 8) & 0xFF) -#define ZMK_MOCK_MSEC(v) ((v & ~(0x01 << 31)) >> 16) diff --git a/zmk/app/include/dt-bindings/zmk/matrix-transform.h b/zmk/app/include/dt-bindings/zmk/matrix-transform.h deleted file mode 100644 index 2989cb60..00000000 --- a/zmk/app/include/dt-bindings/zmk/matrix-transform.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define KT_ROW(item) (item >> 8) -#define KT_COL(item) (item & 0xFF) - -#define RC(row, col) (((row) << 8) + (col)) \ No newline at end of file diff --git a/zmk/app/include/dt-bindings/zmk/modifiers.h b/zmk/app/include/dt-bindings/zmk/modifiers.h deleted file mode 100644 index b49849d0..00000000 --- a/zmk/app/include/dt-bindings/zmk/modifiers.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ -#pragma once - -#define MOD_LCTL 0x01 -#define MOD_LSFT 0x02 -#define MOD_LALT 0x04 -#define MOD_LGUI 0x08 -#define MOD_RCTL 0x10 -#define MOD_RSFT 0x20 -#define MOD_RALT 0x40 -#define MOD_RGUI 0x80 - -#define SELECT_MODS(keycode) (keycode >> 24) -#define STRIP_MODS(keycode) (keycode & ~(0xFF << 24)) -#define APPLY_MODS(mods, keycode) (mods << 24 | keycode) - -#define LC(keycode) APPLY_MODS(MOD_LCTL, keycode) -#define LS(keycode) APPLY_MODS(MOD_LSFT, keycode) -#define LA(keycode) APPLY_MODS(MOD_LALT, keycode) -#define LG(keycode) APPLY_MODS(MOD_LGUI, keycode) -#define RC(keycode) APPLY_MODS(MOD_RCTL, keycode) -#define RS(keycode) APPLY_MODS(MOD_RSFT, keycode) -#define RA(keycode) APPLY_MODS(MOD_RALT, keycode) -#define RG(keycode) APPLY_MODS(MOD_RGUI, keycode) \ No newline at end of file diff --git a/zmk/app/include/dt-bindings/zmk/outputs.h b/zmk/app/include/dt-bindings/zmk/outputs.h deleted file mode 100644 index f24380f7..00000000 --- a/zmk/app/include/dt-bindings/zmk/outputs.h +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define OUT_TOG 0 -#define OUT_USB 1 -#define OUT_BLE 2 \ No newline at end of file diff --git a/zmk/app/include/dt-bindings/zmk/reset.h b/zmk/app/include/dt-bindings/zmk/reset.h deleted file mode 100644 index 2b3d8760..00000000 --- a/zmk/app/include/dt-bindings/zmk/reset.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define RST_WARM 0x00 -#define RST_COLD 0x01 - -// AdaFruit nrf52 Bootloader Specific. See -// https://github.com/adafruit/Adafruit_nRF52_Bootloader/blob/d6b28e66053eea467166f44875e3c7ec741cb471/src/main.c#L107 - -#define RST_UF2 0x57 \ No newline at end of file diff --git a/zmk/app/include/dt-bindings/zmk/rgb.h b/zmk/app/include/dt-bindings/zmk/rgb.h deleted file mode 100644 index eb721807..00000000 --- a/zmk/app/include/dt-bindings/zmk/rgb.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define RGB_TOG 0 -#define RGB_HUI 1 -#define RGB_HUD 2 -#define RGB_SAI 3 -#define RGB_SAD 4 -#define RGB_BRI 5 -#define RGB_BRD 6 -#define RGB_SPI 7 -#define RGB_SPD 8 -#define RGB_EFF 9 -#define RGB_EFR 10 diff --git a/zmk/app/include/linker/zmk-events.ld b/zmk/app/include/linker/zmk-events.ld deleted file mode 100644 index 78d00bb7..00000000 --- a/zmk/app/include/linker/zmk-events.ld +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - - __event_type_start = .; \ - KEEP(*(".event_type")); \ - __event_type_end = .; \ - - __event_subscriptions_start = .; \ - KEEP(*(".event_subscription")); \ - __event_subscriptions_end = .; \ - diff --git a/zmk/app/include/zmk/behavior.h b/zmk/app/include/zmk/behavior.h deleted file mode 100644 index 428ae243..00000000 --- a/zmk/app/include/zmk/behavior.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -struct zmk_behavior_binding { - char *behavior_dev; - u32_t param1; - u32_t param2; -}; - -struct zmk_behavior_binding_event { - int layer; - u32_t position; - s64_t timestamp; -}; \ No newline at end of file diff --git a/zmk/app/include/zmk/ble.h b/zmk/app/include/zmk/ble.h deleted file mode 100644 index 56980c69..00000000 --- a/zmk/app/include/zmk/ble.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include - -int zmk_ble_clear_bonds(); -int zmk_ble_prof_next(); -int zmk_ble_prof_prev(); -int zmk_ble_prof_select(u8_t index); - -bt_addr_le_t *zmk_ble_active_profile_addr(); -bool zmk_ble_active_profile_is_connected(); -char *zmk_ble_active_profile_name(); - -int zmk_ble_unpair_all(); -bool zmk_ble_handle_key_user(struct zmk_key_event *key_event); - -#if IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL) -void zmk_ble_set_peripheral_addr(bt_addr_le_t *addr); -#endif /* IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL) */ \ No newline at end of file diff --git a/zmk/app/include/zmk/ble/profile.h b/zmk/app/include/zmk/ble/profile.h deleted file mode 100644 index 1df27436..00000000 --- a/zmk/app/include/zmk/ble/profile.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include - -#define ZMK_BLE_PROFILE_NAME_MAX 15 - -struct zmk_ble_profile { - char name[ZMK_BLE_PROFILE_NAME_MAX]; - bt_addr_le_t peer; -}; diff --git a/zmk/app/include/zmk/display.h b/zmk/app/include/zmk/display.h deleted file mode 100644 index def43920..00000000 --- a/zmk/app/include/zmk/display.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -int zmk_display_init(); -void zmk_display_task_handler(); \ No newline at end of file diff --git a/zmk/app/include/zmk/endpoints.h b/zmk/app/include/zmk/endpoints.h deleted file mode 100644 index aad688e7..00000000 --- a/zmk/app/include/zmk/endpoints.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include - -enum zmk_endpoint { - ZMK_ENDPOINT_USB, - ZMK_ENDPOINT_BLE, -}; - -int zmk_endpoints_select(enum zmk_endpoint endpoint); -int zmk_endpoints_toggle(); - -int zmk_endpoints_send_report(u8_t usage_report); diff --git a/zmk/app/include/zmk/event-manager.h b/zmk/app/include/zmk/event-manager.h deleted file mode 100644 index 4b8f72c0..00000000 --- a/zmk/app/include/zmk/event-manager.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include -#include - -struct zmk_event_type { - const char *name; -}; - -struct zmk_event_header { - const struct zmk_event_type *event; - u8_t last_listener_index; -}; - -#define ZMK_EV_EVENT_HANDLED 1 -#define ZMK_EV_EVENT_CAPTURED 2 - -typedef int (*zmk_listener_callback_t)(const struct zmk_event_header *eh); -struct zmk_listener { - zmk_listener_callback_t callback; -}; - -struct zmk_event_subscription { - const struct zmk_event_type *event_type; - const struct zmk_listener *listener; -}; - -#define ZMK_EVENT_DECLARE(event_type) \ - struct event_type *new_##event_type(); \ - bool is_##event_type(const struct zmk_event_header *eh); \ - struct event_type *cast_##event_type(const struct zmk_event_header *eh); \ - extern const struct zmk_event_type zmk_event_##event_type; - -#define ZMK_EVENT_IMPL(event_type) \ - const struct zmk_event_type zmk_event_##event_type = {.name = STRINGIFY(event_type)}; \ - const struct zmk_event_type *zmk_event_ref_##event_type __used \ - __attribute__((__section__(".event_type"))) = &zmk_event_##event_type; \ - struct event_type *new_##event_type() { \ - struct event_type *ev = (struct event_type *)k_malloc(sizeof(struct event_type)); \ - ev->header.event = &zmk_event_##event_type; \ - return ev; \ - }; \ - bool is_##event_type(const struct zmk_event_header *eh) { \ - return eh->event == &zmk_event_##event_type; \ - }; \ - struct event_type *cast_##event_type(const struct zmk_event_header *eh) { \ - return (struct event_type *)eh; \ - }; - -#define ZMK_LISTENER(mod, cb) const struct zmk_listener zmk_listener_##mod = {.callback = cb}; - -#define ZMK_SUBSCRIPTION(mod, ev_type) \ - const Z_DECL_ALIGN(struct zmk_event_subscription) \ - _CONCAT(_CONCAT(zmk_event_sub_, mod), ev_type) __used \ - __attribute__((__section__(".event_subscription"))) = { \ - .event_type = &zmk_event_##ev_type, \ - .listener = &zmk_listener_##mod, \ - }; - -#define ZMK_EVENT_RAISE(ev) zmk_event_manager_raise((struct zmk_event_header *)ev); - -#define ZMK_EVENT_RAISE_AFTER(ev, mod) \ - zmk_event_manager_raise_after((struct zmk_event_header *)ev, &zmk_listener_##mod); - -#define ZMK_EVENT_RAISE_AT(ev, mod) \ - zmk_event_manager_raise_at((struct zmk_event_header *)ev, &zmk_listener_##mod); - -#define ZMK_EVENT_RELEASE(ev) zmk_event_manager_release((struct zmk_event_header *)ev); - -int zmk_event_manager_raise(struct zmk_event_header *event); -int zmk_event_manager_raise_after(struct zmk_event_header *event, - const struct zmk_listener *listener); -int zmk_event_manager_raise_at(struct zmk_event_header *event, const struct zmk_listener *listener); -int zmk_event_manager_release(struct zmk_event_header *event); diff --git a/zmk/app/include/zmk/events/ble-active-profile-changed.h b/zmk/app/include/zmk/events/ble-active-profile-changed.h deleted file mode 100644 index 1e3a198b..00000000 --- a/zmk/app/include/zmk/events/ble-active-profile-changed.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include -#include - -#include - -struct ble_active_profile_changed { - struct zmk_event_header header; - u8_t index; - struct zmk_ble_profile *profile; -}; - -ZMK_EVENT_DECLARE(ble_active_profile_changed); diff --git a/zmk/app/include/zmk/events/keycode-state-changed.h b/zmk/app/include/zmk/events/keycode-state-changed.h deleted file mode 100644 index 7a423a57..00000000 --- a/zmk/app/include/zmk/events/keycode-state-changed.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include -#include -#include -#include - -struct keycode_state_changed { - struct zmk_event_header header; - u8_t usage_page; - u32_t keycode; - u8_t implicit_modifiers; - bool state; -}; - -ZMK_EVENT_DECLARE(keycode_state_changed); - -static inline struct keycode_state_changed *keycode_state_changed_from_encoded(u32_t encoded, - bool pressed) { - u16_t page = HID_USAGE_PAGE(encoded) & 0xFF; - u16_t id = HID_USAGE_ID(encoded); - zmk_mod_flags implicit_mods = SELECT_MODS(encoded); - - if (!page) { - page = HID_USAGE_KEY; - } - - struct keycode_state_changed *ev = new_keycode_state_changed(); - ev->usage_page = page; - ev->keycode = id; - ev->implicit_modifiers = implicit_mods; - ev->state = pressed; - return ev; -} diff --git a/zmk/app/include/zmk/events/modifiers-state-changed.h b/zmk/app/include/zmk/events/modifiers-state-changed.h deleted file mode 100644 index d2e02f82..00000000 --- a/zmk/app/include/zmk/events/modifiers-state-changed.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include -#include - -struct modifiers_state_changed { - struct zmk_event_header header; - zmk_mod_flags modifiers; - bool state; -}; - -ZMK_EVENT_DECLARE(modifiers_state_changed); - -inline struct modifiers_state_changed *create_modifiers_state_changed(zmk_mod_flags modifiers, - bool state) { - struct modifiers_state_changed *ev = new_modifiers_state_changed(); - ev->modifiers = modifiers; - ev->state = state; - - return ev; -} \ No newline at end of file diff --git a/zmk/app/include/zmk/events/position-state-changed.h b/zmk/app/include/zmk/events/position-state-changed.h deleted file mode 100644 index e4cbbbe7..00000000 --- a/zmk/app/include/zmk/events/position-state-changed.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include - -struct position_state_changed { - struct zmk_event_header header; - u32_t position; - bool state; - s64_t timestamp; -}; - -ZMK_EVENT_DECLARE(position_state_changed); \ No newline at end of file diff --git a/zmk/app/include/zmk/events/sensor-event.h b/zmk/app/include/zmk/events/sensor-event.h deleted file mode 100644 index a9302a5c..00000000 --- a/zmk/app/include/zmk/events/sensor-event.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include -#include - -struct sensor_event { - struct zmk_event_header header; - u8_t sensor_number; - struct device *sensor; -}; - -ZMK_EVENT_DECLARE(sensor_event); \ No newline at end of file diff --git a/zmk/app/include/zmk/events/usb-conn-state-changed.h b/zmk/app/include/zmk/events/usb-conn-state-changed.h deleted file mode 100644 index d6cc6985..00000000 --- a/zmk/app/include/zmk/events/usb-conn-state-changed.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include - -#include -#include - -struct usb_conn_state_changed { - struct zmk_event_header header; - enum zmk_usb_conn_state conn_state; -}; - -ZMK_EVENT_DECLARE(usb_conn_state_changed); \ No newline at end of file diff --git a/zmk/app/include/zmk/handlers.h b/zmk/app/include/zmk/handlers.h deleted file mode 100644 index 92bd7e05..00000000 --- a/zmk/app/include/zmk/handlers.h +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include - -void zmk_handle_key(struct zmk_key_event key_event); diff --git a/zmk/app/include/zmk/hid.h b/zmk/app/include/zmk/hid.h deleted file mode 100644 index 306bc26b..00000000 --- a/zmk/app/include/zmk/hid.h +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include - -#include -#include -#include - -#define COLLECTION_REPORT 0x03 - -#define ZMK_HID_KEYBOARD_NKRO_SIZE 6 - -#define ZMK_HID_CONSUMER_NKRO_SIZE 6 - -static const u8_t zmk_hid_report_desc[] = { - /* USAGE_PAGE (Generic Desktop) */ - HID_GI_USAGE_PAGE, - HID_USAGE_GD, - /* USAGE (Keyboard) */ - HID_LI_USAGE, - HID_USAGE_GD_KEYBOARD, - /* COLLECTION (Application) */ - HID_MI_COLLECTION, - COLLECTION_APPLICATION, - /* REPORT ID (1) */ - HID_GI_REPORT_ID, - 0x01, - /* USAGE_PAGE (Keyboard/Keypad) */ - HID_GI_USAGE_PAGE, - HID_USAGE_KEY, - /* USAGE_MINIMUM (Keyboard LeftControl) */ - HID_LI_USAGE_MIN(1), - HID_USAGE_KEY_KEYBOARD_LEFTCONTROL, - /* USAGE_MAXIMUM (Keyboard Right GUI) */ - HID_LI_USAGE_MAX(1), - HID_USAGE_KEY_KEYBOARD_RIGHT_GUI, - /* LOGICAL_MINIMUM (0) */ - HID_GI_LOGICAL_MIN(1), - 0x00, - /* LOGICAL_MAXIMUM (1) */ - HID_GI_LOGICAL_MAX(1), - 0x01, - - /* REPORT_SIZE (1) */ - HID_GI_REPORT_SIZE, - 0x01, - /* REPORT_COUNT (8) */ - HID_GI_REPORT_COUNT, - 0x08, - /* INPUT (Data,Var,Abs) */ - HID_MI_INPUT, - 0x02, - - /* USAGE_PAGE (Keyboard/Keypad) */ - HID_GI_USAGE_PAGE, - HID_USAGE_KEY, - /* REPORT_SIZE (8) */ - HID_GI_REPORT_SIZE, - 0x08, - /* REPORT_COUNT (1) */ - HID_GI_REPORT_COUNT, - 0x01, - /* INPUT (Cnst,Var,Abs) */ - HID_MI_INPUT, - 0x03, - - /* USAGE_PAGE (Keyboard/Keypad) */ - HID_GI_USAGE_PAGE, - HID_USAGE_KEY, - /* LOGICAL_MINIMUM (0) */ - HID_GI_LOGICAL_MIN(1), - 0x00, - /* LOGICAL_MAXIMUM (0xFF) */ - HID_GI_LOGICAL_MAX(1), - 0xFF, - /* USAGE_MINIMUM (Reserved) */ - HID_LI_USAGE_MIN(1), - 0x00, - /* USAGE_MAXIMUM (Keyboard Application) */ - HID_LI_USAGE_MAX(1), - 0xFF, - /* REPORT_SIZE (1) */ - HID_GI_REPORT_SIZE, - 0x08, - /* REPORT_COUNT (ZMK_HID_KEYBOARD_NKRO_SIZE) */ - HID_GI_REPORT_COUNT, - ZMK_HID_KEYBOARD_NKRO_SIZE, - /* INPUT (Data,Ary,Abs) */ - HID_MI_INPUT, - 0x00, - - /* END_COLLECTION */ - HID_MI_COLLECTION_END, - /* USAGE_PAGE (Consumer) */ - HID_GI_USAGE_PAGE, - HID_USAGE_CONSUMER, - /* USAGE (Consumer Control) */ - HID_LI_USAGE, - HID_USAGE_CONSUMER_CONSUMER_CONTROL, - /* Consumer Page */ - HID_MI_COLLECTION, - COLLECTION_APPLICATION, - /* REPORT ID (1) */ - HID_GI_REPORT_ID, - 0x02, - /* USAGE_PAGE (Consumer) */ - HID_GI_USAGE_PAGE, - HID_USAGE_CONSUMER, - /* LOGICAL_MINIMUM (0) */ - HID_GI_LOGICAL_MIN(1), - 0x00, - /* LOGICAL_MAXIMUM (0xFFFF) */ - HID_GI_LOGICAL_MAX(2), - 0xFF, - 0xFF, - HID_LI_USAGE_MIN(1), - 0x00, - /* USAGE_MAXIMUM (0xFFFF) */ - HID_LI_USAGE_MAX(2), - 0xFF, - 0xFF, - /* INPUT (Data,Ary,Abs) */ - /* REPORT_SIZE (16) */ - HID_GI_REPORT_SIZE, - 0x10, - /* REPORT_COUNT (ZMK_HID_CONSUMER_NKRO_SIZE) */ - HID_GI_REPORT_COUNT, - ZMK_HID_CONSUMER_NKRO_SIZE, - HID_MI_INPUT, - 0x00, - /* END COLLECTION */ - HID_MI_COLLECTION_END, -}; - -// struct zmk_hid_boot_report -// { -// u8_t modifiers; -// u8_t _unused; -// u8_t keys[6]; -// } __packed; - -struct zmk_hid_keyboard_report_body { - zmk_mod_flags modifiers; - u8_t _reserved; - u8_t keys[ZMK_HID_KEYBOARD_NKRO_SIZE]; -} __packed; - -struct zmk_hid_keyboard_report { - u8_t report_id; - struct zmk_hid_keyboard_report_body body; -} __packed; - -struct zmk_hid_consumer_report_body { - u16_t keys[ZMK_HID_CONSUMER_NKRO_SIZE]; -} __packed; - -struct zmk_hid_consumer_report { - u8_t report_id; - struct zmk_hid_consumer_report_body body; -} __packed; - -int zmk_hid_register_mod(zmk_mod modifier); -int zmk_hid_unregister_mod(zmk_mod modifier); -int zmk_hid_implicit_modifiers_press(zmk_mod_flags implicit_modifiers); -int zmk_hid_implicit_modifiers_release(); -int zmk_hid_keyboard_press(zmk_key key); -int zmk_hid_keyboard_release(zmk_key key); -void zmk_hid_keyboard_clear(); - -int zmk_hid_consumer_press(zmk_key key); -int zmk_hid_consumer_release(zmk_key key); -void zmk_hid_consumer_clear(); - -struct zmk_hid_keyboard_report *zmk_hid_get_keyboard_report(); -struct zmk_hid_consumer_report *zmk_hid_get_consumer_report(); diff --git a/zmk/app/include/zmk/hog.h b/zmk/app/include/zmk/hog.h deleted file mode 100644 index 7523fb66..00000000 --- a/zmk/app/include/zmk/hog.h +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include - -int zmk_hog_init(); - -int zmk_hog_send_keyboard_report(struct zmk_hid_keyboard_report_body *body); -int zmk_hog_send_consumer_report(struct zmk_hid_consumer_report_body *body); diff --git a/zmk/app/include/zmk/keymap.h b/zmk/app/include/zmk/keymap.h deleted file mode 100644 index b8f49694..00000000 --- a/zmk/app/include/zmk/keymap.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -bool zmk_keymap_layer_active(u8_t layer); -int zmk_keymap_layer_activate(u8_t layer); -int zmk_keymap_layer_deactivate(u8_t layer); -int zmk_keymap_layer_toggle(u8_t layer); - -int zmk_keymap_position_state_changed(u32_t position, bool pressed, s64_t timestamp); diff --git a/zmk/app/include/zmk/keys.h b/zmk/app/include/zmk/keys.h deleted file mode 100644 index af474b1f..00000000 --- a/zmk/app/include/zmk/keys.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include - -typedef u32_t zmk_key; -typedef u8_t zmk_action; -typedef u8_t zmk_mod; -typedef u8_t zmk_mod_flags; - -struct zmk_key_event { - u32_t column; - u32_t row; - zmk_key key; - bool pressed; -}; \ No newline at end of file diff --git a/zmk/app/include/zmk/kscan.h b/zmk/app/include/zmk/kscan.h deleted file mode 100644 index 33526008..00000000 --- a/zmk/app/include/zmk/kscan.h +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -int zmk_kscan_init(char *name); diff --git a/zmk/app/include/zmk/matrix.h b/zmk/app/include/zmk/matrix.h deleted file mode 100644 index b3e2323b..00000000 --- a/zmk/app/include/zmk/matrix.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include - -#define ZMK_MATRIX_NODE_ID DT_CHOSEN(zmk_kscan) - -#if DT_HAS_CHOSEN(zmk_matrix_transform) - -#define ZMK_KEYMAP_TRANSFORM_NODE DT_CHOSEN(zmk_matrix_transform) -#define ZMK_KEYMAP_LEN DT_PROP_LEN(ZMK_KEYMAP_TRANSFORM_NODE, map) - -#define ZMK_MATRIX_ROWS DT_PROP(ZMK_KEYMAP_TRANSFORM_NODE, rows) -#define ZMK_MATRIX_COLS DT_PROP(ZMK_KEYMAP_TRANSFORM_NODE, columns) - -#else /* DT_HAS_CHOSEN(zmk_matrix_transform) */ - -#if DT_NODE_HAS_PROP(ZMK_MATRIX_NODE_ID, row_gpios) -#define ZMK_MATRIX_ROWS DT_PROP_LEN(ZMK_MATRIX_NODE_ID, row_gpios) -#define ZMK_MATRIX_COLS DT_PROP_LEN(ZMK_MATRIX_NODE_ID, col_gpios) -#elif DT_NODE_HAS_PROP(ZMK_MATRIX_NODE_ID, input_gpios) -#define ZMK_MATRIX_ROWS 1 -#define ZMK_MATRIX_COLS DT_PROP_LEN(ZMK_MATRIX_NODE_ID, input_gpios) -#else -#define ZMK_MATRIX_ROWS DT_PROP(ZMK_MATRIX_NODE_ID, rows) -#define ZMK_MATRIX_COLS DT_PROP(ZMK_MATRIX_NODE_ID, columns) -#endif - -#define ZMK_KEYMAP_LEN (ZMK_MATRIX_COLS * ZMK_MATRIX_ROWS) - -#endif /* !DT_HAS_CHOSEN(zmk_matrix_transform) */ \ No newline at end of file diff --git a/zmk/app/include/zmk/matrix_transform.h b/zmk/app/include/zmk/matrix_transform.h deleted file mode 100644 index 29c2afcd..00000000 --- a/zmk/app/include/zmk/matrix_transform.h +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -u32_t zmk_matrix_transform_row_column_to_position(u32_t row, u32_t column); \ No newline at end of file diff --git a/zmk/app/include/zmk/rgb_underglow.h b/zmk/app/include/zmk/rgb_underglow.h deleted file mode 100644 index 94cc32cc..00000000 --- a/zmk/app/include/zmk/rgb_underglow.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -int zmk_rgb_underglow_toggle(); -int zmk_rgb_underglow_cycle_effect(int direction); -int zmk_rgb_underglow_change_hue(int direction); -int zmk_rgb_underglow_change_sat(int direction); -int zmk_rgb_underglow_change_brt(int direction); -int zmk_rgb_underglow_change_spd(int direction); diff --git a/zmk/app/include/zmk/sensors.h b/zmk/app/include/zmk/sensors.h deleted file mode 100644 index 63dcade0..00000000 --- a/zmk/app/include/zmk/sensors.h +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#define ZMK_KEYMAP_SENSORS_NODE DT_INST(0, zmk_keymap_sensors) -#define ZMK_KEYMAP_HAS_SENSORS DT_NODE_EXISTS(ZMK_KEYMAP_SENSORS_NODE) -#define ZMK_KEYMAP_SENSORS_LEN DT_PROP_LEN(ZMK_KEYMAP_SENSORS_NODE, sensors) -#define ZMK_KEYMAP_SENSORS_BY_IDX(idx) DT_PHANDLE_BY_IDX(ZMK_KEYMAP_SENSORS_NODE, sensors, idx) \ No newline at end of file diff --git a/zmk/app/include/zmk/split/bluetooth/service.h b/zmk/app/include/zmk/split/bluetooth/service.h deleted file mode 100644 index c2be512f..00000000 --- a/zmk/app/include/zmk/split/bluetooth/service.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -int zmk_split_bt_position_pressed(u8_t position); -int zmk_split_bt_position_released(u8_t position); \ No newline at end of file diff --git a/zmk/app/include/zmk/split/bluetooth/uuid.h b/zmk/app/include/zmk/split/bluetooth/uuid.h deleted file mode 100644 index a31884d9..00000000 --- a/zmk/app/include/zmk/split/bluetooth/uuid.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include - -#ifndef BT_UUID_NUM_OF_DIGITALS -#define BT_UUID_NUM_OF_DIGITALS BT_UUID_DECLARE_16(0x2909) -#endif - -#define ZMK_BT_SPLIT_UUID(num) BT_UUID_128_ENCODE(num, 0x0096, 0x7107, 0xc967, 0xc5cfb1c2482a) -#define ZMK_SPLIT_BT_SERVICE_UUID ZMK_BT_SPLIT_UUID(0x00000000) -#define ZMK_SPLIT_BT_CHAR_POSITION_STATE_UUID ZMK_BT_SPLIT_UUID(0x00000001) diff --git a/zmk/app/include/zmk/usb.h b/zmk/app/include/zmk/usb.h deleted file mode 100644 index 30461de2..00000000 --- a/zmk/app/include/zmk/usb.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include - -#include -#include - -enum zmk_usb_conn_state { - ZMK_USB_CONN_NONE, - ZMK_USB_CONN_POWERED, - ZMK_USB_CONN_HID, -}; - -enum usb_dc_status_code zmk_usb_get_status(); -enum zmk_usb_conn_state zmk_usb_get_conn_state(); - -static inline bool zmk_usb_is_powered() { return zmk_usb_get_conn_state() != ZMK_USB_CONN_NONE; } -static inline bool zmk_usb_is_hid_ready() { return zmk_usb_get_conn_state() == ZMK_USB_CONN_HID; } - -#ifdef CONFIG_ZMK_USB -int zmk_usb_hid_send_report(const u8_t *report, size_t len); -#endif /* CONFIG_ZMK_USB */ \ No newline at end of file diff --git a/zmk/app/prj.conf b/zmk/app/prj.conf deleted file mode 100644 index e69de29b..00000000 diff --git a/zmk/app/run-test.sh b/zmk/app/run-test.sh deleted file mode 100644 index dd8c8eed..00000000 --- a/zmk/app/run-test.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2020 The ZMK Contributors -# -# SPDX-License-Identifier: MIT -# - -if [ -z "$1" ]; then - echo "Usage: ./run-test.sh " - exit 1 -elif [ "$1" = "all" ]; then - echo "" > ./build/tests/pass-fail.log - find tests -name native_posix.keymap -exec dirname \{\} \; | xargs -l -P 4 ./run-test.sh - err=$? - sort -k2 ./build/tests/pass-fail.log - exit $err -fi - -testcase="$1" -echo "Running $testcase:" - -west build -d build/$testcase -b native_posix -- -DZMK_CONFIG=$testcase > /dev/null 2>&1 -if [ $? -gt 0 ]; then - echo "FAIL: $testcase did not build" >> ./build/tests/pass-fail.log - exit 1 -else - ./build/$testcase/zephyr/zmk.exe | sed -e "s/.*> //" | tee build/$testcase/keycode_events_full.log | sed -n -f $testcase/events.patterns > build/$testcase/keycode_events.log - diff -au $testcase/keycode_events.snapshot build/$testcase/keycode_events.log - if [ $? -gt 0 ]; then - if [ -f $testcase/pending ]; then - echo "PEND: $testcase" >> ./build/tests/pass-fail.log - exit 0 - else - echo "FAIL: $testcase" >> ./build/tests/pass-fail.log - exit 1 - fi - else - echo "PASS: $testcase" >> ./build/tests/pass-fail.log - exit 0 - fi -fi \ No newline at end of file diff --git a/zmk/app/scripts/west-commands.yml b/zmk/app/scripts/west-commands.yml deleted file mode 100644 index 98e28997..00000000 --- a/zmk/app/scripts/west-commands.yml +++ /dev/null @@ -1,9 +0,0 @@ -# Copyright (c) 2020, ZMK Contributors -# SPDX-License-Identifier: MIT - -west-commands: - - file: scripts/west_commands/test.py - commands: - - name: test - class: Test - help: run zmk testsuite \ No newline at end of file diff --git a/zmk/app/scripts/west_commands/test.py b/zmk/app/scripts/west_commands/test.py deleted file mode 100644 index 26f95f73..00000000 --- a/zmk/app/scripts/west_commands/test.py +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# -# SPDX-License-Identifier: MIT -'''Test runner for ZMK.''' - -import os -from textwrap import dedent # just for nicer code indentation - -from west.commands import WestCommand -from west import log # use this for user output - - -class Test(WestCommand): - def __init__(self): - super().__init__( - 'test', # gets stored as self.name - 'run zmk testsuite', # self.help - # self.description: - dedent('''Run the zmk testsuite.''')) - - def do_add_parser(self, parser_adder): - parser = parser_adder.add_parser(self.name, - help=self.help, - description=self.description) - - parser.add_argument('test_path', default="all", - help='The path to the test. Defaults to "all".', nargs="?") - return parser # gets stored as self.parser - - def do_run(self, args, unknown_args): - # the run-test script assumes the app directory is the current dir. - os.chdir(f'{self.topdir}/app') - exit(os.system(f'{self.topdir}/app/run-test.sh {args.test_path}')) diff --git a/zmk/app/src/battery.c b/zmk/app/src/battery.c deleted file mode 100644 index 9496570c..00000000 --- a/zmk/app/src/battery.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include -#include -#include - -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -struct device *battery; - -static int zmk_battery_update(struct device *battery) { - struct sensor_value state_of_charge; - - int rc = sensor_sample_fetch_chan(battery, SENSOR_CHAN_GAUGE_STATE_OF_CHARGE); - - if (rc != 0) { - LOG_DBG("Failed to fetch battery values: %d", rc); - return rc; - } - - rc = sensor_channel_get(battery, SENSOR_CHAN_GAUGE_STATE_OF_CHARGE, &state_of_charge); - - if (rc != 0) { - LOG_DBG("Failed to get battery state of charge: %d", rc); - return rc; - } - - LOG_DBG("Setting BAS GATT battery level to %d.", state_of_charge.val1); - - return bt_gatt_bas_set_battery_level(state_of_charge.val1); -} - -static void zmk_battery_work(struct k_work *work) { - int rc = zmk_battery_update(battery); - - if (rc != 0) { - LOG_DBG("Failed to update battery value: %d.", rc); - } -} - -K_WORK_DEFINE(battery_work, zmk_battery_work); - -static void zmk_battery_timer(struct k_timer *timer) { k_work_submit(&battery_work); } - -K_TIMER_DEFINE(battery_timer, zmk_battery_timer, NULL); - -static int zmk_battery_init(struct device *_arg) { - battery = device_get_binding("BATTERY"); - - if (battery == NULL) { - LOG_DBG("No battery device labelled BATTERY found."); - return -ENODEV; - } - - int rc = zmk_battery_update(battery); - - if (rc != 0) { - LOG_DBG("Failed to update battery value: %d.", rc); - return rc; - } - - k_timer_start(&battery_timer, K_MINUTES(1), K_MINUTES(1)); - - return 0; -} - -SYS_INIT(zmk_battery_init, APPLICATION, CONFIG_APPLICATION_INIT_PRIORITY); diff --git a/zmk/app/src/behaviors/behavior_bt.c b/zmk/app/src/behaviors/behavior_bt.c deleted file mode 100644 index 066c4371..00000000 --- a/zmk/app/src/behaviors/behavior_bt.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_behavior_bluetooth - -#include -#include -#include -#include -#include -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#include - -static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - switch (binding->param1) { - case BT_CLR_CMD: - return zmk_ble_clear_bonds(); - case BT_NXT_CMD: - return zmk_ble_prof_next(); - case BT_PRV_CMD: - return zmk_ble_prof_prev(); - case BT_SEL_CMD: - return zmk_ble_prof_select(binding->param2); - default: - LOG_ERR("Unknown BT command: %d", binding->param1); - } - - return -ENOTSUP; -} - -static int behavior_bt_init(struct device *dev) { return 0; }; - -static int on_keymap_binding_released(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - return 0; -} - -static const struct behavior_driver_api behavior_bt_driver_api = { - .binding_pressed = on_keymap_binding_pressed, - .binding_released = on_keymap_binding_released, -}; - -DEVICE_AND_API_INIT(behavior_bt, DT_INST_LABEL(0), behavior_bt_init, NULL, NULL, APPLICATION, - CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &behavior_bt_driver_api); diff --git a/zmk/app/src/behaviors/behavior_ext_power.c b/zmk/app/src/behaviors/behavior_ext_power.c deleted file mode 100644 index 825f9834..00000000 --- a/zmk/app/src/behaviors/behavior_ext_power.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_behavior_ext_power - -#include -#include -#include -#include - -#include - -#include -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - struct device *ext_power = device_get_binding("EXT_POWER"); - if (ext_power == NULL) { - LOG_ERR("Unable to retrieve ext_power device: %d", binding->param1); - return -EIO; - } - - switch (binding->param1) { - case EXT_POWER_OFF_CMD: - return ext_power_disable(ext_power); - case EXT_POWER_ON_CMD: - return ext_power_enable(ext_power); - case EXT_POWER_TOGGLE_CMD: - if (ext_power_get(ext_power) > 0) - return ext_power_disable(ext_power); - else - return ext_power_enable(ext_power); - default: - LOG_ERR("Unknown ext_power command: %d", binding->param1); - } - - return -ENOTSUP; -} - -static int on_keymap_binding_released(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - return 0; -} - -static int behavior_ext_power_init(struct device *dev) { return 0; }; - -static const struct behavior_driver_api behavior_ext_power_driver_api = { - .binding_pressed = on_keymap_binding_pressed, - .binding_released = on_keymap_binding_released, -}; - -DEVICE_AND_API_INIT(behavior_ext_power, DT_INST_LABEL(0), behavior_ext_power_init, NULL, NULL, - APPLICATION, CONFIG_APPLICATION_INIT_PRIORITY, &behavior_ext_power_driver_api); diff --git a/zmk/app/src/behaviors/behavior_hold_tap.c b/zmk/app/src/behaviors/behavior_hold_tap.c deleted file mode 100644 index 1dc665dd..00000000 --- a/zmk/app/src/behaviors/behavior_hold_tap.c +++ /dev/null @@ -1,522 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_behavior_hold_tap - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#if DT_NODE_EXISTS(DT_DRV_INST(0)) - -#define ZMK_BHV_HOLD_TAP_MAX_HELD 10 -#define ZMK_BHV_HOLD_TAP_MAX_CAPTURED_EVENTS 40 - -// increase if you have keyboard with more keys. -#define ZMK_BHV_HOLD_TAP_POSITION_NOT_USED 9999 - -enum flavor { - ZMK_BHV_HOLD_TAP_FLAVOR_HOLD_PREFERRED = 0, - ZMK_BHV_HOLD_TAP_FLAVOR_BALANCED = 1, - ZMK_BHV_HOLD_TAP_FLAVOR_TAP_PREFERRED = 2, -}; - -struct behavior_hold_tap_behaviors { - struct zmk_behavior_binding tap; - struct zmk_behavior_binding hold; -}; - -struct behavior_hold_tap_config { - int tapping_term_ms; - struct behavior_hold_tap_behaviors *behaviors; - enum flavor flavor; -}; - -// this data is specific for each hold-tap -struct active_hold_tap { - s32_t position; - // todo: move these params into the config->behaviors->tap and - u32_t param_hold; - u32_t param_tap; - s64_t timestamp; - bool is_decided; - bool is_hold; - const struct behavior_hold_tap_config *config; - struct k_delayed_work work; - bool work_is_cancelled; -}; - -// The undecided hold tap is the hold tap that needs to be decided before -// other keypress events can be released. While the undecided_hold_tap is -// not NULL, most events are captured in captured_events. -// After the hold_tap is decided, it will stay in the active_hold_taps until -// its key-up has been processed and the delayed work is cleaned up. -struct active_hold_tap *undecided_hold_tap = NULL; -struct active_hold_tap active_hold_taps[ZMK_BHV_HOLD_TAP_MAX_HELD] = {}; -// We capture most position_state_changed events and some modifiers_state_changed events. -const struct zmk_event_header *captured_events[ZMK_BHV_HOLD_TAP_MAX_CAPTURED_EVENTS] = {}; - -static int capture_event(const struct zmk_event_header *event) { - for (int i = 0; i < ZMK_BHV_HOLD_TAP_MAX_CAPTURED_EVENTS; i++) { - if (captured_events[i] == NULL) { - captured_events[i] = event; - return 0; - } - } - return -ENOMEM; -} - -static struct position_state_changed *find_captured_keydown_event(u32_t position) { - struct position_state_changed *last_match = NULL; - for (int i = 0; i < ZMK_BHV_HOLD_TAP_MAX_CAPTURED_EVENTS; i++) { - const struct zmk_event_header *eh = captured_events[i]; - if (eh == NULL) { - return last_match; - } - if (!is_position_state_changed(eh)) { - continue; - } - struct position_state_changed *position_event = cast_position_state_changed(eh); - if (position_event->position == position && position_event->state) { - last_match = position_event; - } - } - return last_match; -} - -const struct zmk_listener zmk_listener_behavior_hold_tap; - -static void release_captured_events() { - if (undecided_hold_tap != NULL) { - return; - } - - // We use a trick to prevent copying the captured_events array. - // - // Events for different mod-tap instances are separated by a NULL pointer. - // - // The first event popped will never be catched by the next active hold-tap - // because to start capturing a mod-tap-key-down event must first completely - // go through the events queue. - // - // Example of this release process; - // [mt2_down, k1_down, k1_up, mt2_up, null, ...] - // ^ - // mt2_down position event isn't captured because no hold-tap is active. - // mt2_down behavior event is handled, now we have an undecided hold-tap - // [null, k1_down, k1_up, mt2_up, null, ...] - // ^ - // k1_down is captured by the mt2 mod-tap - // !note that searches for find_captured_keydown_event by the mt2 behavior will stop at the - // first null encountered [mt1_down, null, k1_up, mt2_up, null, ...] - // ^ - // k1_up event is captured by the new hold-tap: - // [k1_down, k1_up, null, mt2_up, null, ...] - // ^ - // mt2_up event is not captured but causes release of mt2 behavior - // [k1_down, k1_up, null, null, null, ...] - // now mt2 will start releasing it's own captured positions. - for (int i = 0; i < ZMK_BHV_HOLD_TAP_MAX_CAPTURED_EVENTS; i++) { - const struct zmk_event_header *captured_event = captured_events[i]; - if (captured_event == NULL) { - return; - } - captured_events[i] = NULL; - if (undecided_hold_tap != NULL) { - k_msleep(10); - } - if (is_position_state_changed(captured_event)) { - struct position_state_changed *position_event = - cast_position_state_changed(captured_event); - LOG_DBG("Releasing key position event for position %d %s", position_event->position, - (position_event->state ? "pressed" : "released")); - } else { - struct keycode_state_changed *modifier_event = - cast_keycode_state_changed(captured_event); - LOG_DBG("Releasing mods changed event 0x%02X %s", modifier_event->keycode, - (modifier_event->state ? "pressed" : "released")); - } - ZMK_EVENT_RAISE_AT(captured_event, behavior_hold_tap); - } -} - -static struct active_hold_tap *find_hold_tap(u32_t position) { - for (int i = 0; i < ZMK_BHV_HOLD_TAP_MAX_HELD; i++) { - if (active_hold_taps[i].position == position) { - return &active_hold_taps[i]; - } - } - return NULL; -} - -static struct active_hold_tap *store_hold_tap(u32_t position, u32_t param_hold, u32_t param_tap, - s64_t timestamp, - const struct behavior_hold_tap_config *config) { - for (int i = 0; i < ZMK_BHV_HOLD_TAP_MAX_HELD; i++) { - if (active_hold_taps[i].position != ZMK_BHV_HOLD_TAP_POSITION_NOT_USED) { - continue; - } - active_hold_taps[i].position = position; - active_hold_taps[i].is_decided = false; - active_hold_taps[i].is_hold = false; - active_hold_taps[i].config = config; - active_hold_taps[i].param_hold = param_hold; - active_hold_taps[i].param_tap = param_tap; - active_hold_taps[i].timestamp = timestamp; - return &active_hold_taps[i]; - } - return NULL; -} - -static void clear_hold_tap(struct active_hold_tap *hold_tap) { - hold_tap->position = ZMK_BHV_HOLD_TAP_POSITION_NOT_USED; - hold_tap->is_decided = false; - hold_tap->is_hold = false; - hold_tap->work_is_cancelled = false; -} - -enum decision_moment { - HT_KEY_UP = 0, - HT_OTHER_KEY_DOWN = 1, - HT_OTHER_KEY_UP = 2, - HT_TIMER_EVENT = 3, -}; - -static void decide_balanced(struct active_hold_tap *hold_tap, enum decision_moment event) { - switch (event) { - case HT_KEY_UP: - hold_tap->is_hold = 0; - hold_tap->is_decided = true; - break; - case HT_OTHER_KEY_UP: - case HT_TIMER_EVENT: - hold_tap->is_hold = 1; - hold_tap->is_decided = true; - break; - default: - return; - } -} - -static void decide_tap_preferred(struct active_hold_tap *hold_tap, enum decision_moment event) { - switch (event) { - case HT_KEY_UP: - hold_tap->is_hold = 0; - hold_tap->is_decided = true; - break; - case HT_TIMER_EVENT: - hold_tap->is_hold = 1; - hold_tap->is_decided = true; - break; - default: - return; - } -} - -static void decide_hold_preferred(struct active_hold_tap *hold_tap, enum decision_moment event) { - switch (event) { - case HT_KEY_UP: - hold_tap->is_hold = 0; - hold_tap->is_decided = true; - break; - case HT_OTHER_KEY_DOWN: - case HT_TIMER_EVENT: - hold_tap->is_hold = 1; - hold_tap->is_decided = true; - break; - default: - return; - } -} - -static inline char *flavor_str(enum flavor flavor) { - switch (flavor) { - case ZMK_BHV_HOLD_TAP_FLAVOR_HOLD_PREFERRED: - return "hold-preferred"; - case ZMK_BHV_HOLD_TAP_FLAVOR_BALANCED: - return "balanced"; - case ZMK_BHV_HOLD_TAP_FLAVOR_TAP_PREFERRED: - return "tap-preferred"; - } - return "UNKNOWN FLAVOR"; -} - -static void decide_hold_tap(struct active_hold_tap *hold_tap, enum decision_moment event_type) { - if (hold_tap->is_decided) { - return; - } - - if (hold_tap != undecided_hold_tap) { - LOG_DBG("ERROR found undecided tap hold that is not the active tap hold"); - return; - } - - switch (hold_tap->config->flavor) { - case ZMK_BHV_HOLD_TAP_FLAVOR_HOLD_PREFERRED: - decide_hold_preferred(hold_tap, event_type); - case ZMK_BHV_HOLD_TAP_FLAVOR_BALANCED: - decide_balanced(hold_tap, event_type); - case ZMK_BHV_HOLD_TAP_FLAVOR_TAP_PREFERRED: - decide_tap_preferred(hold_tap, event_type); - } - - if (!hold_tap->is_decided) { - return; - } - - LOG_DBG("%d decided %s (%s event %d)", hold_tap->position, hold_tap->is_hold ? "hold" : "tap", - flavor_str(hold_tap->config->flavor), event_type); - undecided_hold_tap = NULL; - - struct zmk_behavior_binding_event event = { - .position = hold_tap->position, - .timestamp = hold_tap->timestamp, - }; - - struct zmk_behavior_binding binding; - if (hold_tap->is_hold) { - binding.behavior_dev = hold_tap->config->behaviors->hold.behavior_dev; - binding.param1 = hold_tap->param_hold; - binding.param2 = 0; - } else { - binding.behavior_dev = hold_tap->config->behaviors->tap.behavior_dev; - binding.param1 = hold_tap->param_tap; - binding.param2 = 0; - } - behavior_keymap_binding_pressed(&binding, event); - release_captured_events(); -} - -static int on_hold_tap_binding_pressed(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - struct device *dev = device_get_binding(binding->behavior_dev); - const struct behavior_hold_tap_config *cfg = dev->config_info; - - if (undecided_hold_tap != NULL) { - LOG_DBG("ERROR another hold-tap behavior is undecided."); - // if this happens, make sure the behavior events occur AFTER other position events. - return 0; - } - - struct active_hold_tap *hold_tap = - store_hold_tap(event.position, binding->param1, binding->param2, event.timestamp, cfg); - if (hold_tap == NULL) { - LOG_ERR("unable to store hold-tap info, did you press more than %d hold-taps?", - ZMK_BHV_HOLD_TAP_MAX_HELD); - return 0; - } - - LOG_DBG("%d new undecided hold_tap", event.position); - undecided_hold_tap = hold_tap; - - // if this behavior was queued we have to adjust the timer to only - // wait for the remaining time. - s32_t tapping_term_ms_left = (hold_tap->timestamp + cfg->tapping_term_ms) - k_uptime_get(); - if (tapping_term_ms_left > 0) { - k_delayed_work_submit(&hold_tap->work, K_MSEC(tapping_term_ms_left)); - } - - return 0; -} - -static int on_hold_tap_binding_released(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - struct active_hold_tap *hold_tap = find_hold_tap(event.position); - if (hold_tap == NULL) { - LOG_ERR("ACTIVE_HOLD_TAP_CLEANED_UP_TOO_EARLY"); - return 0; - } - - // If these events were queued, the timer event may be queued too late or not at all. - // We insert a timer event before the TH_KEY_UP event to verify. - int work_cancel_result = k_delayed_work_cancel(&hold_tap->work); - if (event.timestamp > (hold_tap->timestamp + hold_tap->config->tapping_term_ms)) { - decide_hold_tap(hold_tap, HT_TIMER_EVENT); - } - - decide_hold_tap(hold_tap, HT_KEY_UP); - - // todo: set up the binding and data items inside of the active_hold_tap struct - struct zmk_behavior_binding_event sub_behavior_data = { - .position = hold_tap->position, - .timestamp = hold_tap->timestamp, - }; - - struct zmk_behavior_binding sub_behavior_binding; - if (hold_tap->is_hold) { - sub_behavior_binding.behavior_dev = hold_tap->config->behaviors->hold.behavior_dev; - sub_behavior_binding.param1 = hold_tap->param_hold; - sub_behavior_binding.param2 = 0; - } else { - sub_behavior_binding.behavior_dev = hold_tap->config->behaviors->tap.behavior_dev; - sub_behavior_binding.param1 = hold_tap->param_tap; - sub_behavior_binding.param2 = 0; - } - behavior_keymap_binding_released(&sub_behavior_binding, sub_behavior_data); - - if (work_cancel_result == -EINPROGRESS) { - // let the timer handler clean up - // if we'd clear now, the timer may call back for an uninitialized active_hold_tap. - LOG_DBG("%d hold-tap timer work in event queue", event.position); - hold_tap->work_is_cancelled = true; - } else { - LOG_DBG("%d cleaning up hold-tap", event.position); - clear_hold_tap(hold_tap); - } - - return 0; -} - -static const struct behavior_driver_api behavior_hold_tap_driver_api = { - .binding_pressed = on_hold_tap_binding_pressed, - .binding_released = on_hold_tap_binding_released, -}; - -static int position_state_changed_listener(const struct zmk_event_header *eh) { - struct position_state_changed *ev = cast_position_state_changed(eh); - - if (undecided_hold_tap == NULL) { - LOG_DBG("%d bubble (no undecided hold_tap active)", ev->position); - return 0; - } - - if (undecided_hold_tap->position == ev->position) { - if (ev->state) { // keydown - LOG_ERR("hold-tap listener should be called before before most other listeners!"); - return 0; - } else { // keyup - LOG_DBG("%d bubble undecided hold-tap keyrelease event", undecided_hold_tap->position); - return 0; - } - } - - // If these events were queued, the timer event may be queued too late or not at all. - // We make a timer decision before the other key events are handled if the timer would - // have run out. - if (ev->timestamp > - (undecided_hold_tap->timestamp + undecided_hold_tap->config->tapping_term_ms)) { - decide_hold_tap(undecided_hold_tap, HT_TIMER_EVENT); - } - - if (!ev->state && find_captured_keydown_event(ev->position) == NULL) { - // no keydown event has been captured, let it bubble. - // we'll catch modifiers later in modifier_state_changed_listener - LOG_DBG("%d bubbling %d %s event", undecided_hold_tap->position, ev->position, - ev->state ? "down" : "up"); - return 0; - } - - LOG_DBG("%d capturing %d %s event", undecided_hold_tap->position, ev->position, - ev->state ? "down" : "up"); - capture_event(eh); - decide_hold_tap(undecided_hold_tap, ev->state ? HT_OTHER_KEY_DOWN : HT_OTHER_KEY_UP); - return ZMK_EV_EVENT_CAPTURED; -} - -static inline bool only_mods(struct keycode_state_changed *ev) { - return ev->usage_page == HID_USAGE_KEY && ev->keycode >= HID_USAGE_KEY_KEYBOARD_LEFTCONTROL && - ev->keycode <= HID_USAGE_KEY_KEYBOARD_RIGHT_GUI; -} - -static int keycode_state_changed_listener(const struct zmk_event_header *eh) { - // we want to catch layer-up events too... how? - struct keycode_state_changed *ev = cast_keycode_state_changed(eh); - - if (undecided_hold_tap == NULL) { - // LOG_DBG("0x%02X bubble (no undecided hold_tap active)", ev->keycode); - return 0; - } - - if (!only_mods(ev)) { - // LOG_DBG("0x%02X bubble (not a mod)", ev->keycode); - return 0; - } - - // only key-up events will bubble through position_state_changed_listener - // if a undecided_hold_tap is active. - LOG_DBG("%d capturing 0x%02X %s event", undecided_hold_tap->position, ev->keycode, - ev->state ? "down" : "up"); - capture_event(eh); - return ZMK_EV_EVENT_CAPTURED; -} - -int behavior_hold_tap_listener(const struct zmk_event_header *eh) { - if (is_position_state_changed(eh)) { - return position_state_changed_listener(eh); - } else if (is_keycode_state_changed(eh)) { - return keycode_state_changed_listener(eh); - } - return 0; -} - -ZMK_LISTENER(behavior_hold_tap, behavior_hold_tap_listener); -ZMK_SUBSCRIPTION(behavior_hold_tap, position_state_changed); -// this should be modifiers_state_changed, but unfrotunately that's not implemented yet. -ZMK_SUBSCRIPTION(behavior_hold_tap, keycode_state_changed); - -void behavior_hold_tap_timer_work_handler(struct k_work *item) { - struct active_hold_tap *hold_tap = CONTAINER_OF(item, struct active_hold_tap, work); - - if (hold_tap->work_is_cancelled) { - clear_hold_tap(hold_tap); - } else { - decide_hold_tap(hold_tap, HT_TIMER_EVENT); - } -} - -static int behavior_hold_tap_init(struct device *dev) { - static bool init_first_run = true; - - if (init_first_run) { - for (int i = 0; i < ZMK_BHV_HOLD_TAP_MAX_HELD; i++) { - k_delayed_work_init(&active_hold_taps[i].work, behavior_hold_tap_timer_work_handler); - active_hold_taps[i].position = ZMK_BHV_HOLD_TAP_POSITION_NOT_USED; - } - } - init_first_run = false; - return 0; -} - -struct behavior_hold_tap_data {}; -static struct behavior_hold_tap_data behavior_hold_tap_data; - -/* todo: get rid of unused param1 and param2. */ -#define _TRANSFORM_ENTRY(idx, node) \ - { \ - .behavior_dev = DT_LABEL(DT_INST_PHANDLE_BY_IDX(node, bindings, idx)), \ - .param1 = COND_CODE_0(DT_INST_PHA_HAS_CELL_AT_IDX(node, bindings, idx, param1), (0), \ - (DT_INST_PHA_BY_IDX(node, bindings, idx, param1))), \ - .param2 = COND_CODE_0(DT_INST_PHA_HAS_CELL_AT_IDX(node, bindings, idx, param2), (0), \ - (DT_INST_PHA_BY_IDX(node, bindings, idx, param2))), \ - }, - -#define KP_INST(n) \ - static struct behavior_hold_tap_behaviors behavior_hold_tap_behaviors_##n = { \ - .hold = _TRANSFORM_ENTRY(0, n).tap = _TRANSFORM_ENTRY(1, n)}; \ - static struct behavior_hold_tap_config behavior_hold_tap_config_##n = { \ - .behaviors = &behavior_hold_tap_behaviors_##n, \ - .tapping_term_ms = DT_INST_PROP(n, tapping_term_ms), \ - .flavor = DT_ENUM_IDX(DT_DRV_INST(n), flavor), \ - }; \ - DEVICE_AND_API_INIT(behavior_hold_tap_##n, DT_INST_LABEL(n), behavior_hold_tap_init, \ - &behavior_hold_tap_data, &behavior_hold_tap_config_##n, APPLICATION, \ - CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &behavior_hold_tap_driver_api); - -DT_INST_FOREACH_STATUS_OKAY(KP_INST) - -#endif \ No newline at end of file diff --git a/zmk/app/src/behaviors/behavior_key_press.c b/zmk/app/src/behaviors/behavior_key_press.c deleted file mode 100644 index bfcdbfc2..00000000 --- a/zmk/app/src/behaviors/behavior_key_press.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_behavior_key_press - -#include -#include -#include - -#include -#include -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -static int behavior_key_press_init(struct device *dev) { return 0; }; - -static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - LOG_DBG("position %d keycode 0x%02X", event.position, binding->param1); - - return ZMK_EVENT_RAISE(keycode_state_changed_from_encoded(binding->param1, true)); -} - -static int on_keymap_binding_released(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - LOG_DBG("position %d keycode 0x%02X", event.position, binding->param1); - - return ZMK_EVENT_RAISE(keycode_state_changed_from_encoded(binding->param1, false)); -} - -static const struct behavior_driver_api behavior_key_press_driver_api = { - .binding_pressed = on_keymap_binding_pressed, .binding_released = on_keymap_binding_released}; - -#define KP_INST(n) \ - DEVICE_AND_API_INIT(behavior_key_press_##n, DT_INST_LABEL(n), behavior_key_press_init, NULL, \ - NULL, APPLICATION, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, \ - &behavior_key_press_driver_api); - -DT_INST_FOREACH_STATUS_OKAY(KP_INST) diff --git a/zmk/app/src/behaviors/behavior_momentary_layer.c b/zmk/app/src/behaviors/behavior_momentary_layer.c deleted file mode 100644 index b1fb14b0..00000000 --- a/zmk/app/src/behaviors/behavior_momentary_layer.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_behavior_momentary_layer - -#include -#include -#include - -#include -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -struct behavior_mo_config {}; -struct behavior_mo_data {}; - -static int behavior_mo_init(struct device *dev) { return 0; }; - -static int mo_keymap_binding_pressed(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - LOG_DBG("position %d layer %d", event.position, binding->param1); - return zmk_keymap_layer_activate(binding->param1); -} - -static int mo_keymap_binding_released(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - LOG_DBG("position %d layer %d", event.position, binding->param1); - return zmk_keymap_layer_deactivate(binding->param1); -} - -static const struct behavior_driver_api behavior_mo_driver_api = { - .binding_pressed = mo_keymap_binding_pressed, .binding_released = mo_keymap_binding_released}; - -static const struct behavior_mo_config behavior_mo_config = {}; - -static struct behavior_mo_data behavior_mo_data; - -DEVICE_AND_API_INIT(behavior_mo, DT_INST_LABEL(0), behavior_mo_init, &behavior_mo_data, - &behavior_mo_config, APPLICATION, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, - &behavior_mo_driver_api); diff --git a/zmk/app/src/behaviors/behavior_none.c b/zmk/app/src/behaviors/behavior_none.c deleted file mode 100644 index 96ea9d5d..00000000 --- a/zmk/app/src/behaviors/behavior_none.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_behavior_none - -#include -#include -#include -#include - -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -struct behavior_none_config {}; -struct behavior_none_data {}; - -static int behavior_none_init(struct device *dev) { return 0; }; - -static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - return 0; -} - -static int on_keymap_binding_released(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - return 0; -} - -static const struct behavior_driver_api behavior_none_driver_api = { - .binding_pressed = on_keymap_binding_pressed, - .binding_released = on_keymap_binding_released, -}; - -static const struct behavior_none_config behavior_none_config = {}; - -static struct behavior_none_data behavior_none_data; - -DEVICE_AND_API_INIT(behavior_none, DT_INST_LABEL(0), behavior_none_init, &behavior_none_data, - &behavior_none_config, APPLICATION, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, - &behavior_none_driver_api); \ No newline at end of file diff --git a/zmk/app/src/behaviors/behavior_outputs.c b/zmk/app/src/behaviors/behavior_outputs.c deleted file mode 100644 index e5182bd4..00000000 --- a/zmk/app/src/behaviors/behavior_outputs.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_behavior_outputs - -#include -#include -#include - -#include - -#include -#include - -#include -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - switch (binding->param1) { - case OUT_TOG: - return zmk_endpoints_toggle(); - case OUT_USB: - return zmk_endpoints_select(ZMK_ENDPOINT_USB); - case OUT_BLE: - return zmk_endpoints_select(ZMK_ENDPOINT_BLE); - default: - LOG_ERR("Unknown output command: %d", binding->param1); - } - - return -ENOTSUP; -} - -static int behavior_out_init(struct device *dev) { return 0; } - -static const struct behavior_driver_api behavior_outputs_driver_api = { - .binding_pressed = on_keymap_binding_pressed, -}; - -DEVICE_AND_API_INIT(behavior_out, DT_INST_LABEL(0), behavior_out_init, NULL, NULL, APPLICATION, - CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &behavior_outputs_driver_api); diff --git a/zmk/app/src/behaviors/behavior_reset.c b/zmk/app/src/behaviors/behavior_reset.c deleted file mode 100644 index d1233a51..00000000 --- a/zmk/app/src/behaviors/behavior_reset.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_behavior_reset - -#include -#include -#include -#include - -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -struct behavior_reset_config { - int type; -}; - -static int behavior_reset_init(struct device *dev) { return 0; }; - -static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - struct device *dev = device_get_binding(binding->behavior_dev); - const struct behavior_reset_config *cfg = dev->config_info; - - // TODO: Correct magic code for going into DFU? - // See - // https://github.com/adafruit/Adafruit_nRF52_Bootloader/blob/d6b28e66053eea467166f44875e3c7ec741cb471/src/main.c#L107 - sys_reboot(cfg->type); - return 0; -} - -static const struct behavior_driver_api behavior_reset_driver_api = { - .binding_pressed = on_keymap_binding_pressed, -}; - -#define RST_INST(n) \ - static const struct behavior_reset_config behavior_reset_config_##n = { \ - .type = DT_INST_PROP(n, type)}; \ - DEVICE_AND_API_INIT(behavior_reset_##n, DT_INST_LABEL(n), behavior_reset_init, NULL, \ - &behavior_reset_config_##n, APPLICATION, \ - CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &behavior_reset_driver_api); - -DT_INST_FOREACH_STATUS_OKAY(RST_INST) \ No newline at end of file diff --git a/zmk/app/src/behaviors/behavior_rgb_underglow.c b/zmk/app/src/behaviors/behavior_rgb_underglow.c deleted file mode 100644 index 2ee6716a..00000000 --- a/zmk/app/src/behaviors/behavior_rgb_underglow.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_behavior_rgb_underglow - -#include -#include -#include - -#include -#include -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -static int behavior_rgb_underglow_init(struct device *dev) { return 0; } - -static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - switch (binding->param1) { - case RGB_TOG: - return zmk_rgb_underglow_toggle(); - case RGB_HUI: - return zmk_rgb_underglow_change_hue(1); - case RGB_HUD: - return zmk_rgb_underglow_change_hue(-1); - case RGB_SAI: - return zmk_rgb_underglow_change_sat(1); - case RGB_SAD: - return zmk_rgb_underglow_change_sat(-1); - case RGB_BRI: - return zmk_rgb_underglow_change_brt(1); - case RGB_BRD: - return zmk_rgb_underglow_change_brt(-1); - case RGB_SPI: - return zmk_rgb_underglow_change_spd(1); - case RGB_SPD: - return zmk_rgb_underglow_change_spd(-1); - case RGB_EFF: - return zmk_rgb_underglow_cycle_effect(1); - case RGB_EFR: - return zmk_rgb_underglow_cycle_effect(-1); - } - - return -ENOTSUP; -} - -static const struct behavior_driver_api behavior_rgb_underglow_driver_api = { - .binding_pressed = on_keymap_binding_pressed, -}; - -DEVICE_AND_API_INIT(behavior_rgb_underglow, DT_INST_LABEL(0), behavior_rgb_underglow_init, NULL, - NULL, APPLICATION, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, - &behavior_rgb_underglow_driver_api); \ No newline at end of file diff --git a/zmk/app/src/behaviors/behavior_sensor_rotate_key_press.c b/zmk/app/src/behaviors/behavior_sensor_rotate_key_press.c deleted file mode 100644 index d0a22961..00000000 --- a/zmk/app/src/behaviors/behavior_sensor_rotate_key_press.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_behavior_sensor_rotate_key_press - -#include -#include -#include - -#include -#include -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -static int behavior_sensor_rotate_key_press_init(struct device *dev) { return 0; }; - -static int on_sensor_binding_triggered(struct zmk_behavior_binding *binding, - struct device *sensor) { - struct sensor_value value; - int err; - u32_t keycode; - LOG_DBG("inc keycode 0x%02X dec keycode 0x%02X", binding->param1, binding->param2); - - err = sensor_channel_get(sensor, SENSOR_CHAN_ROTATION, &value); - - if (err) { - LOG_WRN("Failed to ge sensor rotation value: %d", err); - return err; - } - - switch (value.val1) { - case 1: - keycode = binding->param1; - break; - case -1: - keycode = binding->param2; - break; - default: - return -ENOTSUP; - } - - LOG_DBG("SEND %d", keycode); - - ZMK_EVENT_RAISE(keycode_state_changed_from_encoded(keycode, true)); - - // TODO: Better way to do this? - k_msleep(5); - - return ZMK_EVENT_RAISE(keycode_state_changed_from_encoded(keycode, false)); -} - -static const struct behavior_driver_api behavior_sensor_rotate_key_press_driver_api = { - .sensor_binding_triggered = on_sensor_binding_triggered}; - -#define KP_INST(n) \ - DEVICE_AND_API_INIT(behavior_sensor_rotate_key_press_##n, DT_INST_LABEL(n), \ - behavior_sensor_rotate_key_press_init, NULL, NULL, APPLICATION, \ - CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, \ - &behavior_sensor_rotate_key_press_driver_api); - -DT_INST_FOREACH_STATUS_OKAY(KP_INST) \ No newline at end of file diff --git a/zmk/app/src/behaviors/behavior_toggle_layer.c b/zmk/app/src/behaviors/behavior_toggle_layer.c deleted file mode 100644 index b3c69614..00000000 --- a/zmk/app/src/behaviors/behavior_toggle_layer.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_behavior_toggle_layer - -#include -#include -#include - -#include -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -struct behavior_tog_config {}; -struct behavior_tog_data {}; - -static int behavior_tog_init(struct device *dev) { return 0; }; - -static int tog_keymap_binding_pressed(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - LOG_DBG("position %d layer %d", event.position, binding->param1); - return zmk_keymap_layer_toggle(binding->param1); -} - -static int tog_keymap_binding_released(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - LOG_DBG("position %d layer %d", event.position, binding->param1); - return 0; -} - -static const struct behavior_driver_api behavior_tog_driver_api = { - .binding_pressed = tog_keymap_binding_pressed, - .binding_released = tog_keymap_binding_released, -}; - -static const struct behavior_tog_config behavior_tog_config = {}; - -static struct behavior_tog_data behavior_tog_data; - -DEVICE_AND_API_INIT(behavior_tog, DT_INST_LABEL(0), behavior_tog_init, &behavior_tog_data, - &behavior_tog_config, APPLICATION, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, - &behavior_tog_driver_api); diff --git a/zmk/app/src/behaviors/behavior_transparent.c b/zmk/app/src/behaviors/behavior_transparent.c deleted file mode 100644 index cede3699..00000000 --- a/zmk/app/src/behaviors/behavior_transparent.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_behavior_transparent - -#include -#include -#include -#include - -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -struct behavior_transparent_config {}; -struct behavior_transparent_data {}; - -static int behavior_transparent_init(struct device *dev) { return 0; }; - -static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - return 1; -} - -static int on_keymap_binding_released(struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event) { - return 1; -} - -static const struct behavior_driver_api behavior_transparent_driver_api = { - .binding_pressed = on_keymap_binding_pressed, - .binding_released = on_keymap_binding_released, -}; - -static const struct behavior_transparent_config behavior_transparent_config = {}; - -static struct behavior_transparent_data behavior_transparent_data; - -DEVICE_AND_API_INIT(behavior_transparent, DT_INST_LABEL(0), behavior_transparent_init, - &behavior_transparent_data, &behavior_transparent_config, APPLICATION, - CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &behavior_transparent_driver_api); \ No newline at end of file diff --git a/zmk/app/src/ble.c b/zmk/app/src/ble.c deleted file mode 100644 index 1ab61d0c..00000000 --- a/zmk/app/src/ble.c +++ /dev/null @@ -1,596 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#if IS_ENABLED(CONFIG_SETTINGS) - -#include - -#endif - -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#include -#include -#include -#include -#include - -static struct bt_conn *auth_passkey_entry_conn; -static u8_t passkey_entries[6] = {0, 0, 0, 0, 0, 0}; -static u8_t passkey_digit = 0; - -#if IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL) -#define PROFILE_COUNT (CONFIG_BT_MAX_PAIRED - 1) -#else -#define PROFILE_COUNT CONFIG_BT_MAX_PAIRED -#endif - -enum advertising_type { - ZMK_ADV_NONE, - ZMK_ADV_DIR, - ZMK_ADV_CONN, -} advertising_status; - -#define CURR_ADV(adv) (adv << 4) - -#define ZMK_ADV_CONN_NAME \ - BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONNECTABLE | BT_LE_ADV_OPT_ONE_TIME, BT_GAP_ADV_FAST_INT_MIN_2, \ - BT_GAP_ADV_FAST_INT_MAX_2, NULL) - -static struct zmk_ble_profile profiles[PROFILE_COUNT]; -static u8_t active_profile; - -#define DEVICE_NAME CONFIG_BT_DEVICE_NAME -#define DEVICE_NAME_LEN (sizeof(DEVICE_NAME) - 1) - -static const struct bt_data zmk_ble_ad[] = { -#if !IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL) - BT_DATA(BT_DATA_NAME_COMPLETE, DEVICE_NAME, DEVICE_NAME_LEN), - BT_DATA_BYTES(BT_DATA_GAP_APPEARANCE, 0xC1, 0x03), -#endif - BT_DATA_BYTES(BT_DATA_FLAGS, (BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR)), - BT_DATA_BYTES(BT_DATA_UUID16_SOME, -#if !IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL) - 0x12, 0x18, /* HID Service */ -#endif - 0x0f, 0x18 /* Battery Service */ - ), -#if IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL) - BT_DATA_BYTES(BT_DATA_UUID128_ALL, ZMK_SPLIT_BT_SERVICE_UUID) -#endif -}; - -#if IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL) - -static bt_addr_le_t peripheral_addr; - -#endif /* IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL) */ - -static void raise_profile_changed_event() { - struct ble_active_profile_changed *ev = new_ble_active_profile_changed(); - ev->index = active_profile; - ev->profile = &profiles[active_profile]; - - ZMK_EVENT_RAISE(ev); -} - -static void raise_profile_changed_event_callback(struct k_work *work) { - raise_profile_changed_event(); -} - -K_WORK_DEFINE(raise_profile_changed_event_work, raise_profile_changed_event_callback); - -static bool active_profile_is_open() { - return !bt_addr_le_cmp(&profiles[active_profile].peer, BT_ADDR_LE_ANY); -} - -void set_profile_address(u8_t index, const bt_addr_le_t *addr) { - char setting_name[15]; - char addr_str[BT_ADDR_LE_STR_LEN]; - - bt_addr_le_to_str(addr, addr_str, sizeof(addr_str)); - - memcpy(&profiles[index].peer, addr, sizeof(bt_addr_le_t)); - sprintf(setting_name, "ble/profiles/%d", index); - LOG_DBG("Setting profile addr for %s to %s", log_strdup(setting_name), log_strdup(addr_str)); - settings_save_one(setting_name, &profiles[index], sizeof(struct zmk_ble_profile)); - raise_profile_changed_event(); -} - -bool zmk_ble_active_profile_is_connected() { - struct bt_conn *conn; - bt_addr_le_t *addr = zmk_ble_active_profile_addr(); - if (!bt_addr_le_cmp(addr, BT_ADDR_LE_ANY)) { - return false; - } else if ((conn = bt_conn_lookup_addr_le(BT_ID_DEFAULT, addr)) == NULL) { - return false; - } - - bt_conn_unref(conn); - - return true; -} - -#define CHECKED_ADV_STOP() \ - err = bt_le_adv_stop(); \ - advertising_status = ZMK_ADV_NONE; \ - if (err) { \ - LOG_ERR("Failed to stop advertising (err %d)", err); \ - return err; \ - } - -#define CHECKED_DIR_ADV() \ - addr = zmk_ble_active_profile_addr(); \ - conn = bt_conn_lookup_addr_le(BT_ID_DEFAULT, addr); \ - if (conn != NULL) { /* TODO: Check status of connection */ \ - LOG_DBG("Skipping advertising, profile host is already connected"); \ - bt_conn_unref(conn); \ - return 0; \ - } \ - err = bt_le_adv_start(BT_LE_ADV_CONN_DIR_LOW_DUTY(addr), zmk_ble_ad, ARRAY_SIZE(zmk_ble_ad), \ - NULL, 0); \ - if (err) { \ - LOG_ERR("Advertising failed to start (err %d)", err); \ - return err; \ - } \ - advertising_status = ZMK_ADV_DIR; - -#define CHECKED_OPEN_ADV() \ - err = bt_le_adv_start(ZMK_ADV_CONN_NAME, zmk_ble_ad, ARRAY_SIZE(zmk_ble_ad), NULL, 0); \ - if (err) { \ - LOG_ERR("Advertising failed to start (err %d)", err); \ - return err; \ - } \ - advertising_status = ZMK_ADV_CONN; - -int update_advertising() { - int err = 0; - bt_addr_le_t *addr; - struct bt_conn *conn; - enum advertising_type desired_adv = ZMK_ADV_NONE; - - if (active_profile_is_open()) { - desired_adv = ZMK_ADV_CONN; - } else if (!zmk_ble_active_profile_is_connected()) { - desired_adv = ZMK_ADV_CONN; - // Need to fix directed advertising for privacy centrals. See - // https://github.com/zephyrproject-rtos/zephyr/pull/14984 char - // addr_str[BT_ADDR_LE_STR_LEN]; bt_addr_le_to_str(zmk_ble_active_profile_addr(), addr_str, - // sizeof(addr_str)); - - // LOG_DBG("Directed advertising to %s", log_strdup(addr_str)); - // desired_adv = ZMK_ADV_DIR; - } - LOG_DBG("advertising from %d to %d", advertising_status, desired_adv); - - switch (desired_adv + CURR_ADV(advertising_status)) { - case ZMK_ADV_NONE + CURR_ADV(ZMK_ADV_DIR): - case ZMK_ADV_NONE + CURR_ADV(ZMK_ADV_CONN): - CHECKED_ADV_STOP(); - break; - case ZMK_ADV_DIR + CURR_ADV(ZMK_ADV_DIR): - case ZMK_ADV_DIR + CURR_ADV(ZMK_ADV_CONN): - CHECKED_ADV_STOP(); - CHECKED_DIR_ADV(); - break; - case ZMK_ADV_DIR + CURR_ADV(ZMK_ADV_NONE): - CHECKED_DIR_ADV(); - break; - case ZMK_ADV_CONN + CURR_ADV(ZMK_ADV_DIR): - CHECKED_ADV_STOP(); - CHECKED_OPEN_ADV(); - break; - case ZMK_ADV_CONN + CURR_ADV(ZMK_ADV_NONE): - CHECKED_OPEN_ADV(); - break; - } - - return 0; -}; - -static void update_advertising_callback(struct k_work *work) { update_advertising(); } - -K_WORK_DEFINE(update_advertising_work, update_advertising_callback); - -int zmk_ble_clear_bonds() { - LOG_DBG(""); - - if (bt_addr_le_cmp(&profiles[active_profile].peer, BT_ADDR_LE_ANY)) { - LOG_DBG("Unpairing!"); - bt_unpair(BT_ID_DEFAULT, &profiles[active_profile].peer); - set_profile_address(active_profile, BT_ADDR_LE_ANY); - } - - update_advertising(); - - return 0; -}; - -int zmk_ble_prof_select(u8_t index) { - LOG_DBG("profile %d", index); - if (active_profile == index) { - return 0; - } - - active_profile = index; - settings_save_one("ble/active_profile", &active_profile, sizeof(active_profile)); - - update_advertising(); - - raise_profile_changed_event(); - - return 0; -}; - -int zmk_ble_prof_next() { - LOG_DBG(""); - return zmk_ble_prof_select((active_profile + 1) % PROFILE_COUNT); -}; - -int zmk_ble_prof_prev() { - LOG_DBG(""); - return zmk_ble_prof_select((active_profile + PROFILE_COUNT - 1) % PROFILE_COUNT); -}; - -bt_addr_le_t *zmk_ble_active_profile_addr() { return &profiles[active_profile].peer; } - -char *zmk_ble_active_profile_name() { return profiles[active_profile].name; } - -#if IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL) - -void zmk_ble_set_peripheral_addr(bt_addr_le_t *addr) { - memcpy(&peripheral_addr, addr, sizeof(bt_addr_le_t)); - settings_save_one("ble/peripheral_address", addr, sizeof(bt_addr_le_t)); -} - -#endif /* IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL) */ - -#if IS_ENABLED(CONFIG_SETTINGS) - -static int ble_profiles_handle_set(const char *name, size_t len, settings_read_cb read_cb, - void *cb_arg) { - const char *next; - - LOG_DBG("Setting BLE value %s", log_strdup(name)); - - if (settings_name_steq(name, "profiles", &next) && next) { - char *endptr; - u8_t idx = strtoul(next, &endptr, 10); - if (*endptr != '\0') { - LOG_WRN("Invalid profile index: %s", log_strdup(next)); - return -EINVAL; - } - - if (len != sizeof(struct zmk_ble_profile)) { - LOG_ERR("Invalid profile size (got %d expected %d)", len, - sizeof(struct zmk_ble_profile)); - return -EINVAL; - } - - if (idx >= PROFILE_COUNT) { - LOG_WRN("Profile address for index %d is larger than max of %d", idx, PROFILE_COUNT); - return -EINVAL; - } - - int err = read_cb(cb_arg, &profiles[idx], sizeof(struct zmk_ble_profile)); - if (err <= 0) { - LOG_ERR("Failed to handle profile address from settings (err %d)", err); - return err; - } - - char addr_str[BT_ADDR_LE_STR_LEN]; - bt_addr_le_to_str(&profiles[idx].peer, addr_str, sizeof(addr_str)); - - LOG_DBG("Loaded %s address for profile %d", log_strdup(addr_str), idx); - } else if (settings_name_steq(name, "active_profile", &next) && !next) { - if (len != sizeof(active_profile)) { - return -EINVAL; - } - - int err = read_cb(cb_arg, &active_profile, sizeof(active_profile)); - if (err <= 0) { - LOG_ERR("Failed to handle active profile from settings (err %d)", err); - return err; - } - } -#if IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL) - else if (settings_name_steq(name, "peripheral_address", &next) && !next) { - if (len != sizeof(bt_addr_le_t)) { - return -EINVAL; - } - - int err = read_cb(cb_arg, &peripheral_addr, sizeof(bt_addr_le_t)); - if (err <= 0) { - LOG_ERR("Failed to handle peripheral address from settings (err %d)", err); - return err; - } - } -#endif - - return 0; -}; - -struct settings_handler profiles_handler = {.name = "ble", .h_set = ble_profiles_handle_set}; -#endif /* IS_ENABLED(CONFIG_SETTINGS) */ - -static bool is_conn_active_profile(const struct bt_conn *conn) { - return bt_addr_le_cmp(bt_conn_get_dst(conn), &profiles[active_profile].peer) == 0; -} - -static void connected(struct bt_conn *conn, u8_t err) { - char addr[BT_ADDR_LE_STR_LEN]; - bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr)); - - advertising_status = ZMK_ADV_NONE; - - if (err) { - LOG_WRN("Failed to connect to %s (%u)", log_strdup(addr), err); - update_advertising(); - return; - } - - LOG_DBG("Connected %s", log_strdup(addr)); - - bt_conn_le_param_update(conn, BT_LE_CONN_PARAM(0x0006, 0x000c, 30, 400)); - -#if IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL) - bt_conn_le_phy_update(conn, BT_CONN_LE_PHY_PARAM_2M); -#endif - - if (bt_conn_set_security(conn, BT_SECURITY_L2)) { - LOG_ERR("Failed to set security"); - } - - update_advertising(); - - if (is_conn_active_profile(conn)) { - LOG_DBG("Active profile connected"); - raise_profile_changed_event(); - } -} - -static void disconnected(struct bt_conn *conn, u8_t reason) { - char addr[BT_ADDR_LE_STR_LEN]; - - bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr)); - - LOG_DBG("Disconnected from %s (reason 0x%02x)", log_strdup(addr), reason); - - // We need to do this in a work callback, otherwise the advertising update will still see the - // connection for a profile as active, and not start advertising yet. - k_work_submit(&update_advertising_work); - - if (is_conn_active_profile(conn)) { - LOG_DBG("Active profile disconnected"); - k_work_submit(&raise_profile_changed_event_work); - } -} - -static void security_changed(struct bt_conn *conn, bt_security_t level, enum bt_security_err err) { - char addr[BT_ADDR_LE_STR_LEN]; - - bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr)); - - if (!err) { - LOG_DBG("Security changed: %s level %u", log_strdup(addr), level); - } else { - LOG_ERR("Security failed: %s level %u err %d", log_strdup(addr), level, err); - } -} - -static struct bt_conn_cb conn_callbacks = { - .connected = connected, - .disconnected = disconnected, - .security_changed = security_changed, -}; - -static void auth_passkey_display(struct bt_conn *conn, unsigned int passkey) { - char addr[BT_ADDR_LE_STR_LEN]; - - bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr)); - - LOG_DBG("Passkey for %s: %06u", log_strdup(addr), passkey); -} - -#ifdef CONFIG_ZMK_BLE_PASSKEY_ENTRY - -static void auth_passkey_entry(struct bt_conn *conn) { - char addr[BT_ADDR_LE_STR_LEN]; - - bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr)); - - LOG_DBG("Passkey entry requested for %s", log_strdup(addr)); - auth_passkey_entry_conn = bt_conn_ref(conn); -} - -#endif - -static void auth_cancel(struct bt_conn *conn) { - char addr[BT_ADDR_LE_STR_LEN]; - - bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr)); - - if (auth_passkey_entry_conn) { - bt_conn_unref(auth_passkey_entry_conn); - auth_passkey_entry_conn = NULL; - } - - passkey_digit = 0; - - LOG_DBG("Pairing cancelled: %s", log_strdup(addr)); -} - -#if !IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL) -static enum bt_security_err auth_pairing_accept(struct bt_conn *conn, - const struct bt_conn_pairing_feat *const feat) { - struct bt_conn_info info; - bt_conn_get_info(conn, &info); - - LOG_DBG("role %d, open? %s", info.role, active_profile_is_open() ? "yes" : "no"); - if (info.role == BT_CONN_ROLE_SLAVE && !active_profile_is_open()) { - LOG_WRN("Rejecting pairing request to taken profile %d", active_profile); - return BT_SECURITY_ERR_PAIR_NOT_ALLOWED; - } - - return BT_SECURITY_ERR_SUCCESS; -}; -#endif /* !IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL) */ - -static void auth_pairing_complete(struct bt_conn *conn, bool bonded) { - struct bt_conn_info info; - char addr[BT_ADDR_LE_STR_LEN]; - const bt_addr_le_t *dst = bt_conn_get_dst(conn); - - bt_addr_le_to_str(dst, addr, sizeof(addr)); - bt_conn_get_info(conn, &info); - - if (info.role != BT_CONN_ROLE_SLAVE) { - LOG_DBG("SKIPPING FOR ROLE %d", info.role); - return; - } - -#if !IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL) - if (!active_profile_is_open()) { - LOG_ERR("Pairing completed but current profile is not open: %s", log_strdup(addr)); - bt_unpair(BT_ID_DEFAULT, dst); - return; - } -#endif /* !IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL) */ - - set_profile_address(active_profile, dst); - update_advertising(); -}; - -static struct bt_conn_auth_cb zmk_ble_auth_cb_display = { -#if !IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL) - .pairing_accept = auth_pairing_accept, -#endif /* !IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL) */ - .pairing_complete = auth_pairing_complete, -// .passkey_display = auth_passkey_display, - -#ifdef CONFIG_ZMK_BLE_PASSKEY_ENTRY - .passkey_entry = auth_passkey_entry, -#endif - .cancel = auth_cancel, -}; - -static void zmk_ble_ready(int err) { - LOG_DBG("ready? %d", err); - if (err) { - LOG_ERR("Bluetooth init failed (err %d)", err); - return; - } - - update_advertising(); -} - -static int zmk_ble_init(struct device *_arg) { - int err = bt_enable(NULL); - - if (err) { - LOG_ERR("BLUETOOTH FAILED (%d)", err); - return err; - } - -#if IS_ENABLED(CONFIG_SETTINGS) - settings_subsys_init(); - - err = settings_register(&profiles_handler); - if (err) { - LOG_ERR("Failed to setup the profile settings handler (err %d)", err); - return err; - } - - settings_load(); - -#endif - -#if IS_ENABLED(CONFIG_ZMK_BLE_CLEAR_BONDS_ON_START) - LOG_WRN("Clearing all existing BLE bond information from the keyboard"); - - for (int i = 0; i < 10; i++) { - bt_unpair(i, NULL); - } - - for (int i = 0; i < PROFILE_COUNT; i++) { - char setting_name[15]; - sprintf(setting_name, "ble/profiles/%d", i); - - err = settings_delete(setting_name); - if (err) { - LOG_ERR("Failed to delete setting: %d", err); - } - } -#endif - - bt_conn_cb_register(&conn_callbacks); - bt_conn_auth_cb_register(&zmk_ble_auth_cb_display); - - zmk_ble_ready(0); - - return 0; -} - -int zmk_ble_unpair_all() { - int resp = 0; - for (int i = BT_ID_DEFAULT; i < CONFIG_BT_ID_MAX; i++) { - - int err = bt_unpair(BT_ID_DEFAULT, NULL); - if (err) { - resp = err; - LOG_ERR("Failed to unpair devices (err %d)", err); - } - } - - return resp; -}; - -bool zmk_ble_handle_key_user(struct zmk_key_event *key_event) { - zmk_key key = key_event->key; - - if (!auth_passkey_entry_conn) { - return true; - } - - if (key < NUMBER_1 || key > NUMBER_0) { - return true; - } - - u32_t val = (key == NUMBER_0) ? 0 : (key - NUMBER_1 + 1); - - passkey_entries[passkey_digit++] = val; - - if (passkey_digit == 6) { - u32_t passkey = 0; - for (int i = 5; i >= 0; i--) { - passkey = (passkey * 10) + val; - } - bt_conn_auth_passkey_entry(auth_passkey_entry_conn, passkey); - bt_conn_unref(auth_passkey_entry_conn); - auth_passkey_entry_conn = NULL; - } - - return false; -} - -SYS_INIT(zmk_ble_init, APPLICATION, CONFIG_ZMK_BLE_INIT_PRIORITY); diff --git a/zmk/app/src/display.c b/zmk/app/src/display.c deleted file mode 100644 index ecd19086..00000000 --- a/zmk/app/src/display.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -#include -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#include -#include - -#define ZMK_DISPLAY_NAME CONFIG_LVGL_DISPLAY_DEV_NAME - -static struct device *display; - -static lv_obj_t *screen; - -int zmk_display_init() { - lv_obj_t *hello_world_label; - lv_obj_t *count_label; - - LOG_DBG(""); - - display = device_get_binding(ZMK_DISPLAY_NAME); - if (display == NULL) { - LOG_ERR("Failed to find display device"); - return -EINVAL; - } - - screen = lv_obj_create(NULL, NULL); - lv_scr_load(screen); - - hello_world_label = lv_label_create(lv_scr_act(), NULL); - lv_label_set_text(hello_world_label, "ZMK v0.1.0"); - lv_obj_align(hello_world_label, NULL, LV_ALIGN_CENTER, 0, 0); - count_label = lv_label_create(lv_scr_act(), NULL); - lv_label_set_text(count_label, CONFIG_ZMK_KEYBOARD_NAME); - lv_obj_align(count_label, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, 0); - lv_task_handler(); - display_blanking_off(display); - - return 0; -} - -void zmk_display_task_handler() { - lv_tick_inc(10); - lv_task_handler(); - k_sleep(K_MSEC(10)); -} diff --git a/zmk/app/src/endpoints.c b/zmk/app/src/endpoints.c deleted file mode 100644 index 406d23b6..00000000 --- a/zmk/app/src/endpoints.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#define DEFAULT_ENDPOINT \ - COND_CODE_1(IS_ENABLED(CONFIG_ZMK_BLE), (ZMK_ENDPOINT_BLE), (ZMK_ENDPOINT_USB)) - -static enum zmk_endpoint current_endpoint = DEFAULT_ENDPOINT; -static enum zmk_endpoint preferred_endpoint = - ZMK_ENDPOINT_USB; /* Used if multiple endpoints are ready */ - -static void update_current_endpoint(); - -int zmk_endpoints_select(enum zmk_endpoint endpoint) { - LOG_DBG("Selected endpoint %d", endpoint); - - if (preferred_endpoint == endpoint) { - return 0; - } - - preferred_endpoint = endpoint; - -#if IS_ENABLED(CONFIG_SETTINGS) - settings_save_one("endpoints/preferred", &preferred_endpoint, sizeof(preferred_endpoint)); -#endif - - update_current_endpoint(); - - return 0; -} - -int zmk_endpoints_toggle() { - enum zmk_endpoint new_endpoint = - (preferred_endpoint == ZMK_ENDPOINT_USB) ? ZMK_ENDPOINT_BLE : ZMK_ENDPOINT_USB; - return zmk_endpoints_select(new_endpoint); -} - -static int send_keyboard_report() { - struct zmk_hid_keyboard_report *keyboard_report = zmk_hid_get_keyboard_report(); - - switch (current_endpoint) { -#if IS_ENABLED(CONFIG_ZMK_USB) - case ZMK_ENDPOINT_USB: { - int err = zmk_usb_hid_send_report((u8_t *)keyboard_report, sizeof(*keyboard_report)); - if (err) { - LOG_ERR("FAILED TO SEND OVER USB: %d", err); - } - return err; - } -#endif /* IS_ENABLED(CONFIG_ZMK_USB) */ - -#if IS_ENABLED(CONFIG_ZMK_BLE) - case ZMK_ENDPOINT_BLE: { - int err = zmk_hog_send_keyboard_report(&keyboard_report->body); - if (err) { - LOG_ERR("FAILED TO SEND OVER HOG: %d", err); - } - return err; - } -#endif /* IS_ENABLED(CONFIG_ZMK_BLE) */ - - default: - LOG_ERR("Unsupported endpoint %d", current_endpoint); - return -ENOTSUP; - } -} - -static int send_consumer_report() { - struct zmk_hid_consumer_report *consumer_report = zmk_hid_get_consumer_report(); - - switch (current_endpoint) { -#if IS_ENABLED(CONFIG_ZMK_USB) - case ZMK_ENDPOINT_USB: { - int err = zmk_usb_hid_send_report((u8_t *)consumer_report, sizeof(*consumer_report)); - if (err) { - LOG_ERR("FAILED TO SEND OVER USB: %d", err); - } - return err; - } -#endif /* IS_ENABLED(CONFIG_ZMK_USB) */ - -#if IS_ENABLED(CONFIG_ZMK_BLE) - case ZMK_ENDPOINT_BLE: { - int err = zmk_hog_send_consumer_report(&consumer_report->body); - if (err) { - LOG_ERR("FAILED TO SEND OVER HOG: %d", err); - } - return err; - } -#endif /* IS_ENABLED(CONFIG_ZMK_BLE) */ - - default: - LOG_ERR("Unsupported endpoint %d", current_endpoint); - return -ENOTSUP; - } -} - -int zmk_endpoints_send_report(u8_t usage_page) { - - LOG_DBG("usage page 0x%02X", usage_page); - switch (usage_page) { - case HID_USAGE_KEY: - return send_keyboard_report(); - case HID_USAGE_CONSUMER: - return send_consumer_report(); - default: - LOG_ERR("Unsupported usage page %d", usage_page); - return -ENOTSUP; - } -} - -#if IS_ENABLED(CONFIG_SETTINGS) - -static int endpoints_handle_set(const char *name, size_t len, settings_read_cb read_cb, - void *cb_arg) { - LOG_DBG("Setting endpoint value %s", log_strdup(name)); - - if (settings_name_steq(name, "preferred", NULL)) { - if (len != sizeof(enum zmk_endpoint)) { - LOG_ERR("Invalid endpoint size (got %d expected %d)", len, sizeof(enum zmk_endpoint)); - return -EINVAL; - } - - int err = read_cb(cb_arg, &preferred_endpoint, sizeof(enum zmk_endpoint)); - if (err <= 0) { - LOG_ERR("Failed to read preferred endpoint from settings (err %d)", err); - return err; - } - - update_current_endpoint(); - } - - return 0; -} - -struct settings_handler endpoints_handler = {.name = "endpoints", .h_set = endpoints_handle_set}; -#endif /* IS_ENABLED(CONFIG_SETTINGS) */ - -static int zmk_endpoints_init(struct device *_arg) { -#if IS_ENABLED(CONFIG_SETTINGS) - settings_subsys_init(); - - int err = settings_register(&endpoints_handler); - if (err) { - LOG_ERR("Failed to register the endpoints settings handler (err %d)", err); - return err; - } - - settings_load(); -#endif - - return 0; -} - -static bool is_usb_ready() { -#if IS_ENABLED(CONFIG_ZMK_USB) - return zmk_usb_is_hid_ready(); -#else - return false; -#endif -} - -static bool is_ble_ready() { -#if IS_ENABLED(CONFIG_ZMK_BLE) - return zmk_ble_active_profile_is_connected(); -#else - return false; -#endif -} - -static enum zmk_endpoint get_selected_endpoint() { - if (is_ble_ready()) { - if (is_usb_ready()) { - LOG_DBG("Both endpoints are ready. Using %d", preferred_endpoint); - return preferred_endpoint; - } - - LOG_DBG("Only BLE is ready."); - return ZMK_ENDPOINT_BLE; - } - - if (is_usb_ready()) { - LOG_DBG("Only USB is ready."); - return ZMK_ENDPOINT_USB; - } - - LOG_DBG("No endpoints are ready."); - return DEFAULT_ENDPOINT; -} - -static void disconnect_current_endpoint() { - zmk_hid_keyboard_clear(); - zmk_hid_consumer_clear(); - - zmk_endpoints_send_report(HID_USAGE_KEY); - zmk_endpoints_send_report(HID_USAGE_CONSUMER); -} - -static void update_current_endpoint() { - enum zmk_endpoint new_endpoint = get_selected_endpoint(); - - if (new_endpoint != current_endpoint) { - /* Cancel all current keypresses so keys don't stay held on the old endpoint. */ - disconnect_current_endpoint(); - - current_endpoint = new_endpoint; - LOG_INF("Endpoint changed: %d", current_endpoint); - } -} - -static int endpoint_listener(const struct zmk_event_header *eh) { - update_current_endpoint(); - return 0; -} - -ZMK_LISTENER(endpoint_listener, endpoint_listener); -#if IS_ENABLED(CONFIG_ZMK_USB) -ZMK_SUBSCRIPTION(endpoint_listener, usb_conn_state_changed); -#endif -#if IS_ENABLED(CONFIG_ZMK_BLE) -ZMK_SUBSCRIPTION(endpoint_listener, ble_active_profile_changed); -#endif - -SYS_INIT(zmk_endpoints_init, APPLICATION, CONFIG_APPLICATION_INIT_PRIORITY); diff --git a/zmk/app/src/event_manager.c b/zmk/app/src/event_manager.c deleted file mode 100644 index 226f3ce8..00000000 --- a/zmk/app/src/event_manager.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#include - -extern struct zmk_event_type *__event_type_start[]; -extern struct zmk_event_type *__event_type_end[]; - -extern struct zmk_event_subscription __event_subscriptions_start[]; -extern struct zmk_event_subscription __event_subscriptions_end[]; - -int zmk_event_manager_handle_from(struct zmk_event_header *event, u8_t start_index) { - int ret = 0; - u8_t len = __event_subscriptions_end - __event_subscriptions_start; - for (int i = start_index; i < len; i++) { - struct zmk_event_subscription *ev_sub = __event_subscriptions_start + i; - if (ev_sub->event_type == event->event) { - ret = ev_sub->listener->callback(event); - if (ret < 0) { - LOG_DBG("Listener returned an error: %d", ret); - goto release; - } else if (ret > 0) { - switch (ret) { - case ZMK_EV_EVENT_HANDLED: - LOG_DBG("Listener handled the event"); - ret = 0; - goto release; - case ZMK_EV_EVENT_CAPTURED: - LOG_DBG("Listener captured the event"); - event->last_listener_index = i; - // Listeners are expected to free events they capture - return 0; - } - } - } - } - -release: - k_free(event); - return ret; -} - -int zmk_event_manager_raise(struct zmk_event_header *event) { - return zmk_event_manager_handle_from(event, 0); -} - -int zmk_event_manager_raise_after(struct zmk_event_header *event, - const struct zmk_listener *listener) { - u8_t len = __event_subscriptions_end - __event_subscriptions_start; - for (int i = 0; i < len; i++) { - struct zmk_event_subscription *ev_sub = __event_subscriptions_start + i; - - if (ev_sub->event_type == event->event && ev_sub->listener == listener) { - return zmk_event_manager_handle_from(event, i + 1); - } - } - - LOG_WRN("Unable to find where to raise this after event"); - - return -EINVAL; -} - -int zmk_event_manager_raise_at(struct zmk_event_header *event, - const struct zmk_listener *listener) { - u8_t len = __event_subscriptions_end - __event_subscriptions_start; - for (int i = 0; i < len; i++) { - struct zmk_event_subscription *ev_sub = __event_subscriptions_start + i; - - if (ev_sub->event_type == event->event && ev_sub->listener == listener) { - return zmk_event_manager_handle_from(event, i); - } - } - - LOG_WRN("Unable to find where to raise this event"); - - return -EINVAL; -} - -int zmk_event_manager_release(struct zmk_event_header *event) { - return zmk_event_manager_handle_from(event, event->last_listener_index + 1); -} diff --git a/zmk/app/src/events/ble_active_profile_changed.c b/zmk/app/src/events/ble_active_profile_changed.c deleted file mode 100644 index 06988e23..00000000 --- a/zmk/app/src/events/ble_active_profile_changed.c +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include - -ZMK_EVENT_IMPL(ble_active_profile_changed); \ No newline at end of file diff --git a/zmk/app/src/events/keycode_state_changed.c b/zmk/app/src/events/keycode_state_changed.c deleted file mode 100644 index 9a1984a3..00000000 --- a/zmk/app/src/events/keycode_state_changed.c +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include - -ZMK_EVENT_IMPL(keycode_state_changed); diff --git a/zmk/app/src/events/modifiers_state_changed.c b/zmk/app/src/events/modifiers_state_changed.c deleted file mode 100644 index 8becd02f..00000000 --- a/zmk/app/src/events/modifiers_state_changed.c +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include - -ZMK_EVENT_IMPL(modifiers_state_changed); \ No newline at end of file diff --git a/zmk/app/src/events/position_state_changed.c b/zmk/app/src/events/position_state_changed.c deleted file mode 100644 index f8f1a268..00000000 --- a/zmk/app/src/events/position_state_changed.c +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include - -ZMK_EVENT_IMPL(position_state_changed); \ No newline at end of file diff --git a/zmk/app/src/events/sensor_event.c b/zmk/app/src/events/sensor_event.c deleted file mode 100644 index c6b80cd6..00000000 --- a/zmk/app/src/events/sensor_event.c +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include - -ZMK_EVENT_IMPL(sensor_event); \ No newline at end of file diff --git a/zmk/app/src/events/usb_conn_state_changed.c b/zmk/app/src/events/usb_conn_state_changed.c deleted file mode 100644 index d845f6d7..00000000 --- a/zmk/app/src/events/usb_conn_state_changed.c +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include - -ZMK_EVENT_IMPL(usb_conn_state_changed); \ No newline at end of file diff --git a/zmk/app/src/ext_power_generic.c b/zmk/app/src/ext_power_generic.c deleted file mode 100644 index 48170304..00000000 --- a/zmk/app/src/ext_power_generic.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_ext_power_generic - -#include -#include -#include -#include - -#if DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT) - -#include -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -struct ext_power_generic_config { - const char *label; - const u8_t pin; - const u8_t flags; -}; - -struct ext_power_generic_data { - struct device *gpio; - bool status; -}; - -static int ext_power_generic_enable(struct device *dev) { - struct ext_power_generic_data *data = dev->driver_data; - const struct ext_power_generic_config *config = dev->config_info; - - if (gpio_pin_set(data->gpio, config->pin, 1)) { - LOG_WRN("Failed to set ext-power control pin"); - return -EIO; - } - data->status = true; - return 0; -} - -static int ext_power_generic_disable(struct device *dev) { - struct ext_power_generic_data *data = dev->driver_data; - const struct ext_power_generic_config *config = dev->config_info; - - if (gpio_pin_set(data->gpio, config->pin, 0)) { - LOG_WRN("Failed to clear ext-power control pin"); - return -EIO; - } - data->status = false; - return 0; -} - -static int ext_power_generic_get(struct device *dev) { - struct ext_power_generic_data *data = dev->driver_data; - return data->status; -} - -static int ext_power_generic_init(struct device *dev) { - struct ext_power_generic_data *data = dev->driver_data; - const struct ext_power_generic_config *config = dev->config_info; - - data->gpio = device_get_binding(config->label); - if (data->gpio == NULL) { - LOG_ERR("Failed to get ext-power control device"); - return -EINVAL; - } - - if (gpio_pin_configure(data->gpio, config->pin, config->flags | GPIO_OUTPUT)) { - LOG_ERR("Failed to configure ext-power control pin"); - return -EIO; - } - - return 0; -} - -static const struct ext_power_generic_config config = { - .label = DT_INST_GPIO_LABEL(0, control_gpios), - .pin = DT_INST_GPIO_PIN(0, control_gpios), - .flags = DT_INST_GPIO_FLAGS(0, control_gpios)}; - -static struct ext_power_generic_data data = {.status = false}; - -static const struct ext_power_api api = {.enable = ext_power_generic_enable, - .disable = ext_power_generic_disable, - .get = ext_power_generic_get}; - -DEVICE_AND_API_INIT(ext_power_generic, DT_INST_LABEL(0), ext_power_generic_init, &data, &config, - APPLICATION, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &api); - -#endif /* DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT) */ diff --git a/zmk/app/src/hid.c b/zmk/app/src/hid.c deleted file mode 100644 index da2aaab6..00000000 --- a/zmk/app/src/hid.c +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#include -#include - -static struct zmk_hid_keyboard_report kp_report = { - .report_id = 1, .body = {.modifiers = 0, ._reserved = 0, .keys = {0}}}; - -static struct zmk_hid_consumer_report consumer_report = {.report_id = 2, .body = {.keys = {0}}}; - -// Keep track of how often a modifier was pressed. -// Only release the modifier if the count is 0. -static int explicit_modifier_counts[8] = {0, 0, 0, 0, 0, 0, 0, 0}; -static zmk_mod_flags explicit_modifiers = 0; - -#define SET_MODIFIERS(mods) \ - { \ - kp_report.body.modifiers = mods; \ - LOG_DBG("Modifiers set to 0x%02X", kp_report.body.modifiers); \ - } - -int zmk_hid_register_mod(zmk_mod modifier) { - explicit_modifier_counts[modifier]++; - LOG_DBG("Modifier %d count %d", modifier, explicit_modifier_counts[modifier]); - WRITE_BIT(explicit_modifiers, modifier, true); - SET_MODIFIERS(explicit_modifiers); - return 0; -} - -int zmk_hid_unregister_mod(zmk_mod modifier) { - if (explicit_modifier_counts[modifier] <= 0) { - LOG_ERR("Tried to unregister modifier %d too often", modifier); - return -EINVAL; - } - explicit_modifier_counts[modifier]--; - LOG_DBG("Modifier %d count: %d", modifier, explicit_modifier_counts[modifier]); - if (explicit_modifier_counts[modifier] == 0) { - LOG_DBG("Modifier %d released", modifier); - WRITE_BIT(explicit_modifiers, modifier, false); - } - SET_MODIFIERS(explicit_modifiers); - return 0; -} - -#define TOGGLE_KEYBOARD(match, val) \ - for (int idx = 0; idx < ZMK_HID_KEYBOARD_NKRO_SIZE; idx++) { \ - if (kp_report.body.keys[idx] != match) { \ - continue; \ - } \ - kp_report.body.keys[idx] = val; \ - break; \ - } - -#define TOGGLE_CONSUMER(match, val) \ - for (int idx = 0; idx < ZMK_HID_CONSUMER_NKRO_SIZE; idx++) { \ - if (consumer_report.body.keys[idx] != match) { \ - continue; \ - } \ - consumer_report.body.keys[idx] = val; \ - break; \ - } - -int zmk_hid_implicit_modifiers_press(zmk_mod_flags implicit_modifiers) { - SET_MODIFIERS(explicit_modifiers | implicit_modifiers); - return 0; -} - -int zmk_hid_implicit_modifiers_release() { - SET_MODIFIERS(explicit_modifiers); - return 0; -} - -int zmk_hid_keyboard_press(zmk_key code) { - if (code >= HID_USAGE_KEY_KEYBOARD_LEFTCONTROL && code <= HID_USAGE_KEY_KEYBOARD_RIGHT_GUI) { - return zmk_hid_register_mod(code - HID_USAGE_KEY_KEYBOARD_LEFTCONTROL); - } - TOGGLE_KEYBOARD(0U, code); - return 0; -}; - -int zmk_hid_keyboard_release(zmk_key code) { - if (code >= HID_USAGE_KEY_KEYBOARD_LEFTCONTROL && code <= HID_USAGE_KEY_KEYBOARD_RIGHT_GUI) { - return zmk_hid_unregister_mod(code - HID_USAGE_KEY_KEYBOARD_LEFTCONTROL); - } - TOGGLE_KEYBOARD(code, 0U); - return 0; -}; - -void zmk_hid_keyboard_clear() { memset(&kp_report.body, 0, sizeof(kp_report.body)); } - -int zmk_hid_consumer_press(zmk_key code) { - TOGGLE_CONSUMER(0U, code); - return 0; -}; - -int zmk_hid_consumer_release(zmk_key code) { - TOGGLE_CONSUMER(code, 0U); - return 0; -}; - -void zmk_hid_consumer_clear() { memset(&consumer_report.body, 0, sizeof(consumer_report.body)); } - -struct zmk_hid_keyboard_report *zmk_hid_get_keyboard_report() { - return &kp_report; -} - -struct zmk_hid_consumer_report *zmk_hid_get_consumer_report() { - return &consumer_report; -} diff --git a/zmk/app/src/hid_listener.c b/zmk/app/src/hid_listener.c deleted file mode 100644 index b93abcab..00000000 --- a/zmk/app/src/hid_listener.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#include -#include -#include -#include -#include -#include - -static int hid_listener_keycode_pressed(u8_t usage_page, u32_t keycode, - zmk_mod_flags implicit_modifiers) { - int err; - LOG_DBG("usage_page 0x%02X keycode 0x%02X mods 0x%02X", usage_page, keycode, - implicit_modifiers); - switch (usage_page) { - case HID_USAGE_KEY: - err = zmk_hid_keyboard_press(keycode); - if (err) { - LOG_ERR("Unable to press keycode"); - return err; - } - break; - case HID_USAGE_CONSUMER: - err = zmk_hid_consumer_press(keycode); - if (err) { - LOG_ERR("Unable to press keycode"); - return err; - } - break; - } - zmk_hid_implicit_modifiers_press(implicit_modifiers); - return zmk_endpoints_send_report(usage_page); -} - -static int hid_listener_keycode_released(u8_t usage_page, u32_t keycode, - zmk_mod_flags implicit_modifiers) { - int err; - LOG_DBG("usage_page 0x%02X keycode 0x%02X mods 0x%02X", usage_page, keycode, - implicit_modifiers); - switch (usage_page) { - case HID_USAGE_KEY: - err = zmk_hid_keyboard_release(keycode); - if (err) { - LOG_ERR("Unable to release keycode"); - return err; - } - break; - case HID_USAGE_CONSUMER: - err = zmk_hid_consumer_release(keycode); - if (err) { - LOG_ERR("Unable to release keycode"); - return err; - } - } - // There is a minor issue with this code. - // If LC(A) is pressed, then LS(B), then LC(A) is released, the shift for B will be released - // prematurely. This causes if LS(B) to repeat like Bbbbbbbb when pressed for a long time. - // Solving this would require keeping track of which key's implicit modifiers are currently - // active and only releasing modifiers at that time. - zmk_hid_implicit_modifiers_release(); - return zmk_endpoints_send_report(usage_page); -} - -int hid_listener(const struct zmk_event_header *eh) { - if (is_keycode_state_changed(eh)) { - const struct keycode_state_changed *ev = cast_keycode_state_changed(eh); - if (ev->state) { - hid_listener_keycode_pressed(ev->usage_page, ev->keycode, ev->implicit_modifiers); - } else { - hid_listener_keycode_released(ev->usage_page, ev->keycode, ev->implicit_modifiers); - } - } - return 0; -} - -ZMK_LISTENER(hid_listener, hid_listener); -ZMK_SUBSCRIPTION(hid_listener, keycode_state_changed); \ No newline at end of file diff --git a/zmk/app/src/hog.c b/zmk/app/src/hog.c deleted file mode 100644 index ea61933e..00000000 --- a/zmk/app/src/hog.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#include -#include - -#include -#include -#include - -enum { - HIDS_REMOTE_WAKE = BIT(0), - HIDS_NORMALLY_CONNECTABLE = BIT(1), -}; - -struct hids_info { - u16_t version; /* version number of base USB HID Specification */ - u8_t code; /* country HID Device hardware is localized for. */ - u8_t flags; -} __packed; - -struct hids_report { - u8_t id; /* report id */ - u8_t type; /* report type */ -} __packed; - -static struct hids_info info = { - .version = 0x0000, - .code = 0x00, - .flags = HIDS_NORMALLY_CONNECTABLE & HIDS_REMOTE_WAKE, -}; - -enum { - HIDS_INPUT = 0x01, - HIDS_OUTPUT = 0x02, - HIDS_FEATURE = 0x03, -}; - -static struct hids_report input = { - .id = 0x01, - .type = HIDS_INPUT, -}; - -static struct hids_report consumer_input = { - .id = 0x02, - .type = HIDS_INPUT, -}; - -static bool host_requests_notification = false; -static u8_t ctrl_point; -// static u8_t proto_mode; - -static ssize_t read_hids_info(struct bt_conn *conn, const struct bt_gatt_attr *attr, void *buf, - u16_t len, u16_t offset) { - return bt_gatt_attr_read(conn, attr, buf, len, offset, attr->user_data, - sizeof(struct hids_info)); -} - -static ssize_t read_hids_report_ref(struct bt_conn *conn, const struct bt_gatt_attr *attr, - void *buf, u16_t len, u16_t offset) { - return bt_gatt_attr_read(conn, attr, buf, len, offset, attr->user_data, - sizeof(struct hids_report)); -} - -static ssize_t read_hids_report_map(struct bt_conn *conn, const struct bt_gatt_attr *attr, - void *buf, u16_t len, u16_t offset) { - return bt_gatt_attr_read(conn, attr, buf, len, offset, zmk_hid_report_desc, - sizeof(zmk_hid_report_desc)); -} - -static ssize_t read_hids_input_report(struct bt_conn *conn, const struct bt_gatt_attr *attr, - void *buf, u16_t len, u16_t offset) { - struct zmk_hid_keyboard_report_body *report_body = &zmk_hid_get_keyboard_report()->body; - return bt_gatt_attr_read(conn, attr, buf, len, offset, report_body, - sizeof(struct zmk_hid_keyboard_report_body)); -} - -static ssize_t read_hids_consumer_input_report(struct bt_conn *conn, - const struct bt_gatt_attr *attr, void *buf, - u16_t len, u16_t offset) { - struct zmk_hid_consumer_report_body *report_body = &zmk_hid_get_consumer_report()->body; - return bt_gatt_attr_read(conn, attr, buf, len, offset, report_body, - sizeof(struct zmk_hid_consumer_report_body)); -} - -// static ssize_t write_proto_mode(struct bt_conn *conn, -// const struct bt_gatt_attr *attr, -// const void *buf, u16_t len, u16_t offset, -// u8_t flags) -// { -// printk("PROTO CHANGED\n"); -// return 0; -// } - -static void input_ccc_changed(const struct bt_gatt_attr *attr, u16_t value) { - host_requests_notification = (value == BT_GATT_CCC_NOTIFY) ? 1 : 0; -} - -static ssize_t write_ctrl_point(struct bt_conn *conn, const struct bt_gatt_attr *attr, - const void *buf, u16_t len, u16_t offset, u8_t flags) { - u8_t *value = attr->user_data; - - if (offset + len > sizeof(ctrl_point)) { - return BT_GATT_ERR(BT_ATT_ERR_INVALID_OFFSET); - } - - memcpy(value + offset, buf, len); - - return len; -} - -/* HID Service Declaration */ -BT_GATT_SERVICE_DEFINE( - hog_svc, BT_GATT_PRIMARY_SERVICE(BT_UUID_HIDS), - // BT_GATT_CHARACTERISTIC(BT_UUID_HIDS_PROTOCOL_MODE, BT_GATT_CHRC_WRITE_WITHOUT_RESP, - // BT_GATT_PERM_WRITE, NULL, write_proto_mode, &proto_mode), - BT_GATT_CHARACTERISTIC(BT_UUID_HIDS_INFO, BT_GATT_CHRC_READ, BT_GATT_PERM_READ, read_hids_info, - NULL, &info), - BT_GATT_CHARACTERISTIC(BT_UUID_HIDS_REPORT_MAP, BT_GATT_CHRC_READ, BT_GATT_PERM_READ, - read_hids_report_map, NULL, NULL), - - BT_GATT_CHARACTERISTIC(BT_UUID_HIDS_REPORT, BT_GATT_CHRC_READ | BT_GATT_CHRC_NOTIFY, - BT_GATT_PERM_READ_ENCRYPT, read_hids_input_report, NULL, NULL), - BT_GATT_CCC(input_ccc_changed, BT_GATT_PERM_READ_ENCRYPT | BT_GATT_PERM_WRITE_ENCRYPT), - BT_GATT_DESCRIPTOR(BT_UUID_HIDS_REPORT_REF, BT_GATT_PERM_READ, read_hids_report_ref, NULL, - &input), - BT_GATT_CHARACTERISTIC(BT_UUID_HIDS_REPORT, BT_GATT_CHRC_READ | BT_GATT_CHRC_NOTIFY, - BT_GATT_PERM_READ_ENCRYPT, read_hids_consumer_input_report, NULL, NULL), - BT_GATT_CCC(input_ccc_changed, BT_GATT_PERM_READ_ENCRYPT | BT_GATT_PERM_WRITE_ENCRYPT), - BT_GATT_DESCRIPTOR(BT_UUID_HIDS_REPORT_REF, BT_GATT_PERM_READ, read_hids_report_ref, NULL, - &consumer_input), - BT_GATT_CHARACTERISTIC(BT_UUID_HIDS_CTRL_POINT, BT_GATT_CHRC_WRITE_WITHOUT_RESP, - BT_GATT_PERM_WRITE, NULL, write_ctrl_point, &ctrl_point)); - -struct bt_conn *destination_connection() { - struct bt_conn *conn; - bt_addr_le_t *addr = zmk_ble_active_profile_addr(); - LOG_DBG("Address pointer %p", addr); - if (!bt_addr_le_cmp(addr, BT_ADDR_LE_ANY)) { - LOG_WRN("Not sending, no active address for current profile"); - return NULL; - } else if ((conn = bt_conn_lookup_addr_le(BT_ID_DEFAULT, addr)) == NULL) { - LOG_WRN("Not sending, not connected to active profile"); - return NULL; - } - - return conn; -} - -int zmk_hog_send_keyboard_report(struct zmk_hid_keyboard_report_body *report) { - struct bt_conn *conn = destination_connection(); - if (conn == NULL) { - return -ENOTCONN; - } - - LOG_DBG("Sending to NULL? %s", conn == NULL ? "yes" : "no"); - - int err = bt_gatt_notify(conn, &hog_svc.attrs[5], report, - sizeof(struct zmk_hid_keyboard_report_body)); - bt_conn_unref(conn); - return err; -}; - -int zmk_hog_send_consumer_report(struct zmk_hid_consumer_report_body *report) { - struct bt_conn *conn = destination_connection(); - if (conn == NULL) { - return -ENOTCONN; - } - - int err = bt_gatt_notify(conn, &hog_svc.attrs[10], report, - sizeof(struct zmk_hid_consumer_report_body)); - bt_conn_unref(conn); - return err; -}; diff --git a/zmk/app/src/keymap.c b/zmk/app/src/keymap.c deleted file mode 100644 index 70db2fa5..00000000 --- a/zmk/app/src/keymap.c +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#include -#include -#include -#include -#include - -#include -#include -#include - -static u32_t zmk_keymap_layer_state = 0; -static u8_t zmk_keymap_layer_default = 0; - -#define DT_DRV_COMPAT zmk_keymap - -#define LAYER_CHILD_LEN(node) 1 + -#define ZMK_KEYMAP_NODE DT_DRV_INST(0) -#define ZMK_KEYMAP_LAYERS_LEN (DT_INST_FOREACH_CHILD(0, LAYER_CHILD_LEN) 0) - -#define LAYER_NODE(l) DT_PHANDLE_BY_IDX(ZMK_KEYMAP_NODE, layers, l) - -#define _TRANSFORM_ENTRY(idx, layer) \ - { \ - .behavior_dev = DT_LABEL(DT_PHANDLE_BY_IDX(layer, bindings, idx)), \ - .param1 = COND_CODE_0(DT_PHA_HAS_CELL_AT_IDX(layer, bindings, idx, param1), (0), \ - (DT_PHA_BY_IDX(layer, bindings, idx, param1))), \ - .param2 = COND_CODE_0(DT_PHA_HAS_CELL_AT_IDX(layer, bindings, idx, param2), (0), \ - (DT_PHA_BY_IDX(layer, bindings, idx, param2))), \ - }, - -#define TRANSFORMED_LAYER(node) {UTIL_LISTIFY(DT_PROP_LEN(node, bindings), _TRANSFORM_ENTRY, node)}, - -#if ZMK_KEYMAP_HAS_SENSORS -#define _TRANSFORM_SENSOR_ENTRY(idx, layer) \ - { \ - .behavior_dev = DT_LABEL(DT_PHANDLE_BY_IDX(layer, sensor_bindings, idx)), \ - .param1 = COND_CODE_0(DT_PHA_HAS_CELL_AT_IDX(layer, sensor_bindings, idx, param1), (0), \ - (DT_PHA_BY_IDX(layer, sensor_bindings, idx, param1))), \ - .param2 = COND_CODE_0(DT_PHA_HAS_CELL_AT_IDX(layer, sensor_bindings, idx, param2), (0), \ - (DT_PHA_BY_IDX(layer, sensor_bindings, idx, param2))), \ - }, - -#define SENSOR_LAYER(node) \ - COND_CODE_1( \ - DT_NODE_HAS_PROP(node, sensor_bindings), \ - ({UTIL_LISTIFY(DT_PROP_LEN(node, sensor_bindings), _TRANSFORM_SENSOR_ENTRY, node)}), \ - ({})), - -#endif /* ZMK_KEYMAP_HAS_SENSORS */ - -// State - -// When a behavior handles a key position "down" event, we record the layer state -// here so that even if that layer is deactivated before the "up", event, we -// still send the release event to the behavior in that layer also. -static u32_t zmk_keymap_active_behavior_layer[ZMK_KEYMAP_LEN]; - -static struct zmk_behavior_binding zmk_keymap[ZMK_KEYMAP_LAYERS_LEN][ZMK_KEYMAP_LEN] = { - DT_INST_FOREACH_CHILD(0, TRANSFORMED_LAYER)}; - -#if ZMK_KEYMAP_HAS_SENSORS - -static struct zmk_behavior_binding zmk_sensor_keymap[ZMK_KEYMAP_LAYERS_LEN] - [ZMK_KEYMAP_SENSORS_LEN] = { - DT_INST_FOREACH_CHILD(0, SENSOR_LAYER)}; - -#endif /* ZMK_KEYMAP_HAS_SENSORS */ - -#define SET_LAYER_STATE(layer, state) \ - if (layer >= 32) { \ - return -EINVAL; \ - } \ - WRITE_BIT(zmk_keymap_layer_state, layer, state); \ - return 0; - -bool zmk_keymap_layer_active(u8_t layer) { - return (zmk_keymap_layer_state & (BIT(layer))) == (BIT(layer)); -}; - -int zmk_keymap_layer_activate(u8_t layer) { SET_LAYER_STATE(layer, true); }; - -int zmk_keymap_layer_deactivate(u8_t layer) { SET_LAYER_STATE(layer, false); }; - -int zmk_keymap_layer_toggle(u8_t layer) { - if (zmk_keymap_layer_active(layer)) { - return zmk_keymap_layer_deactivate(layer); - } - - return zmk_keymap_layer_activate(layer); -}; - -bool is_active_layer(u8_t layer, u32_t layer_state) { - return (layer_state & BIT(layer)) == BIT(layer) || layer == zmk_keymap_layer_default; -} - -int zmk_keymap_apply_position_state(int layer, u32_t position, bool pressed, s64_t timestamp) { - struct zmk_behavior_binding *binding = &zmk_keymap[layer][position]; - struct device *behavior; - struct zmk_behavior_binding_event event = { - .layer = layer, - .position = position, - .timestamp = timestamp, - }; - - LOG_DBG("layer: %d position: %d, binding name: %s", layer, position, - log_strdup(binding->behavior_dev)); - - behavior = device_get_binding(binding->behavior_dev); - - if (!behavior) { - LOG_DBG("No behavior assigned to %d on layer %d", position, layer); - return 1; - } - - if (pressed) { - return behavior_keymap_binding_pressed(binding, event); - } else { - return behavior_keymap_binding_released(binding, event); - } -} - -int zmk_keymap_position_state_changed(u32_t position, bool pressed, s64_t timestamp) { - if (pressed) { - zmk_keymap_active_behavior_layer[position] = zmk_keymap_layer_state; - } - for (int layer = ZMK_KEYMAP_LAYERS_LEN - 1; layer >= zmk_keymap_layer_default; layer--) { - if (is_active_layer(layer, zmk_keymap_active_behavior_layer[position])) { - int ret = zmk_keymap_apply_position_state(layer, position, pressed, timestamp); - if (ret > 0) { - LOG_DBG("behavior processing to continue to next layer"); - continue; - } else if (ret < 0) { - LOG_DBG("Behavior returned error: %d", ret); - return ret; - } else { - return ret; - } - } - } - - return -ENOTSUP; -} - -#if ZMK_KEYMAP_HAS_SENSORS -int zmk_keymap_sensor_triggered(u8_t sensor_number, struct device *sensor) { - for (int layer = ZMK_KEYMAP_LAYERS_LEN - 1; layer >= zmk_keymap_layer_default; layer--) { - if (((zmk_keymap_layer_state & BIT(layer)) == BIT(layer) || - layer == zmk_keymap_layer_default) && - zmk_sensor_keymap[layer] != NULL) { - struct zmk_behavior_binding *binding = &zmk_sensor_keymap[layer][sensor_number]; - struct device *behavior; - int ret; - - LOG_DBG("layer: %d sensor_number: %d, binding name: %s", layer, sensor_number, - log_strdup(binding->behavior_dev)); - - behavior = device_get_binding(binding->behavior_dev); - - if (!behavior) { - LOG_DBG("No behavior assigned to %d on layer %d", sensor_number, layer); - continue; - } - - ret = behavior_sensor_keymap_binding_triggered(binding, sensor); - - if (ret > 0) { - LOG_DBG("behavior processing to continue to next layer"); - continue; - } else if (ret < 0) { - LOG_DBG("Behavior returned error: %d", ret); - return ret; - } else { - return ret; - } - } - } - - return -ENOTSUP; -} - -#endif /* ZMK_KEYMAP_HAS_SENSORS */ - -int keymap_listener(const struct zmk_event_header *eh) { - if (is_position_state_changed(eh)) { - const struct position_state_changed *ev = cast_position_state_changed(eh); - return zmk_keymap_position_state_changed(ev->position, ev->state, ev->timestamp); -#if ZMK_KEYMAP_HAS_SENSORS - } else if (is_sensor_event(eh)) { - const struct sensor_event *ev = cast_sensor_event(eh); - return zmk_keymap_sensor_triggered(ev->sensor_number, ev->sensor); -#endif /* ZMK_KEYMAP_HAS_SENSORS */ - } - - return -ENOTSUP; -} - -ZMK_LISTENER(keymap, keymap_listener); -ZMK_SUBSCRIPTION(keymap, position_state_changed); - -#if ZMK_KEYMAP_HAS_SENSORS -ZMK_SUBSCRIPTION(keymap, sensor_event); -#endif /* ZMK_KEYMAP_HAS_SENSORS */ diff --git a/zmk/app/src/kscan.c b/zmk/app/src/kscan.c deleted file mode 100644 index 8575e708..00000000 --- a/zmk/app/src/kscan.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#include -#include -#include - -#define ZMK_KSCAN_EVENT_STATE_PRESSED 0 -#define ZMK_KSCAN_EVENT_STATE_RELEASED 1 - -struct zmk_kscan_event { - u32_t row; - u32_t column; - u32_t state; -}; - -struct zmk_kscan_msg_processor { - struct k_work work; -} msg_processor; - -K_MSGQ_DEFINE(zmk_kscan_msgq, sizeof(struct zmk_kscan_event), CONFIG_ZMK_KSCAN_EVENT_QUEUE_SIZE, 4); - -static void zmk_kscan_callback(struct device *dev, u32_t row, u32_t column, bool pressed) { - struct zmk_kscan_event ev = { - .row = row, - .column = column, - .state = (pressed ? ZMK_KSCAN_EVENT_STATE_PRESSED : ZMK_KSCAN_EVENT_STATE_RELEASED)}; - - k_msgq_put(&zmk_kscan_msgq, &ev, K_NO_WAIT); - k_work_submit(&msg_processor.work); -} - -void zmk_kscan_process_msgq(struct k_work *item) { - struct zmk_kscan_event ev; - - while (k_msgq_get(&zmk_kscan_msgq, &ev, K_NO_WAIT) == 0) { - bool pressed = (ev.state == ZMK_KSCAN_EVENT_STATE_PRESSED); - u32_t position = zmk_matrix_transform_row_column_to_position(ev.row, ev.column); - struct position_state_changed *pos_ev; - LOG_DBG("Row: %d, col: %d, position: %d, pressed: %s\n", ev.row, ev.column, position, - (pressed ? "true" : "false")); - pos_ev = new_position_state_changed(); - pos_ev->state = pressed; - pos_ev->position = position; - pos_ev->timestamp = k_uptime_get(); - ZMK_EVENT_RAISE(pos_ev); - } -} - -int zmk_kscan_init(char *name) { - struct device *dev = device_get_binding(name); - if (dev == NULL) { - LOG_ERR("Failed to get the KSCAN device"); - return -EINVAL; - } - - k_work_init(&msg_processor.work, zmk_kscan_process_msgq); - - kscan_config(dev, zmk_kscan_callback); - kscan_enable_callback(dev); - - return 0; -} diff --git a/zmk/app/src/kscan_composite.c b/zmk/app/src/kscan_composite.c deleted file mode 100644 index f8e8d604..00000000 --- a/zmk/app/src/kscan_composite.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_kscan_composite - -#include -#include -#include -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#define MATRIX_NODE_ID DT_DRV_INST(0) -#define MATRIX_ROWS DT_PROP(MATRIX_NODE_ID, rows) -#define MATRIX_COLS DT_PROP(MATRIX_NODE_ID, columns) - -struct kscan_composite_child_config { - char *label; - u8_t row_offset; - u8_t column_offset; -}; - -#define CHILD_CONFIG(inst) \ - {.label = DT_LABEL(DT_PHANDLE(inst, kscan)), \ - .row_offset = DT_PROP(inst, row_offset), \ - .column_offset = DT_PROP(inst, column_offset)}, - -const struct kscan_composite_child_config kscan_composite_children[] = { - DT_FOREACH_CHILD(MATRIX_NODE_ID, CHILD_CONFIG)}; - -struct kscan_composite_config {}; - -struct kscan_composite_data { - kscan_callback_t callback; - - struct device *dev; -}; - -static int kscan_composite_enable_callback(struct device *dev) { - for (int i = 0; i < ARRAY_SIZE(kscan_composite_children); i++) { - const struct kscan_composite_child_config *cfg = &kscan_composite_children[i]; - - kscan_enable_callback(device_get_binding(cfg->label)); - } - return 0; -} - -static int kscan_composite_disable_callback(struct device *dev) { - for (int i = 0; i < ARRAY_SIZE(kscan_composite_children); i++) { - const struct kscan_composite_child_config *cfg = &kscan_composite_children[i]; - - kscan_disable_callback(device_get_binding(cfg->label)); - } - return 0; -} - -static void kscan_composite_child_callback(struct device *child_dev, u32_t row, u32_t column, - bool pressed) { - // TODO: Ideally we can get this passed into our callback! - struct device *dev = device_get_binding(DT_INST_LABEL(0)); - struct kscan_composite_data *data = dev->driver_data; - - for (int i = 0; i < ARRAY_SIZE(kscan_composite_children); i++) { - const struct kscan_composite_child_config *cfg = &kscan_composite_children[i]; - - if (device_get_binding(cfg->label) != child_dev) { - continue; - } - - data->callback(dev, row + cfg->row_offset, column + cfg->column_offset, pressed); - } -} - -static int kscan_composite_configure(struct device *dev, kscan_callback_t callback) { - struct kscan_composite_data *data = dev->driver_data; - - if (!callback) { - return -EINVAL; - } - - for (int i = 0; i < ARRAY_SIZE(kscan_composite_children); i++) { - const struct kscan_composite_child_config *cfg = &kscan_composite_children[i]; - - kscan_config(device_get_binding(cfg->label), &kscan_composite_child_callback); - } - - data->callback = callback; - - return 0; -} - -static int kscan_composite_init(struct device *dev) { - struct kscan_composite_data *data = dev->driver_data; - - data->dev = dev; - - return 0; -} - -static const struct kscan_driver_api mock_driver_api = { - .config = kscan_composite_configure, - .enable_callback = kscan_composite_enable_callback, - .disable_callback = kscan_composite_disable_callback, -}; - -static const struct kscan_composite_config kscan_composite_config = {}; - -static struct kscan_composite_data kscan_composite_data; - -DEVICE_AND_API_INIT(kscan_composite, DT_INST_LABEL(0), kscan_composite_init, &kscan_composite_data, - &kscan_composite_config, APPLICATION, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, - &mock_driver_api); diff --git a/zmk/app/src/kscan_mock.c b/zmk/app/src/kscan_mock.c deleted file mode 100644 index f1614f1f..00000000 --- a/zmk/app/src/kscan_mock.c +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_kscan_mock - -#include -#include -#include -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#include - -struct kscan_mock_data { - kscan_callback_t callback; - - u32_t event_index; - struct k_delayed_work work; - struct device *dev; -}; - -static int kscan_mock_disable_callback(struct device *dev) { - struct kscan_mock_data *data = dev->driver_data; - - k_delayed_work_cancel(&data->work); - return 0; -} - -static int kscan_mock_configure(struct device *dev, kscan_callback_t callback) { - struct kscan_mock_data *data = dev->driver_data; - - if (!callback) { - return -EINVAL; - } - - data->event_index = 0; - data->callback = callback; - - return 0; -} - -#define MOCK_INST_INIT(n) \ - struct kscan_mock_config_##n { \ - u32_t events[DT_INST_PROP_LEN(n, events)]; \ - bool exit_after; \ - }; \ - static void kscan_mock_schedule_next_event_##n(struct device *dev) { \ - struct kscan_mock_data *data = dev->driver_data; \ - const struct kscan_mock_config_##n *cfg = dev->config_info; \ - if (data->event_index < DT_INST_PROP_LEN(n, events)) { \ - u32_t ev = cfg->events[data->event_index]; \ - LOG_DBG("delaying next keypress: %d", ZMK_MOCK_MSEC(ev)); \ - k_delayed_work_submit(&data->work, K_MSEC(ZMK_MOCK_MSEC(ev))); \ - } else if (cfg->exit_after) { \ - LOG_DBG("Exiting"); \ - exit(0); \ - } \ - } \ - static void kscan_mock_work_handler_##n(struct k_work *work) { \ - struct kscan_mock_data *data = CONTAINER_OF(work, struct kscan_mock_data, work); \ - const struct kscan_mock_config_##n *cfg = data->dev->config_info; \ - u32_t ev = cfg->events[data->event_index]; \ - LOG_DBG("ev %u row %d column %d state %d\n", ev, ZMK_MOCK_ROW(ev), ZMK_MOCK_COL(ev), \ - ZMK_MOCK_IS_PRESS(ev)); \ - data->callback(data->dev, ZMK_MOCK_ROW(ev), ZMK_MOCK_COL(ev), ZMK_MOCK_IS_PRESS(ev)); \ - kscan_mock_schedule_next_event_##n(data->dev); \ - data->event_index++; \ - } \ - static int kscan_mock_init_##n(struct device *dev) { \ - struct kscan_mock_data *data = dev->driver_data; \ - data->dev = dev; \ - k_delayed_work_init(&data->work, kscan_mock_work_handler_##n); \ - return 0; \ - } \ - static int kscan_mock_enable_callback_##n(struct device *dev) { \ - kscan_mock_schedule_next_event_##n(dev); \ - return 0; \ - } \ - static const struct kscan_driver_api mock_driver_api_##n = { \ - .config = kscan_mock_configure, \ - .enable_callback = kscan_mock_enable_callback_##n, \ - .disable_callback = kscan_mock_disable_callback, \ - }; \ - static struct kscan_mock_data kscan_mock_data_##n; \ - static const struct kscan_mock_config_##n kscan_mock_config_##n = { \ - .events = DT_INST_PROP(n, events), .exit_after = DT_INST_PROP(n, exit_after)}; \ - DEVICE_AND_API_INIT(kscan_mock_##n, DT_INST_LABEL(n), kscan_mock_init_##n, \ - &kscan_mock_data_##n, &kscan_mock_config_##n, APPLICATION, \ - CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &mock_driver_api_##n); - -DT_INST_FOREACH_STATUS_OKAY(MOCK_INST_INIT) diff --git a/zmk/app/src/main.c b/zmk/app/src/main.c deleted file mode 100644 index 0551356d..00000000 --- a/zmk/app/src/main.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include -#include - -#include -LOG_MODULE_REGISTER(zmk, CONFIG_ZMK_LOG_LEVEL); - -#include -#include -#include -#include - -#define ZMK_KSCAN_DEV DT_LABEL(ZMK_MATRIX_NODE_ID) - -void main(void) { - struct device *ext_power; - LOG_INF("Welcome to ZMK!\n"); - - if (zmk_kscan_init(ZMK_KSCAN_DEV) != 0) { - return; - } - - // Enable the external VCC output - ext_power = device_get_binding("EXT_POWER"); - if (ext_power != NULL) { - const struct ext_power_api *ext_power_api = ext_power->driver_api; - ext_power_api->enable(ext_power); - } - -#ifdef CONFIG_ZMK_DISPLAY - zmk_display_init(); - - while (1) { - zmk_display_task_handler(); - } -#endif /* CONFIG_ZMK_DISPLAY */ -} diff --git a/zmk/app/src/matrix_transform.c b/zmk/app/src/matrix_transform.c deleted file mode 100644 index 4e68a56f..00000000 --- a/zmk/app/src/matrix_transform.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include -#include - -#ifdef ZMK_KEYMAP_TRANSFORM_NODE - -#define _TRANSFORM_ENTRY(i, _) \ - [(KT_ROW(DT_PROP_BY_IDX(ZMK_KEYMAP_TRANSFORM_NODE, map, i)) * ZMK_MATRIX_COLS) + \ - KT_COL(DT_PROP_BY_IDX(ZMK_KEYMAP_TRANSFORM_NODE, map, i))] = i, - -static u32_t transform[] = {UTIL_LISTIFY(ZMK_KEYMAP_LEN, _TRANSFORM_ENTRY, 0)}; - -#endif - -u32_t zmk_matrix_transform_row_column_to_position(u32_t row, u32_t column) { - u32_t matrix_index; - -#if DT_NODE_HAS_PROP(ZMK_KEYMAP_TRANSFORM_NODE, col_offset) - column += DT_PROP(ZMK_KEYMAP_TRANSFORM_NODE, col_offset); -#endif - -#if DT_NODE_HAS_PROP(ZMK_KEYMAP_TRANSFORM_NODE, row_offset) - row += DT_PROP(ZMK_KEYMAP_TRANSFORM_NODE, row_offset); -#endif - - matrix_index = (row * ZMK_MATRIX_COLS) + column; - -#ifdef ZMK_KEYMAP_TRANSFORM_NODE - return transform[matrix_index]; -#else - return matrix_index; -#endif /* ZMK_KEYMAP_TRANSFORM_NODE */ -}; diff --git a/zmk/app/src/power.c b/zmk/app/src/power.c deleted file mode 100644 index bad54d28..00000000 --- a/zmk/app/src/power.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#include -#include -#include -#include - -static u32_t power_last_uptime; - -#define MAX_IDLE_MS CONFIG_ZMK_IDLE_SLEEP_TIMEOUT - -bool is_usb_power_present() { -#ifdef CONFIG_USB - return zmk_usb_is_powered(); -#else - return false; -#endif /* CONFIG_USB */ -} - -enum power_states sys_pm_policy_next_state(s32_t ticks) { -#ifdef CONFIG_SYS_POWER_DEEP_SLEEP_STATES -#ifdef CONFIG_HAS_SYS_POWER_STATE_DEEP_SLEEP_1 - s32_t current = k_uptime_get(); - if (power_last_uptime > 0 && !is_usb_power_present() && - current - power_last_uptime > MAX_IDLE_MS) { - return SYS_POWER_STATE_DEEP_SLEEP_1; - } -#endif /* CONFIG_HAS_SYS_POWER_STATE_DEEP_SLEEP_1 */ -#endif /* CONFIG_SYS_POWER_DEEP_SLEEP_STATES */ - - return SYS_POWER_STATE_ACTIVE; -} - -int power_event_listener(const struct zmk_event_header *eh) { - power_last_uptime = k_uptime_get(); - - return 0; -} - -int power_init() { - power_last_uptime = k_uptime_get(); - - return 0; -} - -ZMK_LISTENER(power, power_event_listener); -ZMK_SUBSCRIPTION(power, position_state_changed); -ZMK_SUBSCRIPTION(power, sensor_event); - -SYS_INIT(power_init, APPLICATION, CONFIG_APPLICATION_INIT_PRIORITY); \ No newline at end of file diff --git a/zmk/app/src/rgb_underglow.c b/zmk/app/src/rgb_underglow.c deleted file mode 100644 index 084482ea..00000000 --- a/zmk/app/src/rgb_underglow.c +++ /dev/null @@ -1,381 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include -#include - -#include -#include - -#include - -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#define STRIP_LABEL DT_LABEL(DT_CHOSEN(zmk_underglow)) -#define STRIP_NUM_PIXELS DT_PROP(DT_CHOSEN(zmk_underglow), chain_length) - -enum rgb_underglow_effect { - UNDERGLOW_EFFECT_SOLID, - UNDERGLOW_EFFECT_BREATHE, - UNDERGLOW_EFFECT_SPECTRUM, - UNDERGLOW_EFFECT_SWIRL, - UNDERGLOW_EFFECT_NUMBER // Used to track number of underglow effects -}; - -struct led_hsb { - u16_t h; - u8_t s; - u8_t b; -}; - -struct rgb_underglow_state { - u16_t hue; - u8_t saturation; - u8_t brightness; - u8_t animation_speed; - u8_t current_effect; - u16_t animation_step; - bool on; -}; - -struct device *led_strip; - -struct led_rgb pixels[STRIP_NUM_PIXELS]; - -struct rgb_underglow_state state; - -#if IS_ENABLED(CONFIG_SETTINGS) -static int rgb_settings_set(const char *name, size_t len, settings_read_cb read_cb, void *cb_arg) { - const char *next; - int rc; - - if (settings_name_steq(name, "state", &next) && !next) { - if (len != sizeof(state)) { - return -EINVAL; - } - - rc = read_cb(cb_arg, &state, sizeof(state)); - if (rc >= 0) { - return 0; - } - - return rc; - } - - return -ENOENT; -} - -struct settings_handler rgb_conf = {.name = "rgb/underglow", .h_set = rgb_settings_set}; -#endif - -static struct led_rgb hsb_to_rgb(struct led_hsb hsb) { - double r, g, b; - - u8_t i = hsb.h / 60; - double v = hsb.b / 100.0; - double s = hsb.s / 100.0; - double f = hsb.h / 360.0 * 6 - i; - double p = v * (1 - s); - double q = v * (1 - f * s); - double t = v * (1 - (1 - f) * s); - - switch (i % 6) { - case 0: - r = v; - g = t; - b = p; - break; - case 1: - r = q; - g = v; - b = p; - break; - case 2: - r = p; - g = v; - b = t; - break; - case 3: - r = p; - g = q; - b = v; - break; - case 4: - r = t; - g = p; - b = v; - break; - case 5: - r = v; - g = p; - b = q; - break; - } - - struct led_rgb rgb = {r : r * 255, g : g * 255, b : b * 255}; - - return rgb; -} - -static void zmk_rgb_underglow_off() { - for (int i = 0; i < STRIP_NUM_PIXELS; i++) { - pixels[i] = (struct led_rgb){r : 0, g : 0, b : 0}; - } - - led_strip_update_rgb(led_strip, pixels, STRIP_NUM_PIXELS); -} - -static void zmk_rgb_underglow_effect_solid() { - for (int i = 0; i < STRIP_NUM_PIXELS; i++) { - int hue = state.hue; - int sat = state.saturation; - int brt = state.brightness; - - struct led_hsb hsb = {hue, sat, brt}; - - pixels[i] = hsb_to_rgb(hsb); - } -} - -static void zmk_rgb_underglow_effect_breathe() { - for (int i = 0; i < STRIP_NUM_PIXELS; i++) { - int hue = state.hue; - int sat = state.saturation; - int brt = abs(state.animation_step - 1200) / 12; - - struct led_hsb hsb = {hue, sat, brt}; - - pixels[i] = hsb_to_rgb(hsb); - } - - state.animation_step += state.animation_speed * 10; - - if (state.animation_step > 2400) { - state.animation_step = 0; - } -} - -static void zmk_rgb_underglow_effect_spectrum() { - for (int i = 0; i < STRIP_NUM_PIXELS; i++) { - int hue = state.animation_step; - int sat = state.saturation; - int brt = state.brightness; - - struct led_hsb hsb = {hue, sat, brt}; - - pixels[i] = hsb_to_rgb(hsb); - } - - state.animation_step += state.animation_speed; - state.animation_step = state.animation_step % 360; -} - -static void zmk_rgb_underglow_effect_swirl() { - for (int i = 0; i < STRIP_NUM_PIXELS; i++) { - int hue = (360 / STRIP_NUM_PIXELS * i + state.animation_step) % 360; - int sat = state.saturation; - int brt = state.brightness; - - struct led_hsb hsb = {hue, sat, brt}; - - pixels[i] = hsb_to_rgb(hsb); - } - - state.animation_step += state.animation_speed * 2; - state.animation_step = state.animation_step % 360; -} - -static void zmk_rgb_underglow_tick(struct k_work *work) { - switch (state.current_effect) { - case UNDERGLOW_EFFECT_SOLID: - zmk_rgb_underglow_effect_solid(); - break; - case UNDERGLOW_EFFECT_BREATHE: - zmk_rgb_underglow_effect_breathe(); - break; - case UNDERGLOW_EFFECT_SPECTRUM: - zmk_rgb_underglow_effect_spectrum(); - break; - case UNDERGLOW_EFFECT_SWIRL: - zmk_rgb_underglow_effect_swirl(); - break; - } - - led_strip_update_rgb(led_strip, pixels, STRIP_NUM_PIXELS); -} - -K_WORK_DEFINE(underglow_work, zmk_rgb_underglow_tick); - -static void zmk_rgb_underglow_tick_handler(struct k_timer *timer) { - if (!state.on) { - zmk_rgb_underglow_off(); - - k_timer_stop(timer); - - return; - } - - k_work_submit(&underglow_work); -} - -K_TIMER_DEFINE(underglow_tick, zmk_rgb_underglow_tick_handler, NULL); - -#if IS_ENABLED(CONFIG_SETTINGS) -static void zmk_rgb_underglow_save_state_work() { - settings_save_one("rgb/underglow/state", &state, sizeof(state)); -} - -static struct k_delayed_work underglow_save_work; -#endif - -static int zmk_rgb_underglow_init(struct device *_arg) { - led_strip = device_get_binding(STRIP_LABEL); - if (led_strip) { - LOG_INF("Found LED strip device %s", STRIP_LABEL); - } else { - LOG_ERR("LED strip device %s not found", STRIP_LABEL); - return -EINVAL; - } - - state = (struct rgb_underglow_state){ - hue : CONFIG_ZMK_RGB_UNDERGLOW_HUE_START, - saturation : CONFIG_ZMK_RGB_UNDERGLOW_SAT_START, - brightness : CONFIG_ZMK_RGB_UNDERGLOW_BRT_START, - animation_speed : CONFIG_ZMK_RGB_UNDERGLOW_SPD_START, - current_effect : CONFIG_ZMK_RGB_UNDERGLOW_EFF_START, - animation_step : 0, - on : IS_ENABLED(CONFIG_ZMK_RGB_UNDERGLOW_ON_START) - }; - -#if IS_ENABLED(CONFIG_SETTINGS) - settings_register(&rgb_conf); - k_delayed_work_init(&underglow_save_work, zmk_rgb_underglow_save_state_work); -#endif - - k_timer_start(&underglow_tick, K_NO_WAIT, K_MSEC(50)); - - return 0; -} - -int zmk_rgb_underglow_save_state() { -#if IS_ENABLED(CONFIG_SETTINGS) - k_delayed_work_cancel(&underglow_save_work); - return k_delayed_work_submit(&underglow_save_work, K_MINUTES(1)); -#else - return 0; -#endif -} - -int zmk_rgb_underglow_cycle_effect(int direction) { - if (!led_strip) - return -ENODEV; - - if (state.current_effect == 0 && direction < 0) { - state.current_effect = UNDERGLOW_EFFECT_NUMBER - 1; - return 0; - } - - state.current_effect += direction; - - if (state.current_effect >= UNDERGLOW_EFFECT_NUMBER) { - state.current_effect = 0; - } - - state.animation_step = 0; - - return zmk_rgb_underglow_save_state(); -} - -int zmk_rgb_underglow_toggle() { - if (!led_strip) - return -ENODEV; - - state.on = !state.on; - - if (state.on) { - state.animation_step = 0; - k_timer_start(&underglow_tick, K_NO_WAIT, K_MSEC(50)); - } else { - zmk_rgb_underglow_off(); - - k_timer_stop(&underglow_tick); - } - - return zmk_rgb_underglow_save_state(); -} - -int zmk_rgb_underglow_change_hue(int direction) { - if (!led_strip) - return -ENODEV; - - if (state.hue == 0 && direction < 0) { - state.hue = 360 - CONFIG_ZMK_RGB_UNDERGLOW_HUE_STEP; - return 0; - } - - state.hue += direction * CONFIG_ZMK_RGB_UNDERGLOW_HUE_STEP; - - state.hue = state.hue % 360; - - return zmk_rgb_underglow_save_state(); -} - -int zmk_rgb_underglow_change_sat(int direction) { - if (!led_strip) - return -ENODEV; - - if (state.saturation == 0 && direction < 0) { - return 0; - } - - state.saturation += direction * CONFIG_ZMK_RGB_UNDERGLOW_SAT_STEP; - - if (state.saturation > 100) { - state.saturation = 100; - } - - return zmk_rgb_underglow_save_state(); -} - -int zmk_rgb_underglow_change_brt(int direction) { - if (!led_strip) - return -ENODEV; - - if (state.brightness == 0 && direction < 0) { - return 0; - } - - state.brightness += direction * CONFIG_ZMK_RGB_UNDERGLOW_BRT_STEP; - - if (state.brightness > 100) { - state.brightness = 100; - } - - return zmk_rgb_underglow_save_state(); -} - -int zmk_rgb_underglow_change_spd(int direction) { - if (!led_strip) - return -ENODEV; - - if (state.animation_speed == 1 && direction < 0) { - return 0; - } - - state.animation_speed += direction; - - if (state.animation_speed > 5) { - state.animation_speed = 5; - } - - return zmk_rgb_underglow_save_state(); -} - -SYS_INIT(zmk_rgb_underglow_init, APPLICATION, CONFIG_APPLICATION_INIT_PRIORITY); diff --git a/zmk/app/src/sensors.c b/zmk/app/src/sensors.c deleted file mode 100644 index 15f374b3..00000000 --- a/zmk/app/src/sensors.c +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include - -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#include -#include -#include - -#if ZMK_KEYMAP_HAS_SENSORS - -struct sensors_data_item { - u8_t sensor_number; - struct device *dev; - struct sensor_trigger trigger; -}; - -#define _SENSOR_ITEM(node) \ - {.dev = NULL, .trigger = {.type = SENSOR_TRIG_DELTA, .chan = SENSOR_CHAN_ROTATION}}, -#define SENSOR_ITEM(idx, _) \ - COND_CODE_1(DT_NODE_HAS_STATUS(ZMK_KEYMAP_SENSORS_BY_IDX(idx), okay), \ - (_SENSOR_ITEM(ZMK_KEYMAP_SENSORS_BY_IDX(idx))), ()) - -static struct sensors_data_item sensors[] = {UTIL_LISTIFY(ZMK_KEYMAP_SENSORS_LEN, SENSOR_ITEM, 0)}; - -static void zmk_sensors_trigger_handler(struct device *dev, struct sensor_trigger *trigger) { - int err; - struct sensors_data_item *item = CONTAINER_OF(trigger, struct sensors_data_item, trigger); - struct sensor_event *event; - - LOG_DBG("sensor %d", item->sensor_number); - - err = sensor_sample_fetch(dev); - if (err) { - LOG_WRN("Failed to fetch sample from device %d", err); - return; - } - - event = new_sensor_event(); - event->sensor_number = item->sensor_number; - event->sensor = dev; - - ZMK_EVENT_RAISE(event); -} - -static void zmk_sensors_init_item(const char *node, u8_t i, u8_t abs_i) { - LOG_DBG("Init %s at index %d with sensor_number %d", node, i, abs_i); - - sensors[i].dev = device_get_binding(node); - sensors[i].sensor_number = abs_i; - - if (!sensors[i].dev) { - LOG_WRN("Failed to find device for %s", node); - return; - } - - sensor_trigger_set(sensors[i].dev, &sensors[i].trigger, zmk_sensors_trigger_handler); -} - -#define _SENSOR_INIT(node) zmk_sensors_init_item(DT_LABEL(node), local_index++, absolute_index++); -#define SENSOR_INIT(idx, _i) \ - COND_CODE_1(DT_NODE_HAS_STATUS(ZMK_KEYMAP_SENSORS_BY_IDX(idx), okay), \ - (_SENSOR_INIT(ZMK_KEYMAP_SENSORS_BY_IDX(idx))), (absolute_index++;)) - -static int zmk_sensors_init(struct device *_arg) { - int local_index = 0; - int absolute_index = 0; - - UTIL_LISTIFY(ZMK_KEYMAP_SENSORS_LEN, SENSOR_INIT, 0) - return 0; -} - -SYS_INIT(zmk_sensors_init, APPLICATION, CONFIG_APPLICATION_INIT_PRIORITY); - -#endif /* ZMK_KEYMAP_HAS_SENSORS */ \ No newline at end of file diff --git a/zmk/app/src/settings.c b/zmk/app/src/settings.c deleted file mode 100644 index 8914ccc3..00000000 --- a/zmk/app/src/settings.c +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include -#include -#include - -static int zmk_settings_init(struct device *_arg) { return settings_load(); } - -SYS_INIT(zmk_settings_init, APPLICATION, CONFIG_APPLICATION_INIT_PRIORITY); diff --git a/zmk/app/src/split/bluetooth/central.c b/zmk/app/src/split/bluetooth/central.c deleted file mode 100644 index 2d4d1ed8..00000000 --- a/zmk/app/src/split/bluetooth/central.c +++ /dev/null @@ -1,323 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - -#include -#include -#include -#include -#include -#include - -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#include -#include -#include -#include -#include - -static int start_scan(void); - -#define POSITION_STATE_DATA_LEN 16 - -static struct bt_conn *default_conn; - -static struct bt_uuid_128 uuid = BT_UUID_INIT_128(ZMK_SPLIT_BT_SERVICE_UUID); -static struct bt_gatt_discover_params discover_params; -static struct bt_gatt_subscribe_params subscribe_params; - -static u8_t split_central_notify_func(struct bt_conn *conn, struct bt_gatt_subscribe_params *params, - const void *data, u16_t length) { - static u8_t position_state[POSITION_STATE_DATA_LEN]; - - u8_t changed_positions[POSITION_STATE_DATA_LEN]; - - if (!data) { - LOG_DBG("[UNSUBSCRIBED]"); - params->value_handle = 0U; - return BT_GATT_ITER_STOP; - } - - LOG_DBG("[NOTIFICATION] data %p length %u", data, length); - - for (int i = 0; i < POSITION_STATE_DATA_LEN; i++) { - changed_positions[i] = ((u8_t *)data)[i] ^ position_state[i]; - position_state[i] = ((u8_t *)data)[i]; - } - - for (int i = 0; i < POSITION_STATE_DATA_LEN; i++) { - for (int j = 0; j < 8; j++) { - if (changed_positions[i] & BIT(j)) { - u32_t position = (i * 8) + j; - bool pressed = position_state[i] & BIT(j); - struct position_state_changed *pos_ev = new_position_state_changed(); - pos_ev->position = position; - pos_ev->state = pressed; - pos_ev->timestamp = k_uptime_get(); - - LOG_DBG("Trigger key position state change for %d", position); - ZMK_EVENT_RAISE(pos_ev); - } - } - } - - return BT_GATT_ITER_CONTINUE; -} - -static int split_central_subscribe(struct bt_conn *conn) { - int err = bt_gatt_subscribe(conn, &subscribe_params); - switch (err) { - case -EALREADY: - LOG_DBG("[ALREADY SUBSCRIBED]"); - break; - // break; - // bt_gatt_unsubscribe(conn, &subscribe_params); - // return split_central_subscribe(conn); - case 0: - LOG_DBG("[SUBSCRIBED]"); - break; - default: - LOG_ERR("Subscribe failed (err %d)", err); - break; - } - - return 0; -} - -static u8_t split_central_discovery_func(struct bt_conn *conn, const struct bt_gatt_attr *attr, - struct bt_gatt_discover_params *params) { - int err; - - if (!attr) { - LOG_DBG("Discover complete"); - (void)memset(params, 0, sizeof(*params)); - return BT_GATT_ITER_STOP; - } - - LOG_DBG("[ATTRIBUTE] handle %u", attr->handle); - - if (!bt_uuid_cmp(discover_params.uuid, BT_UUID_DECLARE_128(ZMK_SPLIT_BT_SERVICE_UUID))) { - memcpy(&uuid, BT_UUID_DECLARE_128(ZMK_SPLIT_BT_CHAR_POSITION_STATE_UUID), sizeof(uuid)); - discover_params.uuid = &uuid.uuid; - discover_params.start_handle = attr->handle + 1; - discover_params.type = BT_GATT_DISCOVER_CHARACTERISTIC; - - err = bt_gatt_discover(conn, &discover_params); - if (err) { - LOG_ERR("Discover failed (err %d)", err); - } - } else if (!bt_uuid_cmp(discover_params.uuid, - BT_UUID_DECLARE_128(ZMK_SPLIT_BT_CHAR_POSITION_STATE_UUID))) { - memcpy(&uuid, BT_UUID_GATT_CCC, sizeof(uuid)); - discover_params.uuid = &uuid.uuid; - discover_params.start_handle = attr->handle + 2; - discover_params.type = BT_GATT_DISCOVER_DESCRIPTOR; - subscribe_params.value_handle = bt_gatt_attr_value_handle(attr); - - err = bt_gatt_discover(conn, &discover_params); - if (err) { - LOG_ERR("Discover failed (err %d)", err); - } - } else { - subscribe_params.notify = split_central_notify_func; - subscribe_params.value = BT_GATT_CCC_NOTIFY; - subscribe_params.ccc_handle = attr->handle; - - split_central_subscribe(conn); - - return BT_GATT_ITER_STOP; - } - - return BT_GATT_ITER_STOP; -} - -static void split_central_process_connection(struct bt_conn *conn) { - int err; - - LOG_DBG("Current security for connection: %d", bt_conn_get_security(conn)); - - err = bt_conn_set_security(conn, BT_SECURITY_L2); - if (err) { - LOG_ERR("Failed to set security (reason %d)", err); - return; - } - - if (conn == default_conn && !subscribe_params.value) { - discover_params.uuid = &uuid.uuid; - discover_params.func = split_central_discovery_func; - discover_params.start_handle = 0x0001; - discover_params.end_handle = 0xffff; - discover_params.type = BT_GATT_DISCOVER_PRIMARY; - - err = bt_gatt_discover(default_conn, &discover_params); - if (err) { - LOG_ERR("Discover failed(err %d)", err); - return; - } - } - - struct bt_conn_info info; - - bt_conn_get_info(conn, &info); - - LOG_DBG("New connection params: Interval: %d, Latency: %d, PHY: %d", info.le.interval, - info.le.latency, info.le.phy->rx_phy); -} - -static bool split_central_eir_found(struct bt_data *data, void *user_data) { - bt_addr_le_t *addr = user_data; - int i; - - LOG_DBG("[AD]: %u data_len %u", data->type, data->data_len); - - switch (data->type) { - case BT_DATA_UUID128_SOME: - case BT_DATA_UUID128_ALL: - if (data->data_len % 16 != 0U) { - LOG_ERR("AD malformed"); - return true; - } - - for (i = 0; i < data->data_len; i += 16) { - struct bt_le_conn_param *param; - struct bt_uuid_128 uuid; - int err; - - if (!bt_uuid_create(&uuid.uuid, &data->data[i], 16)) { - LOG_ERR("Unable to load UUID"); - continue; - } - - if (bt_uuid_cmp(&uuid.uuid, BT_UUID_DECLARE_128(ZMK_SPLIT_BT_SERVICE_UUID))) { - char uuid_str[BT_UUID_STR_LEN]; - char service_uuid_str[BT_UUID_STR_LEN]; - - bt_uuid_to_str(&uuid.uuid, uuid_str, sizeof(uuid_str)); - bt_uuid_to_str(BT_UUID_DECLARE_128(ZMK_SPLIT_BT_SERVICE_UUID), service_uuid_str, - sizeof(service_uuid_str)); - LOG_DBG("UUID %s does not match split UUID: %s", log_strdup(uuid_str), - log_strdup(service_uuid_str)); - continue; - } - - LOG_DBG("Found the split service"); - - zmk_ble_set_peripheral_addr(addr); - - err = bt_le_scan_stop(); - if (err) { - LOG_ERR("Stop LE scan failed (err %d)", err); - continue; - } - - default_conn = bt_conn_lookup_addr_le(BT_ID_DEFAULT, addr); - if (default_conn) { - LOG_DBG("Found existing connection"); - split_central_process_connection(default_conn); - } else { - param = BT_LE_CONN_PARAM(0x0006, 0x0006, 30, 400); - - err = bt_conn_le_create(addr, BT_CONN_LE_CREATE_CONN, param, &default_conn); - if (err) { - LOG_ERR("Create conn failed (err %d) (create conn? 0x%04x)", err, - BT_HCI_OP_LE_CREATE_CONN); - start_scan(); - } - - err = bt_conn_le_phy_update(default_conn, BT_CONN_LE_PHY_PARAM_2M); - if (err) { - LOG_ERR("Update phy conn failed (err %d)", err); - start_scan(); - } - } - - return false; - } - } - - return true; -} - -static void split_central_device_found(const bt_addr_le_t *addr, s8_t rssi, u8_t type, - struct net_buf_simple *ad) { - char dev[BT_ADDR_LE_STR_LEN]; - - bt_addr_le_to_str(addr, dev, sizeof(dev)); - LOG_DBG("[DEVICE]: %s, AD evt type %u, AD data len %u, RSSI %i", log_strdup(dev), type, ad->len, - rssi); - - /* We're only interested in connectable events */ - if (type == BT_GAP_ADV_TYPE_ADV_IND || type == BT_GAP_ADV_TYPE_ADV_DIRECT_IND) { - bt_data_parse(ad, split_central_eir_found, (void *)addr); - } -} - -static int start_scan(void) { - int err; - - err = bt_le_scan_start(BT_LE_SCAN_PASSIVE, split_central_device_found); - if (err) { - LOG_ERR("Scanning failed to start (err %d)", err); - return err; - } - - LOG_DBG("Scanning successfully started"); - return 0; -} - -static void split_central_connected(struct bt_conn *conn, u8_t conn_err) { - char addr[BT_ADDR_LE_STR_LEN]; - - bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr)); - - if (conn_err) { - LOG_ERR("Failed to connect to %s (%u)", log_strdup(addr), conn_err); - - bt_conn_unref(default_conn); - default_conn = NULL; - - start_scan(); - return; - } - - LOG_DBG("Connected: %s", log_strdup(addr)); - - split_central_process_connection(conn); -} - -static void split_central_disconnected(struct bt_conn *conn, u8_t reason) { - char addr[BT_ADDR_LE_STR_LEN]; - - bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr)); - - LOG_DBG("Disconnected: %s (reason %d)", log_strdup(addr), reason); - - if (default_conn != conn) { - return; - } - - bt_conn_unref(default_conn); - default_conn = NULL; - - start_scan(); -} - -static struct bt_conn_cb conn_callbacks = { - .connected = split_central_connected, - .disconnected = split_central_disconnected, -}; - -int zmk_split_bt_central_init(struct device *_arg) { - bt_conn_cb_register(&conn_callbacks); - - return start_scan(); -} - -SYS_INIT(zmk_split_bt_central_init, APPLICATION, CONFIG_ZMK_BLE_INIT_PRIORITY); \ No newline at end of file diff --git a/zmk/app/src/split/bluetooth/service.c b/zmk/app/src/split/bluetooth/service.c deleted file mode 100644 index 86af685f..00000000 --- a/zmk/app/src/split/bluetooth/service.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include - -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#include -#include - -#include -#include -#include - -static u8_t num_of_positions = ZMK_KEYMAP_LEN; -static u8_t position_state[16]; - -static ssize_t split_svc_pos_state(struct bt_conn *conn, const struct bt_gatt_attr *attrs, - void *buf, u16_t len, u16_t offset) { - return bt_gatt_attr_read(conn, attrs, buf, len, offset, &position_state, - sizeof(position_state)); -} - -static ssize_t split_svc_num_of_positions(struct bt_conn *conn, const struct bt_gatt_attr *attrs, - void *buf, u16_t len, u16_t offset) { - return bt_gatt_attr_read(conn, attrs, buf, len, offset, attrs->user_data, sizeof(u8_t)); -} - -static void split_svc_pos_state_ccc(const struct bt_gatt_attr *attr, u16_t value) { - LOG_DBG("value %d", value); -} - -BT_GATT_SERVICE_DEFINE( - split_svc, BT_GATT_PRIMARY_SERVICE(BT_UUID_DECLARE_128(ZMK_SPLIT_BT_SERVICE_UUID)), - BT_GATT_CHARACTERISTIC(BT_UUID_DECLARE_128(ZMK_SPLIT_BT_CHAR_POSITION_STATE_UUID), - BT_GATT_CHRC_READ | BT_GATT_CHRC_NOTIFY, BT_GATT_PERM_READ_ENCRYPT, - split_svc_pos_state, NULL, &position_state), - BT_GATT_CCC(split_svc_pos_state_ccc, BT_GATT_PERM_READ_ENCRYPT | BT_GATT_PERM_WRITE_ENCRYPT), - BT_GATT_DESCRIPTOR(BT_UUID_NUM_OF_DIGITALS, BT_GATT_PERM_READ, split_svc_num_of_positions, NULL, - &num_of_positions), ); - -int zmk_split_bt_position_pressed(u8_t position) { - WRITE_BIT(position_state[position / 8], position % 8, true); - return bt_gatt_notify(NULL, &split_svc.attrs[1], &position_state, sizeof(position_state)); -} - -int zmk_split_bt_position_released(u8_t position) { - WRITE_BIT(position_state[position / 8], position % 8, false); - return bt_gatt_notify(NULL, &split_svc.attrs[1], &position_state, sizeof(position_state)); -} \ No newline at end of file diff --git a/zmk/app/src/split_listener.c b/zmk/app/src/split_listener.c deleted file mode 100644 index b2adfb2e..00000000 --- a/zmk/app/src/split_listener.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#define DT_DRV_COMPAT zmk_split_listener - -#include -#include -#include - -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -#include -#include -#include -#include - -int split_listener(const struct zmk_event_header *eh) { - LOG_DBG(""); - if (is_position_state_changed(eh)) { - const struct position_state_changed *ev = cast_position_state_changed(eh); - if (ev->state) { - return zmk_split_bt_position_pressed(ev->position); - } else { - return zmk_split_bt_position_released(ev->position); - } - } - return 0; -} - -ZMK_LISTENER(split_listener, split_listener); -ZMK_SUBSCRIPTION(split_listener, position_state_changed); \ No newline at end of file diff --git a/zmk/app/src/usb.c b/zmk/app/src/usb.c deleted file mode 100644 index 79d03c7b..00000000 --- a/zmk/app/src/usb.c +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include - -#include -#include - -#include -#include -#include -#include - -LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); - -static enum usb_dc_status_code usb_status = USB_DC_UNKNOWN; - -#ifdef CONFIG_ZMK_USB - -static struct device *hid_dev; - -static K_SEM_DEFINE(hid_sem, 1, 1); - -static void in_ready_cb(void) { k_sem_give(&hid_sem); } - -static const struct hid_ops ops = { - .int_in_ready = in_ready_cb, -}; - -int zmk_usb_hid_send_report(const u8_t *report, size_t len) { - switch (usb_status) { - case USB_DC_SUSPEND: - return usb_wakeup_request(); - case USB_DC_ERROR: - case USB_DC_RESET: - case USB_DC_DISCONNECTED: - case USB_DC_UNKNOWN: - return -ENODEV; - default: - k_sem_take(&hid_sem, K_MSEC(30)); - int err = hid_int_ep_write(hid_dev, report, len, NULL); - - if (err) { - k_sem_give(&hid_sem); - } - - return err; - } -} - -#endif /* CONFIG_ZMK_USB */ - -static void raise_usb_status_changed_event() { - struct usb_conn_state_changed *ev = new_usb_conn_state_changed(); - ev->conn_state = zmk_usb_get_conn_state(); - - ZMK_EVENT_RAISE(ev); -} - -enum usb_dc_status_code zmk_usb_get_status() { return usb_status; } - -enum zmk_usb_conn_state zmk_usb_get_conn_state() { - switch (usb_status) { - case USB_DC_DISCONNECTED: - case USB_DC_UNKNOWN: - return ZMK_USB_CONN_NONE; - - case USB_DC_ERROR: - case USB_DC_RESET: - return ZMK_USB_CONN_POWERED; - - default: - return ZMK_USB_CONN_HID; - } -} - -void usb_status_cb(enum usb_dc_status_code status, const u8_t *params) { - usb_status = status; - raise_usb_status_changed_event(); -}; - -static int zmk_usb_init(struct device *_arg) { - int usb_enable_ret; - -#ifdef CONFIG_ZMK_USB - hid_dev = device_get_binding("HID_0"); - if (hid_dev == NULL) { - LOG_ERR("Unable to locate HID device"); - return -EINVAL; - } - - usb_hid_register_device(hid_dev, zmk_hid_report_desc, sizeof(zmk_hid_report_desc), &ops); - - usb_hid_init(hid_dev); - -#endif /* CONFIG_ZMK_USB */ - - usb_enable_ret = usb_enable(usb_status_cb); - - if (usb_enable_ret != 0) { - LOG_ERR("Unable to enable USB"); - return -EINVAL; - } - - return 0; -} - -SYS_INIT(zmk_usb_init, APPLICATION, CONFIG_ZMK_USB_INIT_PRIORITY); diff --git a/zmk/app/tests/hold-tap/README.md b/zmk/app/tests/hold-tap/README.md deleted file mode 100644 index 0630132d..00000000 --- a/zmk/app/tests/hold-tap/README.md +++ /dev/null @@ -1 +0,0 @@ -Refer to the pdf/open document "zmk-modtap-proposal.{pdf,odt}" in this directory for a visual representation of the numbered tests for hold-tap. diff --git a/zmk/app/tests/hold-tap/balanced/1-dn-up/events.patterns b/zmk/app/tests/hold-tap/balanced/1-dn-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/balanced/1-dn-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/1-dn-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/balanced/1-dn-up/keycode_events.snapshot deleted file mode 100644 index c088e5e6..00000000 --- a/zmk/app/tests/hold-tap/balanced/1-dn-up/keycode_events.snapshot +++ /dev/null @@ -1,5 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided tap (balanced event 0) -kp_pressed: usage_page 0x07 keycode 0x09 mods 0x00 -kp_released: usage_page 0x07 keycode 0x09 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/balanced/1-dn-up/native_posix.keymap b/zmk/app/tests/hold-tap/balanced/1-dn-up/native_posix.keymap deleted file mode 100644 index 10336ef3..00000000 --- a/zmk/app/tests/hold-tap/balanced/1-dn-up/native_posix.keymap +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/2-dn-timer-up/events.patterns b/zmk/app/tests/hold-tap/balanced/2-dn-timer-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/balanced/2-dn-timer-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/2-dn-timer-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/balanced/2-dn-timer-up/keycode_events.snapshot deleted file mode 100644 index a8b5d1fe..00000000 --- a/zmk/app/tests/hold-tap/balanced/2-dn-timer-up/keycode_events.snapshot +++ /dev/null @@ -1,5 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (balanced event 3) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/balanced/2-dn-timer-up/native_posix.keymap b/zmk/app/tests/hold-tap/balanced/2-dn-timer-up/native_posix.keymap deleted file mode 100644 index aa93b862..00000000 --- a/zmk/app/tests/hold-tap/balanced/2-dn-timer-up/native_posix.keymap +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,500) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/3a-moddn-dn-modup-up/events.patterns b/zmk/app/tests/hold-tap/balanced/3a-moddn-dn-modup-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/balanced/3a-moddn-dn-modup-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/3a-moddn-dn-modup-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/balanced/3a-moddn-dn-modup-up/keycode_events.snapshot deleted file mode 100644 index ca458c7b..00000000 --- a/zmk/app/tests/hold-tap/balanced/3a-moddn-dn-modup-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -kp_pressed: usage_page 0x07 keycode 0xe4 mods 0x00 -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided tap (balanced event 0) -kp_pressed: usage_page 0x07 keycode 0x09 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe4 mods 0x00 -kp_released: usage_page 0x07 keycode 0x09 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/balanced/3a-moddn-dn-modup-up/native_posix.keymap b/zmk/app/tests/hold-tap/balanced/3a-moddn-dn-modup-up/native_posix.keymap deleted file mode 100644 index 6f08689b..00000000 --- a/zmk/app/tests/hold-tap/balanced/3a-moddn-dn-modup-up/native_posix.keymap +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(1,1,10) /*ctrl*/ - ZMK_MOCK_PRESS(0,0,100) /*mt f-shift */ - ZMK_MOCK_RELEASE(1,1,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/3b-moddn-dn-modup-timer-up/events.patterns b/zmk/app/tests/hold-tap/balanced/3b-moddn-dn-modup-timer-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/balanced/3b-moddn-dn-modup-timer-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/3b-moddn-dn-modup-timer-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/balanced/3b-moddn-dn-modup-timer-up/keycode_events.snapshot deleted file mode 100644 index ef4dfa5f..00000000 --- a/zmk/app/tests/hold-tap/balanced/3b-moddn-dn-modup-timer-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -kp_pressed: usage_page 0x07 keycode 0xe4 mods 0x00 -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (balanced event 3) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe4 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/balanced/3b-moddn-dn-modup-timer-up/native_posix.keymap b/zmk/app/tests/hold-tap/balanced/3b-moddn-dn-modup-timer-up/native_posix.keymap deleted file mode 100644 index 392d328b..00000000 --- a/zmk/app/tests/hold-tap/balanced/3b-moddn-dn-modup-timer-up/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(1,1,10) /*ctrl*/ - ZMK_MOCK_PRESS(0,0,50) /*mt f-shift */ - ZMK_MOCK_RELEASE(1,1,300) - /*timer*/ - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/3c-kcdn-dn-kcup-up/events.patterns b/zmk/app/tests/hold-tap/balanced/3c-kcdn-dn-kcup-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/balanced/3c-kcdn-dn-kcup-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/3c-kcdn-dn-kcup-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/balanced/3c-kcdn-dn-kcup-up/keycode_events.snapshot deleted file mode 100644 index 70a3353d..00000000 --- a/zmk/app/tests/hold-tap/balanced/3c-kcdn-dn-kcup-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -ht_binding_pressed: 0 new undecided hold_tap -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 -ht_decide: 0 decided tap (balanced event 0) -kp_pressed: usage_page 0x07 keycode 0x09 mods 0x00 -kp_released: usage_page 0x07 keycode 0x09 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/balanced/3c-kcdn-dn-kcup-up/native_posix.keymap b/zmk/app/tests/hold-tap/balanced/3c-kcdn-dn-kcup-up/native_posix.keymap deleted file mode 100644 index 77306cd0..00000000 --- a/zmk/app/tests/hold-tap/balanced/3c-kcdn-dn-kcup-up/native_posix.keymap +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(1,0,10) /*d*/ - ZMK_MOCK_PRESS(0,0,100) /*mt f-shift */ - ZMK_MOCK_RELEASE(1,0,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/3d-kcdn-dn-kcup-timer-up/events.patterns b/zmk/app/tests/hold-tap/balanced/3d-kcdn-dn-kcup-timer-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/balanced/3d-kcdn-dn-kcup-timer-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/3d-kcdn-dn-kcup-timer-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/balanced/3d-kcdn-dn-kcup-timer-up/keycode_events.snapshot deleted file mode 100644 index 121f0071..00000000 --- a/zmk/app/tests/hold-tap/balanced/3d-kcdn-dn-kcup-timer-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -ht_binding_pressed: 0 new undecided hold_tap -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 -ht_decide: 0 decided hold (balanced event 3) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/balanced/3d-kcdn-dn-kcup-timer-up/native_posix.keymap b/zmk/app/tests/hold-tap/balanced/3d-kcdn-dn-kcup-timer-up/native_posix.keymap deleted file mode 100644 index 14413311..00000000 --- a/zmk/app/tests/hold-tap/balanced/3d-kcdn-dn-kcup-timer-up/native_posix.keymap +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(1,0,10) /* d */ - ZMK_MOCK_PRESS(0,0,100) /* mt f-shift */ - ZMK_MOCK_RELEASE(1,0,400) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/4a-dn-htdn-timer-htup-up/events.patterns b/zmk/app/tests/hold-tap/balanced/4a-dn-htdn-timer-htup-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/balanced/4a-dn-htdn-timer-htup-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/4a-dn-htdn-timer-htup-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/balanced/4a-dn-htdn-timer-htup-up/keycode_events.snapshot deleted file mode 100644 index ae9dcc96..00000000 --- a/zmk/app/tests/hold-tap/balanced/4a-dn-htdn-timer-htup-up/keycode_events.snapshot +++ /dev/null @@ -1,10 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (balanced event 3) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_pressed: 1 new undecided hold_tap -ht_decide: 1 decided tap (balanced event 0) -kp_pressed: usage_page 0x07 keycode 0x0d mods 0x00 -kp_released: usage_page 0x07 keycode 0x0d mods 0x00 -ht_binding_released: 1 cleaning up hold-tap -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/balanced/4a-dn-htdn-timer-htup-up/native_posix.keymap b/zmk/app/tests/hold-tap/balanced/4a-dn-htdn-timer-htup-up/native_posix.keymap deleted file mode 100644 index c10c6d64..00000000 --- a/zmk/app/tests/hold-tap/balanced/4a-dn-htdn-timer-htup-up/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,200) - ZMK_MOCK_PRESS(0,1,200) - /* timer fires */ - ZMK_MOCK_RELEASE(0,1,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/4a-dn-kcdn-timer-kcup-up/events.patterns b/zmk/app/tests/hold-tap/balanced/4a-dn-kcdn-timer-kcup-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/balanced/4a-dn-kcdn-timer-kcup-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/4a-dn-kcdn-timer-kcup-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/balanced/4a-dn-kcdn-timer-kcup-up/keycode_events.snapshot deleted file mode 100644 index c1e03ad2..00000000 --- a/zmk/app/tests/hold-tap/balanced/4a-dn-kcdn-timer-kcup-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (balanced event 3) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/balanced/4a-dn-kcdn-timer-kcup-up/native_posix.keymap b/zmk/app/tests/hold-tap/balanced/4a-dn-kcdn-timer-kcup-up/native_posix.keymap deleted file mode 100644 index ce163f53..00000000 --- a/zmk/app/tests/hold-tap/balanced/4a-dn-kcdn-timer-kcup-up/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,200) - ZMK_MOCK_PRESS(1,0,200) - /* timer fires */ - ZMK_MOCK_RELEASE(1,0,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/4b-dn-kcdn-kcup-timer-up/events.patterns b/zmk/app/tests/hold-tap/balanced/4b-dn-kcdn-kcup-timer-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/balanced/4b-dn-kcdn-kcup-timer-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/4b-dn-kcdn-kcup-timer-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/balanced/4b-dn-kcdn-kcup-timer-up/keycode_events.snapshot deleted file mode 100644 index 95330e69..00000000 --- a/zmk/app/tests/hold-tap/balanced/4b-dn-kcdn-kcup-timer-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (balanced event 2) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/balanced/4b-dn-kcdn-kcup-timer-up/native_posix.keymap b/zmk/app/tests/hold-tap/balanced/4b-dn-kcdn-kcup-timer-up/native_posix.keymap deleted file mode 100644 index 7abda41a..00000000 --- a/zmk/app/tests/hold-tap/balanced/4b-dn-kcdn-kcup-timer-up/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,100) - ZMK_MOCK_PRESS(1,0,100) - ZMK_MOCK_RELEASE(1,0,200) - /* timer fires */ - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/4c-dn-kcdn-kcup-up/events.patterns b/zmk/app/tests/hold-tap/balanced/4c-dn-kcdn-kcup-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/balanced/4c-dn-kcdn-kcup-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/4c-dn-kcdn-kcup-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/balanced/4c-dn-kcdn-kcup-up/keycode_events.snapshot deleted file mode 100644 index 95330e69..00000000 --- a/zmk/app/tests/hold-tap/balanced/4c-dn-kcdn-kcup-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (balanced event 2) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/balanced/4c-dn-kcdn-kcup-up/native_posix.keymap b/zmk/app/tests/hold-tap/balanced/4c-dn-kcdn-kcup-up/native_posix.keymap deleted file mode 100644 index ce030af3..00000000 --- a/zmk/app/tests/hold-tap/balanced/4c-dn-kcdn-kcup-up/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,10) - ZMK_MOCK_PRESS(1,0,10) - ZMK_MOCK_RELEASE(1,0,10) - ZMK_MOCK_RELEASE(0,0,10) - /* timer */ - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/4d-dn-kcdn-timer-up-kcup/events.patterns b/zmk/app/tests/hold-tap/balanced/4d-dn-kcdn-timer-up-kcup/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/balanced/4d-dn-kcdn-timer-up-kcup/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/4d-dn-kcdn-timer-up-kcup/keycode_events.snapshot b/zmk/app/tests/hold-tap/balanced/4d-dn-kcdn-timer-up-kcup/keycode_events.snapshot deleted file mode 100644 index 63219ee0..00000000 --- a/zmk/app/tests/hold-tap/balanced/4d-dn-kcdn-timer-up-kcup/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided tap (balanced event 0) -kp_pressed: usage_page 0x07 keycode 0x09 mods 0x00 -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0x09 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 diff --git a/zmk/app/tests/hold-tap/balanced/4d-dn-kcdn-timer-up-kcup/native_posix.keymap b/zmk/app/tests/hold-tap/balanced/4d-dn-kcdn-timer-up-kcup/native_posix.keymap deleted file mode 100644 index 54676600..00000000 --- a/zmk/app/tests/hold-tap/balanced/4d-dn-kcdn-timer-up-kcup/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,100) - ZMK_MOCK_PRESS(1,0,100) - ZMK_MOCK_RELEASE(0,0,200) - /* timer fires */ - ZMK_MOCK_RELEASE(1,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/behavior_keymap.dtsi b/zmk/app/tests/hold-tap/balanced/behavior_keymap.dtsi deleted file mode 100644 index 7d18bb6e..00000000 --- a/zmk/app/tests/hold-tap/balanced/behavior_keymap.dtsi +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include -#include - -/ { - behaviors { - ht_bal: behavior_hold_tap_balanced { - compatible = "zmk,behavior-hold-tap"; - label = "HOLD_TAP_BALANCED"; - #binding-cells = <2>; - flavor = "balanced"; - tapping_term_ms = <300>; - bindings = <&kp>, <&kp>; - }; - }; - - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &ht_bal LEFT_SHIFT F &ht_bal LEFT_CONTROL J - &kp D &kp RIGHT_CONTROL>; - }; - }; -}; diff --git a/zmk/app/tests/hold-tap/balanced/many-nested/events.patterns b/zmk/app/tests/hold-tap/balanced/many-nested/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/balanced/many-nested/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/balanced/many-nested/keycode_events.snapshot b/zmk/app/tests/hold-tap/balanced/many-nested/keycode_events.snapshot deleted file mode 100644 index dda02ddf..00000000 --- a/zmk/app/tests/hold-tap/balanced/many-nested/keycode_events.snapshot +++ /dev/null @@ -1,20 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (balanced event 3) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_pressed: 1 new undecided hold_tap -ht_decide: 1 decided hold (balanced event 3) -kp_pressed: usage_page 0x07 keycode 0xe0 mods 0x00 -ht_binding_pressed: 2 new undecided hold_tap -ht_binding_released: 0 cleaning up hold-tap -ht_decide: 2 decided hold (balanced event 3) -kp_pressed: usage_page 0x07 keycode 0xe3 mods 0x00 -ht_binding_pressed: 3 new undecided hold_tap -ht_binding_released: 1 cleaning up hold-tap -ht_decide: 3 decided hold (balanced event 3) -kp_pressed: usage_page 0x07 keycode 0xe2 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe0 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe3 mods 0x00 -ht_binding_released: 2 cleaning up hold-tap -kp_released: usage_page 0x07 keycode 0xe2 mods 0x00 -ht_binding_released: 3 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/balanced/many-nested/native_posix.keymap b/zmk/app/tests/hold-tap/balanced/many-nested/native_posix.keymap deleted file mode 100644 index f51ffb56..00000000 --- a/zmk/app/tests/hold-tap/balanced/many-nested/native_posix.keymap +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include -#include - -/ { - behaviors { - ht_bal: behavior_hold_tap_balanced { - compatible = "zmk,behavior-hold-tap"; - label = "HOLD_TAP_BALANCED"; - #binding-cells = <2>; - flavor = "balanced"; - tapping_term_ms = <300>; - bindings = <&kp>, <&kp>; - }; - }; - - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &ht_bal LEFT_SHIFT F &ht_bal LEFT_CONTROL J - &ht_bal LEFT_GUI H &ht_bal LEFT_ALT L - >; - }; - }; -}; - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,100) - ZMK_MOCK_PRESS(0,1,100) - ZMK_MOCK_PRESS(1,0,100) - ZMK_MOCK_PRESS(1,1,100) - ZMK_MOCK_RELEASE(0,0,100) - ZMK_MOCK_RELEASE(0,1,100) - ZMK_MOCK_RELEASE(1,0,100) - ZMK_MOCK_RELEASE(1,1,100) - >; -}; diff --git a/zmk/app/tests/hold-tap/hold-preferred/1-dn-up/events.patterns b/zmk/app/tests/hold-tap/hold-preferred/1-dn-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/1-dn-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/1-dn-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/hold-preferred/1-dn-up/keycode_events.snapshot deleted file mode 100644 index 2eb64758..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/1-dn-up/keycode_events.snapshot +++ /dev/null @@ -1,5 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided tap (hold-preferred event 0) -kp_pressed: usage_page 0x07 keycode 0x09 mods 0x00 -kp_released: usage_page 0x07 keycode 0x09 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/hold-preferred/1-dn-up/native_posix.keymap b/zmk/app/tests/hold-tap/hold-preferred/1-dn-up/native_posix.keymap deleted file mode 100644 index 10336ef3..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/1-dn-up/native_posix.keymap +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/2-dn-timer-up/events.patterns b/zmk/app/tests/hold-tap/hold-preferred/2-dn-timer-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/2-dn-timer-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/2-dn-timer-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/hold-preferred/2-dn-timer-up/keycode_events.snapshot deleted file mode 100644 index 86517aa3..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/2-dn-timer-up/keycode_events.snapshot +++ /dev/null @@ -1,5 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (hold-preferred event 3) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/hold-preferred/2-dn-timer-up/native_posix.keymap b/zmk/app/tests/hold-tap/hold-preferred/2-dn-timer-up/native_posix.keymap deleted file mode 100644 index aa93b862..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/2-dn-timer-up/native_posix.keymap +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,500) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/3a-moddn-dn-modup-up/events.patterns b/zmk/app/tests/hold-tap/hold-preferred/3a-moddn-dn-modup-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/3a-moddn-dn-modup-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/3a-moddn-dn-modup-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/hold-preferred/3a-moddn-dn-modup-up/keycode_events.snapshot deleted file mode 100644 index b7434c65..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/3a-moddn-dn-modup-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -kp_pressed: usage_page 0x07 keycode 0xe4 mods 0x00 -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided tap (hold-preferred event 0) -kp_pressed: usage_page 0x07 keycode 0x09 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe4 mods 0x00 -kp_released: usage_page 0x07 keycode 0x09 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/hold-preferred/3a-moddn-dn-modup-up/native_posix.keymap b/zmk/app/tests/hold-tap/hold-preferred/3a-moddn-dn-modup-up/native_posix.keymap deleted file mode 100644 index 6f08689b..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/3a-moddn-dn-modup-up/native_posix.keymap +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(1,1,10) /*ctrl*/ - ZMK_MOCK_PRESS(0,0,100) /*mt f-shift */ - ZMK_MOCK_RELEASE(1,1,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/3b-moddn-dn-modup-timer-up/events.patterns b/zmk/app/tests/hold-tap/hold-preferred/3b-moddn-dn-modup-timer-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/3b-moddn-dn-modup-timer-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/3b-moddn-dn-modup-timer-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/hold-preferred/3b-moddn-dn-modup-timer-up/keycode_events.snapshot deleted file mode 100644 index ffb6aadd..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/3b-moddn-dn-modup-timer-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -kp_pressed: usage_page 0x07 keycode 0xe4 mods 0x00 -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (hold-preferred event 3) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe4 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/hold-preferred/3b-moddn-dn-modup-timer-up/native_posix.keymap b/zmk/app/tests/hold-tap/hold-preferred/3b-moddn-dn-modup-timer-up/native_posix.keymap deleted file mode 100644 index 392d328b..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/3b-moddn-dn-modup-timer-up/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(1,1,10) /*ctrl*/ - ZMK_MOCK_PRESS(0,0,50) /*mt f-shift */ - ZMK_MOCK_RELEASE(1,1,300) - /*timer*/ - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/3c-kcdn-dn-kcup-up/events.patterns b/zmk/app/tests/hold-tap/hold-preferred/3c-kcdn-dn-kcup-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/3c-kcdn-dn-kcup-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/3c-kcdn-dn-kcup-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/hold-preferred/3c-kcdn-dn-kcup-up/keycode_events.snapshot deleted file mode 100644 index 1254fedd..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/3c-kcdn-dn-kcup-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -ht_binding_pressed: 0 new undecided hold_tap -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 -ht_decide: 0 decided tap (hold-preferred event 0) -kp_pressed: usage_page 0x07 keycode 0x09 mods 0x00 -kp_released: usage_page 0x07 keycode 0x09 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/hold-preferred/3c-kcdn-dn-kcup-up/native_posix.keymap b/zmk/app/tests/hold-tap/hold-preferred/3c-kcdn-dn-kcup-up/native_posix.keymap deleted file mode 100644 index 77306cd0..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/3c-kcdn-dn-kcup-up/native_posix.keymap +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(1,0,10) /*d*/ - ZMK_MOCK_PRESS(0,0,100) /*mt f-shift */ - ZMK_MOCK_RELEASE(1,0,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/3d-kcdn-dn-kcup-timer-up/events.patterns b/zmk/app/tests/hold-tap/hold-preferred/3d-kcdn-dn-kcup-timer-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/3d-kcdn-dn-kcup-timer-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/3d-kcdn-dn-kcup-timer-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/hold-preferred/3d-kcdn-dn-kcup-timer-up/keycode_events.snapshot deleted file mode 100644 index ba7b48b3..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/3d-kcdn-dn-kcup-timer-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -ht_binding_pressed: 0 new undecided hold_tap -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 -ht_decide: 0 decided hold (hold-preferred event 3) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/hold-preferred/3d-kcdn-dn-kcup-timer-up/native_posix.keymap b/zmk/app/tests/hold-tap/hold-preferred/3d-kcdn-dn-kcup-timer-up/native_posix.keymap deleted file mode 100644 index 14413311..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/3d-kcdn-dn-kcup-timer-up/native_posix.keymap +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(1,0,10) /* d */ - ZMK_MOCK_PRESS(0,0,100) /* mt f-shift */ - ZMK_MOCK_RELEASE(1,0,400) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/4a-dn-htdn-timer-htup-up/events.patterns b/zmk/app/tests/hold-tap/hold-preferred/4a-dn-htdn-timer-htup-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/4a-dn-htdn-timer-htup-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/4a-dn-htdn-timer-htup-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/hold-preferred/4a-dn-htdn-timer-htup-up/keycode_events.snapshot deleted file mode 100644 index c8acfc17..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/4a-dn-htdn-timer-htup-up/keycode_events.snapshot +++ /dev/null @@ -1,10 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (hold-preferred event 1) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_pressed: 1 new undecided hold_tap -ht_decide: 1 decided tap (hold-preferred event 0) -kp_pressed: usage_page 0x07 keycode 0x0d mods 0x00 -kp_released: usage_page 0x07 keycode 0x0d mods 0x00 -ht_binding_released: 1 cleaning up hold-tap -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/hold-preferred/4a-dn-htdn-timer-htup-up/native_posix.keymap b/zmk/app/tests/hold-tap/hold-preferred/4a-dn-htdn-timer-htup-up/native_posix.keymap deleted file mode 100644 index c10c6d64..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/4a-dn-htdn-timer-htup-up/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,200) - ZMK_MOCK_PRESS(0,1,200) - /* timer fires */ - ZMK_MOCK_RELEASE(0,1,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/4a-dn-kcdn-timer-kcup-up/events.patterns b/zmk/app/tests/hold-tap/hold-preferred/4a-dn-kcdn-timer-kcup-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/4a-dn-kcdn-timer-kcup-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/4a-dn-kcdn-timer-kcup-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/hold-preferred/4a-dn-kcdn-timer-kcup-up/keycode_events.snapshot deleted file mode 100644 index 97cd07bf..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/4a-dn-kcdn-timer-kcup-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (hold-preferred event 1) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/hold-preferred/4a-dn-kcdn-timer-kcup-up/native_posix.keymap b/zmk/app/tests/hold-tap/hold-preferred/4a-dn-kcdn-timer-kcup-up/native_posix.keymap deleted file mode 100644 index ce163f53..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/4a-dn-kcdn-timer-kcup-up/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,200) - ZMK_MOCK_PRESS(1,0,200) - /* timer fires */ - ZMK_MOCK_RELEASE(1,0,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/4b-dn-kcdn-kcup-timer-up/events.patterns b/zmk/app/tests/hold-tap/hold-preferred/4b-dn-kcdn-kcup-timer-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/4b-dn-kcdn-kcup-timer-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/4b-dn-kcdn-kcup-timer-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/hold-preferred/4b-dn-kcdn-kcup-timer-up/keycode_events.snapshot deleted file mode 100644 index 97cd07bf..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/4b-dn-kcdn-kcup-timer-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (hold-preferred event 1) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/hold-preferred/4b-dn-kcdn-kcup-timer-up/native_posix.keymap b/zmk/app/tests/hold-tap/hold-preferred/4b-dn-kcdn-kcup-timer-up/native_posix.keymap deleted file mode 100644 index 7abda41a..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/4b-dn-kcdn-kcup-timer-up/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,100) - ZMK_MOCK_PRESS(1,0,100) - ZMK_MOCK_RELEASE(1,0,200) - /* timer fires */ - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/4c-dn-kcdn-kcup-up/events.patterns b/zmk/app/tests/hold-tap/hold-preferred/4c-dn-kcdn-kcup-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/4c-dn-kcdn-kcup-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/4c-dn-kcdn-kcup-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/hold-preferred/4c-dn-kcdn-kcup-up/keycode_events.snapshot deleted file mode 100644 index 97cd07bf..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/4c-dn-kcdn-kcup-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (hold-preferred event 1) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/hold-preferred/4c-dn-kcdn-kcup-up/native_posix.keymap b/zmk/app/tests/hold-tap/hold-preferred/4c-dn-kcdn-kcup-up/native_posix.keymap deleted file mode 100644 index ce030af3..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/4c-dn-kcdn-kcup-up/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,10) - ZMK_MOCK_PRESS(1,0,10) - ZMK_MOCK_RELEASE(1,0,10) - ZMK_MOCK_RELEASE(0,0,10) - /* timer */ - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/4d-dn-kcdn-timer-up-kcup/events.patterns b/zmk/app/tests/hold-tap/hold-preferred/4d-dn-kcdn-timer-up-kcup/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/4d-dn-kcdn-timer-up-kcup/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/4d-dn-kcdn-timer-up-kcup/keycode_events.snapshot b/zmk/app/tests/hold-tap/hold-preferred/4d-dn-kcdn-timer-up-kcup/keycode_events.snapshot deleted file mode 100644 index 2a21d929..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/4d-dn-kcdn-timer-up-kcup/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (hold-preferred event 1) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 diff --git a/zmk/app/tests/hold-tap/hold-preferred/4d-dn-kcdn-timer-up-kcup/native_posix.keymap b/zmk/app/tests/hold-tap/hold-preferred/4d-dn-kcdn-timer-up-kcup/native_posix.keymap deleted file mode 100644 index 54676600..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/4d-dn-kcdn-timer-up-kcup/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,100) - ZMK_MOCK_PRESS(1,0,100) - ZMK_MOCK_RELEASE(0,0,200) - /* timer fires */ - ZMK_MOCK_RELEASE(1,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/hold-preferred/behavior_keymap.dtsi b/zmk/app/tests/hold-tap/hold-preferred/behavior_keymap.dtsi deleted file mode 100644 index 64847a57..00000000 --- a/zmk/app/tests/hold-tap/hold-preferred/behavior_keymap.dtsi +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include -#include - - - -/ { - behaviors { - ht_hold: behavior_hold_hold_tap { - compatible = "zmk,behavior-hold-tap"; - label = "hold_hold_tap"; - #binding-cells = <2>; - flavor = "hold-preferred"; - tapping_term_ms = <300>; - bindings = <&kp>, <&kp>; - }; - }; - - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &ht_hold LEFT_SHIFT F &ht_hold LEFT_CONTROL J - &kp D &kp RIGHT_CONTROL>; - }; - }; -}; diff --git a/zmk/app/tests/hold-tap/tap-preferred/1-dn-up/events.patterns b/zmk/app/tests/hold-tap/tap-preferred/1-dn-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/1-dn-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/1-dn-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/tap-preferred/1-dn-up/keycode_events.snapshot deleted file mode 100644 index 57e4fcd7..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/1-dn-up/keycode_events.snapshot +++ /dev/null @@ -1,5 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided tap (tap-preferred event 0) -kp_pressed: usage_page 0x07 keycode 0x09 mods 0x00 -kp_released: usage_page 0x07 keycode 0x09 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/tap-preferred/1-dn-up/native_posix.keymap b/zmk/app/tests/hold-tap/tap-preferred/1-dn-up/native_posix.keymap deleted file mode 100644 index 10336ef3..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/1-dn-up/native_posix.keymap +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/2-dn-timer-up/events.patterns b/zmk/app/tests/hold-tap/tap-preferred/2-dn-timer-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/2-dn-timer-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/2-dn-timer-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/tap-preferred/2-dn-timer-up/keycode_events.snapshot deleted file mode 100644 index 71ba8da4..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/2-dn-timer-up/keycode_events.snapshot +++ /dev/null @@ -1,5 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (tap-preferred event 3) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/tap-preferred/2-dn-timer-up/native_posix.keymap b/zmk/app/tests/hold-tap/tap-preferred/2-dn-timer-up/native_posix.keymap deleted file mode 100644 index aa93b862..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/2-dn-timer-up/native_posix.keymap +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,500) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/3a-moddn-dn-modup-up/events.patterns b/zmk/app/tests/hold-tap/tap-preferred/3a-moddn-dn-modup-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/3a-moddn-dn-modup-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/3a-moddn-dn-modup-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/tap-preferred/3a-moddn-dn-modup-up/keycode_events.snapshot deleted file mode 100644 index 0bc731f0..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/3a-moddn-dn-modup-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -kp_pressed: usage_page 0x07 keycode 0xe4 mods 0x00 -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided tap (tap-preferred event 0) -kp_pressed: usage_page 0x07 keycode 0x09 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe4 mods 0x00 -kp_released: usage_page 0x07 keycode 0x09 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/tap-preferred/3a-moddn-dn-modup-up/native_posix.keymap b/zmk/app/tests/hold-tap/tap-preferred/3a-moddn-dn-modup-up/native_posix.keymap deleted file mode 100644 index 6f08689b..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/3a-moddn-dn-modup-up/native_posix.keymap +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(1,1,10) /*ctrl*/ - ZMK_MOCK_PRESS(0,0,100) /*mt f-shift */ - ZMK_MOCK_RELEASE(1,1,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/3b-moddn-dn-modup-timer-up/events.patterns b/zmk/app/tests/hold-tap/tap-preferred/3b-moddn-dn-modup-timer-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/3b-moddn-dn-modup-timer-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/3b-moddn-dn-modup-timer-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/tap-preferred/3b-moddn-dn-modup-timer-up/keycode_events.snapshot deleted file mode 100644 index 6a3398f4..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/3b-moddn-dn-modup-timer-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -kp_pressed: usage_page 0x07 keycode 0xe4 mods 0x00 -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (tap-preferred event 3) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe4 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/tap-preferred/3b-moddn-dn-modup-timer-up/native_posix.keymap b/zmk/app/tests/hold-tap/tap-preferred/3b-moddn-dn-modup-timer-up/native_posix.keymap deleted file mode 100644 index 392d328b..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/3b-moddn-dn-modup-timer-up/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(1,1,10) /*ctrl*/ - ZMK_MOCK_PRESS(0,0,50) /*mt f-shift */ - ZMK_MOCK_RELEASE(1,1,300) - /*timer*/ - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/3c-kcdn-dn-kcup-up/events.patterns b/zmk/app/tests/hold-tap/tap-preferred/3c-kcdn-dn-kcup-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/3c-kcdn-dn-kcup-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/3c-kcdn-dn-kcup-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/tap-preferred/3c-kcdn-dn-kcup-up/keycode_events.snapshot deleted file mode 100644 index e518582c..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/3c-kcdn-dn-kcup-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -ht_binding_pressed: 0 new undecided hold_tap -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 -ht_decide: 0 decided tap (tap-preferred event 0) -kp_pressed: usage_page 0x07 keycode 0x09 mods 0x00 -kp_released: usage_page 0x07 keycode 0x09 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/tap-preferred/3c-kcdn-dn-kcup-up/native_posix.keymap b/zmk/app/tests/hold-tap/tap-preferred/3c-kcdn-dn-kcup-up/native_posix.keymap deleted file mode 100644 index 77306cd0..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/3c-kcdn-dn-kcup-up/native_posix.keymap +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(1,0,10) /*d*/ - ZMK_MOCK_PRESS(0,0,100) /*mt f-shift */ - ZMK_MOCK_RELEASE(1,0,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/3d-kcdn-dn-kcup-timer-up/events.patterns b/zmk/app/tests/hold-tap/tap-preferred/3d-kcdn-dn-kcup-timer-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/3d-kcdn-dn-kcup-timer-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/3d-kcdn-dn-kcup-timer-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/tap-preferred/3d-kcdn-dn-kcup-timer-up/keycode_events.snapshot deleted file mode 100644 index b3b06730..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/3d-kcdn-dn-kcup-timer-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -ht_binding_pressed: 0 new undecided hold_tap -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 -ht_decide: 0 decided hold (tap-preferred event 3) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/tap-preferred/3d-kcdn-dn-kcup-timer-up/native_posix.keymap b/zmk/app/tests/hold-tap/tap-preferred/3d-kcdn-dn-kcup-timer-up/native_posix.keymap deleted file mode 100644 index 14413311..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/3d-kcdn-dn-kcup-timer-up/native_posix.keymap +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(1,0,10) /* d */ - ZMK_MOCK_PRESS(0,0,100) /* mt f-shift */ - ZMK_MOCK_RELEASE(1,0,400) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/4a-dn-htdn-timer-htup-up/events.patterns b/zmk/app/tests/hold-tap/tap-preferred/4a-dn-htdn-timer-htup-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/4a-dn-htdn-timer-htup-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/4a-dn-htdn-timer-htup-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/tap-preferred/4a-dn-htdn-timer-htup-up/keycode_events.snapshot deleted file mode 100644 index 7f454210..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/4a-dn-htdn-timer-htup-up/keycode_events.snapshot +++ /dev/null @@ -1,10 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (tap-preferred event 3) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_pressed: 1 new undecided hold_tap -ht_decide: 1 decided tap (tap-preferred event 0) -kp_pressed: usage_page 0x07 keycode 0x0d mods 0x00 -kp_released: usage_page 0x07 keycode 0x0d mods 0x00 -ht_binding_released: 1 cleaning up hold-tap -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/tap-preferred/4a-dn-htdn-timer-htup-up/native_posix.keymap b/zmk/app/tests/hold-tap/tap-preferred/4a-dn-htdn-timer-htup-up/native_posix.keymap deleted file mode 100644 index c10c6d64..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/4a-dn-htdn-timer-htup-up/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,200) - ZMK_MOCK_PRESS(0,1,200) - /* timer fires */ - ZMK_MOCK_RELEASE(0,1,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/4a-dn-kcdn-timer-kcup-up/events.patterns b/zmk/app/tests/hold-tap/tap-preferred/4a-dn-kcdn-timer-kcup-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/4a-dn-kcdn-timer-kcup-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/4a-dn-kcdn-timer-kcup-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/tap-preferred/4a-dn-kcdn-timer-kcup-up/keycode_events.snapshot deleted file mode 100644 index ade0d3ea..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/4a-dn-kcdn-timer-kcup-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (tap-preferred event 3) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/tap-preferred/4a-dn-kcdn-timer-kcup-up/native_posix.keymap b/zmk/app/tests/hold-tap/tap-preferred/4a-dn-kcdn-timer-kcup-up/native_posix.keymap deleted file mode 100644 index ce163f53..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/4a-dn-kcdn-timer-kcup-up/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,200) - ZMK_MOCK_PRESS(1,0,200) - /* timer fires */ - ZMK_MOCK_RELEASE(1,0,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/4b-dn-kcdn-kcup-timer-up/events.patterns b/zmk/app/tests/hold-tap/tap-preferred/4b-dn-kcdn-kcup-timer-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/4b-dn-kcdn-kcup-timer-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/4b-dn-kcdn-kcup-timer-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/tap-preferred/4b-dn-kcdn-kcup-timer-up/keycode_events.snapshot deleted file mode 100644 index ade0d3ea..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/4b-dn-kcdn-kcup-timer-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided hold (tap-preferred event 3) -kp_pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0xe1 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/tap-preferred/4b-dn-kcdn-kcup-timer-up/native_posix.keymap b/zmk/app/tests/hold-tap/tap-preferred/4b-dn-kcdn-kcup-timer-up/native_posix.keymap deleted file mode 100644 index 7abda41a..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/4b-dn-kcdn-kcup-timer-up/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,100) - ZMK_MOCK_PRESS(1,0,100) - ZMK_MOCK_RELEASE(1,0,200) - /* timer fires */ - ZMK_MOCK_RELEASE(0,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/4c-dn-kcdn-kcup-up/events.patterns b/zmk/app/tests/hold-tap/tap-preferred/4c-dn-kcdn-kcup-up/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/4c-dn-kcdn-kcup-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/4c-dn-kcdn-kcup-up/keycode_events.snapshot b/zmk/app/tests/hold-tap/tap-preferred/4c-dn-kcdn-kcup-up/keycode_events.snapshot deleted file mode 100644 index 418312c3..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/4c-dn-kcdn-kcup-up/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided tap (tap-preferred event 0) -kp_pressed: usage_page 0x07 keycode 0x09 mods 0x00 -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0x09 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap diff --git a/zmk/app/tests/hold-tap/tap-preferred/4c-dn-kcdn-kcup-up/native_posix.keymap b/zmk/app/tests/hold-tap/tap-preferred/4c-dn-kcdn-kcup-up/native_posix.keymap deleted file mode 100644 index ce030af3..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/4c-dn-kcdn-kcup-up/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,10) - ZMK_MOCK_PRESS(1,0,10) - ZMK_MOCK_RELEASE(1,0,10) - ZMK_MOCK_RELEASE(0,0,10) - /* timer */ - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/4d-dn-kcdn-timer-up-kcup/events.patterns b/zmk/app/tests/hold-tap/tap-preferred/4d-dn-kcdn-timer-up-kcup/events.patterns deleted file mode 100644 index fdf2b15c..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/4d-dn-kcdn-timer-up-kcup/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*on_hold_tap_binding/ht_binding/p -s/.*decide_hold_tap/ht_decide/p \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/4d-dn-kcdn-timer-up-kcup/keycode_events.snapshot b/zmk/app/tests/hold-tap/tap-preferred/4d-dn-kcdn-timer-up-kcup/keycode_events.snapshot deleted file mode 100644 index c0b4c0b7..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/4d-dn-kcdn-timer-up-kcup/keycode_events.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -ht_binding_pressed: 0 new undecided hold_tap -ht_decide: 0 decided tap (tap-preferred event 0) -kp_pressed: usage_page 0x07 keycode 0x09 mods 0x00 -kp_pressed: usage_page 0x07 keycode 0x07 mods 0x00 -kp_released: usage_page 0x07 keycode 0x09 mods 0x00 -ht_binding_released: 0 cleaning up hold-tap -kp_released: usage_page 0x07 keycode 0x07 mods 0x00 diff --git a/zmk/app/tests/hold-tap/tap-preferred/4d-dn-kcdn-timer-up-kcup/native_posix.keymap b/zmk/app/tests/hold-tap/tap-preferred/4d-dn-kcdn-timer-up-kcup/native_posix.keymap deleted file mode 100644 index 54676600..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/4d-dn-kcdn-timer-up-kcup/native_posix.keymap +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,100) - ZMK_MOCK_PRESS(1,0,100) - ZMK_MOCK_RELEASE(0,0,200) - /* timer fires */ - ZMK_MOCK_RELEASE(1,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/hold-tap/tap-preferred/behavior_keymap.dtsi b/zmk/app/tests/hold-tap/tap-preferred/behavior_keymap.dtsi deleted file mode 100644 index 6e91466d..00000000 --- a/zmk/app/tests/hold-tap/tap-preferred/behavior_keymap.dtsi +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include -#include - -/ { - behaviors { - tp: behavior_tap_preferred { - compatible = "zmk,behavior-hold-tap"; - label = "MOD_TAP"; - #binding-cells = <2>; - flavor = "tap-preferred"; - tapping_term_ms = <300>; - bindings = <&kp>, <&kp>; - }; - }; - - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &tp LEFT_SHIFT F &tp LEFT_CONTROL J - &kp D &kp RIGHT_CONTROL>; - }; - }; -}; diff --git a/zmk/app/tests/hold-tap/zmk-modtap-proposal.odg b/zmk/app/tests/hold-tap/zmk-modtap-proposal.odg deleted file mode 100644 index 82f84369..00000000 Binary files a/zmk/app/tests/hold-tap/zmk-modtap-proposal.odg and /dev/null differ diff --git a/zmk/app/tests/hold-tap/zmk-modtap-proposal.pdf b/zmk/app/tests/hold-tap/zmk-modtap-proposal.pdf deleted file mode 100644 index 33048ca1..00000000 Binary files a/zmk/app/tests/hold-tap/zmk-modtap-proposal.pdf and /dev/null differ diff --git a/zmk/app/tests/keypress/behavior_keymap.dtsi b/zmk/app/tests/keypress/behavior_keymap.dtsi deleted file mode 100644 index 216e760a..00000000 --- a/zmk/app/tests/keypress/behavior_keymap.dtsi +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &kp B &none - &kp C_NEXT &none>; - }; - }; -}; diff --git a/zmk/app/tests/keypress/cp-press-release/events.patterns b/zmk/app/tests/keypress/cp-press-release/events.patterns deleted file mode 100644 index 833100f6..00000000 --- a/zmk/app/tests/keypress/cp-press-release/events.patterns +++ /dev/null @@ -1 +0,0 @@ -s/.*hid_listener_keycode_//p \ No newline at end of file diff --git a/zmk/app/tests/keypress/cp-press-release/keycode_events.snapshot b/zmk/app/tests/keypress/cp-press-release/keycode_events.snapshot deleted file mode 100644 index 95d24a49..00000000 --- a/zmk/app/tests/keypress/cp-press-release/keycode_events.snapshot +++ /dev/null @@ -1,2 +0,0 @@ -pressed: usage_page 0x0c keycode 0xb5 mods 0x00 -pressed: usage_page 0x0c keycode 0xb5 mods 0x00 diff --git a/zmk/app/tests/keypress/cp-press-release/native_posix.keymap b/zmk/app/tests/keypress/cp-press-release/native_posix.keymap deleted file mode 100644 index bf93af7d..00000000 --- a/zmk/app/tests/keypress/cp-press-release/native_posix.keymap +++ /dev/null @@ -1,5 +0,0 @@ -#include "../behavior_keymap.dtsi" - -&kscan { - events = ; -}; \ No newline at end of file diff --git a/zmk/app/tests/keypress/kp-press-release/events.patterns b/zmk/app/tests/keypress/kp-press-release/events.patterns deleted file mode 100644 index 833100f6..00000000 --- a/zmk/app/tests/keypress/kp-press-release/events.patterns +++ /dev/null @@ -1 +0,0 @@ -s/.*hid_listener_keycode_//p \ No newline at end of file diff --git a/zmk/app/tests/keypress/kp-press-release/keycode_events.snapshot b/zmk/app/tests/keypress/kp-press-release/keycode_events.snapshot deleted file mode 100644 index 80cac202..00000000 --- a/zmk/app/tests/keypress/kp-press-release/keycode_events.snapshot +++ /dev/null @@ -1,2 +0,0 @@ -pressed: usage_page 0x07 keycode 0x05 mods 0x00 -released: usage_page 0x07 keycode 0x05 mods 0x00 diff --git a/zmk/app/tests/keypress/kp-press-release/native_posix.keymap b/zmk/app/tests/keypress/kp-press-release/native_posix.keymap deleted file mode 100644 index 279b084d..00000000 --- a/zmk/app/tests/keypress/kp-press-release/native_posix.keymap +++ /dev/null @@ -1,5 +0,0 @@ -#include "../behavior_keymap.dtsi" - -&kscan { - events = ; -}; \ No newline at end of file diff --git a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-dn-lctl-up-lctl-up/events.patterns b/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-dn-lctl-up-lctl-up/events.patterns deleted file mode 100644 index cbf21aff..00000000 --- a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-dn-lctl-up-lctl-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode_//p -s/.*hid_register_mod/reg/p -s/.*hid_unregister_mod/unreg/p -s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p \ No newline at end of file diff --git a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-dn-lctl-up-lctl-up/keycode_events.snapshot b/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-dn-lctl-up-lctl-up/keycode_events.snapshot deleted file mode 100644 index 6218e650..00000000 --- a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-dn-lctl-up-lctl-up/keycode_events.snapshot +++ /dev/null @@ -1,17 +0,0 @@ -pressed: usage_page 0x07 keycode 0xe0 mods 0x00 -reg: Modifier 0 count 1 -reg: Modifiers set to 0x01 -mods: Modifiers set to 0x01 -pressed: usage_page 0x07 keycode 0xe0 mods 0x00 -reg: Modifier 0 count 2 -reg: Modifiers set to 0x01 -mods: Modifiers set to 0x01 -released: usage_page 0x07 keycode 0xe0 mods 0x00 -unreg: Modifier 0 count: 1 -unreg: Modifiers set to 0x01 -mods: Modifiers set to 0x01 -released: usage_page 0x07 keycode 0xe0 mods 0x00 -unreg: Modifier 0 count: 0 -unreg: Modifier 0 released -unreg: Modifiers set to 0x00 -mods: Modifiers set to 0x00 diff --git a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-dn-lctl-up-lctl-up/native_posix.keymap b/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-dn-lctl-up-lctl-up/native_posix.keymap deleted file mode 100644 index 1f3502d6..00000000 --- a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-dn-lctl-up-lctl-up/native_posix.keymap +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include -#include - - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,10) - ZMK_MOCK_PRESS(0,1,10) - ZMK_MOCK_RELEASE(0,0,10) - ZMK_MOCK_RELEASE(0,1,10) - >; -}; - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &kp LEFT_CONTROL &kp LEFT_CONTROL - &kp LEFT_SHIFT &none - >; - }; - }; -}; diff --git a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-up/events.patterns b/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-up/events.patterns deleted file mode 100644 index cbf21aff..00000000 --- a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode_//p -s/.*hid_register_mod/reg/p -s/.*hid_unregister_mod/unreg/p -s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p \ No newline at end of file diff --git a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-up/keycode_events.snapshot b/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-up/keycode_events.snapshot deleted file mode 100644 index 42324284..00000000 --- a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-up/keycode_events.snapshot +++ /dev/null @@ -1,9 +0,0 @@ -pressed: usage_page 0x07 keycode 0xe0 mods 0x00 -reg: Modifier 0 count 1 -reg: Modifiers set to 0x01 -mods: Modifiers set to 0x01 -released: usage_page 0x07 keycode 0xe0 mods 0x00 -unreg: Modifier 0 count: 0 -unreg: Modifier 0 released -unreg: Modifiers set to 0x00 -mods: Modifiers set to 0x00 diff --git a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-up/native_posix.keymap b/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-up/native_posix.keymap deleted file mode 100644 index 9c7d7c83..00000000 --- a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lctl-up/native_posix.keymap +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include -#include - - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &kp LEFT_CONTROL &kp LEFT_CONTROL - &kp LEFT_SHIFT &none - >; - }; - }; -}; diff --git a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lctl-up-lsft-up/events.patterns b/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lctl-up-lsft-up/events.patterns deleted file mode 100644 index cbf21aff..00000000 --- a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lctl-up-lsft-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode_//p -s/.*hid_register_mod/reg/p -s/.*hid_unregister_mod/unreg/p -s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p \ No newline at end of file diff --git a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lctl-up-lsft-up/keycode_events.snapshot b/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lctl-up-lsft-up/keycode_events.snapshot deleted file mode 100644 index 60d829a6..00000000 --- a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lctl-up-lsft-up/keycode_events.snapshot +++ /dev/null @@ -1,18 +0,0 @@ -pressed: usage_page 0x07 keycode 0xe0 mods 0x00 -reg: Modifier 0 count 1 -reg: Modifiers set to 0x01 -mods: Modifiers set to 0x01 -pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -reg: Modifier 1 count 1 -reg: Modifiers set to 0x03 -mods: Modifiers set to 0x03 -released: usage_page 0x07 keycode 0xe0 mods 0x00 -unreg: Modifier 0 count: 0 -unreg: Modifier 0 released -unreg: Modifiers set to 0x02 -mods: Modifiers set to 0x02 -released: usage_page 0x07 keycode 0xe1 mods 0x00 -unreg: Modifier 1 count: 0 -unreg: Modifier 1 released -unreg: Modifiers set to 0x00 -mods: Modifiers set to 0x00 diff --git a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lctl-up-lsft-up/native_posix.keymap b/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lctl-up-lsft-up/native_posix.keymap deleted file mode 100644 index 34bb522b..00000000 --- a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lctl-up-lsft-up/native_posix.keymap +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include -#include - - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,10) - ZMK_MOCK_PRESS(1,0,10) - ZMK_MOCK_RELEASE(0,0,10) - ZMK_MOCK_RELEASE(1,0,10) - >; -}; - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &kp LEFT_CONTROL &kp LEFT_CONTROL - &kp LEFT_SHIFT &none - >; - }; - }; -}; diff --git a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lsft-up-lctl-up/events.patterns b/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lsft-up-lctl-up/events.patterns deleted file mode 100644 index cbf21aff..00000000 --- a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lsft-up-lctl-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode_//p -s/.*hid_register_mod/reg/p -s/.*hid_unregister_mod/unreg/p -s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p \ No newline at end of file diff --git a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lsft-up-lctl-up/keycode_events.snapshot b/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lsft-up-lctl-up/keycode_events.snapshot deleted file mode 100644 index b4755e5b..00000000 --- a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lsft-up-lctl-up/keycode_events.snapshot +++ /dev/null @@ -1,18 +0,0 @@ -pressed: usage_page 0x07 keycode 0xe0 mods 0x00 -reg: Modifier 0 count 1 -reg: Modifiers set to 0x01 -mods: Modifiers set to 0x01 -pressed: usage_page 0x07 keycode 0xe1 mods 0x00 -reg: Modifier 1 count 1 -reg: Modifiers set to 0x03 -mods: Modifiers set to 0x03 -released: usage_page 0x07 keycode 0xe1 mods 0x00 -unreg: Modifier 1 count: 0 -unreg: Modifier 1 released -unreg: Modifiers set to 0x01 -mods: Modifiers set to 0x01 -released: usage_page 0x07 keycode 0xe0 mods 0x00 -unreg: Modifier 0 count: 0 -unreg: Modifier 0 released -unreg: Modifiers set to 0x00 -mods: Modifiers set to 0x00 diff --git a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lsft-up-lctl-up/native_posix.keymap b/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lsft-up-lctl-up/native_posix.keymap deleted file mode 100644 index 68e4de73..00000000 --- a/zmk/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lsft-up-lctl-up/native_posix.keymap +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include -#include - - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,10) - ZMK_MOCK_PRESS(1,0,10) - ZMK_MOCK_RELEASE(1,0,10) - ZMK_MOCK_RELEASE(0,0,10) - - >; -}; - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &kp LEFT_CONTROL &kp LEFT_CONTROL - &kp LEFT_SHIFT &none - >; - }; - }; -}; diff --git a/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod1-up-mod2-up/events.patterns b/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod1-up-mod2-up/events.patterns deleted file mode 100644 index cbf21aff..00000000 --- a/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod1-up-mod2-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode_//p -s/.*hid_register_mod/reg/p -s/.*hid_unregister_mod/unreg/p -s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p \ No newline at end of file diff --git a/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod1-up-mod2-up/keycode_events.snapshot b/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod1-up-mod2-up/keycode_events.snapshot deleted file mode 100644 index 61dd271b..00000000 --- a/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod1-up-mod2-up/keycode_events.snapshot +++ /dev/null @@ -1,8 +0,0 @@ -pressed: usage_page 0x07 keycode 0x05 mods 0x02 -mods: Modifiers set to 0x02 -pressed: usage_page 0x07 keycode 0x04 mods 0x01 -mods: Modifiers set to 0x01 -released: usage_page 0x07 keycode 0x05 mods 0x02 -mods: Modifiers set to 0x01 -released: usage_page 0x07 keycode 0x04 mods 0x01 -mods: Modifiers set to 0x00 diff --git a/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod1-up-mod2-up/native_posix.keymap b/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod1-up-mod2-up/native_posix.keymap deleted file mode 100644 index 73fa7cc8..00000000 --- a/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod1-up-mod2-up/native_posix.keymap +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include -#include - - -&kscan { - events = < - ZMK_MOCK_PRESS(0,1,10) - ZMK_MOCK_PRESS(0,0,10) - ZMK_MOCK_RELEASE(0,1,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &kp LC(A) &kp LS(B) - &kp LEFT_CONTROL &none - >; - }; - }; -}; diff --git a/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod1-up-mod2-up/pending b/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod1-up-mod2-up/pending deleted file mode 100644 index 3f49005a..00000000 --- a/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod1-up-mod2-up/pending +++ /dev/null @@ -1,9 +0,0 @@ -This test fails because the hid_listener_keycode_released function -releases implicit modifiers always, even if they were not set by the -key that's going up. Also see the comment in that function: - - If LC(A) is pressed, then LS(B), then LC(A) is released, the shift for B will be released - prematurely. This causes if LS(B) to repeat like Bbbbbbbb when pressed for a long time. - Solving this would require keeping track of which key's implicit modifiers are currently - active and only releasing modifiers at that time. - diff --git a/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod2-up-mod1-up/events.patterns b/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod2-up-mod1-up/events.patterns deleted file mode 100644 index cbf21aff..00000000 --- a/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod2-up-mod1-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode_//p -s/.*hid_register_mod/reg/p -s/.*hid_unregister_mod/unreg/p -s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p \ No newline at end of file diff --git a/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod2-up-mod1-up/keycode_events.snapshot b/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod2-up-mod1-up/keycode_events.snapshot deleted file mode 100644 index e8a231fe..00000000 --- a/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod2-up-mod1-up/keycode_events.snapshot +++ /dev/null @@ -1,8 +0,0 @@ -pressed: usage_page 0x07 keycode 0x04 mods 0x01 -mods: Modifiers set to 0x01 -pressed: usage_page 0x07 keycode 0x05 mods 0x02 -mods: Modifiers set to 0x02 -released: usage_page 0x07 keycode 0x05 mods 0x02 -mods: Modifiers set to 0x00 -released: usage_page 0x07 keycode 0x04 mods 0x01 -mods: Modifiers set to 0x00 diff --git a/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod2-up-mod1-up/native_posix.keymap b/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod2-up-mod1-up/native_posix.keymap deleted file mode 100644 index 109d60e5..00000000 --- a/zmk/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod2-up-mod1-up/native_posix.keymap +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include -#include - - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,10) - ZMK_MOCK_PRESS(0,1,10) - ZMK_MOCK_RELEASE(0,1,10) - ZMK_MOCK_RELEASE(0,0,10) - >; -}; - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &kp LC(A) &kp LS(B) - &none &none - >; - }; - }; -}; diff --git a/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-lctl-up-mod-up/events.patterns b/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-lctl-up-mod-up/events.patterns deleted file mode 100644 index cbf21aff..00000000 --- a/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-lctl-up-mod-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode_//p -s/.*hid_register_mod/reg/p -s/.*hid_unregister_mod/unreg/p -s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p \ No newline at end of file diff --git a/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-lctl-up-mod-up/keycode_events.snapshot b/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-lctl-up-mod-up/keycode_events.snapshot deleted file mode 100644 index 40c5841e..00000000 --- a/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-lctl-up-mod-up/keycode_events.snapshot +++ /dev/null @@ -1,13 +0,0 @@ -pressed: usage_page 0x07 keycode 0xe0 mods 0x00 -reg: Modifier 0 count 1 -reg: Modifiers set to 0x01 -mods: Modifiers set to 0x01 -pressed: usage_page 0x07 keycode 0x05 mods 0x02 -mods: Modifiers set to 0x03 -released: usage_page 0x07 keycode 0xe0 mods 0x00 -unreg: Modifier 0 count: 0 -unreg: Modifier 0 released -unreg: Modifiers set to 0x00 -mods: Modifiers set to 0x00 -released: usage_page 0x07 keycode 0x05 mods 0x02 -mods: Modifiers set to 0x00 diff --git a/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-lctl-up-mod-up/native_posix.keymap b/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-lctl-up-mod-up/native_posix.keymap deleted file mode 100644 index 09816d94..00000000 --- a/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-lctl-up-mod-up/native_posix.keymap +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include -#include - - -&kscan { - events = < - ZMK_MOCK_PRESS(1,0,10) - ZMK_MOCK_PRESS(0,1,10) - ZMK_MOCK_RELEASE(1,0,10) - ZMK_MOCK_RELEASE(0,1,10) - >; -}; - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &kp LC(A) &kp LS(B) - &kp LEFT_CONTROL &none - >; - }; - }; -}; diff --git a/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-mod-up-lctl-up/events.patterns b/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-mod-up-lctl-up/events.patterns deleted file mode 100644 index cbf21aff..00000000 --- a/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-mod-up-lctl-up/events.patterns +++ /dev/null @@ -1,4 +0,0 @@ -s/.*hid_listener_keycode_//p -s/.*hid_register_mod/reg/p -s/.*hid_unregister_mod/unreg/p -s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p \ No newline at end of file diff --git a/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-mod-up-lctl-up/keycode_events.snapshot b/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-mod-up-lctl-up/keycode_events.snapshot deleted file mode 100644 index 5df571be..00000000 --- a/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-mod-up-lctl-up/keycode_events.snapshot +++ /dev/null @@ -1,13 +0,0 @@ -pressed: usage_page 0x07 keycode 0xe0 mods 0x00 -reg: Modifier 0 count 1 -reg: Modifiers set to 0x01 -mods: Modifiers set to 0x01 -pressed: usage_page 0x07 keycode 0x05 mods 0x02 -mods: Modifiers set to 0x03 -released: usage_page 0x07 keycode 0x05 mods 0x02 -mods: Modifiers set to 0x01 -released: usage_page 0x07 keycode 0xe0 mods 0x00 -unreg: Modifier 0 count: 0 -unreg: Modifier 0 released -unreg: Modifiers set to 0x00 -mods: Modifiers set to 0x00 diff --git a/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-mod-up-lctl-up/native_posix.keymap b/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-mod-up-lctl-up/native_posix.keymap deleted file mode 100644 index 1de00a0e..00000000 --- a/zmk/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-mod-up-lctl-up/native_posix.keymap +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include -#include - - -&kscan { - events = < - ZMK_MOCK_PRESS(1,0,10) - ZMK_MOCK_PRESS(0,1,10) - ZMK_MOCK_RELEASE(0,1,10) - ZMK_MOCK_RELEASE(1,0,10) - >; -}; - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &kp LC(A) &kp LS(B) - &kp LEFT_CONTROL &none - >; - }; - }; -}; diff --git a/zmk/app/tests/momentary-layer/1-normal/events.patterns b/zmk/app/tests/momentary-layer/1-normal/events.patterns deleted file mode 100644 index bd7b4880..00000000 --- a/zmk/app/tests/momentary-layer/1-normal/events.patterns +++ /dev/null @@ -1,2 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p \ No newline at end of file diff --git a/zmk/app/tests/momentary-layer/1-normal/keycode_events.snapshot b/zmk/app/tests/momentary-layer/1-normal/keycode_events.snapshot deleted file mode 100644 index 608ce093..00000000 --- a/zmk/app/tests/momentary-layer/1-normal/keycode_events.snapshot +++ /dev/null @@ -1,4 +0,0 @@ -mo_pressed: position 1 layer 1 -kp_pressed: usage_page 0x07 keycode 0x06 mods 0x00 -kp_released: usage_page 0x07 keycode 0x06 mods 0x00 -mo_released: position 1 layer 1 diff --git a/zmk/app/tests/momentary-layer/1-normal/native_posix.keymap b/zmk/app/tests/momentary-layer/1-normal/native_posix.keymap deleted file mode 100644 index 2fc24d2b..00000000 --- a/zmk/app/tests/momentary-layer/1-normal/native_posix.keymap +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &kp B &mo 1 - &none &none>; - }; - - layer_1 { - bindings = < - &kp C &trans - &none &none>; - }; - }; -}; - -&kscan { - events = < - ZMK_MOCK_PRESS(0,1,10) - ZMK_MOCK_PRESS(0,0,10) - ZMK_MOCK_RELEASE(0,0,10) - ZMK_MOCK_RELEASE(0,1,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/momentary-layer/2-early-key-release/events.patterns b/zmk/app/tests/momentary-layer/2-early-key-release/events.patterns deleted file mode 100644 index bd7b4880..00000000 --- a/zmk/app/tests/momentary-layer/2-early-key-release/events.patterns +++ /dev/null @@ -1,2 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p \ No newline at end of file diff --git a/zmk/app/tests/momentary-layer/2-early-key-release/keycode_events.snapshot b/zmk/app/tests/momentary-layer/2-early-key-release/keycode_events.snapshot deleted file mode 100644 index 82ebc67c..00000000 --- a/zmk/app/tests/momentary-layer/2-early-key-release/keycode_events.snapshot +++ /dev/null @@ -1,4 +0,0 @@ -kp_pressed: usage_page 0x07 keycode 0x05 mods 0x00 -mo_pressed: position 1 layer 1 -kp_released: usage_page 0x07 keycode 0x05 mods 0x00 -mo_released: position 1 layer 1 diff --git a/zmk/app/tests/momentary-layer/2-early-key-release/native_posix.keymap b/zmk/app/tests/momentary-layer/2-early-key-release/native_posix.keymap deleted file mode 100644 index 9ffa5f6e..00000000 --- a/zmk/app/tests/momentary-layer/2-early-key-release/native_posix.keymap +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &kp B &mo 1 - &none &none>; - }; - - layer_1 { - bindings = < - &kp C &none - &none &none>; - }; - }; -}; - -&kscan { - events = < - ZMK_MOCK_PRESS(0,0,10) - ZMK_MOCK_PRESS(0,1,10) - ZMK_MOCK_RELEASE(0,0,10) - ZMK_MOCK_RELEASE(0,1,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/momentary-layer/3-covered/events.patterns b/zmk/app/tests/momentary-layer/3-covered/events.patterns deleted file mode 100644 index 08b1e987..00000000 --- a/zmk/app/tests/momentary-layer/3-covered/events.patterns +++ /dev/null @@ -1,3 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*keymap_position_state_changed/kp_st/p \ No newline at end of file diff --git a/zmk/app/tests/momentary-layer/3-covered/keycode_events.snapshot b/zmk/app/tests/momentary-layer/3-covered/keycode_events.snapshot deleted file mode 100644 index 87d12817..00000000 --- a/zmk/app/tests/momentary-layer/3-covered/keycode_events.snapshot +++ /dev/null @@ -1,2 +0,0 @@ -mo_pressed: position 1 layer 1 -mo_released: position 1 layer 1 diff --git a/zmk/app/tests/momentary-layer/3-covered/native_posix.keymap b/zmk/app/tests/momentary-layer/3-covered/native_posix.keymap deleted file mode 100644 index 2484d8b8..00000000 --- a/zmk/app/tests/momentary-layer/3-covered/native_posix.keymap +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include -#include - -/* -this test verifies that the correct key is released when a layer is enabled "on top" -and the original key is "covered". -*/ -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &trans &mo 1 - &trans &trans>; - }; - - layer_1 { - bindings = < - &trans &kp A - &trans &trans>; - }; - }; -}; - -&kscan { - events = < - ZMK_MOCK_PRESS(0,1,10) - ZMK_MOCK_RELEASE(0,1,10) - >; -}; diff --git a/zmk/app/tests/momentary-layer/4-nested/events.patterns b/zmk/app/tests/momentary-layer/4-nested/events.patterns deleted file mode 100644 index 08b1e987..00000000 --- a/zmk/app/tests/momentary-layer/4-nested/events.patterns +++ /dev/null @@ -1,3 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*keymap_position_state_changed/kp_st/p \ No newline at end of file diff --git a/zmk/app/tests/momentary-layer/4-nested/keycode_events.snapshot b/zmk/app/tests/momentary-layer/4-nested/keycode_events.snapshot deleted file mode 100644 index f03e4d5b..00000000 --- a/zmk/app/tests/momentary-layer/4-nested/keycode_events.snapshot +++ /dev/null @@ -1,6 +0,0 @@ -mo_pressed: position 1 layer 1 -mo_pressed: position 0 layer 2 -kp_pressed: usage_page 0x07 keycode 0x05 mods 0x00 -kp_released: usage_page 0x07 keycode 0x05 mods 0x00 -mo_released: position 0 layer 2 -mo_released: position 1 layer 1 diff --git a/zmk/app/tests/momentary-layer/4-nested/native_posix.keymap b/zmk/app/tests/momentary-layer/4-nested/native_posix.keymap deleted file mode 100644 index 0eb77d20..00000000 --- a/zmk/app/tests/momentary-layer/4-nested/native_posix.keymap +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &none &mo 1 - &none &none>; - }; - - layer_1 { - bindings = < - &mo 2 &none - &none &none>; - }; - - layer_2 { - bindings = < - &none &none - &kp B &none>; - }; - }; -}; - -&kscan { - events = < - ZMK_MOCK_PRESS(0,1,10) - ZMK_MOCK_PRESS(0,0,10) - ZMK_MOCK_PRESS(1,0,10) - ZMK_MOCK_RELEASE(1,0,10) - ZMK_MOCK_RELEASE(0,0,10) - ZMK_MOCK_RELEASE(0,1,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/momentary-layer/5-nested-early-key-release/events.patterns b/zmk/app/tests/momentary-layer/5-nested-early-key-release/events.patterns deleted file mode 100644 index 08b1e987..00000000 --- a/zmk/app/tests/momentary-layer/5-nested-early-key-release/events.patterns +++ /dev/null @@ -1,3 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p -s/.*keymap_position_state_changed/kp_st/p \ No newline at end of file diff --git a/zmk/app/tests/momentary-layer/5-nested-early-key-release/keycode_events.snapshot b/zmk/app/tests/momentary-layer/5-nested-early-key-release/keycode_events.snapshot deleted file mode 100644 index 15be601e..00000000 --- a/zmk/app/tests/momentary-layer/5-nested-early-key-release/keycode_events.snapshot +++ /dev/null @@ -1,6 +0,0 @@ -mo_pressed: position 1 layer 1 -mo_pressed: position 0 layer 2 -kp_pressed: usage_page 0x07 keycode 0x05 mods 0x00 -mo_released: position 1 layer 1 -mo_released: position 0 layer 2 -kp_released: usage_page 0x07 keycode 0x05 mods 0x00 diff --git a/zmk/app/tests/momentary-layer/5-nested-early-key-release/native_posix.keymap b/zmk/app/tests/momentary-layer/5-nested-early-key-release/native_posix.keymap deleted file mode 100644 index a67035bf..00000000 --- a/zmk/app/tests/momentary-layer/5-nested-early-key-release/native_posix.keymap +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &none &mo 1 - &none &none>; - }; - - layer_1 { - bindings = < - &mo 2 &none - &none &none>; - }; - - layer_2 { - bindings = < - &none &none - &kp B &none>; - }; - }; -}; - -&kscan { - events = < - ZMK_MOCK_PRESS(0,1,10) - ZMK_MOCK_PRESS(0,0,10) - ZMK_MOCK_PRESS(1,0,10) - ZMK_MOCK_RELEASE(0,1,10) - ZMK_MOCK_RELEASE(0,0,10) - ZMK_MOCK_RELEASE(1,0,10) - >; -}; \ No newline at end of file diff --git a/zmk/app/tests/momentary-layer/behavior_keymap.dtsi b/zmk/app/tests/momentary-layer/behavior_keymap.dtsi deleted file mode 100644 index a5b6c12b..00000000 --- a/zmk/app/tests/momentary-layer/behavior_keymap.dtsi +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &kp B &mo 1 - &trans &trans>; - }; - - layer_1 { - bindings = < - &kp C_NEXT &trans - &trans &trans>; - }; - }; -}; diff --git a/zmk/app/tests/momentary-layer/early-key-release/events.patterns b/zmk/app/tests/momentary-layer/early-key-release/events.patterns deleted file mode 100644 index bd7b4880..00000000 --- a/zmk/app/tests/momentary-layer/early-key-release/events.patterns +++ /dev/null @@ -1,2 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p \ No newline at end of file diff --git a/zmk/app/tests/momentary-layer/early-key-release/keycode_events.snapshot b/zmk/app/tests/momentary-layer/early-key-release/keycode_events.snapshot deleted file mode 100644 index 82ebc67c..00000000 --- a/zmk/app/tests/momentary-layer/early-key-release/keycode_events.snapshot +++ /dev/null @@ -1,4 +0,0 @@ -kp_pressed: usage_page 0x07 keycode 0x05 mods 0x00 -mo_pressed: position 1 layer 1 -kp_released: usage_page 0x07 keycode 0x05 mods 0x00 -mo_released: position 1 layer 1 diff --git a/zmk/app/tests/momentary-layer/early-key-release/native_posix.keymap b/zmk/app/tests/momentary-layer/early-key-release/native_posix.keymap deleted file mode 100644 index e7628c0e..00000000 --- a/zmk/app/tests/momentary-layer/early-key-release/native_posix.keymap +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = ; -}; \ No newline at end of file diff --git a/zmk/app/tests/momentary-layer/normal/events.patterns b/zmk/app/tests/momentary-layer/normal/events.patterns deleted file mode 100644 index bd7b4880..00000000 --- a/zmk/app/tests/momentary-layer/normal/events.patterns +++ /dev/null @@ -1,2 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*mo_keymap_binding/mo/p \ No newline at end of file diff --git a/zmk/app/tests/momentary-layer/normal/keycode_events.snapshot b/zmk/app/tests/momentary-layer/normal/keycode_events.snapshot deleted file mode 100644 index 247128fe..00000000 --- a/zmk/app/tests/momentary-layer/normal/keycode_events.snapshot +++ /dev/null @@ -1,4 +0,0 @@ -mo_pressed: position 1 layer 1 -kp_pressed: usage_page 0x0c keycode 0xb5 mods 0x00 -kp_released: usage_page 0x0c keycode 0xb5 mods 0x00 -mo_released: position 1 layer 1 diff --git a/zmk/app/tests/momentary-layer/normal/native_posix.keymap b/zmk/app/tests/momentary-layer/normal/native_posix.keymap deleted file mode 100644 index 7f736904..00000000 --- a/zmk/app/tests/momentary-layer/normal/native_posix.keymap +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = ; -}; \ No newline at end of file diff --git a/zmk/app/tests/none/behavior_keymap.dtsi b/zmk/app/tests/none/behavior_keymap.dtsi deleted file mode 100644 index 0a4f7cb7..00000000 --- a/zmk/app/tests/none/behavior_keymap.dtsi +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &none &mo 1 - &kp A &none>; - }; - - lower_layer { - bindings = < - &none &trans - &none &kp A>; - }; - }; -}; diff --git a/zmk/app/tests/none/layered/events.patterns b/zmk/app/tests/none/layered/events.patterns deleted file mode 100644 index 3c9d3f83..00000000 --- a/zmk/app/tests/none/layered/events.patterns +++ /dev/null @@ -1 +0,0 @@ -s/.*hid_listener_keycode/kp/p \ No newline at end of file diff --git a/zmk/app/tests/none/layered/keycode_events.snapshot b/zmk/app/tests/none/layered/keycode_events.snapshot deleted file mode 100644 index e69de29b..00000000 diff --git a/zmk/app/tests/none/layered/native_posix.keymap b/zmk/app/tests/none/layered/native_posix.keymap deleted file mode 100644 index 59ea4811..00000000 --- a/zmk/app/tests/none/layered/native_posix.keymap +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = ; -}; \ No newline at end of file diff --git a/zmk/app/tests/none/normal/events.patterns b/zmk/app/tests/none/normal/events.patterns deleted file mode 100644 index 3c9d3f83..00000000 --- a/zmk/app/tests/none/normal/events.patterns +++ /dev/null @@ -1 +0,0 @@ -s/.*hid_listener_keycode/kp/p \ No newline at end of file diff --git a/zmk/app/tests/none/normal/keycode_events.snapshot b/zmk/app/tests/none/normal/keycode_events.snapshot deleted file mode 100644 index e69de29b..00000000 diff --git a/zmk/app/tests/none/normal/native_posix.keymap b/zmk/app/tests/none/normal/native_posix.keymap deleted file mode 100644 index 94d7539c..00000000 --- a/zmk/app/tests/none/normal/native_posix.keymap +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = ; -}; \ No newline at end of file diff --git a/zmk/app/tests/toggle-layer/behavior_keymap.dtsi b/zmk/app/tests/toggle-layer/behavior_keymap.dtsi deleted file mode 100644 index 2523d867..00000000 --- a/zmk/app/tests/toggle-layer/behavior_keymap.dtsi +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &kp B &tog 1 - &kp D &kp G>; - }; - - lower_layer { - bindings = < - &kp C_NEXT &trans - &kp L &kp J>; - }; - - raise_layer { - bindings = < - &kp W &kp U - &kp X &kp M>; - }; - }; -}; diff --git a/zmk/app/tests/toggle-layer/early-key-release/events.patterns b/zmk/app/tests/toggle-layer/early-key-release/events.patterns deleted file mode 100644 index 397fef4f..00000000 --- a/zmk/app/tests/toggle-layer/early-key-release/events.patterns +++ /dev/null @@ -1,2 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*tog_keymap_binding/tog/p \ No newline at end of file diff --git a/zmk/app/tests/toggle-layer/early-key-release/keycode_events.snapshot b/zmk/app/tests/toggle-layer/early-key-release/keycode_events.snapshot deleted file mode 100644 index 6b4d50bd..00000000 --- a/zmk/app/tests/toggle-layer/early-key-release/keycode_events.snapshot +++ /dev/null @@ -1,6 +0,0 @@ -kp_pressed: usage_page 0x07 keycode 0x05 mods 0x00 -tog_pressed: position 1 layer 1 -kp_released: usage_page 0x07 keycode 0x05 mods 0x00 -tog_released: position 1 layer 1 -kp_pressed: usage_page 0x0c keycode 0xb5 mods 0x00 -kp_released: usage_page 0x0c keycode 0xb5 mods 0x00 diff --git a/zmk/app/tests/toggle-layer/early-key-release/native_posix.keymap b/zmk/app/tests/toggle-layer/early-key-release/native_posix.keymap deleted file mode 100644 index 6b2b8f20..00000000 --- a/zmk/app/tests/toggle-layer/early-key-release/native_posix.keymap +++ /dev/null @@ -1,9 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = ; -}; \ No newline at end of file diff --git a/zmk/app/tests/toggle-layer/normal/events.patterns b/zmk/app/tests/toggle-layer/normal/events.patterns deleted file mode 100644 index 397fef4f..00000000 --- a/zmk/app/tests/toggle-layer/normal/events.patterns +++ /dev/null @@ -1,2 +0,0 @@ -s/.*hid_listener_keycode/kp/p -s/.*tog_keymap_binding/tog/p \ No newline at end of file diff --git a/zmk/app/tests/toggle-layer/normal/keycode_events.snapshot b/zmk/app/tests/toggle-layer/normal/keycode_events.snapshot deleted file mode 100644 index d03295ef..00000000 --- a/zmk/app/tests/toggle-layer/normal/keycode_events.snapshot +++ /dev/null @@ -1,4 +0,0 @@ -tog_pressed: position 1 layer 1 -tog_released: position 1 layer 1 -kp_pressed: usage_page 0x0c keycode 0xb5 mods 0x00 -kp_released: usage_page 0x0c keycode 0xb5 mods 0x00 diff --git a/zmk/app/tests/toggle-layer/normal/native_posix.keymap b/zmk/app/tests/toggle-layer/normal/native_posix.keymap deleted file mode 100644 index 202c105c..00000000 --- a/zmk/app/tests/toggle-layer/normal/native_posix.keymap +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = ; -}; \ No newline at end of file diff --git a/zmk/app/tests/transparent/behavior_keymap.dtsi b/zmk/app/tests/transparent/behavior_keymap.dtsi deleted file mode 100644 index d6c5e27f..00000000 --- a/zmk/app/tests/transparent/behavior_keymap.dtsi +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - label ="Default keymap"; - - default_layer { - bindings = < - &trans &mo 1 - &kp A &none>; - }; - - lower_layer { - bindings = < - &trans &trans - &trans &kp A>; - }; - }; -}; diff --git a/zmk/app/tests/transparent/layered/events.patterns b/zmk/app/tests/transparent/layered/events.patterns deleted file mode 100644 index 3c9d3f83..00000000 --- a/zmk/app/tests/transparent/layered/events.patterns +++ /dev/null @@ -1 +0,0 @@ -s/.*hid_listener_keycode/kp/p \ No newline at end of file diff --git a/zmk/app/tests/transparent/layered/keycode_events.snapshot b/zmk/app/tests/transparent/layered/keycode_events.snapshot deleted file mode 100644 index 5e707b85..00000000 --- a/zmk/app/tests/transparent/layered/keycode_events.snapshot +++ /dev/null @@ -1,2 +0,0 @@ -kp_pressed: usage_page 0x07 keycode 0x04 mods 0x00 -kp_released: usage_page 0x07 keycode 0x04 mods 0x00 diff --git a/zmk/app/tests/transparent/layered/native_posix.keymap b/zmk/app/tests/transparent/layered/native_posix.keymap deleted file mode 100644 index 59ea4811..00000000 --- a/zmk/app/tests/transparent/layered/native_posix.keymap +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = ; -}; \ No newline at end of file diff --git a/zmk/app/tests/transparent/normal/events.patterns b/zmk/app/tests/transparent/normal/events.patterns deleted file mode 100644 index 3c9d3f83..00000000 --- a/zmk/app/tests/transparent/normal/events.patterns +++ /dev/null @@ -1 +0,0 @@ -s/.*hid_listener_keycode/kp/p \ No newline at end of file diff --git a/zmk/app/tests/transparent/normal/keycode_events.snapshot b/zmk/app/tests/transparent/normal/keycode_events.snapshot deleted file mode 100644 index e69de29b..00000000 diff --git a/zmk/app/tests/transparent/normal/native_posix.keymap b/zmk/app/tests/transparent/normal/native_posix.keymap deleted file mode 100644 index 94d7539c..00000000 --- a/zmk/app/tests/transparent/normal/native_posix.keymap +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include -#include -#include "../behavior_keymap.dtsi" - -&kscan { - events = ; -}; \ No newline at end of file diff --git a/zmk/app/west.yml b/zmk/app/west.yml deleted file mode 100644 index 7657fdef..00000000 --- a/zmk/app/west.yml +++ /dev/null @@ -1,40 +0,0 @@ -manifest: - remotes: - - name: zephyrproject-rtos - url-base: https://github.com/zephyrproject-rtos - - name: petejohanson - url-base: https://github.com/petejohanson - - name: microsoft - url-base: https://github.com/microsoft - projects: - - name: zephyr - remote: petejohanson - revision: zmk-v2.3.0-with-fixes - import: - # TODO: Rename once upstream offers option like `exclude` or `denylist` - name-blacklist: - - ci-tools - - hal_atmel - - hal_altera - - hal_cypress - - hal_infineon - - hal_microchip - - hal_nxp - - hal_openisa - - hal_silabs - - hal_xtensa - - hal_st - - hal_ti - - loramac-node - - mcuboot - - mcumgr - - net-tools - - segger - - openthread - - edtt - - trusted-firmware-m - - name: uf2 - remote: microsoft - path: tools/uf2 - self: - west-commands: scripts/west-commands.yml \ No newline at end of file diff --git a/zmk/docs/.eslintignore b/zmk/docs/.eslintignore deleted file mode 100644 index b7dab5e9..00000000 --- a/zmk/docs/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -build \ No newline at end of file diff --git a/zmk/docs/.eslintrc.js b/zmk/docs/.eslintrc.js deleted file mode 100644 index e1ef0302..00000000 --- a/zmk/docs/.eslintrc.js +++ /dev/null @@ -1,29 +0,0 @@ -module.exports = { - env: { - browser: true, - commonjs: true, - es2021: true, - node: true, - }, - extends: [ - "eslint:recommended", - "plugin:react/recommended", - "plugin:mdx/recommended", - "prettier", - "prettier/react", - ], - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - ecmaVersion: 2021, - sourceType: "module", - }, - plugins: ["react"], - rules: {}, - settings: { - react: { - version: "detect", - }, - }, -}; diff --git a/zmk/docs/.gitignore b/zmk/docs/.gitignore deleted file mode 100644 index b2d6de30..00000000 --- a/zmk/docs/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -# Dependencies -/node_modules - -# Production -/build - -# Generated files -.docusaurus -.cache-loader - -# 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/zmk/docs/.nvmrc b/zmk/docs/.nvmrc deleted file mode 100644 index 1a2f5bd2..00000000 --- a/zmk/docs/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -lts/* \ No newline at end of file diff --git a/zmk/docs/.prettierignore b/zmk/docs/.prettierignore deleted file mode 100644 index d6fb34a7..00000000 --- a/zmk/docs/.prettierignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -build -.docusaurus \ No newline at end of file diff --git a/zmk/docs/.prettierrc.js b/zmk/docs/.prettierrc.js deleted file mode 100644 index 2a1f0b48..00000000 --- a/zmk/docs/.prettierrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - endOfLine: "auto", -}; diff --git a/zmk/docs/README.md b/zmk/docs/README.md deleted file mode 100644 index fab8b874..00000000 --- a/zmk/docs/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# Website - -This website is built using [Docusaurus 2](https://v2.docusaurus.io/), a modern static website generator. - -## License - -The ZMK Documentation is licensed [CC-BY-NC-SA](http://creativecommons.org/licenses/by-nc-sa/4.0/). - -### Installation - -``` -$ npm ci -``` - -### Local Development - -``` -$ npm start -``` - -This command starts a local development server and open up a browser window. Most changes are reflected live without having to restart the server. - -### Build - -``` -$ npm build -``` - -This command generates static content into the `build` directory and can be served using any static contents hosting service. diff --git a/zmk/docs/blog/2020-05-24-wip.md b/zmk/docs/blog/2020-05-24-wip.md deleted file mode 100644 index 9b81bdff..00000000 --- a/zmk/docs/blog/2020-05-24-wip.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: WIP -author: Pete Johanson -author_title: Project Creator -author_url: https://gitlab.com/petejohanson -author_image_url: https://www.gravatar.com/avatar/2001ceff7e9dc753cf96fcb2e6f41110 -tags: [keyboards, firmware, oss, ble] ---- - -This blog is a work-in-progress as I work on basic docs + blog on this nascent keyboard firmware. - -As is, there are more features _missing_ from ZMK than features it has. As always with pre-alpha software, -if something breaks, you get to keep both halves! (especially if it is a split KB) diff --git a/zmk/docs/blog/2020-08-12-zmk-sotf-1.md b/zmk/docs/blog/2020-08-12-zmk-sotf-1.md deleted file mode 100644 index afa03405..00000000 --- a/zmk/docs/blog/2020-08-12-zmk-sotf-1.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "ZMK State Of The Firmware #1" -author: Pete Johanson -author_title: Project Creator -author_url: https://gitlab.com/petejohanson -author_image_url: https://www.gravatar.com/avatar/2001ceff7e9dc753cf96fcb2e6f41110 -tags: [SOTF, keyboards, firmware, oss, ble] ---- - -Welcome to the first ZMK "State Of The Firmware"! - -With interest and Discord activity growing, it seemed important to lay out the progress made recently, current major bugs/showstoppers, and planned next steps. - -## Recent Activity - -There's been lots of various activity in ZMK land! - -- [Nicell](https://github.com/Nicell) (nice!nano creator) contributed initial [RGB Underglow](/docs/features/underglow) ([#64](https://github.com/zmkfirmware/zmk/pull/64)) support to ZMK. -- Tons of [documentation](/docs) work. -- Refactoring ([#73](https://github.com/zmkfirmware/zmk/pull/73), [#74](https://github.com/zmkfirmware/zmk/pull/74)) of [keymaps](/docs/features/keymaps) to make them simpler for users. -- Mod-Tap Behavior (docs coming!) is much improved ([#69](https://github.com/zmkfirmware/zmk/pull/69)) and usable now. -- An initial [`setup.sh`](http://localhost:3000/docs/user-setup#user-config-setup-script) script was created, allowing users to quickly bootstrap a "user config" setup and push it to GitHub, where GitHub Actions will build the firmware for you. -- Corne shield ([#80](https://github.com/zmkfirmware/zmk/pull/80)) shield definition was added. -- Initial [encoder](/docs/features/encoders) support ([#61](https://github.com/zmkfirmware/zmk/pull/61)) was added. - -## Bugs and Showstoppers - -Despite the flurry of activity, there are still some serious bugs and show stoppers that potential ZMK users should be aware of: - -- [Bluetooth Related](https://github.com/zmkfirmware/zmk/issues/58) - There are several key bugs and fixes needed, including one complete show stopper: - - Fully working split wireless is not working. In particular, both split halves can properly pair, but once they do so, pairing with the _central_ host will not work. Workaround: You can currently have both halves pair, and use USB on the central side (Left side right now for Kyria, Corne, Lily58) and receive HID events over USB. - Fixed in 8b61beb. - - BT bond information is not currently stored to the devices, so after powering off or restarting your device, users need to re-pair -- USB - There is one important USB related bug which is a showstopper: - - The Zephyr USB stack does not have a built in queue for endpoint data being written. As a result, HID events sent by ZMK are sometimes dropped, or lost. - Fixed by careyk007 in #93. - -## Next Steps - -There's plenty of places to go next! To help keep folks in the loop for what's next, I've created a [Core Functionality](https://github.com/zmkfirmware/zmk/projects/1) project/kanban board in GitHub, where users should be able to get some visibility into items being focused on. - -Of course, at the top of that list currently is the above bugs/showstoppers, and then from there, I hope to: - -- Work on power management. -- Improve our documentation on various aspects of the system, mostly around: - - End user documentation for understanding how to use ZMK, better installation docs, etc. - - Developer focused documentation, so interested contributors can start building out more behaviors and ZMK functionality. -- Implement true "hold" detection, useful for several behaviors such as Mod-Tap and Layer-Tap. -- Hopefully acquire a proper and official USB Product ID for use for the project. -- Fun things that come up along the way! - -## Thanks! - -A big thanks for everyone who has shown interest in the project, tested things, asked questions, and contributed PRs ([Nicell](https://github.com/Nicell), [CrossR](https://github.com/CrossR), [careyk007](https://github.com/careyk007)). diff --git a/zmk/docs/blog/2020-09-21-zmk-sotf-2.md b/zmk/docs/blog/2020-09-21-zmk-sotf-2.md deleted file mode 100644 index 1ce61c9a..00000000 --- a/zmk/docs/blog/2020-09-21-zmk-sotf-2.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: "ZMK State Of The Firmware #2" -author: Pete Johanson -author_title: Project Creator -author_url: https://gitlab.com/petejohanson -author_image_url: https://www.gravatar.com/avatar/2001ceff7e9dc753cf96fcb2e6f41110 -tags: [SOTF, keyboards, firmware, oss, ble] ---- - -Welcome to the second ZMK "State Of The Firmware" (SOTF)! - -This update will cover all the major activity since [SOTF #1](/blog/2020/08/12/zmk-sotf-1), preparations for the upcoming -Hacktoberfest activity, and a current open call for community feedback on a ZMK mascot. - -## Recent Activity - -So much going on in ZMK! - -- Added a new generic [Hold Tap behavior](https://zmkfirmware.dev/docs/behaviors/hold-tap) - in [#146](https://github.com/zmkfirmware/zmk/pull/146) which now powers mod-tap, layer-tap, etc. - [okke-formsma] -- [BLE profile/connection management](https://zmkfirmware.dev/docs/behaviors/bluetooth) - in [#133](https://github.com/zmkfirmware/zmk/pull/133) - [petejohanson] -- Integration tests were added to automate testing of behaviors in [#131](https://github.com/zmkfirmware/zmk/pull/131) by [BrainWart] & [petejohanson] -- [Toggle layer behavior](https://zmkfirmware.dev/docs/behaviors/layers#toggle-layer), e.g. `&tog LOWER`, in - [#98](https://github.com/zmkfirmware/zmk/pull/98) - [BrainWart] -- Key fix for dropped press/release over HID [#93](https://github.com/zmkfirmware/zmk/pull/93)/[#96](https://github.com/zmkfirmware/zmk/pull/96) - [careyk007](https://github.com/careyk007) & [petejohanson] -- Code formatting standardized using `clang-format` in [#183](https://github.com/zmkfirmware/zmk/pull/183) - [petejohanson] -- [Bootloader reset behavior](https://zmkfirmware.dev/docs/behaviors/reset#bootloader-reset), e.g. `&bootloader`, in [#116](https://github.com/zmkfirmware/zmk/pull/116) - [petejohanson] -- Various bug fixes and documentation - -## New Shields - -- QAZ in [#130](https://github.com/zmkfirmware/zmk/pull/130) - [tominabox1](https://github.com/tominabox1) -- Iris in [#151](https://github.com/zmkfirmware/zmk/pull/151) - [kurtis-lew](https://github.com/kurtis-lew) -- RoMac 2.1 in [#122](https://github.com/zmkfirmware/zmk/pull/122) - [bmcgavin](https://github.com/bmcgavin) -- Sofle in [#118](https://github.com/zmkfirmware/zmk/pull/118) - [CrossR](https://github.com/CrossR) -- splitreus62 in [#92](https://github.com/zmkfirmware/zmk/pull/92) - [Na-Cly](https://github.com/Na-Cly) - -## New Boards - -- DZ60RGB rev1 in [#166](https://github.com/zmkfirmware/zmk/pull/166) - [Nicell] -- nrfMicro in [#101](https://github.com/zmkfirmware/zmk/pull/101) - [okke-formsma] -- BlueMicro840 [#91](https://github.com/zmkfirmware/zmk/pull/91) - [Na-Cly](https://github.com/Na-Cly) - -## Hacktoberfest Preparation - -[Hacktoberfest](https://hacktoberfest.digitalocean.com/) is a yearly celebration of open source, -which encourages participation in OSS, especially from new contributors. - -The ZMK contributors have been busy preparing for folks to join in on the fun by contributing to -ZMK! - -- There is now a basic [Contributing Guide](https://github.com/zmkfirmware/zmk/blob/main/CONTRIBUTING.md) to help newcomers get oriented, and get up to speed. -- The [`Hacktoberfest`](https://github.com/zmkfirmware/zmk/issues?q=is%3Aissue+is%3Aopen+label%3AHacktoberfest) - issue label will help participants discover good issues to work on. - (The existing [`good first issue`](https://github.com/zmkfirmware/zmk/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) label also helps with this) - -We're looking forward to the launch of Hacktoberfest! - -## Mascot Selection Feedback - -The ZMK project would like to settle on a mascot! We're soliciting community feedback as part of -the process before a final mascot is selected. - -The current mascots up for consideration are: - -- Griffin -- Peregrine Falcon -- Zapata Wren -- Zorro (south american fox) - -If you're interested in helping with the decision, head over to [Issue #195](https://github.com/zmkfirmware/zmk/issues/195) and add a reaction! - -## Coming Soon! - -There still lots of activity in ZMK, and plenty of exciting upcoming changes. - -- Improved modifier infrastructure, including "shifted keycodes" - [okke-formsma] -- Battery percentage reporting over BLE - [Nicell] -- Complete defines for HID keycodes/usage IDs - [innovaker](https://github.com/innovaker) -- Additional core BLE connection/bond management work - [petejohanson] -- Improved power management - [petejohanson], [Nicell] -- One shot mod/layer behaviors - [okke-formsma] - -## Statistics - -Some statistics of interest for ZMK: - -- GitHub - - 115 Closed PRs - - 64 Stars - - 48 Forks -- Discord Chat - - 186 total registered -- Website (last 30 days) - - 7.4K page views - - 474 new users - -## Thanks! - -Thanks again to the numerous contributors and users who have made working on ZMK such a pleasure! - -[okke-formsma]: https://github.com/okke-formsma -[nicell]: https://github.com/Nicell -[petejohanson]: https://github.com/petejohanson -[brainwart]: https://github.com/BrainWart diff --git a/zmk/docs/blog/2020-10-03-bootloader-fix.md b/zmk/docs/blog/2020-10-03-bootloader-fix.md deleted file mode 100644 index 8a9fd7f8..00000000 --- a/zmk/docs/blog/2020-10-03-bootloader-fix.md +++ /dev/null @@ -1,195 +0,0 @@ ---- -title: Fixing the Mysterious Broken Bootloader -author: Nick Winans -author_title: Contributor -author_url: https://github.com/Nicell -author_image_url: https://avatars1.githubusercontent.com/u/9439650 -tags: [bootloader, keyboards, firmware, oss, ble] ---- - -Recently I was able to fix the "stuck in the bootloader" issue in -[#322](https://github.com/zmkfirmware/zmk/pull/322) that had been plaguing us -for quite some time. I want to go over what the issue was, how the issue was -diagnosed, and how it was fixed. - -## Background - -What exactly is the "stuck in the bootloader" issue? Seemingly randomly, users' -keyboards would suddenly stop working and when they would reset their keyboard -they would get put into the bootloader instead of back into the firmware. This -would require the user to re-flash the firmware again to get into the firmware. -That wouldn't be so bad except for the fact that once this occurs, every reset -would require the user to re-flash the firmware again. The only way to really -fix this issue was to re-flash the bootloader itself, which is a huge pain. - -Going into this, all we knew was that this issue was most likely introduced -somewhere in the [#133](https://github.com/zmkfirmware/zmk/pull/133), which -added Bluetooth profile management. We've had quite a few attempts at trying to -recreate the issue, but we never were able to get it to happen consistently. - -## Diagnosing the issue - -This issue had been happening sporadically for the past month, and I finally -decided to dig in to see what was going on. We started in the Discord and -discussed what was common between all of the people who have experienced this -issue. Everyone who had this issue reported that they did quite a bit of profile -switching. This lined up with the possible connection to the Bluetooth profile -management pull request. - -### Pinpointing the cause - -I had a hunch that this was related to the settings system. The settings system -is used by profile Bluetooth switching, and the settings system works directly -with the system flash. Based on this hunch, I tried spamming the RGB underglow -cycle behavior on my main keyboard. Sure enough after a couple minutes, I got -stuck in the bootloader. I was even able to reproduce it again. - -This was an important discovery for two reasons. First, I was able to recreate -the issue consistently, which meant I could set up logging and more closely -monitor what the board was doing. Second, this more or less proved that it was -specifically the settings system at fault. Both Bluetooth profile switching and -RGB underglow cycling trigger it, and the one common piece is they save their -state to settings. - -### Settings system overview - -To understand what's going wrong, we first need to understand how the settings -system works. Here's a diagram to explain the flash space that the settings -system holds for our nRF52840 based boards (nice!nano, nRFMicro, BlueMicro). - -![Settings Diagram](https://i.imgur.com/DF2t3Oq.png) - -The settings flash space lives at the end of the flash of the chip. In this case -it starts at `0xF8000` and is `0x8000` bytes long, which is 32KB in more -comprehensible units. Then due to the chip's architecture, this flash space is -broken into pages, which are `0x1000` bytes in size (4KB). - -The backend that carries out the settings save and read operation in ZMK is -called NVS. NVS calls these pages sectors. Due to how flash works, you can't -write to the same bytes multiple times without erasing them first, and to erase -bytes, you need to erase the entire sector of flash. This means when NVS writes -to the settings flash if there's no erased space available for the new value, it -will need to erase a sector. - -### Logging discoveries - -So first I enabled logging of the NVS module by adding -`CONFIG_NVS_LOG_LEVEL_DBG=y` to my `.conf` file. I repeated the same test of -spamming RGB underglow effect cycle and the resulting logs I got were this: - -``` -[00:00:00.000,671] fs_nvs: 8 Sectors of 4096 bytes -[00:00:00.000,671] fs_nvs: alloc wra: 3, f70 -[00:00:00.000,671] fs_nvs: data wra: 3, f40 -// A bunch of effect cycle spam -[00:02:34.781,188] fs_nvs: Erasing flash at fd000, len 4096 -// A bunch more effect cycle spam -[00:06:42.219,970] fs_nvs: Erasing flash at ff000, len 4096 -// A bunch more effect cycle spam -// KABOOM - bootloader issue -``` - -So at start up, we can see that the 8 sectors of 4KB are found by NVS properly, -however, I wasn't sure what the second and third lines meant, but we'll get back -to that. Nonetheless the next two logs from NVS showed erasing the sector at -`0xFD000` and then erasing the `0xFF000` sector. - -![Erased Sectors](https://i.imgur.com/DmLycMJ.png) - -It's really odd that the third to last sector and the last sector are erased, -and then shortly after the bootloader issue is hit. I really had no explanation -for this behavior. - -### Reaching out to Zephyr - -At this point, I nor anyone else working on the ZMK project knew enough about -NVS to explain what was going on here. [Pete -Johanson](https://github.com/petejohanson), project founder, reached out on the -Zephyr Project's Slack (ZMK is built on top of Zephyr if you weren't aware). -Justin B and Laczen assisted by first explaining that those `alloc wra` and -`data wra` logs from earlier are showing what data NVS found at startup. - -More specifically, `data wra` should be `0` when it first starts up on a clean -flash. As we can see from my earlier logging on a clean flash I was instead -getting `f40`. NVS is finding data in our settings sectors when they should be -blank! We were then given the advice to double check our bootloader. - -### The Adafruit nRF52 Bootloader - -Most of the boards the contributors of ZMK use have the [Adafruit nRF52 -Bootloader](https://github.com/adafruit/Adafruit_nRF52_Bootloader), which allows -for extremely easy flashing by dragging and dropping `.uf2` files onto the board -as a USB drive. Every bootloader takes up a portion of the flash, and in the -README explains that the first `0x26000` is reserved for the bootloader with the -nRF52840, and we've properly allocated that. - -However, there isn't a full explanation of the flash allocation of the -bootloader in the README. There's a possibility that the bootloader is using -part of the same flash area we're using. I reached out on the Adafruit Discord, -and [Dan Halbert](https://github.com/dhalbert) pointed me towards the [linker -map](https://github.com/adafruit/Adafruit_nRF52_Bootloader/blob/master/linker/nrf52840.ld) -of the nRF52840. Let's take a look. - -``` -FLASH (rx) : ORIGIN = 0xF4000, LENGTH = 0xFE000-0xF4000-2048 /* 38 KB */ - -BOOTLOADER_CONFIG (r): ORIGIN = 0xFE000 - 2048, LENGTH = 2048 - -/** Location of mbr params page in flash. */ -MBR_PARAMS_PAGE (rw) : ORIGIN = 0xFE000, LENGTH = 0x1000 - -/** Location of bootloader setting in flash. */ -BOOTLOADER_SETTINGS (rw) : ORIGIN = 0xFF000, LENGTH = 0x1000 -``` - -Here's a diagram to show this a bit better. - -![Adafruit Bootloader Diagram](https://i.imgur.com/TEOA31m.png) - -We've found the issue! As you can see from the red bar (representing our -settings flash area), we've put the settings flash area _right on top_ of the -Adafruit bootloader's flash space. Oops! - -This also shines some light on why NVS erased `0xFD000` and `0xFF000` sectors. -It's possible there was no flash written to `0xFD000` because the bootloader -didn't use up all of that space it has, and then there possibly weren't any -bootloader settings set yet, so `0xFF000` could be used and erased by NVS too. - -After erasing `0xFF000`, NVS probably next erased a rather important part of the -bootloader that resulted in this issue at hand. In my opinion, we're pretty -lucky that it didn't delete an even more vital part of the bootloader. At least -we could still get to it, so that we could re-flash the bootloader easily! - -## The solution - -Now that we've found the issue, we can pretty easily fix this. We'll need to -move the settings flash area back so that it doesn't overlap with the -bootloader. First we calculate the size of the of flash area the bootloader is using. - -``` -0x100000 (end of flash) - 0x0F4000 (start of bootloader) = 0xC000 (48KB) -``` - -So the bootloader is using the last 48KB of the flash, this means all we need to -do is shift back the settings area and code space `0xC000` bytes. We'll apply -this to all of the `.dts` files for the boards that were affected by this issue. - -```diff - code_partition: partition@26000 { - label = "code_partition"; -- reg = <0x00026000 0x000d2000>; -+ reg = <0x00026000 0x000c6000>; - }; - - -- storage_partition: partition@f8000 { -+ storage_partition: partition@ec000 { - label = "storage"; -- reg = <0x000f8000 0x00008000>; -+ reg = <0x000ec000 0x00008000>; - }; -``` - -And with those changes, we should no longer run into this issue! In the process -of these changes, we lost 48KB of space for application code, but we're only -using around 20% of it anyways. 🎉 diff --git a/zmk/docs/blog/2020-11-09-zmk-sotf-3.md b/zmk/docs/blog/2020-11-09-zmk-sotf-3.md deleted file mode 100644 index 9e250a99..00000000 --- a/zmk/docs/blog/2020-11-09-zmk-sotf-3.md +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: "ZMK State Of The Firmware #3" -author: Pete Johanson -author_title: Project Creator -author_url: https://gitlab.com/petejohanson -author_image_url: https://www.gravatar.com/avatar/2001ceff7e9dc753cf96fcb2e6f41110 -tags: [SOTF, keyboards, firmware, oss, ble] ---- - -Welcome to the third ZMK "State Of The Firmware" (SOTF)! - -This update will cover all the major activity since [SOTF #2](/blog/2020/09/21/zmk-sotf-2). This edition comes a bit later than planned, but the amount of features and changes will hopefully make it worth it! - -## Recent Activity - -Here's a summary of the various major changes since last time, broken down by theme: - -### Keymaps/Behaviors - -Tons of activity related to keymaps, so we'll go into more detail this time. - -#### Codes Overhaul - -[innovaker] _completely_ overhauled the set of available codes for keymaps, and simultaneously has created -_beautiful_ [documentation](/docs/codes) to help users visualize the codes, and also understand if they are supported on their particular operating system. - -This also laid the foundation for the other keymap related changes that are now available. - -#### Modified (Shifted) Codes - -[okke-formsma] added the ability to apply modifiers to a code, e.g.: - -``` -&kp LC(C) -``` - -which sends `Control + c` when pressed. This feature is often used on smaller keyboards to achieve "shifted keycodes", e.g. `LS(N1)` to send a `!`. -To make this easier, in addition to all the normal codes, we now have defines for common shifted codes, e.g. `EXCL` for `!`, `AT` for `@`, etc. - -To learn more, check out the [Modifiers](/docs/codes/modifiers) documentation. - -#### Simplified Key Press Behavior - -In previous versions of ZMK, users needed to be careful to select between the `&kp` and `&cp` behaviors in their keymaps, depending on -whether the particular keycode they wanted to send was in the "HID consumer page" or not. Forcing users to understand the difference and get -this right was awkward and error prone. - -[petejohanson] and [innovaker] have reduced this complexity. Users can now simply use `&kp` with all available codes and ZMK will -handle sending the right events to the connected host. - -### Power Management - -Several important power management features have been added to ZMK, helping save power for many use cases. - -#### BLE Battery Level Reporting - -[Nicell] added the necessary [driver](https://github.com/zmkfirmware/zmk/pull/293) and [core code](https://github.com/zmkfirmware/zmk/pull/306) to send BLE battery level notifications to hosts that support displaying them. Testing seems to show this works with Windows and GNOME, but macOS does not display the battery info. - -#### External Power Control - -[megamind4089] added a new [driver](https://github.com/zmkfirmware/zmk/pull/242) and [behavior](https://github.com/zmkfirmware/zmk/pull/258) to allow users to toggle (on/off) the external power supplied by boards such as the nRFMicro -and nice!nano that have specialized hardware for this purpose. - -With this change, you can add - -``` -&ext_power EP_TOG -``` - -to toggle (on/off) the power to external hardware like RGB underglow or OLEDs. Check out the [external power control](/docs/behaviors/power#external-power-control) docs for more info. - -#### Deep Sleep - -[petejohanson] has contributed the initial [deep sleep](https://github.com/zmkfirmware/zmk/pull/211) support to ZMK. This work also -included some automatic power savings by switching to PORT events on the nRF52 chips, which reduces the idle power draw, even without deep sleep. Deep sleep is currently not turned on by default, but will be soon. - -### Miscellaneous - -#### Output Selection - -[joelspadin] added [output selection](/docs/behaviors/outputs) to allow selecting whether to send output over USB or BLE if both are connected. This should now help avoid having "double keypresses" when your keyboard is plugged into a host. - -#### Bootloader Corruption Fix - -[Nicell] has already [blogged about this](/blog/2020/10/03/bootloader-fix), but for those that missed it, a _major_, and incredibly difficult to pin down bug involving corruption of the bootloader on devices using the Adafruit nRF52 bootloader has been fixed by [Nicell]. If you've encountered this bug, flashing the latest firmware should prevent it from reoccurring. Unfortunately, due to the nature of this fix, you will need to re-pair your keyboard with your hosts, as the fix involves changing where settings are stored in the flash of the controller. - -#### Official USB Product ID - -[petejohanson] has gotten an official [USB product ID](https://github.com/openmoko/openmoko-usb-oui/pull/15) assigned to the ZMK Firmware. For anyone looking to uniquely identify a USB device running the ZMK Firmware, you can match on: - -- Vendor ID: `0x1d50` -- Product ID: `0x615e` - -We are incredibly grateful that Openmoko Inc., in the wake of discontinuing the openmoko projects, has made this an option for OSS projects. - -#### Development: Remote Docker Container Integration - -[idan](https://github.com/idan) contributed [VSCode devcontainer integration](https://github.com/zmkfirmware/zmk/pull/209) to make it easier for developers to build and develop ZMK without having to do complicated local toolchain setup and configuration. This also opens up some amazing future flexibility for things like [GitHub Codespaces](https://twitter.com/ZMKFirmware/status/1315760616779505678?s=20). - -There's some follow up tweaks necessary for better supporting using this with user config repositories, which will be available soon. - -## New Shields - -- Reviung41 in [#297](https://github.com/zmkfirmware/zmk/pull/297) - [Nicell] -- Boardsource 3x4 in [#296](https://github.com/zmkfirmware/zmk/pull/296) - [neegool](https://github.com/neegool) -- NIBBLE in [#292](https://github.com/zmkfirmware/zmk/pull/292) - [jaygreco](https://github.com/jaygreco) -- Microdox in [#245](https://github.com/zmkfirmware/zmk/pull/245) - [careyk007](https://github.com/careyk007) -- MakerDiary M60 in [#233](https://github.com/zmkfirmware/zmk/pull/233) - [megamind4089] -- TGX4 in [#226](https://github.com/zmkfirmware/zmk/pull/226) - [mubeenkhan94](https://github.com/mubeenkhan94) -- Quefrency V1 in [#216](https://github.com/zmkfirmware/zmk/pull/216) - [noar-t](https://github.com/noar-t) -- Cradio in [#224](https://github.com/zmkfirmware/zmk/pull/224) - [davidphilipbarr](https://github.com/davidphilipbarr) -- Romac+ in [#198](https://github.com/zmkfirmware/zmk/pull/198) - [reizero00](https://github.com/reizero00) - -## New Boards - -- MakerDiary nRF52840 M.2 Module in [#233](https://github.com/zmkfirmware/zmk/pull/233) - [megamind4089] - -## Testing - -There has been an _amazing_ amount of testing from various users as we develop new features. In particular, we'd like to give a shout out to [tominabox1](https://github.com/tominabox1) who has been tireless in providing detailed and thorough testing of -changes as they are being developed. - -## Coming Soon! - -Some items listed in the last coming soon section are still under active development. - -- OLED work, including battery and USB/BLE connection status - [petejohanson] -- One shot mod/layer behaviors - [okke-formsma] -- A power profiler page for the website, to help users estimate their battery life for a given keyboard - [Nicell] -- A keymap converter to automatically update keymaps to the new codes and use of `&kp` everywhere - [joelspadin] - -## Statistics - -Some statistics of interest for ZMK: - -- GitHub (lifetime stats) - - 210 Closed PRs - - 116 Stars - - 101 Forks -- Discord Chat - - 363 total registered -- Website (last 30 days) - - 8.5K page views - - 766 new users - -## Thanks! - -Thanks again to the numerous contributors and users who have made working on ZMK such a pleasure! - -[okke-formsma]: https://github.com/okke-formsma -[nicell]: https://github.com/Nicell -[petejohanson]: https://github.com/petejohanson -[brainwart]: https://github.com/BrainWart -[innovaker]: https://github.com/innovaker -[megamind4089]: https://github.com/megamind4089 -[joelspadin]: https://github.com/joelspadin diff --git a/zmk/docs/docs/assets/dev-setup/vscode_devcontainer.png b/zmk/docs/docs/assets/dev-setup/vscode_devcontainer.png deleted file mode 100644 index e5c22b0a..00000000 Binary files a/zmk/docs/docs/assets/dev-setup/vscode_devcontainer.png and /dev/null differ diff --git a/zmk/docs/docs/assets/env-var/env_var.png b/zmk/docs/docs/assets/env-var/env_var.png deleted file mode 100644 index 77ebbc5b..00000000 Binary files a/zmk/docs/docs/assets/env-var/env_var.png and /dev/null differ diff --git a/zmk/docs/docs/assets/env-var/gnuarmemb.png b/zmk/docs/docs/assets/env-var/gnuarmemb.png deleted file mode 100644 index 42e38ec1..00000000 Binary files a/zmk/docs/docs/assets/env-var/gnuarmemb.png and /dev/null differ diff --git a/zmk/docs/docs/assets/env-var/new_variable.png b/zmk/docs/docs/assets/env-var/new_variable.png deleted file mode 100644 index 3cc72bdb..00000000 Binary files a/zmk/docs/docs/assets/env-var/new_variable.png and /dev/null differ diff --git a/zmk/docs/docs/assets/env-var/start_menu.png b/zmk/docs/docs/assets/env-var/start_menu.png deleted file mode 100644 index fc7d9b5e..00000000 Binary files a/zmk/docs/docs/assets/env-var/start_menu.png and /dev/null differ diff --git a/zmk/docs/docs/assets/env-var/zephyr_toolchain.png b/zmk/docs/docs/assets/env-var/zephyr_toolchain.png deleted file mode 100644 index 5a8ec50d..00000000 Binary files a/zmk/docs/docs/assets/env-var/zephyr_toolchain.png and /dev/null differ diff --git a/zmk/docs/docs/assets/features/keymaps/layer-diagram.png b/zmk/docs/docs/assets/features/keymaps/layer-diagram.png deleted file mode 100644 index 7b42daae..00000000 Binary files a/zmk/docs/docs/assets/features/keymaps/layer-diagram.png and /dev/null differ diff --git a/zmk/docs/docs/assets/hold-tap/case1_2.png b/zmk/docs/docs/assets/hold-tap/case1_2.png deleted file mode 100644 index 818ac837..00000000 Binary files a/zmk/docs/docs/assets/hold-tap/case1_2.png and /dev/null differ diff --git a/zmk/docs/docs/assets/hold-tap/case_hold_preferred.png b/zmk/docs/docs/assets/hold-tap/case_hold_preferred.png deleted file mode 100644 index 6d7fd43b..00000000 Binary files a/zmk/docs/docs/assets/hold-tap/case_hold_preferred.png and /dev/null differ diff --git a/zmk/docs/docs/assets/hold-tap/comparison.png b/zmk/docs/docs/assets/hold-tap/comparison.png deleted file mode 100644 index 419b2040..00000000 Binary files a/zmk/docs/docs/assets/hold-tap/comparison.png and /dev/null differ diff --git a/zmk/docs/docs/assets/pro-micro/pro-micro-pins-labelled.jpg b/zmk/docs/docs/assets/pro-micro/pro-micro-pins-labelled.jpg deleted file mode 100644 index f72d4077..00000000 Binary files a/zmk/docs/docs/assets/pro-micro/pro-micro-pins-labelled.jpg and /dev/null differ diff --git a/zmk/docs/docs/assets/troubleshooting/filetransfer/linux.png b/zmk/docs/docs/assets/troubleshooting/filetransfer/linux.png deleted file mode 100644 index c192dfab..00000000 Binary files a/zmk/docs/docs/assets/troubleshooting/filetransfer/linux.png and /dev/null differ diff --git a/zmk/docs/docs/assets/troubleshooting/filetransfer/mac.png b/zmk/docs/docs/assets/troubleshooting/filetransfer/mac.png deleted file mode 100644 index f28ca8d7..00000000 Binary files a/zmk/docs/docs/assets/troubleshooting/filetransfer/mac.png and /dev/null differ diff --git a/zmk/docs/docs/assets/troubleshooting/filetransfer/windows.png b/zmk/docs/docs/assets/troubleshooting/filetransfer/windows.png deleted file mode 100644 index 91cb8a61..00000000 Binary files a/zmk/docs/docs/assets/troubleshooting/filetransfer/windows.png and /dev/null differ diff --git a/zmk/docs/docs/assets/troubleshooting/keymaps/errorscreen.png b/zmk/docs/docs/assets/troubleshooting/keymaps/errorscreen.png deleted file mode 100644 index 73b5b584..00000000 Binary files a/zmk/docs/docs/assets/troubleshooting/keymaps/errorscreen.png and /dev/null differ diff --git a/zmk/docs/docs/assets/troubleshooting/keymaps/healthyEDIT.png b/zmk/docs/docs/assets/troubleshooting/keymaps/healthyEDIT.png deleted file mode 100644 index 50d2c736..00000000 Binary files a/zmk/docs/docs/assets/troubleshooting/keymaps/healthyEDIT.png and /dev/null differ diff --git a/zmk/docs/docs/assets/troubleshooting/keymaps/unhealthyEDIT.png b/zmk/docs/docs/assets/troubleshooting/keymaps/unhealthyEDIT.png deleted file mode 100644 index 3fd8dc70..00000000 Binary files a/zmk/docs/docs/assets/troubleshooting/keymaps/unhealthyEDIT.png and /dev/null differ diff --git a/zmk/docs/docs/assets/usb-logging/com.jpg b/zmk/docs/docs/assets/usb-logging/com.jpg deleted file mode 100644 index e2ab9a83..00000000 Binary files a/zmk/docs/docs/assets/usb-logging/com.jpg and /dev/null differ diff --git a/zmk/docs/docs/assets/usb-logging/putty.jpg b/zmk/docs/docs/assets/usb-logging/putty.jpg deleted file mode 100644 index dfbb4bd7..00000000 Binary files a/zmk/docs/docs/assets/usb-logging/putty.jpg and /dev/null differ diff --git a/zmk/docs/docs/assets/user-setup/firmware-archive.png b/zmk/docs/docs/assets/user-setup/firmware-archive.png deleted file mode 100644 index 9cb6f7de..00000000 Binary files a/zmk/docs/docs/assets/user-setup/firmware-archive.png and /dev/null differ diff --git a/zmk/docs/docs/assets/user-setup/github-actions-link.png b/zmk/docs/docs/assets/user-setup/github-actions-link.png deleted file mode 100644 index c12483b1..00000000 Binary files a/zmk/docs/docs/assets/user-setup/github-actions-link.png and /dev/null differ diff --git a/zmk/docs/docs/behavior/bluetooth.md b/zmk/docs/docs/behavior/bluetooth.md deleted file mode 100644 index be0fb23c..00000000 --- a/zmk/docs/docs/behavior/bluetooth.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Bluetooth Behavior -sidebar_label: Bluetooth ---- - -## Summary - -The bluetooth behavior allows management of various settings and states related to the bluetooth connection(s) -between the keyboard and the host. By default, ZMK supports five "profiles" for selecting which bonded host -computer/laptop/keyboard should receive the keyboard input; many of the commands here operation on those profiles. - -## Bluetooth Command Defines - -Bluetooth command defines are provided through the [`dt-bindings/zmk/bt.h`](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/bt.h) header, -which is added at the top of the keymap file: - -``` -#include -``` - -This will allow you to reference the actions defined in this header such as `BT_CLR_CMD`. - -Here is a table describing the command for each define: - -| Define | Action | -| ------------ | ---------------------------------------------------------------------------------------------- | -| `BT_CLR_CMD` | Clear bond information between the keyboard and host for the selected profile. | -| `BT_NXT_CMD` | Switch to the next profile, cycling through to the first one when the end is reached. | -| `BT_PRV_CMD` | Switch to the previous profile, cycling through to the last one when the beginning is reached. | -| `BT_SEL_CMD` | Select the 0-indexed profile by number. | - -Because at least one bluetooth commands takes an additional parameter, it is recommended to use -the following aliases in your keymap to avoid having to specify an ignored second parameter: - -| Define | Action | -| -------- | -------------------------------------------------------------------------------- | -| `BT_CLR` | Alias for `BT_CLR_CMD 0` to clear the current profile's bond to the current host | -| `BT_NXT` | Alias for `BT_NXT_CMD 0` to select the next profile | -| `BT_PRV` | Alias for `BT_PRV_CMD 0` to select the previous profile | -| `BT_SEL` | Alias for `BT_SEL_CMD` to select the given profile, e.g. `&bt BT_SEL 1` | - -## Bluetooth Behavior - -The bluetooth behavior completes an bluetooth action given on press. - -### Behavior Binding - -- Reference: `&bt` -- Parameter #1: The bluetooth command define, e.g. `BT_CLR_CMD` -- Parameter #2: (Reserved for future bluetooth command types) - -### Examples - -1. Behavior binding to clear the paired host for the selected profile: - - ``` - &bt BT_CLR - ``` - -1. Behavior binding to select the next profile: - - ``` - &bt BT_NXT - ``` - -1. Behavior binding to select the previous profile: - - ``` - &bt BT_PRV - ``` - -1. Behavior binding to select the 2nd profile (passed parameters are [zero based](https://en.wikipedia.org/wiki/Zero-based_numbering)): - - ``` - &bt BT_SEL 1 - ``` diff --git a/zmk/docs/docs/behavior/hold-tap.md b/zmk/docs/docs/behavior/hold-tap.md deleted file mode 100644 index 7ae5fc07..00000000 --- a/zmk/docs/docs/behavior/hold-tap.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Hold-tap behavior -sidebar_label: Hold-Tap ---- - -## Summary - -Hold-tap is the basis for other behaviors such as layer-tap and mod-tap. - -Simply put, the hold-tap key will output the 'hold' behavior if it's held for a while, and output the 'tap' behavior when it's tapped quickly. - -### Hold-Tap - -The `tapping_term_ms` parameter decides between a 'tap' and a 'hold'. - -![Simple behavior](../assets/hold-tap/case1_2.png) - -By default, the hold-tap is configured to also select the 'hold' functionality if another key is tapped while it's active: - -![Hold preferred behavior](../assets/hold-tap/case1_2.png) - -We call this the 'hold-preferred' flavor of hold-taps. While this flavor may work very well for a ctrl/escape key, it's not very well suited for home-row mods or layer-taps. That's why there are two more flavors to choose from: 'tap-preferred' and 'balanced'. - -![Hold-tap comparison](../assets/hold-tap/comparison.png) - -### Basic usage - -For basic usage, please see [mod-tap](./mod-tap.md) and [layer-tap](./layers.md) pages. - -### Advanced Configuration - -A code example which configures a mod-tap setting that works with homerow mods: - -``` -#include -#include - -/ { - behaviors { - hm: homerow_mods { - compatible = "zmk,behavior-hold-tap"; - label = "HOMEROW_MODS"; - #binding-cells = <2>; - tapping_term_ms = <175>; - flavor = "balanced"; - bindings = <&kp>, <&kp>; - }; - }; - - keymap { - compatible = "zmk,keymap"; - - default_layer { - bindings = < - &hm LCTRL A &hm LGUI S &hm LALT D &hm LSHFT F - >; - }; - }; -}; - -``` - -If this config does not work for you, try the flavor "tap-preferred" and a short tapping_term_ms such as 120ms. - -If you want to use a tap-hold with a keycode from a different code page, you have to define another behavior with another "bindings" parameter.For example, if you want to use SHIFT and volume up, define the bindings like `bindings = <&kp>, <&kp>;`. Only single-argument behaviors are supported at the moment. - -#### Comparison to QMK - -The hold-preferred flavor works similar to the `HOLD_ON_OTHER_KEY_PRESS` setting in QMK. The 'balanced' flavor is similar to the `PERMISSIVE_HOLD` setting, and the `tap-preferred` flavor is similar to `IGNORE_MOD_TAP_INTERRUPT`. diff --git a/zmk/docs/docs/behavior/key-press.md b/zmk/docs/docs/behavior/key-press.md deleted file mode 100644 index dcf1a132..00000000 --- a/zmk/docs/docs/behavior/key-press.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Key Press Behaviors -sidebar_label: Key Press ---- - -## Summary - -The most basic of behaviors, is the ability to send certain keycode presses and releases in response to activating -a certain key. - -The categories of supported codes are: - -- [Keyboard & Keypad](../codes/keyboard-keypad) -- [Editing](../codes/editing) -- [Media](../codes/media) -- [Applications](../codes/applications) -- [Input Assist](../codes/input-assist) -- [Power](../codes/power) - -Please visit the [codes](../codes) section for a comprehensive list. - -For advanced users, user-defined HID codes are also supported but must be encoded, please see [`dt-bindings/zmk/keys.h`](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/keys.h) for further insight. - -## Keycode Defines - -To make it easier to encode the HID keycode numeric values, most keymaps include -the [`dt-bindings/zmk/keys.h`](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/keys.h) header -provided by ZMK near the top: - -``` -#include -``` - -Doing so makes a set of defines such as `A`, `N1`, etc. available for use with these behaviors - -:::note -There is an [open issue](https://github.com/zmkfirmware/zmk/issues/21) to provide a more comprehensive, and -complete set of defines for the full keypad and consumer usage pages in the future for ZMK. -::: - -### Improperly defined keymap - `dtlib.DTError: .dts.pre.tmp:` - -When compiling firmware from a keymap, it may be common to encounter an error in the form of a`dtlib.DTError: .dts.pre.tmp:`. -For instructions to resolve such an error, click [here](../troubleshooting###Improperly-defined-keymap) - -## Keypad Key Press - -The "keypad key press" behavior sends standard keypad keycodes on press/release. - -### Behavior Binding - -- Reference: `&kp` -- Parameter: The keycode usage ID from the keypad usage page, e.g. `4` or `A` - -Example: - -``` -&kp A -``` diff --git a/zmk/docs/docs/behavior/layers.md b/zmk/docs/docs/behavior/layers.md deleted file mode 100644 index fcfdc93a..00000000 --- a/zmk/docs/docs/behavior/layers.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: Layer Behaviors -sidebar_label: Layers ---- - -## Summary - -Often, you may want a certain key position to alter which layers are enabled, change the default layer, etc. -Some of those behaviors are still in the works; the ones that are working now are documented here. - -## Defines To Refer To Layers - -When working with layers, you may have several different key positions with bindings that enable/disable those layers. -To make it easier to refer to those layers in your key bindings, and to change which layers are where later, you can -add a set of `#define`s at the top of your keymap file, and use those layer in your keymap. - -For example, if you have three layers, you can add the following to the top of your keymap: - -``` -#define DEFAULT 0 -#define LOWER 1 -#define RAISE 2 -``` - -This allows you to use those defines, e.g. `LOWER` later in your keymap. - -## Momentary Layer - -The "momentary layer" behavior enables a layer while a certain key is pressed. Immediately upon -activation of the key, the layer is enabled, and immediately open release of the key, the layer is disabled -again. - -### Behavior Binding - -- Reference: `&mo` -- Parameter: The layer number to enable/disable, e.g. `1` - -Example: - -``` -&mo LOWER -``` - -## Layer-tap - -The "layer-tap" behavior enables a layer when a key is held, and output another key when the key is only tapped for a short time. For more information on the inner workings of layer-tap, see [hold-tap](./hold-tap.md). - -### Behavior Binding - -- Reference: `<` -- Parameter: The layer number to enable when held, e.g. `1` -- Parameter: The keycode to send when tapped, e.g. `A` - -Example: - -``` -< LOWER SPACE -``` - -## Toggle Layer - -The "toggle layer" behavior enables a layer until the layer is manually disabled. - -### Behavior Binding - -- Reference: `&tog` -- Parameter: The layer number to enable/disable, e.g. `1` - -Example: - -``` -&tog LOWER -``` - -"Toggle layer" for a : - -``` -#define DEFAULT 0 -#define NAVI 1 - -#define NONE 0 - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { - bindings = < - &tog NAVI &kp KP_DIVIDE &kp KP_MULTIPLY &kp KP_MINUS - &kp NUMBER_7 &kp NUMBER_8 &kp NUMBER_9 &kp KP_PLUS - &kp NUMBER_4 &kp NUMBER_5 &kp NUMBER_6 &kp KP_PLUS - &kp NUMBER_1 &kp NUMBER_2 &kp NUMBER_3 &kp RETURN - &kp NUMBER_0 &kp NUMBER_0 &kp DOT &kp RETURN - >; - }; - - nav_layer { - bindings = < - &tog NAVI &kp KP_DIVIDE &kp KP_MULTIPLY &kp KP_MINUS - &kp HOME &kp UP &kp PAGE_UP &kp KP_PLUS - &kp LEFT &none &kp RIGHT &kp KP_PLUS - &kp END &kp DOWN &kp PAGE_DOWN &kp RETURN - &kp INSERT &kp INSERT &kp DEL &kp RETURN - >; - }; - }; -}; -``` - -It is possible to use "toggle layer" to have keys that raise and lower the layers as well. diff --git a/zmk/docs/docs/behavior/lighting.md b/zmk/docs/docs/behavior/lighting.md deleted file mode 100644 index 2d4f532e..00000000 --- a/zmk/docs/docs/behavior/lighting.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Lighting Behavior -sidebar_label: Lighting ---- - -## Summary - -Lighting is often used for either aesthetics or for the practical purposes of lighting up keys in the dark. -Currently ZMK supports RGB underglow, which can be changed and configured using its behavior. - -## RGB Action Defines - -RGB actions defines are provided through the [`dt-bindings/zmk/rgb.h`](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/rgb.h) header, -which is added at the top of the keymap file: - -``` -#include -``` - -This will allow you to reference the actions defined in this header such as `RGB_TOG`. - -Here is a table describing the action for each define: - -| Define | Action | -| --------- | --------------------------------------------------------- | -| `RGB_TOG` | Toggles the RGB feature on and off | -| `RGB_HUI` | Increases the hue of the RGB feature | -| `RGB_HUD` | Decreases the hue of the RGB feature | -| `RGB_SAI` | Increases the saturation of the RGB feature | -| `RGB_SAD` | Decreases the saturation of the RGB feature | -| `RGB_BRI` | Increases the brightness of the RGB feature | -| `RGB_BRD` | Decreases the brightness of the RGB feature | -| `RGB_SPI` | Increases the speed of the RGB feature effect's animation | -| `RGB_SPD` | Decreases the speed of the RGB feature effect's animation | -| `RGB_EFF` | Cycles the RGB feature's effect forwards | -| `RGB_EFR` | Cycles the RGB feature's effect reverse | - -## RGB Underglow - -The "RGB underglow" behavior completes an RGB action given on press. - -### Behavior Binding - -- Reference: `&rgb_ug` -- Parameter: The RGB action define, e.g. `RGB_TOG` or `RGB_BRI` - -Example: - -``` -&rgb_ug RGB_TOG -``` diff --git a/zmk/docs/docs/behavior/misc.md b/zmk/docs/docs/behavior/misc.md deleted file mode 100644 index 446ba33c..00000000 --- a/zmk/docs/docs/behavior/misc.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Miscellaneous Behaviors -sidebar_label: Miscellaneous ---- - -## Summary - -There are a few miscellaneous behaviors that are helpful when working with layers in keymaps, -in particular, with handling what happens in higher layers, and if events are passed to -the next layer or not - -## Transparent - -The transparent behavior simply ignores key position presses/releases, so they will be -passed down to the next active layer in the stack. - -### Behavior Binding - -- Reference: `&trans` -- Parameters: None - -Example: - -``` -&trans -``` - -## None - -The none behavior simply swallows and stops key position presses/releases, so they will **not** -be passed down to the next active layer in the stack. - -### Behavior Binding - -- Reference: `&none` -- Parameters: None - -Example: - -``` -&none -``` diff --git a/zmk/docs/docs/behavior/mod-tap.md b/zmk/docs/docs/behavior/mod-tap.md deleted file mode 100644 index da8b438a..00000000 --- a/zmk/docs/docs/behavior/mod-tap.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Mod-Tap Behavior -sidebar_label: Mod-Tap ---- - -## Summary - -The Mod-Tap sends a different keypress, if it's tapped or held. When you tap the key shortly, the first keycode is sent. If you hold the key for longer than 200ms, the second keycode is sent. - -If you press another key within the 200ms, the 'mod' behavior is also activated. - -## Mod-Tap - -The Mod-Tap behavior either acts as a held modifier, or as a tapped keycode. - -### Behavior Binding - -- Reference: `&mt` -- Parameter #1: The keycode to be sent when activating as a modifier, e.g. `LSHFT` -- Parameter #2: The keycode to sent when used as a tap, e.g. `A`, `B`. - -Example: - -``` -&mt LSHFT A -``` - -### Configuration - -You can configure a different tapping term in your keymap: - -``` -&mt { - tapping_term_ms = <400>; -}; - -/ { - keymap { - ... - } -} -``` diff --git a/zmk/docs/docs/behavior/outputs.md b/zmk/docs/docs/behavior/outputs.md deleted file mode 100644 index ae812497..00000000 --- a/zmk/docs/docs/behavior/outputs.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Output Selection Behavior -sidebar_label: Output Selection ---- - -## Summary - -The output behavior allows selecting whether keyboard output is sent to the -USB or bluetooth connection when both are connected. This allows connecting a -keyboard to USB for power but outputting to a different device over bluetooth. - -By default, output is sent to USB when both USB and BLE are connected. -Once you select a different output, it will be remembered until you change it again. - -## Output Command Defines - -Output command defines are provided through the [`dt-bindings/zmk/outputs.h`](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/outputs.h) -header, which is added at the top of the keymap file: - -``` -#include -``` - -This allows you to reference the actions defined in this header: - -| Define | Action | -| --------- | ----------------------------------------------- | -| `OUT_USB` | Prefer sending to USB | -| `OUT_BLE` | Prefer sending to the current bluetooth profile | -| `OUT_TOG` | Toggle between USB and BLE | - -## Output Selection Behavior - -The output selection behavior changes the preferred output on press. - -### Behavior Binding - -- Reference: `&out` -- Parameter #1: Command, e.g. `OUT_BLE` - -### Examples - -1. Behavior binding to prefer sending keyboard output to USB - - ``` - &out OUT_USB - ``` - -1. Behavior binding to prefer sending keyboard output to the current bluetooth profile - - ``` - &out OUT_BLE - ``` - -1. Behavior binding to toggle between preferring USB and BLE - - ``` - &out OUT_TOG - ``` diff --git a/zmk/docs/docs/behavior/power.md b/zmk/docs/docs/behavior/power.md deleted file mode 100644 index 0de50552..00000000 --- a/zmk/docs/docs/behavior/power.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Power Management Behaviors -sidebar_label: Power Management ---- - -## Summary - -These page contains some of the power management behaviors currently supported by ZMK. - -## External Power Control - -The External power control behavior allows enabling or disabling the VCC power output -to save power. Some of the LEDs will consume power even in OFF state. To preserve -battery life in this scenario, some controller boards have support to disable the -external power completely. - -The following boards currently support this feature: - -- nRFMicro -- nice!nano - -## External Power Control Command Defines - -External power control command defines are provided through the [`dt-bindings/zmk/ext_power.h`](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/ext_power.h) header, -which is added at the top of the keymap file: - -``` -#include -``` - -This will allow you to reference the actions defined in this header such as `EXT_POWER_OFF_CMD`. - -Here is a table describing the command for each define: - -| Define | Action | Alias | -| ---------------------- | --------------------------- | -------- | -| `EXT_POWER_OFF_CMD` | Disable the external power. | `EP_OFF` | -| `EXT_POWER_ON_CMD` | Enable the external power. | `EP_ON` | -| `EXT_POWER_TOGGLE_CMD` | Toggle the external power. | `EP_TOG` | - -### Behavior Binding - -- Reference: `&ext_power` -- Parameter#1: Command, e.g `EP_ON` - -### Example: - -1. Behavior binding to enable the external power - - ``` - &ext_power EP_ON - ``` - -1. Behavior binding to disable the external power - - ``` - &ext_power EP_OFF - ``` - -1. Behavior binding to toggle the external power - - ``` - &ext_power EP_TOG - ``` diff --git a/zmk/docs/docs/behavior/reset.md b/zmk/docs/docs/behavior/reset.md deleted file mode 100644 index 8cf122b4..00000000 --- a/zmk/docs/docs/behavior/reset.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: Reset Behaviors -sidebar_label: Reset ---- - -## Summary - -There are two available behaviors that can be used to trigger a reset of the keyboard. -The first is a soft reset, that will simply reset and re-run the currently flashed -firmware; the second when triggered will reset into the bootloader, allowing you to -flash a new firmware to the keyboard. - -## Reset - -The basic reset behavior will reset the keyboard and re-run the firmware flashed -to the device - -### Behavior Binding - -- Reference: `&reset` -- Parameters: None - -Example: - -``` -&reset -``` - -## Bootloader Reset - -The bootloader reset behavior will reset the keyboard and put it into bootloader mode, allowing -you to flash a new firmware. - -### Behavior Binding - -- Reference: `&bootloader` -- Parameters: None - -Example: - -``` -&bootloader -``` diff --git a/zmk/docs/docs/behaviors/bluetooth.md b/zmk/docs/docs/behaviors/bluetooth.md deleted file mode 100644 index be0fb23c..00000000 --- a/zmk/docs/docs/behaviors/bluetooth.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Bluetooth Behavior -sidebar_label: Bluetooth ---- - -## Summary - -The bluetooth behavior allows management of various settings and states related to the bluetooth connection(s) -between the keyboard and the host. By default, ZMK supports five "profiles" for selecting which bonded host -computer/laptop/keyboard should receive the keyboard input; many of the commands here operation on those profiles. - -## Bluetooth Command Defines - -Bluetooth command defines are provided through the [`dt-bindings/zmk/bt.h`](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/bt.h) header, -which is added at the top of the keymap file: - -``` -#include -``` - -This will allow you to reference the actions defined in this header such as `BT_CLR_CMD`. - -Here is a table describing the command for each define: - -| Define | Action | -| ------------ | ---------------------------------------------------------------------------------------------- | -| `BT_CLR_CMD` | Clear bond information between the keyboard and host for the selected profile. | -| `BT_NXT_CMD` | Switch to the next profile, cycling through to the first one when the end is reached. | -| `BT_PRV_CMD` | Switch to the previous profile, cycling through to the last one when the beginning is reached. | -| `BT_SEL_CMD` | Select the 0-indexed profile by number. | - -Because at least one bluetooth commands takes an additional parameter, it is recommended to use -the following aliases in your keymap to avoid having to specify an ignored second parameter: - -| Define | Action | -| -------- | -------------------------------------------------------------------------------- | -| `BT_CLR` | Alias for `BT_CLR_CMD 0` to clear the current profile's bond to the current host | -| `BT_NXT` | Alias for `BT_NXT_CMD 0` to select the next profile | -| `BT_PRV` | Alias for `BT_PRV_CMD 0` to select the previous profile | -| `BT_SEL` | Alias for `BT_SEL_CMD` to select the given profile, e.g. `&bt BT_SEL 1` | - -## Bluetooth Behavior - -The bluetooth behavior completes an bluetooth action given on press. - -### Behavior Binding - -- Reference: `&bt` -- Parameter #1: The bluetooth command define, e.g. `BT_CLR_CMD` -- Parameter #2: (Reserved for future bluetooth command types) - -### Examples - -1. Behavior binding to clear the paired host for the selected profile: - - ``` - &bt BT_CLR - ``` - -1. Behavior binding to select the next profile: - - ``` - &bt BT_NXT - ``` - -1. Behavior binding to select the previous profile: - - ``` - &bt BT_PRV - ``` - -1. Behavior binding to select the 2nd profile (passed parameters are [zero based](https://en.wikipedia.org/wiki/Zero-based_numbering)): - - ``` - &bt BT_SEL 1 - ``` diff --git a/zmk/docs/docs/behaviors/hold-tap.md b/zmk/docs/docs/behaviors/hold-tap.md deleted file mode 100644 index f3c3c664..00000000 --- a/zmk/docs/docs/behaviors/hold-tap.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Hold-Tap Behavior -sidebar_label: Hold-Tap ---- - -## Summary - -Hold-tap is the basis for other behaviors such as layer-tap and mod-tap. - -Simply put, the hold-tap key will output the 'hold' behavior if it's held for a while, and output the 'tap' behavior when it's tapped quickly. - -### Hold-Tap - -The `tapping_term_ms` parameter decides between a 'tap' and a 'hold'. - -![Simple behavior](../assets/hold-tap/case1_2.png) - -By default, the hold-tap is configured to also select the 'hold' functionality if another key is tapped while it's active: - -![Hold preferred behavior](../assets/hold-tap/case1_2.png) - -We call this the 'hold-preferred' flavor of hold-taps. While this flavor may work very well for a ctrl/escape key, it's not very well suited for home-row mods or layer-taps. That's why there are two more flavors to choose from: 'tap-preferred' and 'balanced'. - -#### Flavors - -- The 'hold-preferred' flavor triggers the hold behavior when the tapping_term_ms has expired or another key is pressed. -- The 'balanced' flavor will trigger the hold behavior when the tapping_term_ms has expired or another key is pressed and released. -- The 'tap-preferred' flavor triggers the hold behavior when the tapping_term_ms has expired. It triggers the tap behavior when another key is pressed. - -When the hold-tap key is released and the hold behavior has not been triggered, the tap behavior will trigger. - -![Hold-tap comparison](../assets/hold-tap/comparison.png) - -### Basic usage - -For basic usage, please see [mod-tap](./mod-tap.md) and [layer-tap](./layers.md) pages. - -### Advanced Configuration - -This example configures a hold-tap that works well for homerow mods: - -``` -#include -#include - -/ { - behaviors { - hm: homerow_mods { - compatible = "zmk,behavior-hold-tap"; - label = "HOMEROW_MODS"; - #binding-cells = <2>; - tapping_term_ms = <150>; - flavor = "tap-preferred"; - bindings = <&kp>, <&kp>; - }; - }; - - keymap { - compatible = "zmk,keymap"; - - default_layer { - bindings = < - &hm LCTRL A &hm LGUI S &hm LALT D &hm LSHFT F - >; - }; - }; -}; - -``` - -If this config does not work for you, try the flavor "balanced" with a medium tapping_term_ms such as 200ms. - -#### Comparison to QMK - -The hold-preferred flavor works similar to the `HOLD_ON_OTHER_KEY_PRESS` setting in QMK. The 'balanced' flavor is similar to the `PERMISSIVE_HOLD` setting, and the `tap-preferred` flavor is similar to `IGNORE_MOD_TAP_INTERRUPT`. diff --git a/zmk/docs/docs/behaviors/key-press.md b/zmk/docs/docs/behaviors/key-press.md deleted file mode 100644 index 859c7973..00000000 --- a/zmk/docs/docs/behaviors/key-press.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Key Press Behaviors -sidebar_label: Key Press ---- - -## Summary - -The most basic of behaviors, is the ability to send certain keycode presses and releases in response to activating -a certain key. - -The categories of supported codes are: - -- [Keyboard & Keypad](../codes/keyboard-keypad) -- [Editing](../codes/editing) -- [Media](../codes/media) -- [Applications](../codes/applications) -- [Input Assist](../codes/input-assist) -- [Power](../codes/power) - -Please visit the [codes](../codes) section for a comprehensive list. - -For advanced users, user-defined HID usages are also supported but must be encoded, please see [`dt-bindings/zmk/keys.h`](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/keys.h) for further insight. - -## Keycode Defines - -To make it easier to encode the HID keycode numeric values, most keymaps include -the [`dt-bindings/zmk/keys.h`](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/keys.h) header -provided by ZMK near the top: - -``` -#include -``` - -Doing so makes a set of defines such as `A`, `N1`, etc. available for use with these behaviors - -### Improperly defined keymap - `dtlib.DTError: .dts.pre.tmp:` - -When compiling firmware from a keymap, it may be common to encounter an error in the form of a`dtlib.DTError: .dts.pre.tmp:`. -For instructions to resolve such an error, click [here](../troubleshooting###Improperly-defined-keymap) - -## Key Press - -The "key press" behavior sends standard keycodes on press/release. - -### Behavior Binding - -- Reference: `&kp` -- Parameter: The keycode usage ID from the usage page, e.g. `4` or `A` - -Example: - -``` -&kp A -``` diff --git a/zmk/docs/docs/behaviors/layers.md b/zmk/docs/docs/behaviors/layers.md deleted file mode 100644 index fcfdc93a..00000000 --- a/zmk/docs/docs/behaviors/layers.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: Layer Behaviors -sidebar_label: Layers ---- - -## Summary - -Often, you may want a certain key position to alter which layers are enabled, change the default layer, etc. -Some of those behaviors are still in the works; the ones that are working now are documented here. - -## Defines To Refer To Layers - -When working with layers, you may have several different key positions with bindings that enable/disable those layers. -To make it easier to refer to those layers in your key bindings, and to change which layers are where later, you can -add a set of `#define`s at the top of your keymap file, and use those layer in your keymap. - -For example, if you have three layers, you can add the following to the top of your keymap: - -``` -#define DEFAULT 0 -#define LOWER 1 -#define RAISE 2 -``` - -This allows you to use those defines, e.g. `LOWER` later in your keymap. - -## Momentary Layer - -The "momentary layer" behavior enables a layer while a certain key is pressed. Immediately upon -activation of the key, the layer is enabled, and immediately open release of the key, the layer is disabled -again. - -### Behavior Binding - -- Reference: `&mo` -- Parameter: The layer number to enable/disable, e.g. `1` - -Example: - -``` -&mo LOWER -``` - -## Layer-tap - -The "layer-tap" behavior enables a layer when a key is held, and output another key when the key is only tapped for a short time. For more information on the inner workings of layer-tap, see [hold-tap](./hold-tap.md). - -### Behavior Binding - -- Reference: `<` -- Parameter: The layer number to enable when held, e.g. `1` -- Parameter: The keycode to send when tapped, e.g. `A` - -Example: - -``` -< LOWER SPACE -``` - -## Toggle Layer - -The "toggle layer" behavior enables a layer until the layer is manually disabled. - -### Behavior Binding - -- Reference: `&tog` -- Parameter: The layer number to enable/disable, e.g. `1` - -Example: - -``` -&tog LOWER -``` - -"Toggle layer" for a : - -``` -#define DEFAULT 0 -#define NAVI 1 - -#define NONE 0 - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { - bindings = < - &tog NAVI &kp KP_DIVIDE &kp KP_MULTIPLY &kp KP_MINUS - &kp NUMBER_7 &kp NUMBER_8 &kp NUMBER_9 &kp KP_PLUS - &kp NUMBER_4 &kp NUMBER_5 &kp NUMBER_6 &kp KP_PLUS - &kp NUMBER_1 &kp NUMBER_2 &kp NUMBER_3 &kp RETURN - &kp NUMBER_0 &kp NUMBER_0 &kp DOT &kp RETURN - >; - }; - - nav_layer { - bindings = < - &tog NAVI &kp KP_DIVIDE &kp KP_MULTIPLY &kp KP_MINUS - &kp HOME &kp UP &kp PAGE_UP &kp KP_PLUS - &kp LEFT &none &kp RIGHT &kp KP_PLUS - &kp END &kp DOWN &kp PAGE_DOWN &kp RETURN - &kp INSERT &kp INSERT &kp DEL &kp RETURN - >; - }; - }; -}; -``` - -It is possible to use "toggle layer" to have keys that raise and lower the layers as well. diff --git a/zmk/docs/docs/behaviors/lighting.md b/zmk/docs/docs/behaviors/lighting.md deleted file mode 100644 index 2d4f532e..00000000 --- a/zmk/docs/docs/behaviors/lighting.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Lighting Behavior -sidebar_label: Lighting ---- - -## Summary - -Lighting is often used for either aesthetics or for the practical purposes of lighting up keys in the dark. -Currently ZMK supports RGB underglow, which can be changed and configured using its behavior. - -## RGB Action Defines - -RGB actions defines are provided through the [`dt-bindings/zmk/rgb.h`](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/rgb.h) header, -which is added at the top of the keymap file: - -``` -#include -``` - -This will allow you to reference the actions defined in this header such as `RGB_TOG`. - -Here is a table describing the action for each define: - -| Define | Action | -| --------- | --------------------------------------------------------- | -| `RGB_TOG` | Toggles the RGB feature on and off | -| `RGB_HUI` | Increases the hue of the RGB feature | -| `RGB_HUD` | Decreases the hue of the RGB feature | -| `RGB_SAI` | Increases the saturation of the RGB feature | -| `RGB_SAD` | Decreases the saturation of the RGB feature | -| `RGB_BRI` | Increases the brightness of the RGB feature | -| `RGB_BRD` | Decreases the brightness of the RGB feature | -| `RGB_SPI` | Increases the speed of the RGB feature effect's animation | -| `RGB_SPD` | Decreases the speed of the RGB feature effect's animation | -| `RGB_EFF` | Cycles the RGB feature's effect forwards | -| `RGB_EFR` | Cycles the RGB feature's effect reverse | - -## RGB Underglow - -The "RGB underglow" behavior completes an RGB action given on press. - -### Behavior Binding - -- Reference: `&rgb_ug` -- Parameter: The RGB action define, e.g. `RGB_TOG` or `RGB_BRI` - -Example: - -``` -&rgb_ug RGB_TOG -``` diff --git a/zmk/docs/docs/behaviors/misc.md b/zmk/docs/docs/behaviors/misc.md deleted file mode 100644 index 446ba33c..00000000 --- a/zmk/docs/docs/behaviors/misc.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Miscellaneous Behaviors -sidebar_label: Miscellaneous ---- - -## Summary - -There are a few miscellaneous behaviors that are helpful when working with layers in keymaps, -in particular, with handling what happens in higher layers, and if events are passed to -the next layer or not - -## Transparent - -The transparent behavior simply ignores key position presses/releases, so they will be -passed down to the next active layer in the stack. - -### Behavior Binding - -- Reference: `&trans` -- Parameters: None - -Example: - -``` -&trans -``` - -## None - -The none behavior simply swallows and stops key position presses/releases, so they will **not** -be passed down to the next active layer in the stack. - -### Behavior Binding - -- Reference: `&none` -- Parameters: None - -Example: - -``` -&none -``` diff --git a/zmk/docs/docs/behaviors/mod-tap.md b/zmk/docs/docs/behaviors/mod-tap.md deleted file mode 100644 index da8b438a..00000000 --- a/zmk/docs/docs/behaviors/mod-tap.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Mod-Tap Behavior -sidebar_label: Mod-Tap ---- - -## Summary - -The Mod-Tap sends a different keypress, if it's tapped or held. When you tap the key shortly, the first keycode is sent. If you hold the key for longer than 200ms, the second keycode is sent. - -If you press another key within the 200ms, the 'mod' behavior is also activated. - -## Mod-Tap - -The Mod-Tap behavior either acts as a held modifier, or as a tapped keycode. - -### Behavior Binding - -- Reference: `&mt` -- Parameter #1: The keycode to be sent when activating as a modifier, e.g. `LSHFT` -- Parameter #2: The keycode to sent when used as a tap, e.g. `A`, `B`. - -Example: - -``` -&mt LSHFT A -``` - -### Configuration - -You can configure a different tapping term in your keymap: - -``` -&mt { - tapping_term_ms = <400>; -}; - -/ { - keymap { - ... - } -} -``` diff --git a/zmk/docs/docs/behaviors/outputs.md b/zmk/docs/docs/behaviors/outputs.md deleted file mode 100644 index ae812497..00000000 --- a/zmk/docs/docs/behaviors/outputs.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Output Selection Behavior -sidebar_label: Output Selection ---- - -## Summary - -The output behavior allows selecting whether keyboard output is sent to the -USB or bluetooth connection when both are connected. This allows connecting a -keyboard to USB for power but outputting to a different device over bluetooth. - -By default, output is sent to USB when both USB and BLE are connected. -Once you select a different output, it will be remembered until you change it again. - -## Output Command Defines - -Output command defines are provided through the [`dt-bindings/zmk/outputs.h`](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/outputs.h) -header, which is added at the top of the keymap file: - -``` -#include -``` - -This allows you to reference the actions defined in this header: - -| Define | Action | -| --------- | ----------------------------------------------- | -| `OUT_USB` | Prefer sending to USB | -| `OUT_BLE` | Prefer sending to the current bluetooth profile | -| `OUT_TOG` | Toggle between USB and BLE | - -## Output Selection Behavior - -The output selection behavior changes the preferred output on press. - -### Behavior Binding - -- Reference: `&out` -- Parameter #1: Command, e.g. `OUT_BLE` - -### Examples - -1. Behavior binding to prefer sending keyboard output to USB - - ``` - &out OUT_USB - ``` - -1. Behavior binding to prefer sending keyboard output to the current bluetooth profile - - ``` - &out OUT_BLE - ``` - -1. Behavior binding to toggle between preferring USB and BLE - - ``` - &out OUT_TOG - ``` diff --git a/zmk/docs/docs/behaviors/power.md b/zmk/docs/docs/behaviors/power.md deleted file mode 100644 index 0de50552..00000000 --- a/zmk/docs/docs/behaviors/power.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Power Management Behaviors -sidebar_label: Power Management ---- - -## Summary - -These page contains some of the power management behaviors currently supported by ZMK. - -## External Power Control - -The External power control behavior allows enabling or disabling the VCC power output -to save power. Some of the LEDs will consume power even in OFF state. To preserve -battery life in this scenario, some controller boards have support to disable the -external power completely. - -The following boards currently support this feature: - -- nRFMicro -- nice!nano - -## External Power Control Command Defines - -External power control command defines are provided through the [`dt-bindings/zmk/ext_power.h`](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/ext_power.h) header, -which is added at the top of the keymap file: - -``` -#include -``` - -This will allow you to reference the actions defined in this header such as `EXT_POWER_OFF_CMD`. - -Here is a table describing the command for each define: - -| Define | Action | Alias | -| ---------------------- | --------------------------- | -------- | -| `EXT_POWER_OFF_CMD` | Disable the external power. | `EP_OFF` | -| `EXT_POWER_ON_CMD` | Enable the external power. | `EP_ON` | -| `EXT_POWER_TOGGLE_CMD` | Toggle the external power. | `EP_TOG` | - -### Behavior Binding - -- Reference: `&ext_power` -- Parameter#1: Command, e.g `EP_ON` - -### Example: - -1. Behavior binding to enable the external power - - ``` - &ext_power EP_ON - ``` - -1. Behavior binding to disable the external power - - ``` - &ext_power EP_OFF - ``` - -1. Behavior binding to toggle the external power - - ``` - &ext_power EP_TOG - ``` diff --git a/zmk/docs/docs/behaviors/reset.md b/zmk/docs/docs/behaviors/reset.md deleted file mode 100644 index 8cf122b4..00000000 --- a/zmk/docs/docs/behaviors/reset.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: Reset Behaviors -sidebar_label: Reset ---- - -## Summary - -There are two available behaviors that can be used to trigger a reset of the keyboard. -The first is a soft reset, that will simply reset and re-run the currently flashed -firmware; the second when triggered will reset into the bootloader, allowing you to -flash a new firmware to the keyboard. - -## Reset - -The basic reset behavior will reset the keyboard and re-run the firmware flashed -to the device - -### Behavior Binding - -- Reference: `&reset` -- Parameters: None - -Example: - -``` -&reset -``` - -## Bootloader Reset - -The bootloader reset behavior will reset the keyboard and put it into bootloader mode, allowing -you to flash a new firmware. - -### Behavior Binding - -- Reference: `&bootloader` -- Parameters: None - -Example: - -``` -&bootloader -``` diff --git a/zmk/docs/docs/codes/_applications.mdx b/zmk/docs/docs/codes/_applications.mdx deleted file mode 100644 index 099b701b..00000000 --- a/zmk/docs/docs/codes/_applications.mdx +++ /dev/null @@ -1,9 +0,0 @@ -import Table from "@site/src/components/codes/Table"; - -## Application Controls - - - -## Applications (Launch) - -
diff --git a/zmk/docs/docs/codes/_editing.mdx b/zmk/docs/docs/codes/_editing.mdx deleted file mode 100644 index 2dd4d631..00000000 --- a/zmk/docs/docs/codes/_editing.mdx +++ /dev/null @@ -1,9 +0,0 @@ -import Table from "@site/src/components/codes/Table"; - -## Cut, Copy, Paste - -
- -## Undo, Redo - -
diff --git a/zmk/docs/docs/codes/_footnotes/example.mdx b/zmk/docs/docs/codes/_footnotes/example.mdx deleted file mode 100644 index 2dcdb109..00000000 --- a/zmk/docs/docs/codes/_footnotes/example.mdx +++ /dev/null @@ -1,13 +0,0 @@ -This is an _example_ footnote for **code** tables. - -- Footnotes are supported per row by each operating system column. -- Footnotes support MDX syntax. -- A footnote's `id` is its filename by convention (i.e. `example`). -- Footnotes must be included and listed in `src/data/footnotes.js` because they're statically compiled. -- Footnotes are assigned within `src/data/hid.js` using `column-id: footnote-id(s)` `K`:`V` pairs (case-sensitive), where: - - `K` is the column's `id`. - - `V` is the footnote's `id`. - - `V` can also be an array of footnote ids (_optional_). -- The footnote system aims to prevent duplication of _sources_ (mdx). -- Footnotes are listed under each table, so try to avoid multiline notes unless it's necessary! -- Footnotes are automatically numbered. diff --git a/zmk/docs/docs/codes/_input-assist.mdx b/zmk/docs/docs/codes/_input-assist.mdx deleted file mode 100644 index 7dc432b4..00000000 --- a/zmk/docs/docs/codes/_input-assist.mdx +++ /dev/null @@ -1,5 +0,0 @@ -import Table from "@site/src/components/codes/Table"; - -## Input Assist - -
diff --git a/zmk/docs/docs/codes/_keyboard-keypad.mdx b/zmk/docs/docs/codes/_keyboard-keypad.mdx deleted file mode 100644 index a00a4f4f..00000000 --- a/zmk/docs/docs/codes/_keyboard-keypad.mdx +++ /dev/null @@ -1,61 +0,0 @@ -import Table from "@site/src/components/codes/Table"; - -## Keyboard - -### Letters - -
- -### Numbers - -
- -### Symbols / Punctuation - -
- -### Control & Whitespace - -
- -### Navigation - -
- -### Modifiers - -The [Modifiers](./modifiers) page includes further information. - -
- -### Locks - -
- -### F Keys - -
- -### International - -
- -### Language - -
- -### Miscellaneous - -
- -## Keypad - -
- -### Numbers - -
- -### Symbols / Operations - -
diff --git a/zmk/docs/docs/codes/_media.mdx b/zmk/docs/docs/codes/_media.mdx deleted file mode 100644 index 7be80ab9..00000000 --- a/zmk/docs/docs/codes/_media.mdx +++ /dev/null @@ -1,21 +0,0 @@ -import Table from "@site/src/components/codes/Table"; - -## Sound / Volume - -
- -## Display - -
- -## Media Controls - -
- -## Consumer Menus - -
- -## Consumer Controls - -
diff --git a/zmk/docs/docs/codes/_power.mdx b/zmk/docs/docs/codes/_power.mdx deleted file mode 100644 index dd06e953..00000000 --- a/zmk/docs/docs/codes/_power.mdx +++ /dev/null @@ -1,5 +0,0 @@ -import Table from "@site/src/components/codes/Table"; - -## Power & Lock - -
diff --git a/zmk/docs/docs/codes/applications.mdx b/zmk/docs/docs/codes/applications.mdx deleted file mode 100644 index 0c9416f3..00000000 --- a/zmk/docs/docs/codes/applications.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Applications -sidebar_label: Applications -hide_title: true ---- - -import OsLegend from "@site/src/components/codes/OsLegend"; -import ToastyContainer from "@site/src/components/codes/ToastyContainer"; -import Content, { rightToc as contentToc } from "./_applications.mdx"; - -export const rightToc = contentToc; - - - - diff --git a/zmk/docs/docs/codes/editing.mdx b/zmk/docs/docs/codes/editing.mdx deleted file mode 100644 index a65b8b6f..00000000 --- a/zmk/docs/docs/codes/editing.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Editing -sidebar_label: Editing -hide_title: true ---- - -import OsLegend from "@site/src/components/codes/OsLegend"; -import ToastyContainer from "@site/src/components/codes/ToastyContainer"; -import Content, { rightToc as contentToc } from "./_editing.mdx"; - -export const rightToc = contentToc; - - - - diff --git a/zmk/docs/docs/codes/index.mdx b/zmk/docs/docs/codes/index.mdx deleted file mode 100644 index a0c9df18..00000000 --- a/zmk/docs/docs/codes/index.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Codes -sidebar_label: Full List -hide_title: true -slug: ./ ---- - -import OsLegend from "@site/src/components/codes/OsLegend"; -import ToastyContainer from "@site/src/components/codes/ToastyContainer"; -import Key, { rightToc as keyToc } from "./_keyboard-keypad.mdx"; -import Editing, { rightToc as editingToc } from "./_editing.mdx"; -import Media, { rightToc as mediaToc } from "./_media.mdx"; -import Applications, { rightToc as applicationsToc } from "./_applications.mdx"; -import InputAssist, { rightToc as inputAssistToc } from "./_input-assist.mdx"; -import Power, { rightToc as powerToc } from "./_power.mdx"; - -export const rightToc = [ - ...keyToc, - ...editingToc, - ...mediaToc, - ...applicationsToc, - ...inputAssistToc, - ...powerToc, -]; - - - - - - - - - diff --git a/zmk/docs/docs/codes/input-assist.mdx b/zmk/docs/docs/codes/input-assist.mdx deleted file mode 100644 index c8bae19e..00000000 --- a/zmk/docs/docs/codes/input-assist.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Input Assist -sidebar_label: Input Assist -hide_title: true ---- - -import OsLegend from "@site/src/components/codes/OsLegend"; -import ToastyContainer from "@site/src/components/codes/ToastyContainer"; -import Content, { rightToc as contentToc } from "./_input-assist.mdx"; - -export const rightToc = contentToc; - - - - diff --git a/zmk/docs/docs/codes/keyboard-keypad.mdx b/zmk/docs/docs/codes/keyboard-keypad.mdx deleted file mode 100644 index 6a5e605d..00000000 --- a/zmk/docs/docs/codes/keyboard-keypad.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Keyboard & Keypad -sidebar_label: Keyboard & Keypad -hide_title: true ---- - -import OsLegend from "@site/src/components/codes/OsLegend"; -import ToastyContainer from "@site/src/components/codes/ToastyContainer"; -import Content, { rightToc as contentToc } from "./_keyboard-keypad.mdx"; - -export const rightToc = contentToc; - - - - diff --git a/zmk/docs/docs/codes/media.mdx b/zmk/docs/docs/codes/media.mdx deleted file mode 100644 index 588bb4cb..00000000 --- a/zmk/docs/docs/codes/media.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Media -sidebar_label: Media -hide_title: true ---- - -import OsLegend from "@site/src/components/codes/OsLegend"; -import ToastyContainer from "@site/src/components/codes/ToastyContainer"; -import Content, { rightToc as contentToc } from "./_media.mdx"; - -export const rightToc = contentToc; - - - - diff --git a/zmk/docs/docs/codes/modifiers.mdx b/zmk/docs/docs/codes/modifiers.mdx deleted file mode 100644 index c573a670..00000000 --- a/zmk/docs/docs/codes/modifiers.mdx +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Modifiers -sidebar_label: Modifiers -hide_title: true ---- - -import OsLegend from "@site/src/components/codes/OsLegend"; -import ToastyContainer from "@site/src/components/codes/ToastyContainer"; -import Table from "@site/src/components/codes/Table"; - - - - -## Modifiers - -Modifiers are the special keyboard keys: _shift_, _alt_, _control_ & _GUI_. - -Modifiers can be used in two forms within ZMK: - -- Modifier [Keys](#modifier-keys) → `LEFT_SHIFT` -- Modifier [Functions](#modifier-functions) → `LS(code)` - -
- -### Modifier Keys - -These act like any other key code. - -- e.g. `&kp LEFT_GUI` pushes and releases the left GUI key. - -### Modifier Functions - -Modifier functions add one or more modifiers to a code. - -These functions take the form: `XX(code)` - -- Modifier functions apply a modifier to a code: - - `&kp LS(A)` = `LEFT_SHIFT`+`A` (a capitalized **A**). -- They can be combined: - - `&kp LC(RA(B))` = `LEFT_CONTROL`+`RIGHT_ALT`+`B` -- Some basic codes already include a modifier function in their definition: - - `DOLLAR` = `LS(NUMBER_4)` -- There are left- and right-handed versions of each modifier (also see table above): - - `LS`, `LC`, `LA`, `LG`, `RS`, `RC`, `RA`, `RG` -- Modified keys can safely be rolled-over. Modifier functions are released when another key is pressed. - - Press `&kp LS(A)`, then press `&kp B`, release `&kp LS(A)` and release `&kp B` results in **Ab**. Only the A is capitalized. diff --git a/zmk/docs/docs/codes/power.mdx b/zmk/docs/docs/codes/power.mdx deleted file mode 100644 index 7e8ffd10..00000000 --- a/zmk/docs/docs/codes/power.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Power -sidebar_label: Power -hide_title: true ---- - -import OsLegend from "@site/src/components/codes/OsLegend"; -import ToastyContainer from "@site/src/components/codes/ToastyContainer"; -import Content, { rightToc as contentToc } from "./_power.mdx"; - -export const rightToc = contentToc; - - - - diff --git a/zmk/docs/docs/customization.md b/zmk/docs/docs/customization.md deleted file mode 100644 index 626a291b..00000000 --- a/zmk/docs/docs/customization.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Customizing ZMK/`zmk-config` folders -sidebar_label: Customizing ZMK ---- - -After verifying you can successfully flash the default firmware, you will probably want to begin customizing your keymap and other keyboard options. -[In the initial setup tutorial](user-setup), you created a Github repository called `zmk-config`. This repository is a discrete filesystem which works -with the main `zmk` firmware repository to build your desired firmware. The main advantage of a discrete configuration folder is ensuring that the -working components of ZMK are kept separate from your personal keyboard settings, reducing the amount of file manipulation in the configuration process. -This makes flashing ZMK to your keyboard much easier, especially because you don't need to keep an up-to-date copy of zmk on your computer at all times. - -On default `zmk-config` folder should contain two files: - -- `.conf` -- ``.keymap - -However, your config folder can also be modified to include a `boards/` directory for keymaps and configurations for multiple boards/shields -outside of the default keyboard setting definitions. - -## Configuration Changes - -The setup script creates a `config/.conf` file that allows you to add additional configuration options to -control what features and options are built into your firmware. Opening that file with your text editor will allow you to see the -various config settings that can be commented/uncommented to modify how your firmware is built. - -## Keymap - -Once you have the basic user config completed, you can find the keymap file in `config/.keymap` and customize from there. -Refer to the [Keymap](/docs/features/keymaps) documentation to learn more. - -## Publishing - -After making any changes you want, you should commit the changes and then push them to GitHub. That will trigger a new -GitHub Actions job to build your firmware which you can download once it completes. - -:::note -If you need to, a review of [Learn The Basics Of Git In Under 10 Minutes](https://www.freecodecamp.org/news/learn-the-basics-of-git-in-under-10-minutes-da548267cc91/) will help you get these steps right. -::: - -## Building from a local `zmk` fork using `zmk-config` - -[As outlined here](development/build-flash), firmware comes in the form of .uf2 files, which can be built locally using the command `west build`. Normally, -`west build` will default to using the in-tree .keymap and .conf files found in your local copy of the `zmk` repository. However, you can append the command, `-DZMK_CONFIG="C:/the/absolute/path/config"` to `west build` in order to use the contents of your `zmk-config` folder instead of the -default keyboard settings. -**Notice that this path should point to the folder labelled `config` within your `zmk-config` folder.** - -For instance, building kyria firmware from a user `myUser`'s `zmk-config` folder on Windows 10 may look something like this: - -``` -west build -b nice_nano -- -DSHIELD=kyria_left -DZMK_CONFIG="C:/Users/myUser/Documents/Github/zmk-config/config" -``` - -## Flashing Your Changes - -For normal keyboards, follow the same flashing instructions as before to flash your updated firmware. - -For split keyboards, only the central (left) side will need to be reflashed if you are just updating your keymap. -More troubleshooting information for split keyboards can be found [here](troubleshooting#split-keyboard-halves-unable-to-pair). diff --git a/zmk/docs/docs/dev-boards-shields-keymaps.md b/zmk/docs/docs/dev-boards-shields-keymaps.md deleted file mode 100644 index 119db420..00000000 --- a/zmk/docs/docs/dev-boards-shields-keymaps.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Boards, Shields, and Keymaps ---- - -## Architecture Overview - -The foundational elements needed to get a specific keyboard working with ZMK can be broken down into: - -- A [KSCAN driver](https://docs.zephyrproject.org/2.3.0/reference/peripherals/kscan.html), which uses `compatible="zmk,kscan-gpio-matrix"` for GPIO matrix based keyboards, or uses `compatible="zmk,kscan-gpio-direct"` for small direct wires. -- An optional matrix transform, which defines how the KSCAN row/column events are translated into logical "key positions". This is required for non-rectangular keyboards/matrices, where the key positions don't naturally follow the row/columns from the GPIO matrix. -- A keymap, which binds each key position to a behavior, e.g. key press, mod-tap, momentary layer, in a set of layers. - -These three core architectural elements are defined per-keyboard, and _where_ they are defined depends on the specifics of how that -keyboard works. For an overview on the general concepts of boards and shields, please see the [FAQs on boards and shields](/docs/faq#why-boards-and-shields--why-not-just-keyboard). - -## Self-Contained Keyboard - -For a self-contained keyboard that includes the microprocessor, all of the above architecture components are included in the Zephyr _board_ definition. You can see an example for the [Planck V6](https://github.com/zmkfirmware/zmk/tree/main/app/boards/arm/planck) board directory. - -With this type of keyboard, the full ZMK definition for the keyboard exists -in the `app/boards/${arch}/${board_name}` directory, e.g. `app/boards/arm/planck/`. In that directory, you'll have the following: - -- A `Kconfig.board` file that defines the toplevel Kconfig item for the board, including which SoC Kconfig setting it depends on. -- A `Kconfig.defconfig` file that sets some initial defaults when building this keyboard. This usually includes: - - Setting `ZMK_KEYBOARD_NAME` to a value, for the product name to be used for USB/BLE info. - - Setting `ZMK_USB` and/or `ZMK_BLE` for the default values for which HID transport(s) to enable by default -- A `${board_name}_defconfig` file that forces specific Kconfig settings that are specific to this hardware configuration. Mostly this is SoC settings around the specific hardware configuration. -- `${board_name}.dts` which contains all the devicetree definitions, including: - - An `#include` line that pulls in the specific microprocessor that is used, e.g. `#include `. - - A [chosen](https://docs.zephyrproject.org/2.3.0/guides/dts/intro.html#aliases-and-chosen-nodes) node named `zmk,kscan` which references the configured KSCAN driver (usually a GPIO matrix) - - (Optional) A [chosen](https://docs.zephyrproject.org/2.3.0/guides/dts/intro.html#aliases-and-chosen-nodes) node named `zmk,matrix_transform` that defines the mapping from KSCAN row/column values to the logical key position for the keyboard. -- A `board.cmake` file with CMake directives for how to flash to the device. -- A `keymap/keymap.overlay` file that includes the default keymap for that keyboard. Users will be able to override this keymap in their user configs. - -## Pro Micro Compatible Keyboard - -![Labelled Pro Micro pins](assets/pro-micro/pro-micro-pins-labelled.jpg) - -For keyboards that require a (usually Pro Micro compatible) add-on board to operate, the ZMK integration pieces are places -in the _shield_ definition for that keyboard, allowing users to -swap in different Pro Micro compatible boards (e.g. Proton-C, or nice!nano) and build a firmware the matches their actual -combination of physical components. - -With this type of keyboard, the partial definition for the keyboard exists -in the `app/boards/shields/${board_name}` directory, e.g. `app/boards/shields/clueboard_california/`. In that directory, you'll have the following: - -- A `Kconfig.shield` that defines the toplevel Kconfig value for the shield, which uses a supplied utility to function to default the value based on the shield list, e.g. `def_bool $(shields_list_contains,clueboard_california)`. -- A `Kconfig.defconfig` file to set default values for things like `ZMK_KEYBOARD_NAME` -- A `${shield_name}.overlay` file, which is a devicetree overlay file, that includes: - - A [chosen](https://docs.zephyrproject.org/2.3.0/guides/dts/intro.html#aliases-and-chosen-nodes) node named `zmk,kscan` which references the configured KSCAN driver (usually a GPIO matrix). For these keyboards, to be compatible with any Pro Micro compatible boards, the KSCAN configuration should reference the [nexus node](https://docs.zephyrproject.org/2.3.0/guides/porting/shields.html#gpio-nexus-nodes) that ZMK has standardized on. In particular, the `&pro_micro_a` and `&pro_micro_d` aliases can be used to reference the standard `A#` and `D#` pins in shields. - - (Optional) A [chosen](https://docs.zephyrproject.org/2.3.0/guides/dts/intro.html#aliases-and-chosen-nodes) node named `zmk,matrix_transform` that defines the mapping from KSCAN row/column values to the logical key position for the keyboard. -- A `keymap/keymap.overlay` file that includes the default keymap for that keyboard. Users will be able to override this keymap in their user configs. diff --git a/zmk/docs/docs/dev-build-flash.md b/zmk/docs/docs/dev-build-flash.md deleted file mode 100644 index bfdd464d..00000000 --- a/zmk/docs/docs/dev-build-flash.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: Building and Flashing -sidebar_label: Building and Flashing ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -export const OsTabs = (props) => ({props.children}); - -## Building - -From here on, building and flashing ZMK should all be done from the `app/` subdirectory of the ZMK checkout: - -```sh -cd app -``` - -To build for your particular keyboard, the behaviour varies slightly depending on if you are building for a keyboard with -an onboard MCU, or one that uses an MCU board addon. - -### Keyboard (Shield) + MCU Board - -ZMK treats keyboards that take an MCU addon board as [shields](https://docs.zephyrproject.org/2.3.0/guides/porting/shields.html), and treats the smaller MCU board as the true [board](https://docs.zephyrproject.org/2.3.0/guides/porting/board_porting.html) - -Given the following: - -- MCU Board: Proton-C -- Keyboard PCB: kyria_left -- Keymap: default - -You can build ZMK with the following: - -```sh -west build -b proton_c -- -DSHIELD=kyria_left -``` - -### Keyboard With Onboard MCU - -Keyboards with onboard MCU chips are simply treated as the [board](https://docs.zephyrproject.org/2.3.0/guides/porting/board_porting.html) as far as Zephyr™ is concerned. - -Given the following: - -- Keyboard: Planck (rev6) -- Keymap: default - -you can build ZMK with the following: - -```sh -west build -b planck_rev6 -``` - -### Pristine Building - -When building for a new board and/or shield after having built one previously, you may need to enable the pristine build option. This option removes all existing files in the build directory before regenerating them, and can be enabled by adding either --pristine or -p to the command: - -```sh -west build -p -b proton_c -- -DSHIELD=kyria_left -``` - -### Building For Split Keyboards - -:::note -For split keyboards, you will have to build and flash each side separately the first time you install ZMK. -::: - -By default, the `build` command outputs a single .uf2 file named `zmk.uf2` so building left and then right immediately after will overwrite your left firmware. In addition, you will need to pristine build each side to ensure the correct files are used. To avoid having to pristine build every time and separate the left and right build files, we recommend setting up separate build directories for each half. You can do this by using the `-d` parameter and first building left into `build/left`: - -``` -west build -d build/left -b nice_nano -- -DSHIELD=kyria_left -``` - -and then building right into `build/right`: - -``` -west build -d build/right -b nice_nano -- -DSHIELD=kyria_right -``` - -This produces `left` and `right` subfolders under the `build` directory and two separate .uf2 files. For future work on a specific half, use the `-d` parameter again to ensure you are building into the correct location. - -### Building from `zmk-config` Folder - -Instead of building .uf2 files using the default keymap and config files, you can build directly from your [`zmk-config` folder](user-setup#github-repo) by adding -`-DZMK_CONFIG="C:/the/absolute/path/config"` to your `west build` command. **Notice that this path should point to the folder labelled `config` within your `zmk-config` folder.** - -For instance, building kyria firmware from a user `myUser`'s `zmk-config` folder on Windows 10 may look something like this: - -``` -west build -b nice_nano -- -DSHIELD=kyria_left -DZMK_CONFIG="C:/Users/myUser/Documents/Github/zmk-config/config" -``` - -## Flashing - -Once built, the previously supplied parameters will be remembered so you can run the following to flash your -board with it in bootloader mode: - -``` -west flash -``` - -For boards that have drag and drop .uf2 flashing capability, the .uf2 file to flash can be found in `build/zephyr` (or `build/left|right/zephyr` if you followed the instructions for splits) and is by default named `zmk.uf2`. diff --git a/zmk/docs/docs/dev-clean-room.md b/zmk/docs/docs/dev-clean-room.md deleted file mode 100644 index 82db3a04..00000000 --- a/zmk/docs/docs/dev-clean-room.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Clean Room Implementation -sidebar_label: Clean Room ---- - -:::warning - -Anyone wanting to contribute code to ZMK _MUST_ read this, and adhere to the steps outlines in order to not violate any licenses/copyright of other projects - -::: - -ZMK Firmware is a [clean room design](https://en.wikipedia.org/wiki/Clean_room_design) keyboard firmware, that -borrows/implements a lot of the features found in popular keyboard firmwares projects like [QMK](https://qmk.fm) -and [TMK](https://github.com/tmk/tmk_keyboard). However, in order for ZMK to use the MIT, it _must_ not -incorporate any of the GPL licensed code from those projects. - -In order to achieve this, all code for ZMK has been implemented completely fresh, _without_ referencing, copying, -or duplicating any of the GPL code found in those other projects, even though they are open source software. - -## Contributor Requirements - -Contributors to ZMK must adhere to the following standard. - -- Implementations of features for ZMK _MUST NOT_ reuse any existing code from any projects not licensed with the MIT license. -- Contributors _MUST NOT_ study or refer to any GPL licensed source code while working on ZMK. -- Contributors _MAY_ read the documentation from other GPL licensed projects, to gain a broad understanding of the behavior of certain features in order to implement equivalent features for ZMK. -- Contributors _MAY_ refer to the [QMK Configurator](https://config.qmk.fm/) to inspect existing layouts/keymaps for - keyboards, and re-implement them for ZMK. diff --git a/zmk/docs/docs/dev-guide-new-shield.md b/zmk/docs/docs/dev-guide-new-shield.md deleted file mode 100644 index 70a847cb..00000000 --- a/zmk/docs/docs/dev-guide-new-shield.md +++ /dev/null @@ -1,537 +0,0 @@ ---- -title: New Keyboard Shield ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## Overview - -This guide will walk through the steps necessary to add ZMK support for a keyboard the uses a (Pro Micro compatible) addon MCU board to provide the microprocessor. -The high level steps are: - -- Create a new shield directory. -- Add the base Kconfig files. -- Add the shield overlay file to define the KSCAN driver for detecting key press/release. -- (Optional) Add the matrix transform for mapping KSCAN row/column values to sane key positions. This is needed for non-rectangular keyboards, or where the underlying row/column pin arrangement does not map one to one with logical locations on the keyboard. -- Add a default keymap, which users can override in their own configs as needed. -- Add support for features such as encoders, OLED displays, or RGB underglow. -- Update build.yml - -It may be helpful to review the upstream [shields documentation](https://docs.zephyrproject.org/2.3.0/guides/porting/shields.html#shields) to get a proper understanding of the underlying system before continuing. - -:::note -ZMK support for split keyboards requires a few more files than single boards to ensure proper connectivity between the central and peripheral units. Check the following guides thoroughly to ensure that all the files are in place. -::: - -## New Shield Directory - -:::note -This guide describes how to add shield to the ZMK main repository. If you are building firmware for your -own prototype or handwired keyboard, it is recommended to use your own user config repository. Follow the -[user setup guide](./user-setup.md) to create your user config repository first. When following the rest -of this guide, replace the `app/` directory in the ZMK main repository with the `config/` directory in your -user config repository. For example, `app/boards/shields/` should now be -`config/boards/shields/`. -::: - -Shields for Zephyr applications go into the `boards/shields/` directory; since ZMK's Zephyr application lives in the `app/` subdirectory of the repository, that means the new shield directory should be: - -```bash -mkdir app/boards/shields/ -``` - -## Base Kconfig Files - -There are two required Kconfig files that need to be created for your new keyboard -shield to get it picked up for ZMK, `Kconfig.shield` and `Kconfig.defconfig`. - -### Kconfig.shield - -The `Kconfig.shield` file defines any additional Kconfig settings that may be relevant when using this keyboard. For most keyboards, there is just one additional configuration value for the shield itself, e.g.: - -``` -config SHIELD_MY_BOARD - def_bool $(shields_list_contains,my_board) -``` - -This will make sure the new configuration `SHIELD_MY_BOARD` is set to true whenever `my_board` is added as a shield in your build. - -**For split boards**, you will need to add configurations for the left and right sides. - -``` -config SHIELD_MY_BOARD_LEFT - def_bool $(shields_list_contains,my_board_left) - -config SHIELD_MY_BOARD_RIGHT - def_bool $(shields_list_contains,my_board_right) -``` - -### Kconfig.defconfig - -The `Kconfig.defconfig` file is where overrides for various configuration settings -that make sense to have different defaults when this shield is used. One main item -that usually has a new default value set here is the `ZMK_KEYBOARD_NAME` value, -which controls the display name of the device over USB and BLE. - -The updated new default values should always be wrapped inside a conditional on the shield config name defined in the `Kconfig.shield` file. Here's the simplest example file. - -:::warning -Do not make the keyboard name too long, otherwise the bluetooth advertising might fail and you will not be able to find your keyboard from your laptop / tablet. -::: - -``` -if SHIELD_MY_BOARD - -config ZMK_KEYBOARD_NAME - default "My Awesome Keyboard" - -endif -``` - -Similarly to defining the halves of a split board in `Kconfig.shield` it is important to set the `ZMK_KEYBOARD_NAME` for each half of a split keyboard. - -``` -if SHIELD_MY_BOARD_LEFT - -config ZMK_KEYBOARD_NAME - default "My Awesome Keyboard Left" - -endif - -if SHIELD_MY_BOARD_RIGHT - -config ZMK_KEYBOARD_NAME - default "My Awesome Keyboard Right" - -endif -``` - -## Shield Overlays - -![Labelled Pro Micro pins](assets/pro-micro/pro-micro-pins-labelled.jpg) - -ZMK uses the green color coded pin names to generate devicetree node references. For example, to refer to the node `D0` in the devicetree files, use `&pro_micro_d 0` or to refer to `A1`, use `&pro_micro_a 1`. - - - - - -The `.overlay` is the devicetree description of the keyboard shield that is merged with the primary board devicetree description before the build. For ZMK, this file at a minimum should include the chosen node named `zmk,kscan` that references a KSCAN driver instance. For a simple 3x3 macropad matrix, -this might look something like: - -``` -/ { - chosen { - zmk,kscan = &kscan0; - }; - - kscan0: kscan_0 { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - diode-direction = "col2row"; - - col-gpios - = <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> - ; - - row-gpios - = <&pro_micro_a 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - }; -}; -``` - - - - - -### .dtsi files and Shield Overlays (Split Shields) - -Unlike unibody keyboards, split keyboards have a core .dtsi file with shield overlays for each half of the keyboard. -It is preferred to define only the `col-gpios` or `row-gpios` in the common shield .dtsi, depending on the `diode-direction` value. -For `col2row` directed boards like the iris, the shared .dtsi file may look like this: - -``` -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <16>; - rows = <4>; -// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | -// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | -// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | -// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 | -// | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 | - map = < -RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) -RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) -RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) -RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,2) RC(4,9) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) - RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(4,8) - >; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - row-gpios - = <&pro_micro_d 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // Row A from the schematic file - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // Row B from the schematic file - , <&pro_micro_d 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // Row C from the schematic file - , <&pro_micro_d 0 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // Row D from the schematic file - , <&pro_micro_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // Row E from the schematic file - ; - - }; -``` - -:::note -Notice that in addition to the common `row-gpios` that are declared in the kscan, the [matrix transform](#optional-matrix-transform) is defined in the .dtsi. -::: - -The missing `col-gpios` would be defined in your `_left.overlay` and `_right.overlay` files. -Keep in mind that the mirrored position of the GPIOs means that the `col-gpios` will appear reversed when the .overlay files are compared to one another. -Furthermore, the column offset for the [matrix transform](#optional-matrix-transform) should be added to the right half of the keyboard's overlay -because the keyboard's switch matrix is read from left to right, top to bottom. -This is exemplified with the iris .overlay files. - -``` -// iris_left.overlay - -#include "iris.dtsi" // Notice that the main dtsi files are included in the overlay. - -&kscan0 { - col-gpios - = <&pro_micro_a 1 GPIO_ACTIVE_HIGH> // col1 in the schematic - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> // col2 in the schematic - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> // col3 in the schematic - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> // col4 in the schematic - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> // col5 in the schematic - , <&pro_micro_d 10 GPIO_ACTIVE_HIGH> // col6 in the schematic - ; -}; -``` - -``` -// iris_right.overlay - -#include "iris.dtsi" - -&default_transform { // The matrix transform for this board is 6 columns over because the left half is 6 columns wide according to the matrix. - col-offset = <6>; -}; - -&kscan0 { - col-gpios - = <&pro_micro_d 10 GPIO_ACTIVE_HIGH> // col6 in the schematic - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> // col5 in the schematic - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> // col4 in the schematic - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> // col3 in the schematic - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> // col2 in the schematic - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> // col1 in the schematic - ; -}; - -``` - -### .conf files (Split Shields) - -While unibody boards only have one .conf file that applies configuration characteristics to the entire keyboard, -split keyboards are unique in that they contain multiple .conf files with different scopes. -For example, a split board called `my_awesome_split_board` would have the following files: - -- `my_awesome_split_board.conf` - Configuration elements affect both halves -- `my_awesome_split_board_left.conf` - Configuration elements only affect left half -- `my_awesome_split_board_right.conf` - Configuration elements only affect right half - -For proper communication between keyboard halves and that between the central half and the computer, -the **the central and peripheral halves of the keyboard must be defined**. This can be seen below. - -``` -// Central Half (Usually the left side: my_awesome_split_board_left.conf) - -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y -``` - -``` -// Peripheral Half (Usually the right side: my_awesome_split_board_right.conf) - -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_Peripheral=y -``` - -Using the .conf file that affects both halves of a split board would be for adding features like deep-sleep or rotary encoders. - -``` -// my_awesome_split_board.conf - -CONFIG_ZMK_SLEEP=y -``` - - - - -## (Optional) Matrix Transform - -Internally ZMK translates all row/column events into "key position" events to maintain a consistent model that works no matter what any possible GPIO matrix may look like for a certain keyboard. This is particularly helpful when: - -1. To reduce the used pins, an "efficient" number of rows/columns for the GPIO matrix is used, that does _not_ match the physical layout of rows/columns of the actual key switches. -1. For non rectangular keyboards with thumb clusters, non `1u` locations, etc. - -A "key position" is the numeric index (zero-based) of a given key, which identifies -the logical key location as perceived by the end user. All _keymap_ mappings actually bind behaviors to _key positions_, not to row/column values. - -_Without_ a matrix transform, that intentionally map each key position to the row/column pair that position corresponds to, the default equation to determine that is: - -``` -($row * NUMBER_OF_COLUMNS) + $column -``` - -Which effectively amounts to numbering the key positions by traversing each row from top to bottom and assigning numerically incrementing key positions. - -Whenever that default key position mapping is insufficient, the `.overlay` file should _also_ include a matrix transform. - -Here is an example for the [nice60](https://github.com/Nicell/nice60), which uses an efficient 8x8 GPIO matrix, and uses a transform: - -``` -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <8>; - rows = <8>; -// | MX1 | MX2 | MX3 | MX4 | MX5 | MX6 | MX7 | MX8 | MX9 | MX10 | MX11 | MX12 | MX13 | MX14 | -// | MX15 | MX16 | MX17 | MX18 | MX19 | MX20 | MX21 | MX22 | MX23 | MX34 | MX25 | MX26 | MX27 | MX28 | -// | MX29 | MX30 | MX31 | MX32 | MX33 | MX34 | MX35 | MX36 | MX37 | MX38 | MX39 | MX40 | MX41 | -// | MX42 | MX43 | MX44 | MX45 | MX46 | MX47 | MX48 | MX49 | MX50 | MX51 | MX52 | MX53 | -// | MX54 | MX55 | MX56 | MX57 | MX58 | MX59 | MX60 | MX61 | - map = < -RC(3,0) RC(2,0) RC(1,0) RC(0,0) RC(1,1) RC(0,1) RC(0,2) RC(1,3) RC(0,3) RC(1,4) RC(0,4) RC(0,5) RC(1,6) RC(1,7) -RC(4,0) RC(4,1) RC(3,1) RC(2,1) RC(2,2) RC(1,2) RC(2,3) RC(3,4) RC(2,4) RC(2,5) RC(1,5) RC(2,6) RC(2,7) RC(3,7) -RC(5,0) RC(5,1) RC(5,2) RC(4,2) RC(3,2) RC(4,3) RC(3,3) RC(4,4) RC(4,5) RC(3,5) RC(4,6) RC(3,6) RC(4,7) -RC(6,0) RC(6,1) RC(6,2) RC(6,3) RC(5,3) RC(6,4) RC(5,4) RC(6,5) RC(5,5) RC(6,6) RC(5,6) RC(5,7) -RC(7,0) RC(7,1) RC(7,2) RC(7,3) RC(7,5) RC(7,6) RC(6,7) RC(7,7) - >; - }; -``` - -Some important things to note: - -- The `#include ` is critical. The `RC` macro is used to generate the internal storage in the matrix transform, and is actually replaced by a C preprocessor before the final devicetree is compiled into ZMK. -- `RC(row, column)` is placed sequentially to define what row and column values that position corresponds to. -- If you have a keyboard with options for `2u` keys in certain positions, or break away portions, it is a good idea to set the chosen `zmk,matrix_transform` to the default arrangement, and include _other_ possible matrix transform nodes in the devicetree that users can select in their user config by overriding the chosen node. - -## Default Keymap - -Each keyboard should provide an OOTB default keymap to be used when building the firmware, which can be overridden and customized by user configs. For "shield keyboards", this should be placed in the `app/boards/shields//.keymap` file. The keymap is configured as an additional devicetree overlay that includes the following: - -- A node with `compatible="zmk,keymap"` where each child node is a layer with a `bindings` array that binds each key position to a given behavior (e.g. key press, momentarily layer, etc). - -Here is an example simple keymap for the Kyria, with only one layer: - -``` -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// -------------------------------------------------------------------------------------------------------------------------------------------------------------------- -// | ESC | Q | W | E | R | T | | Y | U | I | O | P | \ | -// | TAB | A | S | D | F | G | | H | J | K | L | ; | ' | -// | SHIFT | Z | X | C | V | B | CTRL+A | CTRL+C | | CTRL+V | CTRL+X | N | M | , | . | / | R CTRL | -// | GUI | DEL | RETURN | SPACE | ESCAPE | | RETURN | SPACE | TAB | BSPC | R ALT | - bindings = < - &kp ESC &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSLH - &kp TAB &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp QUOTE - &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp LC(A) &kp LC(C) &kp LC(V) &kp LC(X) &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RCTRL - &kp LGUI &kp DEL &kp RET &kp SPACE &kp ESC &kp RET &kp SPACE &kp TAB &kp BSPC &kp RALT - >; - - sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; - }; - }; -}; - -``` - -:::note -The two `#include` lines at the top of the keymap are required in order to bring in the default set of behaviors to make them available to bind, and to import a set of defines for the key codes, so keymaps can use parameters like `N2` or `K` instead of the raw keycode numeric values. -::: - -### Keymap Behaviors - -Further documentation on behaviors and bindings is forthcoming, but a summary of the current behaviors you can bind to key positions is as follows: - -- `kp` is the "key press" behavior, and takes a single binding argument of the key code from the 'keyboard/keypad" HID usage table. -- `mo` is the "momentary layer" behaviour, and takes a single binding argument of the numeric ID of the layer to momentarily enable when that key is held. -- `trans` is the "transparent" behavior, useful to be place in higher layers above `mo` bindings to be sure the key release is handled by the lower layer. No binding arguments are required. -- `mt` is the "mod-tap" behavior, and takes two binding arguments, the modifier to use if held, and the keycode to send if tapped. - -## Adding Features - -### Encoders - -EC11 encoder support can be added to your board or shield by adding the appropriate lines to your board/shield's configuration (.conf), device tree (.dtsi), overlay (.overlay), and keymap (.keymap) files. - - - - -In your configuration file you will need to add the following lines so that the encoders can be enabled/disabled: - -``` -# Uncomment to enable encoder -# CONFIG_EC11=y -# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y -``` - -These should be commented by default for encoders that are optional/can be swapped with switches, but can be uncommented if encoders are part of the default design. - -:::note -If building locally for split boards, you may need to add these lines to the specific half's configuration file as well as the combined configuration file. -::: - - - -In your device tree file you will need to add the following lines to define the encoder sensor: - -``` -left_encoder: encoder_left { - compatible = "alps,ec11"; - label = "LEFT_ENCODER"; - a-gpios = ; - b-gpios = ; - resolution = <4>; - }; -``` - -Here you will have to replace PIN_A and PIN_B with the appropriate pins that your PCB utilizes for the encoder(s). For keyboards that use the Pro Micro or any of the Pro Micro replacements, Sparkfun's [Pro Micro Hookup Guide](https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide/hardware-overview-pro-micro) has a pinout diagram that can be useful to determine the right pins. Reference either the blue numbers labeled "Arduino" (digital pins) or the green numbers labeled "Analog" (analog pins). For pins that are labeled as both digital and analog, refer to your specific board's .dtsi file to determine how you should refer to that pin. - -Add additional encoders as necessary by duplicating the above lines, replacing `left` with whatever you would like to call your encoder, and updating the pins. Note that support for peripheral (right) side sensors over BLE is still in progress. - -Once you have defined the encoder sensors, you will have to add them to the list of sensors: - -``` -sensors { - compatible = "zmk,keymap-sensors"; - sensors = <&left_encoder &right_encoder>; - }; -``` - -In this example, a left_encoder and right_encoder are both added. Additional encoders can be added with spaces separating each, and the order they are added here determines the order in which you define their behavior in your keymap. - - - -Add the following lines to your overlay file(s) to enable the encoder: - -``` -&left_encoder { - status = "okay"; -}; -``` - -:::note -For split keyboards, make sure to add left hand encoders to the left .overlay file and right hand encoders to the right .overlay file. -::: - - - -Add the following line to your keymap file to add default encoder behavior bindings: - -``` -sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; -``` - -Add additional bindings as necessary to match the default number of encoders on your board. See the [Encoders](/docs/feature/encoders) and [Keymap](/docs/feature/keymaps) feature documentation for more details. - - - - -## Testing - -Once you've fully created the new keyboard shield definition, -you should be able to test with a build command like: - -``` -west build --pristine -b proton_c -- -DSHIELD=my_board -``` - -and then flash with: - -``` -west flash -``` - -:::note -Further testing your keyboard shield without altering the root keymap file can be done with the use of `-DZMK_CONFIG` in your `west build` command, -shown [here](dev-build-flash#building-from-zmk-config-folder) -::: - -## Updating `build.yml` - -Before publishing your shield to the public via a PR, navigate to `build.yml` found in `.github/workflows` and add your shield to the appropriate list. An example edit to `build.yml` is shown below. - -``` -jobs: - build: - runs-on: ubuntu-latest - name: Build Test - strategy: - matrix: - board: [proton_c, nice_nano, bluemicro840_v1, nrfmicro_13] - shield: - - corne_left - - corne_right - - kyria_left - - kyria_right - - lily58_left - - lily58_right - - iris_left - - iris_right - - romac - - - - - - - include: - - board: proton_c - shield: clueboard_california -``` - -:::note -Notice that both the left and right halves of a split board need to be added to the list of shields for proper error checking. -:::note diff --git a/zmk/docs/docs/dev-guide-usb-logging.md b/zmk/docs/docs/dev-guide-usb-logging.md deleted file mode 100644 index 3dc62e36..00000000 --- a/zmk/docs/docs/dev-guide-usb-logging.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: USB Logging ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## Overview - -If you are developing ZMK on a device that does not have a built in UART for debugging and log/console output, -Zephyr can be configured to create a USB CDC ACM device and the direct all `printk`, console output, and log -messages to that device instead. - -:::warning Battery Life Impact - -Enabling logging increases the power usage of your keyboard, and can have a non-trivial impact to your time on battery. -It is recommended to only enable logging when needed, and not leaving it on by default. - -::: - -## Kconfig - -The following KConfig values need to be set, either by copy and pasting into the `app/prj.conf` file, or by running -`west build -t menuconfig` and manually enabling the various settings in that UI. - -:::note -If you are debugging your own keyboard in your [user config repository](./user-setup.md), use -`config/boards/shields//.conf` instead of `app/prj.conf`. In Github -Actions, you can search the `Kconfig file` build log to verify the options above have been enabled -for you successfully. -::: - -``` -# Turn on logging, and set ZMK logging to debug output -CONFIG_LOG=y -CONFIG_ZMK_LOG_LEVEL_DBG=y - -# Turn on USB CDC ACM device -CONFIG_USB=y -CONFIG_USB_DEVICE_STACK=y -CONFIG_USB_CDC_ACM=y -CONFIG_USB_CDC_ACM_RINGBUF_SIZE=1024 -CONFIG_USB_CDC_ACM_DEVICE_NAME="CDC_ACM" -CONFIG_USB_CDC_ACM_DEVICE_COUNT=1 - -# Enable serial console -CONFIG_SERIAL=y -CONFIG_CONSOLE=y -CONFIG_UART_INTERRUPT_DRIVEN=y -CONFIG_UART_LINE_CTRL=y - -# Enable USB UART, and set the console device -CONFIG_UART_CONSOLE=y -CONFIG_USB_UART_CONSOLE=y -CONFIG_UART_CONSOLE_ON_DEV_NAME="CDC_ACM_0" -CONFIG_USB_UART_DTR_WAIT=n -``` - -## Viewing Logs - -After flashing the updated ZMK image, the board should expose a USB CDC ACM device that you can connect to and view the logs. - - - - -On Linux, this should be a device like `/dev/ttyACM0` and you can connect with `minicom` or `tio` as usual, e.g.: - -``` -sudo tio /dev/ttyACM0 -``` - - - - -On Windows, you can use [PuTTY](https://www.putty.org/). Once installed, use Device Manager to figure out which COM port your controller is communicating on (listed under 'Ports (COM & LPT)') and specify that as the 'Serial line' in PuTTY. - -![Controller COM port](./assets/usb-logging/com.jpg) - -![PuTTY settings](assets/usb-logging/putty.jpg) - -If you already have the Ardunio IDE installed you can also use its built-in Serial Monitor. - - - - -On MacOS, the device name is something like `/dev/tty.usbmodemXXXXX` where `XXXXX` is some numerical ID. -You can connect to the device with [tio](https://tio.github.io/) (can be installed via [Homebrew](https://formulae.brew.sh/formula/tio)): - -``` -sudo tio /dev/tty.usbmodem14401 -``` - -You should see tio printing `Disconnected` or `Connected` when you disconnect or reconnect the USB cable. - - - -From there, you should see the various log messages from ZMK and Zephyr, depending on which systems you have set to what log levels. diff --git a/zmk/docs/docs/dev-posix-board.md b/zmk/docs/docs/dev-posix-board.md deleted file mode 100644 index 71460a87..00000000 --- a/zmk/docs/docs/dev-posix-board.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Native Posix board target ---- - -In order to iterate quickly on firmware features, it can -be helpful to build and run the firmware on your local -workstation, with generated virtual press/release events -flowing into the handler functions. - -## Prerequisites - -In order to build targeting the `native_posix` board, you need to setup your system -with a compiler that can target 32-bit POSIX. - -On Debian, you can do this with: - -``` -apt install -y gcc-multilib -``` - -## Building - -To do this, you can build ZMK targeting the -`native_posix` board. - -``` -west build --pristine --board native_posix -``` - -Once built, you can run the firmware locally: - -``` -./build/zephyr/zephyr.exe -``` - -## Virtual Key Events - -The virtual key presses are hardcoded in `boards/native_posix.overlay` file, should you want to change the sequence to test various actions like Mod-Tap, etc. diff --git a/zmk/docs/docs/dev-setup.md b/zmk/docs/docs/dev-setup.md deleted file mode 100644 index 864574a4..00000000 --- a/zmk/docs/docs/dev-setup.md +++ /dev/null @@ -1,554 +0,0 @@ ---- -title: Basic Setup -sidebar_label: Basic Setup ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -export const OsTabs = (props) => ({props.children}); - -## Prerequisites - -ZMK requires the following base packages to first be installed: - -- Git -- Python 3 -- `pip` -- `wget` -- devicetree compiler -- CMake -- `dfu-util` -- Various build essentials, e.g. gcc, automake, autoconf - - - - -On Debian and Ubuntu, we'll use `apt` to install our base dependencies: - -First, if you haven't updated recently, or if this is a new install, -you should update to get the latest package information: - -```sh -sudo apt update -``` - -With the latest package information, you can now install the base dependencies: - -```sh -sudo apt install -y \ - git \ - wget \ - autoconf \ - automake \ - build-essential \ - bzip2 \ - ccache \ - device-tree-compiler \ - dfu-util \ - g++ \ - gcc \ - libtool \ - make \ - ninja-build \ - cmake \ - python3-dev \ - python3-pip \ - python3-setuptools \ - xz-utils -``` - -:::note -Ubuntu 18.04 LTS release packages a version of CMake that is too old. Please upgrade to Ubuntu 20.04 LTS -or download and install CMake version 3.13.1 or newer manually. -::: - - - -On Raspberry OS, we'll use `apt` to install our base dependencies: - -First, if you haven't updated recently, or if this is a new install, -you should update to get the latest package information: - -```sh -sudo apt update -``` - -With the latest package information, you can now install the base dependencies: - -```sh -sudo apt install -y \ - git \ - wget \ - autoconf \ - automake \ - build-essential \ - bzip2 \ - ccache \ - device-tree-compiler \ - dfu-util \ - g++ \ - gcc \ - libtool \ - make \ - ninja-build \ - cmake \ - python3-dev \ - python3-pip \ - python3-setuptools \ - xz-utils -``` - - - - -On Fedora, we'll use `dnf` to install our base dependencies: - -#### DNF Update - -First, if you haven't updated recently, or if this is a new install, -you should update to get the latest package information: - -```sh -sudo dnf update -``` - -#### Install Dependencies - -With the latest package information, you can now install the base dependencies: - -```sh -sudo dnf install -y \ - git \ - wget \ - autoconf \ - automake \ - bzip2 \ - ccache \ - dtc \ - dfu-util \ - g++ \ - gcc \ - libtool \ - make \ - ninja-build \ - cmake \ - python3-devel \ - python3-pip \ - python3-setuptools \ - xz -``` - - - - -:::note -Use `cmd.exe` with these instructions rather than PowerShell. -::: - -Chocolatey is recommended and used for the following instructions. You can manually install each of these applications and add them to your `PATH` if you don't want to use Chocolatey. - -1. [Install Chocolatey](https://chocolatey.org/install) -2. Open `cmd.exe` as **Administrator** -3. Run the following `choco` commands: - ```shell - choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System' - choco install ninja gperf python git - ``` - -It is recommended to install `dfu-util` to avoid any later confusion while flashing devices. You can do this by running this command with chocolatey: - -```shell -choco install dfu-util -``` - - - - -#### Homebrew - -Homebrew is required to install the system dependencies. If you haven't done so, visit [Homebrew](https://brew.sh/) for instructions. Once installed, use it to install the base dependencies: - -``` -brew install cmake ninja python3 ccache dtc git wget dfu-util -``` - - - - -This setup leverages the same [image which is used by the GitHub action](https://github.com/zmkfirmware/zephyr-west-action) for local development. Beyond the benefits of [dev/prod parity](https://12factor.net/dev-prod-parity), this approach is also the easiest to set up. No toolchain or dependencies are necessary when using Docker; the container image you'll be using already has the toolchain installed and set up to use. - -1. Install [Docker Desktop](https://www.docker.com/products/docker-desktop) for your operating system. -2. Install [VS Code](https://code.visualstudio.com/) -3. Install the [Remote - Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) - -:::info -The docker container includes `west` and the compilation toolchain. If you're using docker and VS Code, you can skip right to [Source Code](#source-code). -::: - - - - -## Setup - -### West Installation - -`west` is the [Zephyr™ meta-tool](https://docs.zephyrproject.org/2.3.0/guides/west/index.html) used to configure and build Zephyr™ applications. - -West can be installed by using the `pip` python package manager. The [Zephyr™ instructions](https://docs.zephyrproject.org/latest/guides/west/install.html#installing-west) are summarized here: - - - - -```sh -pip3 install --user -U west -``` - - - - -In `cmd.exe` as **Administrator**: - -```sh -pip3 install -U west -``` - -:::note -**For Windows, do not use the `--user` argument** that Linux uses otherwise `west` will be installed in a different location and the below instructions for adding Python `pip` will no longer apply. -::: - -Once `west` is installed, close Command Prompt and open a new session as a **user** for the remainder of the instructions. - - - - -:::danger `pip` user packages -If you haven't done so yet, you may need to add the Python `pip` package directory to your `PATH` otherwise your computer will not be able to find the `west` command. -::: - - - -Run the following commands: - -```sh -echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc -source ~/.bashrc -``` - - - - -1. See the [Environment Variables](#environment-variables) section on how to get to the Environment Variables page. -2. Under "System variables" select the "Path" variable. Click "Edit..." and then "New" to add the directory where your `west.exe` is located. By default this should be `C:\Python##\Scripts` where ## is your Python version number. -3. Close Command Prompt and open a new session for the changes to take effect, or run `refreshenv`. - - - - -### Toolchain Installation - -The toolchain provides the compiler, linker, etc., necessary to build for the target -platform. - - - - -#### Zephyr™ ARM SDK - -To build firmwares for the ARM architecture (all supported MCUs/keyboards at this point), you'll need to install the Zephyr™ ARM SDK to your system: - -``` -export ZSDK_VERSION=0.11.2 -wget -q "https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZSDK_VERSION}/zephyr-toolchain-arm-${ZSDK_VERSION}-setup.run" && \ - sh "zephyr-toolchain-arm-${ZSDK_VERSION}-setup.run" --quiet -- -d ~/.local/zephyr-sdk-${ZSDK_VERSION} && \ - rm "zephyr-toolchain-arm-${ZSDK_VERSION}-setup.run" -``` - -The installation will prompt with several questions about installation location, and creating a default `~/.zephyrrc` for you with various variables. The defaults should normally work as expected. - - - - -Because Raspberry OS (Raspbian) runs on the same architecture (but different ABI) as the keyboard MCUs, -the operating system's installed [cross compilers](https://docs.zephyrproject.org/2.3.0/getting_started/toolchain_other_x_compilers.html) can be used to target the different ABI. - -First, the cross compiler should be installed: - -```sh -sudo apt install gcc-arm-none-eabi -``` - -Next, we'll configure Zephyr™ with some extra environment variables needed to find the cross compiler by adding the following to `~/.zephyrrc`: - -```sh -export ZEPHYR_TOOLCHAIN_VARIANT=cross-compile -export CROSS_COMPILE=/usr/bin/arm-none-eabi- -``` - - - - -#### Zephyr™ ARM SDK - -To build firmwares for the ARM architecture (all supported MCUs/keyboards at this point), you'll need to install the Zephyr™ ARM SDK to your system: - -``` -export ZSDK_VERSION=0.11.2 -wget -q "https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZSDK_VERSION}/zephyr-toolchain-arm-${ZSDK_VERSION}-setup.run" && \ - sh "zephyr-toolchain-arm-${ZSDK_VERSION}-setup.run" --quiet -- -d ~/.local/zephyr-sdk-${ZSDK_VERSION} && \ - rm "zephyr-toolchain-arm-\${ZSDK_VERSION}-setup.run" -``` - -The installation will prompt with several questions about installation location, and creating a default `~/.zephyrrc` for you with various variables. The defaults should normally work as expected. - - - - -#### GNU ARM Embedded - -Since the Zephyr™ SDK is not available for Windows, we recommending following the [Zephyr documentation](https://docs.zephyrproject.org/2.3.0/getting_started/toolchain_3rd_party_x_compilers.html#gnu-arm-embedded) to install a GNU ARM Embedded build. Note the warnings regarding installing the toolchain into a path with spaces, and make sure to follow the steps to add the environment variables which are also summarized with screenshots in the [Environment Variables](#environment-variables) section below. - - - - -#### GNU ARM Embedded - -Since the Zephyr™ SDK is not available for macOS, we recommending following the steps to install the [GNU ARM Embedded](https://docs.zephyrproject.org/2.3.0/getting_started/toolchain_3rd_party_x_compilers.html#gnu-arm-embedded). - -:::warning Security Controls Workaround - -Please be sure to read the [additional setup instructions](https://docs.zephyrproject.org/2.3.0/getting_started/installation_mac.html#mac-gatekeeper) needed to address security controls found in macOS 10.15 Catalina and newer - -::: - - - - -:::note -If you intend to build firmware straight away, make sure to correctly setup the current shell. - -Notes on setting this up can be found in the [Environment Variables](#environment-variables) section. -The transient instructions can be used to setup the current shell, and the automatic instructions can setup any newly made shells automatically. - -The transient instructions must be run to build firmware using the current shell. -::: - -### Source Code - -Next, you'll need to clone the ZMK source repository if you haven't already. Navigate to the folder you would like to place your `zmk` directory in and run the following command: - -``` -git clone https://github.com/zmkfirmware/zmk.git -``` - -### Initialize & Update Zephyr Workspace - -Since ZMK is built as a Zephyr™ application, the next step is -to use `west` to initialize and update your workspace. The ZMK -Zephyr™ application is in the `app/` source directory: - -#### Step into the repository - - - - -```sh -cd zmk -``` - - - - -```sh -cd zmk -``` - - - - -```sh -cd zmk -``` - - - - -```sh -cd zmk -``` - - - - -```sh -cd zmk -``` - - - - - -Open the `zmk` checkout folder in VS Code. The repository includes a configuration for containerized development, so an alert will pop up: - -![VS Code Dev Container Configuration Alert](assets/dev-setup/vscode_devcontainer.png) - -Click `Reopen in Container` in order to reopen the VS Code with the running container. - -The first time you do this on your machine, it will pull the docker image down from the registry and build the container. Subsequent launches are much faster! - -:::caution -All subsequent steps must be performed from the VS Code terminal _inside_ the container. -::: - - - - -#### Initialize West - -```sh -west init -l app/ -``` - -:::caution Command Not Found? -If you encounter errors like `command not found: west` then your `PATH` environment variable is likely -missing the Python 3 user packages directory. See the [West Build Command](#west-build-command) -section again for links to how to do this -::: - -#### Update To Fetch Modules - -```sh -west update -``` - -:::tip -This step pulls down quite a bit of tooling. Go grab a cup of coffee, it can take 10-15 minutes even on a good internet connection! -::: - -:::info -If you're using Docker, you're done with setup! You must restart the container at this point. The easiest way to do so is to close the VS Code window, verify that the container has stopped in Docker Dashboard, and reopen the container with VS Code. - -Once your container is restarted, proceed to [Building and Flashing](./dev-build-flash.md). -::: - -#### Export Zephyr™ Core - -```sh -west zephyr-export -``` - -#### Install Zephyr Python Dependencies - -```sh -pip3 install --user -r zephyr/scripts/requirements-base.txt -``` - -### Environment Variables - - - - -#### For GNU ARM Embedded on Windows - -On Windows, only two environment variables need to be set for ZMK to build properly: `ZEPHYR_TOOLCHAIN_VARIANT` and `GNUARMEMB_TOOLCHAIN_PATH`. - -1. Open Start Menu and type 'env' to find the 'Edit the system environment variables' option. Open it. - -![Environment variables in Start Menu](assets/env-var/start_menu.png) - -2. Click 'Environment Variables...'. - -![Environment variables button](assets/env-var/env_var.png) - -3. Click "New..." under System variables to create a new system variable. - -![Environment variables menu](assets/env-var/new_variable.png) - -4. Set the variable name to 'ZEPHYR_TOOLCHAIN_VARIANT' and value to 'gnuarmemb'. Click OK to save. - -![Adding Zephyr toolchain variable](assets/env-var/zephyr_toolchain.png) - -5. Create another variable with variable name 'GNUARMEMB_TOOLCHAIN_PATH' and value set to wherever you installed your toolchain. **Make sure this path does not contain any spaces.** If it does, rename the folder and update here. Click OK to save. - -![Adding GNUARMEMB variable](assets/env-var/gnuarmemb.png) - -6. Close Command Prompt and reopen, or run `refreshenv` to apply the changes. - - - - - -#### For Zephyr - -By default, the Zephyr™ SDK will create a file named `~/.zephyrrc` with the correct environment variables to build ZMK. -We suggest two main [options](https://docs.zephyrproject.org/2.3.0/guides/env_vars.html?highlight=zephyrrc) for how to load those settings. - -##### Per Shell - -To load the Zephyr environment properly for just one transient shell, run the following from your ZMK checkout directory: - -``` -source zephyr/zephyr-env.sh -``` - -##### All Shells - -To load the environment variables for your shell every time, -append the existing `~/.zephyrrc` file to your shell's RC file and then start a new shell. - - - - - -``` -cat ~/.zephyrrc >> ~/.bashrc -``` - - - - - -``` -cat ~/.zephyrrc >> ~/.zshrc -``` - - - - - - - - diff --git a/zmk/docs/docs/dev-tests.md b/zmk/docs/docs/dev-tests.md deleted file mode 100644 index 98381d7f..00000000 --- a/zmk/docs/docs/dev-tests.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Tests -sidebar_label: Tests ---- - -Running tests requires [native posix support](./dev-posix-board). Any folder under `/app/tests` -containing `native_posix.keymap` will be selected when running `./run-test.sh all`. - -## Creating a New Test Set - -1. Copy the test set that most closely resembles the tests you will be creating. -2. Rename the newly created test set to the behavior you're testing e.g, toggle-layer -3. Modify `behavior_keymap.dtsi` to create a keymap using the behavior and related behaviors -4. Modify `test_case/native_posix.keymap` for a simulated use case -5. Modify `test_case/events.patterns` to collect relevant logs to the test - - See: [sed manual](https://www.gnu.org/software/sed/manual/sed.html) and - [tutorial](https://www.digitalocean.com/community/tutorials/the-basics-of-using-the-sed-stream-editor-to-manipulate-text-in-linux) -6. Modify `test_case/keycode_events.snapshot` for to include the expected output -7. Rename the `test_case` folder to describe the test. -8. Repeat steps 4 to 7 for every test case diff --git a/zmk/docs/docs/development/boards-shields-keymaps.md b/zmk/docs/docs/development/boards-shields-keymaps.md deleted file mode 100644 index e78f5d38..00000000 --- a/zmk/docs/docs/development/boards-shields-keymaps.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Boards, Shields, and Keymaps ---- - -## Architecture Overview - -The foundational elements needed to get a specific keyboard working with ZMK can be broken down into: - -- A [KSCAN driver](https://docs.zephyrproject.org/2.3.0/reference/peripherals/kscan.html), which uses `compatible="zmk,kscan-gpio-matrix"` for GPIO matrix based keyboards, or uses `compatible="zmk,kscan-gpio-direct"` for small direct wires. -- An optional matrix transform, which defines how the KSCAN row/column events are translated into logical "key positions". This is required for non-rectangular keyboards/matrices, where the key positions don't naturally follow the row/columns from the GPIO matrix. -- A keymap, which binds each key position to a behavior, e.g. key press, mod-tap, momentary layer, in a set of layers. - -These three core architectural elements are defined per-keyboard, and _where_ they are defined depends on the specifics of how that -keyboard works. For an overview on the general concepts of boards and shields, please see the [FAQs on boards and shields](/docs/faq#why-boards-and-shields--why-not-just-keyboard). - -## Self-Contained Keyboard - -For a self-contained keyboard that includes the microprocessor, all of the above architecture components are included in the Zephyr _board_ definition. You can see an example for the [Planck V6](https://github.com/zmkfirmware/zmk/tree/main/app/boards/arm/planck) board directory. - -With this type of keyboard, the full ZMK definition for the keyboard exists -in the `app/boards/${arch}/${board_name}` directory, e.g. `app/boards/arm/planck/`. In that directory, you'll have the following: - -- A `Kconfig.board` file that defines the toplevel Kconfig item for the board, including which SoC Kconfig setting it depends on. -- A `Kconfig.defconfig` file that sets some initial defaults when building this keyboard. This usually includes: - - Setting `ZMK_KEYBOARD_NAME` to a value, for the product name to be used for USB/BLE info. - - Setting `ZMK_USB` and/or `ZMK_BLE` for the default values for which HID transport(s) to enable by default -- A `${board_name}_defconfig` file that forces specific Kconfig settings that are specific to this hardware configuration. Mostly this is SoC settings around the specific hardware configuration. -- `${board_name}.dts` which contains all the devicetree definitions, including: - - An `#include` line that pulls in the specific microprocessor that is used, e.g. `#include `. - - A [chosen](https://docs.zephyrproject.org/2.3.0/guides/dts/intro.html#aliases-and-chosen-nodes) node named `zmk,kscan` which references the configured KSCAN driver (usually a GPIO matrix) - - (Optional) A [chosen](https://docs.zephyrproject.org/2.3.0/guides/dts/intro.html#aliases-and-chosen-nodes) node named `zmk,matrix_transform` that defines the mapping from KSCAN row/column values to the logical key position for the keyboard. -- A `board.cmake` file with CMake directives for how to flash to the device. -- A `keymap/keymap.overlay` file that includes the default keymap for that keyboard. Users will be able to override this keymap in their user configs. - -## Pro Micro Compatible Keyboard - -![Labelled Pro Micro pins](../assets/pro-micro/pro-micro-pins-labelled.jpg) - -For keyboards that require a (usually Pro Micro compatible) add-on board to operate, the ZMK integration pieces are places -in the _shield_ definition for that keyboard, allowing users to -swap in different Pro Micro compatible boards (e.g. Proton-C, or nice!nano) and build a firmware the matches their actual -combination of physical components. - -With this type of keyboard, the partial definition for the keyboard exists -in the `app/boards/shields/${board_name}` directory, e.g. `app/boards/shields/clueboard_california/`. In that directory, you'll have the following: - -- A `Kconfig.shield` that defines the toplevel Kconfig value for the shield, which uses a supplied utility to function to default the value based on the shield list, e.g. `def_bool $(shields_list_contains,clueboard_california)`. -- A `Kconfig.defconfig` file to set default values for things like `ZMK_KEYBOARD_NAME` -- A `${shield_name}.overlay` file, which is a devicetree overlay file, that includes: - - A [chosen](https://docs.zephyrproject.org/2.3.0/guides/dts/intro.html#aliases-and-chosen-nodes) node named `zmk,kscan` which references the configured KSCAN driver (usually a GPIO matrix). For these keyboards, to be compatible with any Pro Micro compatible boards, the KSCAN configuration should reference the [nexus node](https://docs.zephyrproject.org/2.3.0/guides/porting/shields.html#gpio-nexus-nodes) that ZMK has standardized on. In particular, the `&pro_micro_a` and `&pro_micro_d` aliases can be used to reference the standard `A#` and `D#` pins in shields. - - (Optional) A [chosen](https://docs.zephyrproject.org/2.3.0/guides/dts/intro.html#aliases-and-chosen-nodes) node named `zmk,matrix_transform` that defines the mapping from KSCAN row/column values to the logical key position for the keyboard. -- A `keymap/keymap.overlay` file that includes the default keymap for that keyboard. Users will be able to override this keymap in their user configs. diff --git a/zmk/docs/docs/development/build-flash.md b/zmk/docs/docs/development/build-flash.md deleted file mode 100644 index e270a7c6..00000000 --- a/zmk/docs/docs/development/build-flash.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: Building and Flashing -sidebar_label: Building and Flashing ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -export const OsTabs = (props) => ({props.children}); - -## Building - -From here on, building and flashing ZMK should all be done from the `app/` subdirectory of the ZMK checkout: - -```sh -cd app -``` - -To build for your particular keyboard, the behaviour varies slightly depending on if you are building for a keyboard with -an onboard MCU, or one that uses an MCU board addon. - -### Keyboard (Shield) + MCU Board - -ZMK treats keyboards that take an MCU addon board as [shields](https://docs.zephyrproject.org/2.3.0/guides/porting/shields.html), and treats the smaller MCU board as the true [board](https://docs.zephyrproject.org/2.3.0/guides/porting/board_porting.html) - -Given the following: - -- MCU Board: Proton-C -- Keyboard PCB: kyria_left -- Keymap: default - -You can build ZMK with the following: - -```sh -west build -b proton_c -- -DSHIELD=kyria_left -``` - -### Keyboard With Onboard MCU - -Keyboards with onboard MCU chips are simply treated as the [board](https://docs.zephyrproject.org/2.3.0/guides/porting/board_porting.html) as far as Zephyr™ is concerned. - -Given the following: - -- Keyboard: Planck (rev6) -- Keymap: default - -you can build ZMK with the following: - -```sh -west build -b planck_rev6 -``` - -### Pristine Building - -When building for a new board and/or shield after having built one previously, you may need to enable the pristine build option. This option removes all existing files in the build directory before regenerating them, and can be enabled by adding either --pristine or -p to the command: - -```sh -west build -p -b proton_c -- -DSHIELD=kyria_left -``` - -### Building For Split Keyboards - -:::note -For split keyboards, you will have to build and flash each side separately the first time you install ZMK. -::: - -By default, the `build` command outputs a single .uf2 file named `zmk.uf2` so building left and then right immediately after will overwrite your left firmware. In addition, you will need to pristine build each side to ensure the correct files are used. To avoid having to pristine build every time and separate the left and right build files, we recommend setting up separate build directories for each half. You can do this by using the `-d` parameter and first building left into `build/left`: - -``` -west build -d build/left -b nice_nano -- -DSHIELD=kyria_left -``` - -and then building right into `build/right`: - -``` -west build -d build/right -b nice_nano -- -DSHIELD=kyria_right -``` - -This produces `left` and `right` subfolders under the `build` directory and two separate .uf2 files. For future work on a specific half, use the `-d` parameter again to ensure you are building into the correct location. - -### Building from `zmk-config` Folder - -Instead of building .uf2 files using the default keymap and config files, you can build directly from your [`zmk-config` folder](../user-setup#github-repo) by adding -`-DZMK_CONFIG="C:/the/absolute/path/config"` to your `west build` command. **Notice that this path should point to the folder labelled `config` within your `zmk-config` folder.** - -For instance, building kyria firmware from a user `myUser`'s `zmk-config` folder on Windows 10 may look something like this: - -``` -west build -b nice_nano -- -DSHIELD=kyria_left -DZMK_CONFIG="C:/Users/myUser/Documents/Github/zmk-config/config" -``` - -In order to make your `zmk-config` folder available when building within the VSCode Remote Container, you need to create a docker volume named `zmk-config` -by binding it to the full path of your config directory. If you have run the VSCode Remote Container before, it is likely that docker has created this -volume automatically -- we need to delete the default volume before binding it to the correct path. Follow the following steps: - -1. Stop the container by exiting VSCode. You can verify no container is running via the command `docker ps`. -1. Remove all the containers that are not running via the command `docker container prune`. We need to remove the ZMK container before we can delete the default `zmk-config` volume referenced by it. If you do not want to delete all the containers that are not running, you can find the id of the ZMK container and use `docker rm` to delete that one only. -1. Remove the default volume via the command `docker volume rm zmk-config`. - -Then you can bind the `zmk-config` volume to the correct path pointing to your local [zmk-config](./customization.md) folder: - -``` -docker volume create --driver local -o o=bind -o type=none -o \ - device="/full/path/to/your/zmk-config/" zmk-config -``` - -Now start VSCode and rebuild the container after being prompted. You should be able to see your zmk-config mounted to `/workspaces/zmk-config` inside the container. So you can build your custom firmware with `-DZMK_CONFIG="/workspaces/zmk-config/config"`. - -## Flashing - -Once built, the previously supplied parameters will be remembered so you can run the following to flash your -board with it in bootloader mode: - -``` -west flash -``` - -For boards that have drag and drop .uf2 flashing capability, the .uf2 file to flash can be found in `build/zephyr` (or `build/left|right/zephyr` if you followed the instructions for splits) and is by default named `zmk.uf2`. diff --git a/zmk/docs/docs/development/clean-room.md b/zmk/docs/docs/development/clean-room.md deleted file mode 100644 index 82db3a04..00000000 --- a/zmk/docs/docs/development/clean-room.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Clean Room Implementation -sidebar_label: Clean Room ---- - -:::warning - -Anyone wanting to contribute code to ZMK _MUST_ read this, and adhere to the steps outlines in order to not violate any licenses/copyright of other projects - -::: - -ZMK Firmware is a [clean room design](https://en.wikipedia.org/wiki/Clean_room_design) keyboard firmware, that -borrows/implements a lot of the features found in popular keyboard firmwares projects like [QMK](https://qmk.fm) -and [TMK](https://github.com/tmk/tmk_keyboard). However, in order for ZMK to use the MIT, it _must_ not -incorporate any of the GPL licensed code from those projects. - -In order to achieve this, all code for ZMK has been implemented completely fresh, _without_ referencing, copying, -or duplicating any of the GPL code found in those other projects, even though they are open source software. - -## Contributor Requirements - -Contributors to ZMK must adhere to the following standard. - -- Implementations of features for ZMK _MUST NOT_ reuse any existing code from any projects not licensed with the MIT license. -- Contributors _MUST NOT_ study or refer to any GPL licensed source code while working on ZMK. -- Contributors _MAY_ read the documentation from other GPL licensed projects, to gain a broad understanding of the behavior of certain features in order to implement equivalent features for ZMK. -- Contributors _MAY_ refer to the [QMK Configurator](https://config.qmk.fm/) to inspect existing layouts/keymaps for - keyboards, and re-implement them for ZMK. diff --git a/zmk/docs/docs/development/new-shield.md b/zmk/docs/docs/development/new-shield.md deleted file mode 100644 index 306f1b3f..00000000 --- a/zmk/docs/docs/development/new-shield.md +++ /dev/null @@ -1,512 +0,0 @@ ---- -title: New Keyboard Shield ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import KeymapExampleFile from '../keymap-example-file.md'; - -## Overview - -This guide will walk through the steps necessary to add ZMK support for a keyboard the uses a (Pro Micro compatible) addon MCU board to provide the microprocessor. -The high level steps are: - -- Create a new shield directory. -- Add the base Kconfig files. -- Add the shield overlay file to define the KSCAN driver for detecting key press/release. -- (Optional) Add the matrix transform for mapping KSCAN row/column values to sane key positions. This is needed for non-rectangular keyboards, or where the underlying row/column pin arrangement does not map one to one with logical locations on the keyboard. -- Add a default keymap, which users can override in their own configs as needed. -- Add support for features such as encoders, OLED displays, or RGB underglow. -- Update build.yml - -It may be helpful to review the upstream [shields documentation](https://docs.zephyrproject.org/2.3.0/guides/porting/shields.html#shields) to get a proper understanding of the underlying system before continuing. - -:::note -ZMK support for split keyboards requires a few more files than single boards to ensure proper connectivity between the central and peripheral units. Check the following guides thoroughly to ensure that all the files are in place. -::: - -## New Shield Directory - -:::note -This guide describes how to add shield to the ZMK main repository. If you are building firmware for your -own prototype or handwired keyboard, it is recommended to use your own user config repository. Follow the -[user setup guide](./user-setup.md) to create your user config repository first. When following the rest -of this guide, replace the `app/` directory in the ZMK main repository with the `config/` directory in your -user config repository. For example, `app/boards/shields/` should now be -`config/boards/shields/`. -::: - -Shields for Zephyr applications go into the `boards/shields/` directory; since ZMK's Zephyr application lives in the `app/` subdirectory of the repository, that means the new shield directory should be: - -```bash -mkdir app/boards/shields/ -``` - -## Base Kconfig Files - -There are two required Kconfig files that need to be created for your new keyboard -shield to get it picked up for ZMK, `Kconfig.shield` and `Kconfig.defconfig`. - -### Kconfig.shield - -The `Kconfig.shield` file defines any additional Kconfig settings that may be relevant when using this keyboard. For most keyboards, there is just one additional configuration value for the shield itself, e.g.: - -``` -config SHIELD_MY_BOARD - def_bool $(shields_list_contains,my_board) -``` - -This will make sure the new configuration `SHIELD_MY_BOARD` is set to true whenever `my_board` is added as a shield in your build. - -**For split boards**, you will need to add configurations for the left and right sides. - -``` -config SHIELD_MY_BOARD_LEFT - def_bool $(shields_list_contains,my_board_left) - -config SHIELD_MY_BOARD_RIGHT - def_bool $(shields_list_contains,my_board_right) -``` - -### Kconfig.defconfig - -The `Kconfig.defconfig` file is where overrides for various configuration settings -that make sense to have different defaults when this shield is used. One main item -that usually has a new default value set here is the `ZMK_KEYBOARD_NAME` value, -which controls the display name of the device over USB and BLE. - -The updated new default values should always be wrapped inside a conditional on the shield config name defined in the `Kconfig.shield` file. Here's the simplest example file. - -:::warning -Do not make the keyboard name too long, otherwise the bluetooth advertising might fail and you will not be able to find your keyboard from your laptop / tablet. -::: - -``` -if SHIELD_MY_BOARD - -config ZMK_KEYBOARD_NAME - default "My Awesome Keyboard" - -endif -``` - -Similarly to defining the halves of a split board in `Kconfig.shield` it is important to set the `ZMK_KEYBOARD_NAME` for each half of a split keyboard. - -``` -if SHIELD_MY_BOARD_LEFT - -config ZMK_KEYBOARD_NAME - default "My Awesome Keyboard Left" - -endif - -if SHIELD_MY_BOARD_RIGHT - -config ZMK_KEYBOARD_NAME - default "My Awesome Keyboard Right" - -endif -``` - -## Shield Overlays - -![Labelled Pro Micro pins](../assets/pro-micro/pro-micro-pins-labelled.jpg) - -ZMK uses the green color coded pin names to generate devicetree node references. For example, to refer to the node `D0` in the devicetree files, use `&pro_micro_d 0` or to refer to `A1`, use `&pro_micro_a 1`. - - - - - -The `.overlay` is the devicetree description of the keyboard shield that is merged with the primary board devicetree description before the build. For ZMK, this file at a minimum should include the chosen node named `zmk,kscan` that references a KSCAN driver instance. For a simple 3x3 macropad matrix, -this might look something like: - -``` -/ { - chosen { - zmk,kscan = &kscan0; - }; - - kscan0: kscan_0 { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - diode-direction = "col2row"; - - col-gpios - = <&pro_micro_d 15 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> - ; - - row-gpios - = <&pro_micro_a 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - , <&pro_micro_a 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> - ; - }; -}; -``` - - - - - -### .dtsi files and Shield Overlays (Split Shields) - -Unlike unibody keyboards, split keyboards have a core .dtsi file with shield overlays for each half of the keyboard. -It is preferred to define only the `col-gpios` or `row-gpios` in the common shield .dtsi, depending on the `diode-direction` value. -For `col2row` directed boards like the iris, the shared .dtsi file may look like this: - -``` -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <16>; - rows = <4>; -// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | -// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | -// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | -// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 | -// | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 | - map = < -RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) -RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) -RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) -RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,2) RC(4,9) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) - RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(4,8) - >; - }; - - kscan0: kscan { - compatible = "zmk,kscan-gpio-matrix"; - label = "KSCAN"; - - diode-direction = "col2row"; - row-gpios - = <&pro_micro_d 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // Row A from the schematic file - , <&pro_micro_d 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // Row B from the schematic file - , <&pro_micro_d 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // Row C from the schematic file - , <&pro_micro_d 0 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // Row D from the schematic file - , <&pro_micro_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> // Row E from the schematic file - ; - - }; -``` - -:::note -Notice that in addition to the common `row-gpios` that are declared in the kscan, the [matrix transform](#optional-matrix-transform) is defined in the .dtsi. -::: - -The missing `col-gpios` would be defined in your `_left.overlay` and `_right.overlay` files. -Keep in mind that the mirrored position of the GPIOs means that the `col-gpios` will appear reversed when the .overlay files are compared to one another. -Furthermore, the column offset for the [matrix transform](#optional-matrix-transform) should be added to the right half of the keyboard's overlay -because the keyboard's switch matrix is read from left to right, top to bottom. -This is exemplified with the iris .overlay files. - -``` -// iris_left.overlay - -#include "iris.dtsi" // Notice that the main dtsi files are included in the overlay. - -&kscan0 { - col-gpios - = <&pro_micro_a 1 GPIO_ACTIVE_HIGH> // col1 in the schematic - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> // col2 in the schematic - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> // col3 in the schematic - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> // col4 in the schematic - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> // col5 in the schematic - , <&pro_micro_d 10 GPIO_ACTIVE_HIGH> // col6 in the schematic - ; -}; -``` - -``` -// iris_right.overlay - -#include "iris.dtsi" - -&default_transform { // The matrix transform for this board is 6 columns over because the left half is 6 columns wide according to the matrix. - col-offset = <6>; -}; - -&kscan0 { - col-gpios - = <&pro_micro_d 10 GPIO_ACTIVE_HIGH> // col6 in the schematic - , <&pro_micro_d 16 GPIO_ACTIVE_HIGH> // col5 in the schematic - , <&pro_micro_d 14 GPIO_ACTIVE_HIGH> // col4 in the schematic - , <&pro_micro_d 15 GPIO_ACTIVE_HIGH> // col3 in the schematic - , <&pro_micro_a 0 GPIO_ACTIVE_HIGH> // col2 in the schematic - , <&pro_micro_a 1 GPIO_ACTIVE_HIGH> // col1 in the schematic - ; -}; - -``` - -### .conf files (Split Shields) - -While unibody boards only have one .conf file that applies configuration characteristics to the entire keyboard, -split keyboards are unique in that they contain multiple .conf files with different scopes. -For example, a split board called `my_awesome_split_board` would have the following files: - -- `my_awesome_split_board.conf` - Configuration elements affect both halves -- `my_awesome_split_board_left.conf` - Configuration elements only affect left half -- `my_awesome_split_board_right.conf` - Configuration elements only affect right half - -For proper communication between keyboard halves and that between the central half and the computer, -the **the central and peripheral halves of the keyboard must be defined**. This can be seen below. - -``` -// Central Half (Usually the left side: my_awesome_split_board_left.conf) - -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL=y -``` - -``` -// Peripheral Half (Usually the right side: my_awesome_split_board_right.conf) - -CONFIG_ZMK_SPLIT=y -CONFIG_ZMK_SPLIT_BLE_ROLE_Peripheral=y -``` - -Using the .conf file that affects both halves of a split board would be for adding features like deep-sleep or rotary encoders. - -``` -// my_awesome_split_board.conf - -CONFIG_ZMK_SLEEP=y -``` - - - - -## (Optional) Matrix Transform - -Internally ZMK translates all row/column events into "key position" events to maintain a consistent model that works no matter what any possible GPIO matrix may look like for a certain keyboard. This is particularly helpful when: - -1. To reduce the used pins, an "efficient" number of rows/columns for the GPIO matrix is used, that does _not_ match the physical layout of rows/columns of the actual key switches. -1. For non rectangular keyboards with thumb clusters, non `1u` locations, etc. - -A "key position" is the numeric index (zero-based) of a given key, which identifies -the logical key location as perceived by the end user. All _keymap_ mappings actually bind behaviors to _key positions_, not to row/column values. - -_Without_ a matrix transform, that intentionally map each key position to the row/column pair that position corresponds to, the default equation to determine that is: - -``` -($row * NUMBER_OF_COLUMNS) + $column -``` - -Which effectively amounts to numbering the key positions by traversing each row from top to bottom and assigning numerically incrementing key positions. - -Whenever that default key position mapping is insufficient, the `.overlay` file should _also_ include a matrix transform. - -Here is an example for the [nice60](https://github.com/Nicell/nice60), which uses an efficient 8x8 GPIO matrix, and uses a transform: - -``` -#include - -/ { - chosen { - zmk,kscan = &kscan0; - zmk,matrix_transform = &default_transform; - }; - - default_transform: keymap_transform_0 { - compatible = "zmk,matrix-transform"; - columns = <8>; - rows = <8>; -// | MX1 | MX2 | MX3 | MX4 | MX5 | MX6 | MX7 | MX8 | MX9 | MX10 | MX11 | MX12 | MX13 | MX14 | -// | MX15 | MX16 | MX17 | MX18 | MX19 | MX20 | MX21 | MX22 | MX23 | MX34 | MX25 | MX26 | MX27 | MX28 | -// | MX29 | MX30 | MX31 | MX32 | MX33 | MX34 | MX35 | MX36 | MX37 | MX38 | MX39 | MX40 | MX41 | -// | MX42 | MX43 | MX44 | MX45 | MX46 | MX47 | MX48 | MX49 | MX50 | MX51 | MX52 | MX53 | -// | MX54 | MX55 | MX56 | MX57 | MX58 | MX59 | MX60 | MX61 | - map = < -RC(3,0) RC(2,0) RC(1,0) RC(0,0) RC(1,1) RC(0,1) RC(0,2) RC(1,3) RC(0,3) RC(1,4) RC(0,4) RC(0,5) RC(1,6) RC(1,7) -RC(4,0) RC(4,1) RC(3,1) RC(2,1) RC(2,2) RC(1,2) RC(2,3) RC(3,4) RC(2,4) RC(2,5) RC(1,5) RC(2,6) RC(2,7) RC(3,7) -RC(5,0) RC(5,1) RC(5,2) RC(4,2) RC(3,2) RC(4,3) RC(3,3) RC(4,4) RC(4,5) RC(3,5) RC(4,6) RC(3,6) RC(4,7) -RC(6,0) RC(6,1) RC(6,2) RC(6,3) RC(5,3) RC(6,4) RC(5,4) RC(6,5) RC(5,5) RC(6,6) RC(5,6) RC(5,7) -RC(7,0) RC(7,1) RC(7,2) RC(7,3) RC(7,5) RC(7,6) RC(6,7) RC(7,7) - >; - }; -``` - -Some important things to note: - -- The `#include ` is critical. The `RC` macro is used to generate the internal storage in the matrix transform, and is actually replaced by a C preprocessor before the final devicetree is compiled into ZMK. -- `RC(row, column)` is placed sequentially to define what row and column values that position corresponds to. -- If you have a keyboard with options for `2u` keys in certain positions, or break away portions, it is a good idea to set the chosen `zmk,matrix_transform` to the default arrangement, and include _other_ possible matrix transform nodes in the devicetree that users can select in their user config by overriding the chosen node. - -## Default Keymap - -Each keyboard should provide an OOTB default keymap to be used when building the firmware, which can be overridden and customized by user configs. For "shield keyboards", this should be placed in the `app/boards/shields//.keymap` file. The keymap is configured as an additional devicetree overlay that includes the following: - -- A node with `compatible="zmk,keymap"` where each child node is a layer with a `bindings` array that binds each key position to a given behavior (e.g. key press, momentarily layer, etc). - -Here is an example simple keymap for the Kyria, with only one layer: - - - -:::note -The two `#include` lines at the top of the keymap are required in order to bring in the default set of behaviors to make them available to bind, and to import a set of defines for the key codes, so keymaps can use parameters like `N2` or `K` instead of the raw keycode numeric values. -::: - -### Keymap Behaviors - -Further documentation on behaviors and bindings is forthcoming, but a summary of the current behaviors you can bind to key positions is as follows: - -- `kp` is the "key press" behavior, and takes a single binding argument of the key code from the 'keyboard/keypad" HID usage table. -- `mo` is the "momentary layer" behaviour, and takes a single binding argument of the numeric ID of the layer to momentarily enable when that key is held. -- `trans` is the "transparent" behavior, useful to be place in higher layers above `mo` bindings to be sure the key release is handled by the lower layer. No binding arguments are required. -- `mt` is the "mod-tap" behavior, and takes two binding arguments, the modifier to use if held, and the keycode to send if tapped. - -## Adding Features - -### Encoders - -EC11 encoder support can be added to your board or shield by adding the appropriate lines to your board/shield's configuration (.conf), device tree (.dtsi), overlay (.overlay), and keymap (.keymap) files. - - - - -In your configuration file you will need to add the following lines so that the encoders can be enabled/disabled: - -``` -# Uncomment to enable encoder -# CONFIG_EC11=y -# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y -``` - -These should be commented by default for encoders that are optional/can be swapped with switches, but can be uncommented if encoders are part of the default design. - -:::note -If building locally for split boards, you may need to add these lines to the specific half's configuration file as well as the combined configuration file. -::: - - - -In your device tree file you will need to add the following lines to define the encoder sensor: - -``` -left_encoder: encoder_left { - compatible = "alps,ec11"; - label = "LEFT_ENCODER"; - a-gpios = ; - b-gpios = ; - resolution = <4>; - }; -``` - -Here you will have to replace PIN_A and PIN_B with the appropriate pins that your PCB utilizes for the encoder(s). For keyboards that use the Pro Micro or any of the Pro Micro replacements, Sparkfun's [Pro Micro Hookup Guide](https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide/hardware-overview-pro-micro) has a pinout diagram that can be useful to determine the right pins. Reference either the blue numbers labeled "Arduino" (digital pins) or the green numbers labeled "Analog" (analog pins). For pins that are labeled as both digital and analog, refer to your specific board's .dtsi file to determine how you should refer to that pin. - -Add additional encoders as necessary by duplicating the above lines, replacing `left` with whatever you would like to call your encoder, and updating the pins. Note that support for peripheral (right) side sensors over BLE is still in progress. - -Once you have defined the encoder sensors, you will have to add them to the list of sensors: - -``` -sensors { - compatible = "zmk,keymap-sensors"; - sensors = <&left_encoder &right_encoder>; - }; -``` - -In this example, a left_encoder and right_encoder are both added. Additional encoders can be added with spaces separating each, and the order they are added here determines the order in which you define their behavior in your keymap. - - - -Add the following lines to your overlay file(s) to enable the encoder: - -``` -&left_encoder { - status = "okay"; -}; -``` - -:::note -For split keyboards, make sure to add left hand encoders to the left .overlay file and right hand encoders to the right .overlay file. -::: - - - -Add the following line to your keymap file to add default encoder behavior bindings: - -``` -sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; -``` - -Add additional bindings as necessary to match the default number of encoders on your board. See the [Encoders](/docs/features/encoders) and [Keymap](/docs/features/keymaps) feature documentation for more details. - - - - -## Testing - -Once you've fully created the new keyboard shield definition, -you should be able to test with a build command like: - -``` -west build --pristine -b proton_c -- -DSHIELD=my_board -``` - -and then flash with: - -``` -west flash -``` - -:::note -Further testing your keyboard shield without altering the root keymap file can be done with the use of `-DZMK_CONFIG` in your `west build` command, -shown [here](build-flash#building-from-zmk-config-folder) -::: - -## Updating `build.yml` - -Before publishing your shield to the public via a PR, navigate to `build.yml` found in `.github/workflows` and add your shield to the appropriate list. An example edit to `build.yml` is shown below. - -``` -jobs: - build: - runs-on: ubuntu-latest - name: Build Test - strategy: - matrix: - board: [proton_c, nice_nano, bluemicro840_v1, nrfmicro_13] - shield: - - corne_left - - corne_right - - kyria_left - - kyria_right - - lily58_left - - lily58_right - - iris_left - - iris_right - - romac - - - - - - - include: - - board: proton_c - shield: clueboard_california -``` - -:::note -Notice that both the left and right halves of a split board need to be added to the list of shields for proper error checking. -:::note diff --git a/zmk/docs/docs/development/posix-board.md b/zmk/docs/docs/development/posix-board.md deleted file mode 100644 index 71460a87..00000000 --- a/zmk/docs/docs/development/posix-board.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Native Posix board target ---- - -In order to iterate quickly on firmware features, it can -be helpful to build and run the firmware on your local -workstation, with generated virtual press/release events -flowing into the handler functions. - -## Prerequisites - -In order to build targeting the `native_posix` board, you need to setup your system -with a compiler that can target 32-bit POSIX. - -On Debian, you can do this with: - -``` -apt install -y gcc-multilib -``` - -## Building - -To do this, you can build ZMK targeting the -`native_posix` board. - -``` -west build --pristine --board native_posix -``` - -Once built, you can run the firmware locally: - -``` -./build/zephyr/zephyr.exe -``` - -## Virtual Key Events - -The virtual key presses are hardcoded in `boards/native_posix.overlay` file, should you want to change the sequence to test various actions like Mod-Tap, etc. diff --git a/zmk/docs/docs/development/setup.md b/zmk/docs/docs/development/setup.md deleted file mode 100644 index 441299a9..00000000 --- a/zmk/docs/docs/development/setup.md +++ /dev/null @@ -1,554 +0,0 @@ ---- -title: Basic Setup -sidebar_label: Basic Setup ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -export const OsTabs = (props) => ({props.children}); - -## Prerequisites - -ZMK requires the following base packages to first be installed: - -- Git -- Python 3 -- `pip` -- `wget` -- devicetree compiler -- CMake -- `dfu-util` -- Various build essentials, e.g. gcc, automake, autoconf - - - - -On Debian and Ubuntu, we'll use `apt` to install our base dependencies: - -First, if you haven't updated recently, or if this is a new install, -you should update to get the latest package information: - -```sh -sudo apt update -``` - -With the latest package information, you can now install the base dependencies: - -```sh -sudo apt install -y \ - git \ - wget \ - autoconf \ - automake \ - build-essential \ - bzip2 \ - ccache \ - device-tree-compiler \ - dfu-util \ - g++ \ - gcc \ - libtool \ - make \ - ninja-build \ - cmake \ - python3-dev \ - python3-pip \ - python3-setuptools \ - xz-utils -``` - -:::note -Ubuntu 18.04 LTS release packages a version of CMake that is too old. Please upgrade to Ubuntu 20.04 LTS -or download and install CMake version 3.13.1 or newer manually. -::: - - - -On Raspberry OS, we'll use `apt` to install our base dependencies: - -First, if you haven't updated recently, or if this is a new install, -you should update to get the latest package information: - -```sh -sudo apt update -``` - -With the latest package information, you can now install the base dependencies: - -```sh -sudo apt install -y \ - git \ - wget \ - autoconf \ - automake \ - build-essential \ - bzip2 \ - ccache \ - device-tree-compiler \ - dfu-util \ - g++ \ - gcc \ - libtool \ - make \ - ninja-build \ - cmake \ - python3-dev \ - python3-pip \ - python3-setuptools \ - xz-utils -``` - - - - -On Fedora, we'll use `dnf` to install our base dependencies: - -#### DNF Update - -First, if you haven't updated recently, or if this is a new install, -you should update to get the latest package information: - -```sh -sudo dnf update -``` - -#### Install Dependencies - -With the latest package information, you can now install the base dependencies: - -```sh -sudo dnf install -y \ - git \ - wget \ - autoconf \ - automake \ - bzip2 \ - ccache \ - dtc \ - dfu-util \ - g++ \ - gcc \ - libtool \ - make \ - ninja-build \ - cmake \ - python3-devel \ - python3-pip \ - python3-setuptools \ - xz -``` - - - - -:::note -Use `cmd.exe` with these instructions rather than PowerShell. -::: - -Chocolatey is recommended and used for the following instructions. You can manually install each of these applications and add them to your `PATH` if you don't want to use Chocolatey. - -1. [Install Chocolatey](https://chocolatey.org/install) -2. Open `cmd.exe` as **Administrator** -3. Run the following `choco` commands: - ```shell - choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System' - choco install ninja gperf python git - ``` - -It is recommended to install `dfu-util` to avoid any later confusion while flashing devices. You can do this by running this command with chocolatey: - -```shell -choco install dfu-util -``` - - - - -#### Homebrew - -Homebrew is required to install the system dependencies. If you haven't done so, visit [Homebrew](https://brew.sh/) for instructions. Once installed, use it to install the base dependencies: - -``` -brew install cmake ninja python3 ccache dtc git wget dfu-util -``` - - - - -This setup leverages the same [image which is used by the GitHub action](https://github.com/zmkfirmware/zephyr-west-action) for local development. Beyond the benefits of [dev/prod parity](https://12factor.net/dev-prod-parity), this approach is also the easiest to set up. No toolchain or dependencies are necessary when using Docker; the container image you'll be using already has the toolchain installed and set up to use. - -1. Install [Docker Desktop](https://www.docker.com/products/docker-desktop) for your operating system. -2. Install [VS Code](https://code.visualstudio.com/) -3. Install the [Remote - Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) - -:::info -The docker container includes `west` and the compilation toolchain. If you're using docker and VS Code, you can skip right to [Source Code](#source-code). -::: - - - - -## Setup - -### West Installation - -`west` is the [Zephyr™ meta-tool](https://docs.zephyrproject.org/2.3.0/guides/west/index.html) used to configure and build Zephyr™ applications. - -West can be installed by using the `pip` python package manager. The [Zephyr™ instructions](https://docs.zephyrproject.org/latest/guides/west/install.html#installing-west) are summarized here: - - - - -```sh -pip3 install --user -U west -``` - - - - -In `cmd.exe` as **Administrator**: - -```sh -pip3 install -U west -``` - -:::note -**For Windows, do not use the `--user` argument** that Linux uses otherwise `west` will be installed in a different location and the below instructions for adding Python `pip` will no longer apply. -::: - -Once `west` is installed, close Command Prompt and open a new session as a **user** for the remainder of the instructions. - - - - -:::danger `pip` user packages -If you haven't done so yet, you may need to add the Python `pip` package directory to your `PATH` otherwise your computer will not be able to find the `west` command. -::: - - - -Run the following commands: - -```sh -echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc -source ~/.bashrc -``` - - - - -1. See the [Environment Variables](#environment-variables) section on how to get to the Environment Variables page. -2. Under "System variables" select the "Path" variable. Click "Edit..." and then "New" to add the directory where your `west.exe` is located. By default this should be `C:\Python##\Scripts` where ## is your Python version number. -3. Close Command Prompt and open a new session for the changes to take effect, or run `refreshenv`. - - - - -### Toolchain Installation - -The toolchain provides the compiler, linker, etc., necessary to build for the target -platform. - - - - -#### Zephyr™ ARM SDK - -To build firmwares for the ARM architecture (all supported MCUs/keyboards at this point), you'll need to install the Zephyr™ ARM SDK to your system: - -``` -export ZSDK_VERSION=0.11.2 -wget -q "https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZSDK_VERSION}/zephyr-toolchain-arm-${ZSDK_VERSION}-setup.run" && \ - sh "zephyr-toolchain-arm-${ZSDK_VERSION}-setup.run" --quiet -- -d ~/.local/zephyr-sdk-${ZSDK_VERSION} && \ - rm "zephyr-toolchain-arm-${ZSDK_VERSION}-setup.run" -``` - -The installation will prompt with several questions about installation location, and creating a default `~/.zephyrrc` for you with various variables. The defaults should normally work as expected. - - - - -Because Raspberry OS (Raspbian) runs on the same architecture (but different ABI) as the keyboard MCUs, -the operating system's installed [cross compilers](https://docs.zephyrproject.org/2.3.0/getting_started/toolchain_other_x_compilers.html) can be used to target the different ABI. - -First, the cross compiler should be installed: - -```sh -sudo apt install gcc-arm-none-eabi -``` - -Next, we'll configure Zephyr™ with some extra environment variables needed to find the cross compiler by adding the following to `~/.zephyrrc`: - -```sh -export ZEPHYR_TOOLCHAIN_VARIANT=cross-compile -export CROSS_COMPILE=/usr/bin/arm-none-eabi- -``` - - - - -#### Zephyr™ ARM SDK - -To build firmwares for the ARM architecture (all supported MCUs/keyboards at this point), you'll need to install the Zephyr™ ARM SDK to your system: - -``` -export ZSDK_VERSION=0.11.2 -wget -q "https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZSDK_VERSION}/zephyr-toolchain-arm-${ZSDK_VERSION}-setup.run" && \ - sh "zephyr-toolchain-arm-${ZSDK_VERSION}-setup.run" --quiet -- -d ~/.local/zephyr-sdk-${ZSDK_VERSION} && \ - rm "zephyr-toolchain-arm-\${ZSDK_VERSION}-setup.run" -``` - -The installation will prompt with several questions about installation location, and creating a default `~/.zephyrrc` for you with various variables. The defaults should normally work as expected. - - - - -#### GNU ARM Embedded - -Since the Zephyr™ SDK is not available for Windows, we recommending following the [Zephyr documentation](https://docs.zephyrproject.org/2.3.0/getting_started/toolchain_3rd_party_x_compilers.html#gnu-arm-embedded) to install a GNU ARM Embedded build. Note the warnings regarding installing the toolchain into a path with spaces, and make sure to follow the steps to add the environment variables which are also summarized with screenshots in the [Environment Variables](#environment-variables) section below. - - - - -#### GNU ARM Embedded - -Since the Zephyr™ SDK is not available for macOS, we recommending following the steps to install the [GNU ARM Embedded](https://docs.zephyrproject.org/2.3.0/getting_started/toolchain_3rd_party_x_compilers.html#gnu-arm-embedded). - -:::warning Security Controls Workaround - -Please be sure to read the [additional setup instructions](https://docs.zephyrproject.org/2.3.0/getting_started/installation_mac.html#mac-gatekeeper) needed to address security controls found in macOS 10.15 Catalina and newer - -::: - - - - -:::note -If you intend to build firmware straight away, make sure to correctly setup the current shell. - -Notes on setting this up can be found in the [Environment Variables](#environment-variables) section. -The transient instructions can be used to setup the current shell, and the automatic instructions can setup any newly made shells automatically. - -The transient instructions must be run to build firmware using the current shell. -::: - -### Source Code - -Next, you'll need to clone the ZMK source repository if you haven't already. Navigate to the folder you would like to place your `zmk` directory in and run the following command: - -``` -git clone https://github.com/zmkfirmware/zmk.git -``` - -### Initialize & Update Zephyr Workspace - -Since ZMK is built as a Zephyr™ application, the next step is -to use `west` to initialize and update your workspace. The ZMK -Zephyr™ application is in the `app/` source directory: - -#### Step into the repository - - - - -```sh -cd zmk -``` - - - - -```sh -cd zmk -``` - - - - -```sh -cd zmk -``` - - - - -```sh -cd zmk -``` - - - - -```sh -cd zmk -``` - - - - - -Open the `zmk` checkout folder in VS Code. The repository includes a configuration for containerized development, so an alert will pop up: - -![VS Code Dev Container Configuration Alert](../assets/dev-setup/vscode_devcontainer.png) - -Click `Reopen in Container` in order to reopen the VS Code with the running container. - -The first time you do this on your machine, it will pull the docker image down from the registry and build the container. Subsequent launches are much faster! - -:::caution -All subsequent steps must be performed from the VS Code terminal _inside_ the container. -::: - - - - -#### Initialize West - -```sh -west init -l app/ -``` - -:::caution Command Not Found? -If you encounter errors like `command not found: west` then your `PATH` environment variable is likely -missing the Python 3 user packages directory. See the [West Build Command](#west-build-command) -section again for links to how to do this -::: - -#### Update To Fetch Modules - -```sh -west update -``` - -:::tip -This step pulls down quite a bit of tooling. Go grab a cup of coffee, it can take 10-15 minutes even on a good internet connection! -::: - -:::info -If you're using Docker, you're done with setup! You must restart the container at this point. The easiest way to do so is to close the VS Code window, verify that the container has stopped in Docker Dashboard, and reopen the container with VS Code. - -Once your container is restarted, proceed to [Building and Flashing](./development/build-flash.md). -::: - -#### Export Zephyr™ Core - -```sh -west zephyr-export -``` - -#### Install Zephyr Python Dependencies - -```sh -pip3 install --user -r zephyr/scripts/requirements-base.txt -``` - -### Environment Variables - - - - -#### For GNU ARM Embedded on Windows - -On Windows, only two environment variables need to be set for ZMK to build properly: `ZEPHYR_TOOLCHAIN_VARIANT` and `GNUARMEMB_TOOLCHAIN_PATH`. - -1. Open Start Menu and type 'env' to find the 'Edit the system environment variables' option. Open it. - -![Environment variables in Start Menu](../assets/env-var/start_menu.png) - -2. Click 'Environment Variables...'. - -![Environment variables button](../assets/env-var/env_var.png) - -3. Click "New..." under System variables to create a new system variable. - -![Environment variables menu](../assets/env-var/new_variable.png) - -4. Set the variable name to 'ZEPHYR_TOOLCHAIN_VARIANT' and value to 'gnuarmemb'. Click OK to save. - -![Adding Zephyr toolchain variable](../assets/env-var/zephyr_toolchain.png) - -5. Create another variable with variable name 'GNUARMEMB_TOOLCHAIN_PATH' and value set to wherever you installed your toolchain. **Make sure this path does not contain any spaces.** If it does, rename the folder and update here. Click OK to save. - -![Adding GNUARMEMB variable](../assets/env-var/gnuarmemb.png) - -6. Close Command Prompt and reopen, or run `refreshenv` to apply the changes. - - - - - -#### For Zephyr - -By default, the Zephyr™ SDK will create a file named `~/.zephyrrc` with the correct environment variables to build ZMK. -We suggest two main [options](https://docs.zephyrproject.org/2.3.0/guides/env_vars.html?highlight=zephyrrc) for how to load those settings. - -##### Per Shell - -To load the Zephyr environment properly for just one transient shell, run the following from your ZMK checkout directory: - -``` -source zephyr/zephyr-env.sh -``` - -##### All Shells - -To load the environment variables for your shell every time, -append the existing `~/.zephyrrc` file to your shell's RC file and then start a new shell. - - - - - -``` -cat ~/.zephyrrc >> ~/.bashrc -``` - - - - - -``` -cat ~/.zephyrrc >> ~/.zshrc -``` - - - - - - - - diff --git a/zmk/docs/docs/development/tests.md b/zmk/docs/docs/development/tests.md deleted file mode 100644 index 9ad689b6..00000000 --- a/zmk/docs/docs/development/tests.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Tests -sidebar_label: Tests ---- - -Running tests requires [native posix support](posix-board). Any folder under `/app/tests` -containing `native_posix.keymap` will be selected when running `west test`. - -Run a single test with `west test `, like `west test tests/toggle-layer/normal`. - -## Creating a New Test Set - -1. Copy the test set that most closely resembles the tests you will be creating. -2. Rename the newly created test set to the behavior you're testing e.g, toggle-layer -3. Modify `behavior_keymap.dtsi` to create a keymap using the behavior and related behaviors -4. Modify `test_case/native_posix.keymap` for a simulated use case -5. Modify `test_case/events.patterns` to collect relevant logs to the test - - See: [sed manual](https://www.gnu.org/software/sed/manual/sed.html) and - [tutorial](https://www.digitalocean.com/community/tutorials/the-basics-of-using-the-sed-stream-editor-to-manipulate-text-in-linux) -6. Modify `test_case/keycode_events.snapshot` for to include the expected output -7. Rename the `test_case` folder to describe the test. -8. Repeat steps 4 to 7 for every test case diff --git a/zmk/docs/docs/development/usb-logging.md b/zmk/docs/docs/development/usb-logging.md deleted file mode 100644 index 6e4e2bef..00000000 --- a/zmk/docs/docs/development/usb-logging.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: USB Logging ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## Overview - -If you are developing ZMK on a device that does not have a built in UART for debugging and log/console output, -Zephyr can be configured to create a USB CDC ACM device and the direct all `printk`, console output, and log -messages to that device instead. - -:::warning Battery Life Impact - -Enabling logging increases the power usage of your keyboard, and can have a non-trivial impact to your time on battery. -It is recommended to only enable logging when needed, and not leaving it on by default. - -::: - -## Kconfig - -The following KConfig values need to be set, either by copy and pasting into the `app/prj.conf` file, or by running -`west build -t menuconfig` and manually enabling the various settings in that UI. - -:::note -If you are debugging your own keyboard in your [user config repository](./user-setup.md), use -`config/boards/shields//.conf` instead of `app/prj.conf`. In Github -Actions, you can search the `Kconfig file` build log to verify the options above have been enabled -for you successfully. -::: - -``` -# Turn on logging, and set ZMK logging to debug output -CONFIG_LOG=y -CONFIG_ZMK_LOG_LEVEL_DBG=y - -# Turn on USB CDC ACM device -CONFIG_USB=y -CONFIG_USB_DEVICE_STACK=y -CONFIG_USB_CDC_ACM=y -CONFIG_USB_CDC_ACM_RINGBUF_SIZE=1024 -CONFIG_USB_CDC_ACM_DEVICE_NAME="CDC_ACM" -CONFIG_USB_CDC_ACM_DEVICE_COUNT=1 - -# Enable serial console -CONFIG_SERIAL=y -CONFIG_CONSOLE=y -CONFIG_UART_INTERRUPT_DRIVEN=y -CONFIG_UART_LINE_CTRL=y - -# Enable USB UART, and set the console device -CONFIG_UART_CONSOLE=y -CONFIG_USB_UART_CONSOLE=y -CONFIG_UART_CONSOLE_ON_DEV_NAME="CDC_ACM_0" -CONFIG_USB_UART_DTR_WAIT=n -``` - -## Viewing Logs - -After flashing the updated ZMK image, the board should expose a USB CDC ACM device that you can connect to and view the logs. - - - - -On Linux, this should be a device like `/dev/ttyACM0` and you can connect with `minicom` or `tio` as usual, e.g.: - -``` -sudo tio /dev/ttyACM0 -``` - - - - -On Windows, you can use [PuTTY](https://www.putty.org/). Once installed, use Device Manager to figure out which COM port your controller is communicating on (listed under 'Ports (COM & LPT)') and specify that as the 'Serial line' in PuTTY. - -![Controller COM port](../assets/usb-logging/com.jpg) - -![PuTTY settings](../assets/usb-logging/putty.jpg) - -If you already have the Ardunio IDE installed you can also use its built-in Serial Monitor. - - - - -On MacOS, the device name is something like `/dev/tty.usbmodemXXXXX` where `XXXXX` is some numerical ID. -You can connect to the device with [tio](https://tio.github.io/) (can be installed via [Homebrew](https://formulae.brew.sh/formula/tio)): - -``` -sudo tio /dev/tty.usbmodem14401 -``` - -You should see tio printing `Disconnected` or `Connected` when you disconnect or reconnect the USB cable. - - - -From there, you should see the various log messages from ZMK and Zephyr, depending on which systems you have set to what log levels. diff --git a/zmk/docs/docs/faq.md b/zmk/docs/docs/faq.md deleted file mode 100644 index 7417a49a..00000000 --- a/zmk/docs/docs/faq.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: FAQs -sidebar_label: FAQs ---- - -### Why Zephyr™? - -As a best-in-class RTOS, Zephyr™ brings many [benefits](https://www.zephyrproject.org/benefits) to ZMK, such as: - -- A _single_ platform [supporting](https://docs.zephyrproject.org/latest/boards) many architectures, processors and boards. -- Optimization for low-powered, small memory footprint devices. -- Powerful hardware abstraction and configuration using [DeviceTree](https://docs.zephyrproject.org/latest/guides/dts/index.html) and [Kconfig](https://docs.zephyrproject.org/latest/guides/kconfig/index.html). -- A BLE stack that periodically obtains [qualification](https://docs.zephyrproject.org/latest/guides/bluetooth/bluetooth-qual.html) listings, making it easier for final products to obtain qualification from the Bluetooth® SIG. -- Multi-processor support, which is critical for power efficiency in upcoming MCUs. -- Permissive licencing with its Apache 2.0 open source [license](https://www.apache.org/licenses/LICENSE-2.0). -- A buzzing developer [community](https://github.com/zephyrproject-rtos/zephyr) including many leading [embedded technology](https://www.zephyrproject.org/project-members) companies. -- Long term support (LTS) with security updates. - -### Why yet another keyboard firmware? - -That’s an excellent question! There are already great keyboard firmwares available, but ZMK has some advantages: - -- Zephyr™ - - See [Why Zephyr™?](#why-zephyr) -- Licensing - - Just like other open source firmware, ZMK is all about the free and the sharing. However, some other projects use the GPL licence which prevents integration of libraries and drivers whose licenses are not GPL-compatible (such as some embedded BLE drivers). ZMK uses the permissive [MIT](https://github.com/zmkfirmware/zmk/blob/main/LICENSE) license which doesn’t have this limitation. -- Wireless First - - ZMK is designed for the future, and we believe the future is wireless. So power efficiency plays a critical role in every design decision, just like in Zephyr™. - -The ZMK contributors firmly believe that a keyboard firmware built on Zephyr™ will provide more long term benefits. - -### What license does ZMK use? - -ZMK uses the MIT [license](https://github.com/zmkfirmware/zmk/blob/main/LICENSE). - -### What hardware/platforms does ZMK support? - -ZMK has the potential to run on any platform supported by Zephyr™. However, it’s impractical for the ZMK contributors to test all possible hardware. - -The Zephyr™ [documentation](https://docs.zephyrproject.org/latest/boards/index.html) describes which hardware is currently natively supported by the Zephyr™ platform. _Similar documentation covering which keyboards have been integrated into ZMK is currently being planned._ - -### Does ZMK compile for AVR? - -Sorry, Zephyr™ only supports 32-bit and 64-bit platforms. - -### How do I get started? - -ZMK is still in its infancy, so there’s a learning curve involved. But if you’d like to try it out, please check out the development [documentation](/docs) and the other FAQs. Please keep in mind that the project team is still small, so our support capability is limited whilst we focus on development. But we’ll try our best! Interested developers are also very welcome to contribute! - -### What is a “board”? - -In ZMK, a _board_ defines the _PCB_ that _includes the MCU_. -For keyboards, this is one of two options: - -- Complete keyboard PCBs that include the MCU (e.g. the Planck or Preonic). -- Small MCU boards (e.g. the Proton-C or nice!nano) that expose pins and are designed to be combined with larger keyboard PCBs, or hand wired to switches to create the final keyboard. - -### What is a “shield”? - -In ZMK, a _shield_ is a _PCB_ or _hardwired set of components_ that when combined with a MCU only [board](#what-is-a-board) like the Proton-C or nice!nano, results in a complete usable keyboard. Examples would be keyboard PCBs like the Kyria or Corne. The _shield_ is usually the big PCB containing all the keys. - -### Why _boards_ and _shields_? Why not just “keyboard”? - -If you haven't already done so, please read these FAQs first: - -- [What is a “board”?](#what-is-a-board) -- [What is a "shield"?](#what-is-a-shield) - -When a keyboard accepts a small “PCB MCU module” (e.g. _Arduino Pro Micro_) for its “brains”, then it's important to conceptually separate the hardware into a [board](#what-is-a-board) PCB and a [shield](#what-is-a-shield) PCB. - -The [shield](#what-is-a-shield) is a brainless shell containing all the keys, RGB LEDs, encoders etc. It maps all of these features to a standard pin footprint, such as the Pro Micro pinout. - -To bring this brainless [shield](#what-is-a-shield) to life, you attach any MCU [board](#what-is-a-board) matching the footprint. For instance, the _nice!nano_ is _pin-compatible_ with the _Arduino Pro Micro_, so you can substitute either [board](#what-is-a-board) onto the [shield](#what-is-a-shield). But each [board](#what-is-a-board) comes with its own features (MCU, flash, BLE, etc.) which must also be handled. - -Therefore in ZMK, [board](#what-is-a-board) and [shield](#what-is-a-shield) are considered two different (but related) entities so that it’s easier to mix and match them. They are combined during a ZMK build. - -Please note, many keyboards only have a single PCB which includes the “brains” (MCU) onboard. In ZMK, these have no [shield](#what-is-a-shield), only a [board](#what-is-a-board). - -### Does ZMK support wired split? - -Currently, ZMK only supports wireless split, but wired split is possible and we welcome contributions! - -### What bootloader does ZMK use? - -ZMK isn’t designed for any particular bootloader, and supports flashing different boards with different flash utilities (e.g. OpenOCD, nrfjprog, etc.). So if you have any difficulties, please let us know on [Discord](https://zmkfirmware.dev/community/discord/invite)! - -### Can I contribute? - -Of course! Please use the developer [documentation](/docs) to get started! - -### I have an idea! What should I do? - -Please join us on [Discord](https://zmkfirmware.dev/community/discord/invite) and discuss it with us! - -### I want to add a new keyboard! What should I do? - -The exact process for the management of all the possible hardware is still being finalized, but any developer looking to contribute new keyboard definitions should chat with us on [Discord](https://zmkfirmware.dev/community/discord/invite) to get started. - -### Does ZMK have a Code of Conduct? - -Yes, it does have a [Code of Conduct](https://github.com/zmkfirmware/zmk/blob/main/CODE_OF_CONDUCT.md)! Please give it a read! - -### What does “ZMK” mean? - -ZMK was originally coined as a quasi-acronym of “Zephyr Mechanical Keyboard” and also taking inspiration from the amazing keyboard firmware projects, TMK and QMK. - -### Is ZMK related to TMK or QMK? - -No. But inspired by, of course! - -### Who created ZMK? - -ZMK was created by Pete Johanson. It is developed and maintained by the open source community. diff --git a/zmk/docs/docs/feature/displays.md b/zmk/docs/docs/feature/displays.md deleted file mode 100644 index 2b3d001d..00000000 --- a/zmk/docs/docs/feature/displays.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: OLED Displays -sidebar_label: OLED Displays ---- - -TODO: Documentation on OLED displays. diff --git a/zmk/docs/docs/feature/encoders.md b/zmk/docs/docs/feature/encoders.md deleted file mode 100644 index b78f89e3..00000000 --- a/zmk/docs/docs/feature/encoders.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Encoders -sidebar_label: Encoders ---- - -Existing support for encoders in ZMK is focused around the five pin EC11 rotary encoder with push button design used in the majority of current keyboard and macropad designs. - -## Enabling EC11 Encoders - -To enable encoders for boards that have existing encoder support, uncomment the `EC11_CONFIG=y` and `CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y` lines in your board's .conf file in your `zmk-config/config` folder. Save and push your changes, then download and flash the new firmware. - -## Customizing EC11 Encoder Behavior - -Encoder behavior in ZMK is configured in two different locations as the push button and rotation behaviors are handled in two separate ways. - -### Push Button - -Keyboards and macropads with encoder support will typically take the two EC11 pins responsible for the push button and include them as part of the matrix for the keys. To configure what is sent by the push button, find the encoder's position in the keyboard matrix and assign it a behavior the same as you would any other key. - -### Rotation - -Rotation is handled separately as a type of sensor. The behavior for this is set in `sensor-bindings`, which is defined in each keymap layer in the following format: - -``` -sensor-bindings = ; -``` - -- `BINDING`, for now, has only one behavior available; `&inc_dec_kp` for key presses (see [Key Press](/docs/behavior/key-press) for details on available keycodes). -- `CW_KEY` is the keycode activated by a clockwise turn. -- `CCW_KEY` is the keycode activated by a counter-clockwise turn. - -Additional encoders can be configured by adding more `BINDING CW_KEY CCW_KEY` sets immediately after the first. - -As an example, a complete `sensor-bindings` for a Kyria with two encoders could look like: - -``` -sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; -``` - -Here, the left encoder is configured to control volume up and down while the right encoder sends either Page Up or Page Down. - -## Adding Encoder Support - -See the [New Keyboard Shield](/docs/dev-guide-new-shield#encoders) documentation for how to add or modify additional encoders to your shield. diff --git a/zmk/docs/docs/feature/keymaps.md b/zmk/docs/docs/feature/keymaps.md deleted file mode 100644 index c4c16c3b..00000000 --- a/zmk/docs/docs/feature/keymaps.md +++ /dev/null @@ -1,182 +0,0 @@ ---- -title: Keymaps & Behaviors -sidebar_label: Keymaps ---- - -ZMK uses a declarative approach to keymaps instead of using C code for all keymap configuration. -Right now, ZMK uses the devicetree syntax to declare those keymaps; future work is envisioned for -supporting dynamic loading of declarative keymaps, e.g. over USB Mass Storage or via a custom BLE -service. - -:::note -For advanced users looking to implement custom behaviors for their keymaps, this will be possible -in the future by allowing user configs to add to the CMake application built by Zephyr. -::: - -## Big Picture - -All keyboard definitions (complete boards or shields) include the _default_ keymap for that keyboard, -so ZMK can produce a "stock" firmware for that keyboard without any further modifications. For users -looking to customize their keyboard's behavior, they can copy the stock `.keymap` file into their -user config directory, and customize the keymap to their liking. - -## Behaviors - -ZMK implements the concept of "behaviors", which can be bound to a certain key position, sensor (encoder), -or layer, to perform certain actions when events occur for that binding (e.g. when a certain key position -is pressed or released, or an encoder triggers a rotation event). - -For example, the simplest behavior in ZMK is the "key press" behavior, which responds to key position -(a certain spot on the keyboard), and when that position is pressed, send a keycode to the host, and -when the key position is released, updates the host to notify of the keycode being released. - -For the full set of possible behaviors, start at the [Key Press](/docs/behavior/key-press) behavior. - -## Layers - -Like many mechanical keyboard firmwares, ZMK keymaps are composed of a collection of layers, with a -minimum of at least one layer that is the default, usually near the bottom of the "stack". Each layer -in ZMK contains a set of bindings that bind a certain behavior to a certain key position in that layer. - -| ![Diagram of three layers](../assets/features/keymaps/layer-diagram.png) | -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| _A simplified diagram showing three layers. The layout of each layer is the same (they all contain four keys), but the behavior bindings within each layer can be different._ | - -In addition to the base default layer (which can be changed), certain bound behaviors may also -enable/disable additional layers "on top" of the default layer. - -When a key location is pressed/released, the stack of all active layers from "top to bottom" is used, -and the event is sent to the behavior bound at that position in each layer, for it to perform whatever -actions it wants to in reaction to the event. Those behaviors can choose to "handle" the event, and stop -it from being passed to any lower layers, or may choose to "pass it along", and let the next layer -in the stack _also_ get the event. - -## Behavior Bindings - -Binding a behavior at a certain key position may include up to two extra parameters that are used to -alter the behavior when that specific key position is activated/deactivated. For example, when binding -the "key press" (`kp`) behavior at a certain key position, you must specific _which_ keycode should -be used for that key position. - -``` -&kp A -``` - -In this case, the `A` is actually a define for the raw HID keycode, to make keymaps easier to read and write. - -For example of a binding that uses two parameters, you can see how "mod-tap" (`mt`) is bound: - -``` -&mt LSHFT D -``` - -Here, the first parameter is the set of modifiers that should be used for the "hold" behavior, and the second -parameter is the keycode that should be sent when triggering the "tap" behavior. - -## Keymap File - -A keymap file is composed of several sections, that together make up a valid devicetree file for describing the keymap and its layers. - -### Includes - -The devicetree files are actually preprocessed before being finally leveraged by Zephyr. This allows using standard C defines to create meaningful placeholders -for what would otherwise be cryptic integer keycodes, etc. This also allows bringing in _other_ devicetree nodes from separate files. - -The top two lines of most keymaps should include: - -``` -#include -#include -``` - -The first defines the nodes for all the available behaviors in ZMK, which will be referenced in the behavior bindings. This is how bindings like `&kp` can reference the key press behavior defined with an anchor name of `kp`. - -The second include brings in the defines for all the keycodes (e.g. `A`, `N1`, `C_PLAY`) and the modifiers (e.g. `LSHFT`) used for various behavior bindings. - -### Root devicetree Node - -ALl the remaining keymap nodes will be nested inside of the root devicetree node, like so: - -```devicetree -/ { - // Everything else goes here! -}; -``` - -### Keymap Node - -Nested under the devicetree root, is the keymap node. The node _name_ itself is not critical, but the node **MUST** have a property -`compatible = "zmk,keymap"` in order to be used by ZMK. - -``` - keymap { - compatible = "zmk,keymap"; - - // Layer nodes go here! - }; -``` - -### Layers - -Each layer of your keymap will be nested under the keymap node. Here is a sample -that defines just one layer for this keymap: - -``` - keymap { - compatible = "zmk,keymap"; - - default_layer { -// -------------------------------------------------------------------------------------------------------------------------------------------------------------------- -// | ESC | Q | W | E | R | T | | Y | U | I | O | P | \ | -// | TAB | A | S | D | F | G | | H | J | K | L | ; | ' | -// | SHIFT | Z | X | C | V | B | CTRL+A | CTRL+C | | CTRL+V | CTRL+X | N | M | , | . | / | R CTRL | -// | GUI | DEL | RETURN | SPACE | ESCAPE | | RETURN | SPACE | TAB | BSPC | R ALT | - bindings = < - &kp ESC &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSLH - &kp TAB &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp QUOTE - &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp LC(A) &kp LC(C) &kp LC(V) &kp LC(X) &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RCTRL - &kp LGUI &kp DEL &kp RET &kp SPACE &kp ESC &kp RET &kp SPACE &kp TAB &kp BSPC &kp RALT - >; - - sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; - }; - }; -``` - -Each layer should have: - -1. A `bindings` property this will be a list of behaviour bindings, one for each key position for the keyboard. -1. (Optional) A `sensor-bindings` property that will be a list of behavior bindings for each sensor on the keyboard. (Currently, only encoders are supported as sensor hardware, but in the future devices like trackpoints would be supported the same way) - -For the full set of possible behaviors, start at the [Key Press](/docs/behavior/key-press) behavior. - -### Complete Example - -Putting this all together, a complete [`kyria.keymap`](https://github.com/zmkfirmware/zmk/blob/main/app/boards/shields/kyria/kyria.keymap) looks like: - -``` -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// -------------------------------------------------------------------------------------------------------------------------------------------------------------------- -// | ESC | Q | W | E | R | T | | Y | U | I | O | P | \ | -// | TAB | A | S | D | F | G | | H | J | K | L | ; | ' | -// | SHIFT | Z | X | C | V | B | CTRL+A | CTRL+C | | CTRL+V | CTRL+X | N | M | , | . | / | R CTRL | -// | GUI | DEL | RETURN | SPACE | ESCAPE | | RETURN | SPACE | TAB | BSPC | R ALT | - bindings = < - &kp ESC &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSLH - &kp TAB &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp QUOTE - &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp LC(A) &kp LC(C) &kp LC(V) &kp LC(X) &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RCTRL - &kp LGUI &kp DEL &kp RET &kp SPACE &kp ESC &kp RET &kp SPACE &kp TAB &kp BSPC &kp RALT - >; - - sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; - }; - }; -}; -``` diff --git a/zmk/docs/docs/feature/underglow.md b/zmk/docs/docs/feature/underglow.md deleted file mode 100644 index 2cea913f..00000000 --- a/zmk/docs/docs/feature/underglow.md +++ /dev/null @@ -1,131 +0,0 @@ ---- -title: RGB Underglow -sidebar_label: RGB Underglow ---- - -RGB underglow is a feature used to control "strips" of RGB LEDs. Most of the time this is called underglow and creates a glow underneath the board using a ring of LEDs around the edge, hence the name. However, this can be extended to be used to control anything from a single LED to a long string of LEDs anywhere on the keyboard. - -ZMK supports all the RGB LEDs supported by Zephyr. Here's the current list supported: - -- WS2812-ish (WS2812B, WS2813, SK6812, or compatible) -- APA102 -- LPD880x (LPD8803, LPD8806, or compatible) - -Of the compatible types, the WS2812 LED family is by far the most popular type. Currently each of these types of LEDs are expected to be run using SPI with a couple of exceptions. - -Here you can see the RGB underglow feature in action using WS2812 LEDs. - -
- -
- -## Enabling RGB Underglow - -To enable RGB underglow on your board or shield, simply enable the `CONFIG_ZMK_RGB_UNDERGLOW` and `X_STRIP` configuration values in the `.conf` file of your user config directory as such: - -``` -CONFIG_ZMK_RGB_UNDERGLOW=y -# Use the STRIP config specific to the LEDs you're using -CONFIG_WS2812_STRIP=y -``` - -If your board or shield does not have RGB underglow configured, refer to [Adding RGB Underglow to a Board](#adding-rgb-underglow-to-a-board). - -## Configuring RGB Underglow - -There are various Kconfig options used to configure the RGB underglow feature. These can all be set in the `.conf` file. - -| Option | Description | Default | -| ------------------------------------ | ---------------------------------------------- | ------- | -| `CONFIG_ZMK_RGB_UNDERGLOW_HUE_STEP` | Hue step in degrees of 360 used by RGB actions | 10 | -| `CONFIG_ZMK_RGB_UNDERGLOW_SAT_STEP` | Saturation step in percent used by RGB actions | 10 | -| `CONFIG_ZMK_RGB_UNDERGLOW_BRT_STEP` | Brightness step in percent used by RGB actions | 10 | -| `CONFIG_ZMK_RGB_UNDERGLOW_HUE_START` | Default hue 0-359 in degrees | 0 | -| `CONFIG_ZMK_RGB_UNDERGLOW_SAT_START` | Default saturation 0-100 in percent | 100 | -| `CONFIG_ZMK_RGB_UNDERGLOW_BRT_START` | Default brightness 0-100 in percent | 100 | -| `CONFIG_ZMK_RGB_UNDERGLOW_SPD_START` | Default effect speed 1-5 | 3 | -| `CONFIG_ZMK_RGB_UNDERGLOW_EFF_START` | Default effect integer from the effect enum | 0 | -| `CONFIG_ZMK_RGB_UNDERGLOW_ON_START` | Default on state | y | - -## Adding RGB Underglow to a Board - -RGB underglow is always added to a board, not a shield. This is a consequence of needing to configure SPI to control the LEDs. -If you have a shield with RGB underglow, you must add a `boards/` directory within your shield folder to define the RGB underglow individually for each board that supports the shield. -Inside the `boards/` folder, you define a `.overlay` for each different board. -For example, the Kyria shield has a `boards/nice_nano.overlay` file that defines the RGB underglow for the `nice_nano` board specifically. - -The first step to adding support for underglow is to select you SPI output. With nRF52 boards, you can just use `&spi1` and define the pins you want to use. -For other boards, you must select an SPI definition that has the `MOSI` pin as your data pin going to your LED strip. - -Here's an example of an nRF52 SPI definition: - -``` -&spi1 { - compatible = "nordic,nrf-spim"; - status = "okay"; - mosi-pin = <6>; - // Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. - sck-pin = <5>; - miso-pin = <7>; - - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "WS2812"; - - /* SPI */ - reg = <0>; /* ignored, but necessary for SPI bindings */ - spi-max-frequency = <4000000>; - - /* WS2812 */ - chain-length = <10>; /* number of LEDs */ - spi-one-frame = <0x70>; - spi-zero-frame = <0x40>; - }; -}; -``` - -:::info - -If you are configuring SPI for an nRF52840 (or other nRF52) based board, double check that you are using pins that aren't restricted to low frequency I/O. -Ignoring these restrictions may result in poor wireless performance. You can find the list of low frequency I/O pins [here](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fps_nrf52840%2Fpin.html&cp=4_0_0_6_0). - -::: - -Here's another example for a non-nRF52 board on `spi1`: - -``` -&spi1 { - - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "WS2812"; - - /* SPI */ - reg = <0>; - spi-max-frequency = <5250000>; - - /* WS2812 */ - chain-length = <10>; /* number of LEDs */ - spi-one-frame = <0x70>; /* make sure to configure this properly for your SOC */ - spi-zero-frame = <0x40>; /* make sure to configure this properly for your SOC */ - }; -}; -``` - -Once you have your `led_strip` properly defined you need to add it to the root devicetree node `chosen` element: - -``` -/ { - chosen { - zmk,underglow = &led_strip; - }; -}; -``` - -Finally you need to enable the `CONFIG_ZMK_RGB_UNDERGLOW` and `X_STRIP` configuration values in the `.conf` file of your board (or set a default in the `Kconfig.defconfig`): - -``` -CONFIG_ZMK_RGB_UNDERGLOW=y -# Use the STRIP config specific to the LEDs you're using -CONFIG_WS2812_STRIP=y -``` diff --git a/zmk/docs/docs/features/displays.md b/zmk/docs/docs/features/displays.md deleted file mode 100644 index 2b3d001d..00000000 --- a/zmk/docs/docs/features/displays.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: OLED Displays -sidebar_label: OLED Displays ---- - -TODO: Documentation on OLED displays. diff --git a/zmk/docs/docs/features/encoders.md b/zmk/docs/docs/features/encoders.md deleted file mode 100644 index 01610775..00000000 --- a/zmk/docs/docs/features/encoders.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Encoders -sidebar_label: Encoders ---- - -Existing support for encoders in ZMK is focused around the five pin EC11 rotary encoder with push button design used in the majority of current keyboard and macropad designs. - -## Enabling EC11 Encoders - -To enable encoders for boards that have existing encoder support, uncomment the `EC11_CONFIG=y` and `CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y` lines in your board's .conf file in your `zmk-config/config` folder. Save and push your changes, then download and flash the new firmware. - -## Customizing EC11 Encoder Behavior - -Encoder behavior in ZMK is configured in two different locations as the push button and rotation behaviors are handled in two separate ways. - -### Push Button - -Keyboards and macropads with encoder support will typically take the two EC11 pins responsible for the push button and include them as part of the matrix for the keys. To configure what is sent by the push button, find the encoder's position in the keyboard matrix and assign it a behavior the same as you would any other key. - -### Rotation - -Rotation is handled separately as a type of sensor. The behavior for this is set in `sensor-bindings`, which is defined in each keymap layer in the following format: - -``` -sensor-bindings = ; -``` - -- `BINDING`, for now, has only one behavior available; `&inc_dec_kp` for key presses (see [Key Press](/docs/behaviors/key-press) for details on available keycodes). -- `CW_KEY` is the keycode activated by a clockwise turn. -- `CCW_KEY` is the keycode activated by a counter-clockwise turn. - -Additional encoders can be configured by adding more `BINDING CW_KEY CCW_KEY` sets immediately after the first. - -As an example, a complete `sensor-bindings` for a Kyria with two encoders could look like: - -``` -sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; -``` - -Here, the left encoder is configured to control volume up and down while the right encoder sends either Page Up or Page Down. - -## Adding Encoder Support - -See the [New Keyboard Shield](../development/new-shield#encoders) documentation for how to add or modify additional encoders to your shield. diff --git a/zmk/docs/docs/features/keymaps.md b/zmk/docs/docs/features/keymaps.md deleted file mode 100644 index de1f24ac..00000000 --- a/zmk/docs/docs/features/keymaps.md +++ /dev/null @@ -1,140 +0,0 @@ ---- -title: Keymaps & Behaviors -sidebar_label: Keymaps ---- - -import KeymapExample from '../keymap-example.md'; -import KeymapExampleFile from '../keymap-example-file.md'; - -ZMK uses a declarative approach to keymaps instead of using C code for all keymap configuration. -Right now, ZMK uses the devicetree syntax to declare those keymaps; future work is envisioned for -supporting dynamic loading of declarative keymaps, e.g. over USB Mass Storage or via a custom BLE -service. - -:::note -For advanced users looking to implement custom behaviors for their keymaps, this will be possible -in the future by allowing user configs to add to the CMake application built by Zephyr. -::: - -## Big Picture - -All keyboard definitions (complete boards or shields) include the _default_ keymap for that keyboard, -so ZMK can produce a "stock" firmware for that keyboard without any further modifications. For users -looking to customize their keyboard's behavior, they can copy the stock `.keymap` file into their -user config directory, and customize the keymap to their liking. - -## Behaviors - -ZMK implements the concept of "behaviors", which can be bound to a certain key position, sensor (encoder), -or layer, to perform certain actions when events occur for that binding (e.g. when a certain key position -is pressed or released, or an encoder triggers a rotation event). - -For example, the simplest behavior in ZMK is the "key press" behavior, which responds to key position -(a certain spot on the keyboard), and when that position is pressed, send a keycode to the host, and -when the key position is released, updates the host to notify of the keycode being released. - -For the full set of possible behaviors, start at the [Key Press](/docs/behaviors/key-press) behavior. - -## Layers - -Like many mechanical keyboard firmwares, ZMK keymaps are composed of a collection of layers, with a -minimum of at least one layer that is the default, usually near the bottom of the "stack". Each layer -in ZMK contains a set of bindings that bind a certain behavior to a certain key position in that layer. - -| ![Diagram of three layers](../assets/features/keymaps/layer-diagram.png) | -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| _A simplified diagram showing three layers. The layout of each layer is the same (they all contain four keys), but the behavior bindings within each layer can be different._ | - -In addition to the base default layer (which can be changed), certain bound behaviors may also -enable/disable additional layers "on top" of the default layer. - -When a key location is pressed/released, the stack of all active layers from "top to bottom" is used, -and the event is sent to the behavior bound at that position in each layer, for it to perform whatever -actions it wants to in reaction to the event. Those behaviors can choose to "handle" the event, and stop -it from being passed to any lower layers, or may choose to "pass it along", and let the next layer -in the stack _also_ get the event. - -## Behavior Bindings - -Binding a behavior at a certain key position may include up to two extra parameters that are used to -alter the behavior when that specific key position is activated/deactivated. For example, when binding -the "key press" (`kp`) behavior at a certain key position, you must specific _which_ keycode should -be used for that key position. - -``` -&kp A -``` - -In this case, the `A` is actually a define for the raw HID keycode, to make keymaps easier to read and write. - -For example of a binding that uses two parameters, you can see how "mod-tap" (`mt`) is bound: - -``` -&mt LSHFT D -``` - -Here, the first parameter is the set of modifiers that should be used for the "hold" behavior, and the second -parameter is the keycode that should be sent when triggering the "tap" behavior. - -## Keymap File - -A keymap file is composed of several sections, that together make up a valid devicetree file for describing the keymap and its layers. - -### Includes - -The devicetree files are actually preprocessed before being finally leveraged by Zephyr. This allows using standard C defines to create meaningful placeholders -for what would otherwise be cryptic integer keycodes, etc. This also allows bringing in _other_ devicetree nodes from separate files. - -The top two lines of most keymaps should include: - -``` -#include -#include -``` - -The first defines the nodes for all the available behaviors in ZMK, which will be referenced in the behavior bindings. This is how bindings like `&kp` can reference the key press behavior defined with an anchor name of `kp`. - -The second include brings in the defines for all the keycodes (e.g. `A`, `N1`, `C_PLAY`) and the modifiers (e.g. `LSHFT`) used for various behavior bindings. - -### Root devicetree Node - -ALl the remaining keymap nodes will be nested inside of the root devicetree node, like so: - -```devicetree -/ { - // Everything else goes here! -}; -``` - -### Keymap Node - -Nested under the devicetree root, is the keymap node. The node _name_ itself is not critical, but the node **MUST** have a property -`compatible = "zmk,keymap"` in order to be used by ZMK. - -``` - keymap { - compatible = "zmk,keymap"; - - // Layer nodes go here! - }; -``` - -### Layers - -Each layer of your keymap will be nested under the keymap node. Here is a sample -that defines just one layer for this keymap: - - - -Each layer should have: - -1. A `bindings` property this will be a list of behaviour bindings, one for each key position for the keyboard. -1. (Optional) A `sensor-bindings` property that will be a list of behavior bindings for each sensor on the keyboard. (Currently, only encoders are supported as sensor hardware, but in the future devices like trackpoints would be supported the same way) - -For the full set of possible behaviors, start at the [Key Press](/docs/behaviors/key-press) behavior. - -### Complete Example - -Putting this all together, a complete [`kyria.keymap`](https://github.com/zmkfirmware/zmk/blob/main/app/boards/shields/kyria/kyria.keymap) looks like: - - diff --git a/zmk/docs/docs/features/underglow.md b/zmk/docs/docs/features/underglow.md deleted file mode 100644 index 2cea913f..00000000 --- a/zmk/docs/docs/features/underglow.md +++ /dev/null @@ -1,131 +0,0 @@ ---- -title: RGB Underglow -sidebar_label: RGB Underglow ---- - -RGB underglow is a feature used to control "strips" of RGB LEDs. Most of the time this is called underglow and creates a glow underneath the board using a ring of LEDs around the edge, hence the name. However, this can be extended to be used to control anything from a single LED to a long string of LEDs anywhere on the keyboard. - -ZMK supports all the RGB LEDs supported by Zephyr. Here's the current list supported: - -- WS2812-ish (WS2812B, WS2813, SK6812, or compatible) -- APA102 -- LPD880x (LPD8803, LPD8806, or compatible) - -Of the compatible types, the WS2812 LED family is by far the most popular type. Currently each of these types of LEDs are expected to be run using SPI with a couple of exceptions. - -Here you can see the RGB underglow feature in action using WS2812 LEDs. - -
- -
- -## Enabling RGB Underglow - -To enable RGB underglow on your board or shield, simply enable the `CONFIG_ZMK_RGB_UNDERGLOW` and `X_STRIP` configuration values in the `.conf` file of your user config directory as such: - -``` -CONFIG_ZMK_RGB_UNDERGLOW=y -# Use the STRIP config specific to the LEDs you're using -CONFIG_WS2812_STRIP=y -``` - -If your board or shield does not have RGB underglow configured, refer to [Adding RGB Underglow to a Board](#adding-rgb-underglow-to-a-board). - -## Configuring RGB Underglow - -There are various Kconfig options used to configure the RGB underglow feature. These can all be set in the `.conf` file. - -| Option | Description | Default | -| ------------------------------------ | ---------------------------------------------- | ------- | -| `CONFIG_ZMK_RGB_UNDERGLOW_HUE_STEP` | Hue step in degrees of 360 used by RGB actions | 10 | -| `CONFIG_ZMK_RGB_UNDERGLOW_SAT_STEP` | Saturation step in percent used by RGB actions | 10 | -| `CONFIG_ZMK_RGB_UNDERGLOW_BRT_STEP` | Brightness step in percent used by RGB actions | 10 | -| `CONFIG_ZMK_RGB_UNDERGLOW_HUE_START` | Default hue 0-359 in degrees | 0 | -| `CONFIG_ZMK_RGB_UNDERGLOW_SAT_START` | Default saturation 0-100 in percent | 100 | -| `CONFIG_ZMK_RGB_UNDERGLOW_BRT_START` | Default brightness 0-100 in percent | 100 | -| `CONFIG_ZMK_RGB_UNDERGLOW_SPD_START` | Default effect speed 1-5 | 3 | -| `CONFIG_ZMK_RGB_UNDERGLOW_EFF_START` | Default effect integer from the effect enum | 0 | -| `CONFIG_ZMK_RGB_UNDERGLOW_ON_START` | Default on state | y | - -## Adding RGB Underglow to a Board - -RGB underglow is always added to a board, not a shield. This is a consequence of needing to configure SPI to control the LEDs. -If you have a shield with RGB underglow, you must add a `boards/` directory within your shield folder to define the RGB underglow individually for each board that supports the shield. -Inside the `boards/` folder, you define a `.overlay` for each different board. -For example, the Kyria shield has a `boards/nice_nano.overlay` file that defines the RGB underglow for the `nice_nano` board specifically. - -The first step to adding support for underglow is to select you SPI output. With nRF52 boards, you can just use `&spi1` and define the pins you want to use. -For other boards, you must select an SPI definition that has the `MOSI` pin as your data pin going to your LED strip. - -Here's an example of an nRF52 SPI definition: - -``` -&spi1 { - compatible = "nordic,nrf-spim"; - status = "okay"; - mosi-pin = <6>; - // Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. - sck-pin = <5>; - miso-pin = <7>; - - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "WS2812"; - - /* SPI */ - reg = <0>; /* ignored, but necessary for SPI bindings */ - spi-max-frequency = <4000000>; - - /* WS2812 */ - chain-length = <10>; /* number of LEDs */ - spi-one-frame = <0x70>; - spi-zero-frame = <0x40>; - }; -}; -``` - -:::info - -If you are configuring SPI for an nRF52840 (or other nRF52) based board, double check that you are using pins that aren't restricted to low frequency I/O. -Ignoring these restrictions may result in poor wireless performance. You can find the list of low frequency I/O pins [here](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fps_nrf52840%2Fpin.html&cp=4_0_0_6_0). - -::: - -Here's another example for a non-nRF52 board on `spi1`: - -``` -&spi1 { - - led_strip: ws2812@0 { - compatible = "worldsemi,ws2812-spi"; - label = "WS2812"; - - /* SPI */ - reg = <0>; - spi-max-frequency = <5250000>; - - /* WS2812 */ - chain-length = <10>; /* number of LEDs */ - spi-one-frame = <0x70>; /* make sure to configure this properly for your SOC */ - spi-zero-frame = <0x40>; /* make sure to configure this properly for your SOC */ - }; -}; -``` - -Once you have your `led_strip` properly defined you need to add it to the root devicetree node `chosen` element: - -``` -/ { - chosen { - zmk,underglow = &led_strip; - }; -}; -``` - -Finally you need to enable the `CONFIG_ZMK_RGB_UNDERGLOW` and `X_STRIP` configuration values in the `.conf` file of your board (or set a default in the `Kconfig.defconfig`): - -``` -CONFIG_ZMK_RGB_UNDERGLOW=y -# Use the STRIP config specific to the LEDs you're using -CONFIG_WS2812_STRIP=y -``` diff --git a/zmk/docs/docs/hardware.md b/zmk/docs/docs/hardware.md deleted file mode 100644 index 3c93313a..00000000 --- a/zmk/docs/docs/hardware.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Supported Hardware -sidebar_label: Supported Hardware ---- - -:::warning - -ZMK Firmware is still an early stage project. Many features are still waiting to be implemented, and only a select few keyboards -have had their hardware details codified in boards/shields for ZMK. - -::: - -With the solid technical foundation of Zephyr™ RTOS, ZMK can support a wide diversity of hardware targets. -That being said, there are currently only a few specific [boards](/docs/faq#what-is-a-board)/[shields](/docs/faq#what-is-a-shield) that have been written and tested by the ZMK contributors. - -## Boards - -- [nice!nano](https://nicekeyboards.com/products/nice-nano-v1-0) (`nice_nano`) -- [nrfMicro](https://github.com/joric/nrfmicro) (`nrfmicro_13`, `nrfmicro_11`, `nrfmicro_11_flipped`) -- [BlueMicro840](https://store.jpconstantineau.com/#/group/bluemicro) (`bluemicro840_v1`) -- [QMK Proton-C](https://qmk.fm/proton-c/) (`proton_c`) - -## Keyboard Shields - -- [Kyria](https://splitkb.com/products/kyria-pcb-kit) (`kyria_left` and `kyria_right`) -- [Corne](https://github.com/foostan/crkbd) (`corne_left` and `corne_right`) -- [Lily58](https://github.com/kata0510/Lily58) (`lily58_left` and `lily58_right`) -- [Sofle](https://github.com/josefadamcik/SofleKeyboard) (`sofle_left` and `sofle_right`) -- [Splitreus62](https://github.com/Na-Cly/splitreus62) (`splitreus62_left` and `splitreus62_right`) -- [Jorne](https://github.com/joric/jorne) (`jorne_left` and `jorne_right`) -- [Jian](https://github.com/KGOH/Jian-Info) (`jian_left` and `jian_right`) -- [Reviung41](https://github.com/gtips/reviung/tree/master/reviung41) (`reviung41`) -- [RoMac+ v4](https://www.littlekeyboards.com/products/romac) (`romac_plus`) -- [RoMac v2](https://mechboards.co.uk/shop/kits/romac-macro-pad/) (`romac`) -- [Boardsource 3x4 Macro](https://boardsource.xyz/store/5ecc2008eee64242946c98c1) (`boardsource3x4`) -- [QAZ](https://www.cbkbd.com/product/qaz-keyboard-kit) (`qaz`) - -## Other Hardware - -In addition to the basic keyboard functionality, there is some initial support for additional keyboard hardware: - -- Encoders -- OLEDs -- RGB Underglow - -Until detailed documentation is available, feel free to ask questions about how these are supported in the [Discord server](https://zmkfirmware.dev/community/discord/invite). - -## Contributing - -If you'd like to add support for a new keyboard shield, head over to the [New Keyboard Shield](development/new-shield) documentation. diff --git a/zmk/docs/docs/intro.md b/zmk/docs/docs/intro.md deleted file mode 100644 index 564eedb7..00000000 --- a/zmk/docs/docs/intro.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Introduction to ZMK -sidebar_label: Introduction -slug: / ---- - -ZMK Firmware is an open source (MIT) keyboard -firmware built on the [Zephyr™ Project](https://zephyrproject.org/) Real Time Operating System (RTOS). ZMK's goal is to provide a modern, wireless, and powerful firmware free of licensing issues. - -## Features - -ZMK is currently missing some features found in other popular firmware. This table compares the features supported by ZMK, BlueMicro and QMK: - -| **Feature** | ZMK | BlueMicro | QMK | -| ------------------------------------------------------------------------------------------------------------------------- | :-: | :-------: | :-: | -| Low Latency BLE Support | ✅ | ✅ | | -| Multi-Device BLE Support | ✅ | | | -| [USB Connectivity](behaviors/outputs) | ✅ | | ✅ | -| User Configuration Repositories | ✅ | | | -| Split Keyboard Support | ✅ | ✅ | ✅ | -| [Keymaps and Layers](behaviors/layers) | ✅ | ✅ | ✅ | -| [Hold-Tap](behaviors/hold-tap) (which includes [Mod-Tap](behaviors/mod-tap) and [Layer-Tap](behaviors/layers/#layer-tap)) | ✅ | ✅ | ✅ | -| [Keyboard Codes](codes/#keyboard) | ✅ | ✅ | ✅ | -| [Media](codes/#media-controls) & [Consumer](codes/#consumer-controls) Codes | ✅ | ✅ | ✅ | -| [Encoders](features/encoders)[^1] | ✅ | | ✅ | -| [OLED Display Support](features/displays)[^2] | 🚧 | 🚧 | ✅ | -| [RGB Underglow](features/underglow) | ✅ | ✅ | ✅ | -| One Shot Keys | 🚧 | ✅ | ✅ | -| Combo Keys | 🚧 | | ✅ | -| Macros | 🚧 | ✅ | ✅ | -| Mouse Keys | | ✅ | ✅ | -| Low Active Power Usage | ✅ | | | -| [Low Power Sleep States](https://github.com/zmkfirmware/zmk/pull/211) | 🚧 | ✅ | | -| [Low Power Mode (VCC Shutoff)](https://github.com/zmkfirmware/zmk/pull/242) | 🚧 | | | -| [Battery Reporting](https://github.com/zmkfirmware/zmk/issues/47) | 🚧 | ✅ | | -| Shell over BLE | | | | -| Realtime Keymap Updating | 💡 | | ✅ | -| AVR/8 Bit | | | ✅ | -| [Wide Range of ARM Chips Supported](https://docs.zephyrproject.org/latest/boards/index.html) | ✅ | | | - -[^2]: Encoders are not currently supported on peripheral side splits. -[^1]: OLEDs are currently proof of concept in ZMK. - -## Code Of Conduct - -Please note that this project is released with a -[Contributor Code of Conduct](https://www.contributor-covenant.org/version/2/0/code_of_conduct/). -By participating in this project you agree to abide by its terms. diff --git a/zmk/docs/docs/keymap-example-file.md b/zmk/docs/docs/keymap-example-file.md deleted file mode 100644 index 5cb9b2f4..00000000 --- a/zmk/docs/docs/keymap-example-file.md +++ /dev/null @@ -1,26 +0,0 @@ -``` -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - default_layer { -// -------------------------------------------------------------------------------------------------------------------------------------------------------------------- -// | ESC | Q | W | E | R | T | | Y | U | I | O | P | \ | -// | TAB | A | S | D | F | G | | H | J | K | L | ; | ' | -// | SHIFT | Z | X | C | V | B | CTRL+A | CTRL+C | | CTRL+V | CTRL+X | N | M | , | . | / | R CTRL | -// | GUI | DEL | RETURN | SPACE | ESCAPE | | RETURN | SPACE | TAB | BSPC | R ALT | - bindings = < - &kp ESC &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSLH - &kp TAB &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp QUOTE - &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp LC(A) &kp LC(C) &kp LC(V) &kp LC(X) &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RCTRL - &kp LGUI &kp DEL &kp RET &kp SPACE &kp ESC &kp RET &kp SPACE &kp TAB &kp BSPC &kp RALT - >; - - sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; - }; - }; -}; -``` diff --git a/zmk/docs/docs/keymap-example.md b/zmk/docs/docs/keymap-example.md deleted file mode 100644 index c6e81d22..00000000 --- a/zmk/docs/docs/keymap-example.md +++ /dev/null @@ -1,21 +0,0 @@ -``` - keymap { - compatible = "zmk,keymap"; - - default_layer { -// -------------------------------------------------------------------------------------------------------------------------------------------------------------------- -// | ESC | Q | W | E | R | T | | Y | U | I | O | P | \ | -// | TAB | A | S | D | F | G | | H | J | K | L | ; | ' | -// | SHIFT | Z | X | C | V | B | CTRL+A | CTRL+C | | CTRL+V | CTRL+X | N | M | , | . | / | R CTRL | -// | GUI | DEL | RETURN | SPACE | ESCAPE | | RETURN | SPACE | TAB | BSPC | R ALT | - bindings = < - &kp ESC &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSLH - &kp TAB &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp QUOTE - &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp LC(A) &kp LC(C) &kp LC(V) &kp LC(X) &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RCTRL - &kp LGUI &kp DEL &kp RET &kp SPACE &kp ESC &kp RET &kp SPACE &kp TAB &kp BSPC &kp RALT - >; - - sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; - }; - }; -``` diff --git a/zmk/docs/docs/troubleshooting.md b/zmk/docs/docs/troubleshooting.md deleted file mode 100644 index 0fe0b665..00000000 --- a/zmk/docs/docs/troubleshooting.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Troubleshooting -sidebar_title: Troubleshooting ---- - -### Summary - -The following page provides suggestions for common errors that may occur during firmware compilation. If the information provided is insufficient to resolve the issue, feel free to seek out help from the [ZMK Discord](https://zmkfirmware.dev/community/discord/invite). - -### File Transfer Error - -Variations of the warnings shown below occur when flashing the `.uf2` onto the microcontroller. This is because the microcontroller resets itself before the OS receives confirmation that the file transfer is complete. Errors like this are normal and can generally be ignored. Verification of a functional board can be done by attempting to pair your newly flashed keyboard to your computer via Bluetooth or plugging in a USB cable if `ZMK_USB` is enabled in your Kconfig.defconfig. - -| ![Example Error Screen](../docs/assets/troubleshooting/filetransfer/windows.png) | -| :------------------------------------------------------------------------------: | -| An example of the file transfer error on Windows 10 | - -| ![Example Error Screen](../docs/assets/troubleshooting/filetransfer/linux.png) | -| :----------------------------------------------------------------------------: | -| An example of the file transfer error on Linux | - -| ![Example Error Screen](../docs/assets/troubleshooting/filetransfer/mac.png) | -| :--------------------------------------------------------------------------: | -| An example of the file transfer error on MacOS | - -### CMake Error - -An error along the lines of `CMake Error at (zmk directory)/zephyr/cmake/generic_toolchain.cmake:64 (include): include could not find load file:` during firmware compilation indicates that the Zephyr Environment Variables are not properly defined. -For more information, click [here](../docs/development/setup#environment-variables). - -### dtlib.DTError - -An error along the lines of `dtlib.DTError: .dts.pre.tmp:` during firmware compilation indicates an issue within the `.keymap` file. -This can be verified by checking the file in question, found in `mkdir/app/build`. - -| ![Example Error Screen](../docs/assets/troubleshooting/keymaps/errorscreen.png) | -| :----------------------------------------------------------------------------------------------------------------: | -| An example of the dtlib.DTError when compiling an iris with the nice!nano while the keymap is not properly defined | - -After opening the `.dts.pre.tmp:` and scrolling down to the referenced line, one can locate errors within their shield's keymap by checking if the referenced keycodes were properly converted into the correct [USB HID Usage ID](https://www.usb.org/document-library/hid-usage-tables-12). - -| ![Unhealthy Keymap Temp](../docs/assets/troubleshooting/keymaps/unhealthyEDIT.png) | -| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| An incorrectly defined keymap unable to compile. As shown in red, `&kp SPAC` is not a valid reference to the [USB HID Usage ID](https://www.usb.org/document-library/hid-usage-tables-12) used for "Keyboard Spacebar" | - -| ![Healthy Keymap Temp](../docs/assets/troubleshooting/keymaps/healthyEDIT.png) | -| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| A properly defined keymap with successful compilation. As shown in red, the corrected keycode (`&kp SPACE`) references the proper Usage ID defined in the [USB HID Usage Tables](https://www.usb.org/document-library/hid-usage-tables-12) | - -### Split Keyboard Halves Unable to Pair - -Previously, pairing split keyboard halves involved a **BLE Reset** via a combination of held keys that removed all bluetooth profile information from the keyboard. -Since then, a much simpler procedure of performing a bluetooth reset for split keyboards has come about, without the need for any file modification: - -**New Procedure:** - -1. Log into Github and download the "settings clear" UF2 image from the [latest build in Github Actions](https://github.com/zmkfirmware/zmk/actions?query=workflow%3ABuild+branch%3Amain) -1. Put each half of the split keyboard into bootloader mode -1. Flash one of the halves of the split with the "settings clear" UF2 image from step 1. Immediately after flashing "settings clear" to the chosen half, immediately put it into bootloader mode - to avoid accidental bonding between the halves. -1. Repeat step 3 with the other half of the split keyboard -1. Flash the actual image for each half of the split keyboard (e.g `my_board_left.uf2` to the left half, `my_board_right.uf2` to the right half) - -After completing these steps, pair the halves of the split keyboard together by resetting them at the same time. Most commonly, this is done by grounding the reset pins -for each of your keyboard's microcontrollers or pressing the reset buttons at the same time. - -### Connectivity Issues - -Some users may experience a poor connection between the keyboard and the host. This might be due to poor quality BLE hardware, a metal enclosure on the keyboard or host, or the distance between them. Increasing the transmit power of the keyboard's BLE radio may reduce the severity of this problem. To do this, set the `CONFIG_BT_CTLR_TX_PWR_PLUS_8` configuration value in the `.conf` file of your user config directory as such: - -``` -CONFIG_BT_CTLR_TX_PWR_PLUS_8=y -``` - -For the `nRF52840`, the value `PLUS_8` can be set to any multiple of four between `MINUS_20` and `PLUS_8`. The default value for this config is `0`, but if you are having connection issues it is recommended to set it to `PLUS_8` because the power consumption difference is negligible. For more information on changing the transmit power of your BLE device, please refer to [the Zephyr docs.](https://docs.zephyrproject.org/latest/reference/kconfig/CONFIG_BT_CTLR_TX_PWR_PLUS_8.html) diff --git a/zmk/docs/docs/user-setup.md b/zmk/docs/docs/user-setup.md deleted file mode 100644 index 4a842e41..00000000 --- a/zmk/docs/docs/user-setup.md +++ /dev/null @@ -1,200 +0,0 @@ ---- -title: Installing ZMK -sidebar_label: Installing ZMK ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Unlike other keyboard firmwares, ZMK Firmware has been built from the ground up to allow users to manage -their own keyboard configurations, including keymaps, specific hardware details, etc. all outside of the -core ZMK Firmware source repository. - -In addition to this, most users will not need to install any complicated toolchains or tools to build ZMK. GitHub Actions is used instead to automatically build the user's configured firmware for them. - -## Summary - -The following steps can be taken to obtain an installable firmware image for your device, without the need -to install any compiler or specialized toolchain. This is possible by leveraging [GitHub Actions](https://github.com/features/actions) -to build your firmware for you in the cloud, which you can then download and flash to your device. - -Following the steps in this guide, you will: - -1. Create a new repository in GitHub that will contain your user config. -1. Download and run a small shell script that will automate most of the setup. The script will: - 1. Prompt you for which board (e.g. nice!nano) and shield (e.g. Lily58 or Kyria) you want to create a configuration for. - 1. Prompt you for your GitHub username and repo where the config should be pushed. - 1. Use `git` to clone a template repository that will be the basis for your user's config repository. - 1. Use the given board and shield to update the included GitHub Action to build for the correct hardware. - 1. Commit the initial version. - 1. (If info was provided) Push the local repo to your GitHub repository. -1. Add your own keymap overlay (`keymap.overlay`) file to the repository, and change your keymap. -1. Update the configuration flags for your user config, to enable/disable any ZMK features you would like to include. -1. Commit and push the updates to trigger a new GitHub Action run. - -## Prerequisites - -The remainder of this guide assumes the following prerequisites: - -1. You have an active, working [GitHub](https://github.com/) account. -1. You have installed and configured the [`git`](https://git-scm.com/) version control tool. -1. You have locally configured git to access your github account. If using [personal access tokens](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token), please be sure it was created with the "workflow" scope option selected. - -:::note -If you need to, a quick read of [Learn The Basics Of Git In Under 10 Minutes](https://www.freecodecamp.org/news/learn-the-basics-of-git-in-under-10-minutes-da548267cc91/) will help you get started. -::: - -## GitHub Repo - -Before running the setup script, you will first need to create a new GitHub repository to host the config. - -1. Navigate to [https://github.com/new](https://github.com/new) -1. When prompted for the repo name, enter `zmk-config`. -1. The repository can be public or private -1. Do **not** check any of the options to initialize the repository with a README or other files. -1. Click "Create repository" - -## User Config Setup Script - -To start the setup process, run the following from your command line prompt: - - - - -``` -bash -c "$(curl -fsSL https://zmkfirmware.dev/setup.sh)" -``` - - - - -``` -bash -c "$(wget https://zmkfirmware.dev/setup.sh -O -)" '' --wget -``` - - - - -``` -iex ((New-Object System.Net.WebClient).DownloadString('https://zmkfirmware.dev/setup.ps1')) -``` - - - - -### MCU Board Selection - -When prompted, enter the number for the corresponding MCU board you would like to target: - -``` -MCU Board Selection: -1) nice!nano -2) QMK Proton-C -3) Quit -Pick an MCU board: -``` - -### Keyboard Shield Selection - -:::note -If you are building firmware for a new keyboard shield that is not included in the built-in -list of shields, you can choose any shield from the list that is similar to yours to generate the repository, -and edit / add necessary files according to the [guide for adding new keyboard shield](./development/new-shield). -::: - -When prompted, enter the number for the corresponding keyboard shield you would like to target: - -``` -Keyboard Shield Selection: -1) Kyria -2) Lily58 -3) Quit -Pick an keyboard: -``` - -### Keymap Customization - -At the next prompt, you have an opportunity to decide if you want the stock keymap file copied in -for further customization: - -``` -Copy in the stock keymap for customization? [Yn]: -``` - -Hit `Enter` or type `yes`/`y` to accept this. If you want to keep the stock keymap, or write a keymap -from scratch, type in `no`/`n`. - -### GitHub Details - -In order to have your new configuration automatically pushed, and then built using GitHub Actions, enter -some information about your particular GitHub info: - -``` -GitHub Username (leave empty to skip GitHub repo creation): petejohanson -GitHub Repo Name: zmk-config -GitHub Repo: https://github.com/petejohanson/zmk-config.git -``` - -Only the GitHub username is required; if you are happy with the defaults offered in the square brackets, you can simply hit `Enter`. - -### Confirming Selections - -The setup script will confirm all of your selections one last time, before performing the setup: - -``` -Preparing a user config for: -* MCU Board: nice_nano -* Shield: kyria -* GitHub Repo To Push (please create this in GH first!): https://github.com/petejohanson/zmk-config.git - -Continue? [Yn]: -``` - -After hitting `Enter` or typing `y`, the script will create an initial config in a directory named after the repo name, -update the GitHub Action YAML file, commit the initial version, and then push to your repo. - -:::info - -If you used the default GitHub repo URL using the `https://` scheme, you may be prompted for your username + password in order to -push the initial commit. - -::: - -## Installing The Firmware - -### Download The Archive - -Once the setup script is complete and the new user config repository has been pushed, GitHub will automatically run the action -to build your keyboard firmware files. You can view the actions by clicking on the "Actions" tab on your GitHub repository. - -![](./assets/user-setup/github-actions-link.png) - -Once you have loaded the Actions tab, select the top build from the list. Once you load it, the right side panel will include -a link to download the `firmware` upload: - -![](./assets/user-setup/firmware-archive.png) - -Once downloaded, extract the zip and you can verify it should contain one or more `uf2` files, which will be copied to -your keyboard. - -### Flashing UF2 Files - -To flash the firmware, first put your board into bootloader mode by double clicking the reset button (either on the MCU board itself, -or the one that is part of your keyboard). The controller should appear in your OS as a new USB storage device. - -Once this happens, copy the correct UF2 file (e.g. left or right if working on a split), and paste it onto the root of that USB mass -storage device. Once the flash is complete, the controller should automatically restart, and load your newfly flashed firmware. - -## Wirelessly Connecting Your Keyboard - -Connecting your keyboard wirelessly is the same as adding other Bluetooth devides: press the reset button and scan for devices. However, pairing and bonding is still currently being worked on to increase relability and ease of use. In addition, users have in general reported that Bluetooth pairing with computers tends to be quite finnicky. Try out the connection with your tablet or phone first, as those devices seem to work much more consistently. - -### Connecting Split Keyboard Halves - -For split keyboards, after flashing each half individually you can connect them together by resetting them at the same time. Within a few seconds of resetting, both halves should automatically connect to each other. diff --git a/zmk/docs/docusaurus.config.js b/zmk/docs/docusaurus.config.js deleted file mode 100644 index 2716039c..00000000 --- a/zmk/docs/docusaurus.config.js +++ /dev/null @@ -1,123 +0,0 @@ -module.exports = { - title: "ZMK Firmware", - tagline: "Modern, open source keyboard firmware", - url: "https://zmkfirmware.dev", - baseUrl: "/", - favicon: "img/favicon.ico", - organizationName: "zmkfirmware", // Usually your GitHub org/user name. - projectName: "zmk", // Usually your repo name. - themeConfig: { - googleAnalytics: { - trackingID: "UA-145201102-2", - anonymizeIP: true, - }, - // sidebarCollapsible: false, - navbar: { - title: "ZMK Firmware", - logo: { - alt: "ZMK Logo", - src: "img/zmk_logo.svg", - }, - items: [ - { - to: "docs/", - activeBasePath: "docs", - label: "Docs", - position: "left", - }, - { to: "blog", label: "Blog", position: "left" }, - { - href: "https://github.com/zmkfirmware/zmk", - label: "GitHub", - position: "right", - }, - ], - }, - footer: { - style: "dark", - links: [ - { - title: "Docs", - items: [ - { - label: "Getting Started", - to: "docs/", - }, - { - label: "Development", - to: "docs/development/setup/", - }, - ], - }, - { - title: "Community", - items: [ - // { - // label: "Stack Overflow", - // href: "https://stackoverflow.com/questions/tagged/docusaurus", - // }, - { - label: "Discord", - href: - (process.env.URL || "https://zmkfirmware.dev") + - "/community/discord/invite", - }, - { - label: "Twitter", - href: "https://twitter.com/ZMKFirmware", - }, - ], - }, - { - title: "More", - items: [ - { - label: "Blog", - to: "blog", - }, - { - label: "GitHub", - href: "https://github.com/zmkfirmware/zmk", - }, - { - html: ` - - Deploys by Netlify - - `, - }, - ], - }, - ], - copyright: `Copyright © ${new Date().getFullYear()} ZMK Project Contributors. Creative Commons License`, - }, - algolia: { - apiKey: "75325855fc90356828fe212d38e5ca34", - indexName: "zmkfirmware", - }, - }, - presets: [ - [ - "@docusaurus/preset-classic", - { - docs: { - // It is recommended to set document id as docs home page (`docs/` path). - sidebarPath: require.resolve("./sidebars.js"), - // Please change this to your repo. - editUrl: "https://github.com/zmkfirmware/zmk/edit/main/docs/", - }, - blog: { - showReadingTime: true, - // Please change this to your repo. - editUrl: "https://github.com/zmkfirmware/zmk/edit/main/docs/", - }, - theme: { - customCss: [ - require.resolve("./src/css/custom.css"), - require.resolve("./src/css/codes.css"), - ], - }, - }, - ], - ], -}; diff --git a/zmk/docs/netlify.toml b/zmk/docs/netlify.toml deleted file mode 100644 index 8ef5addf..00000000 --- a/zmk/docs/netlify.toml +++ /dev/null @@ -1,4 +0,0 @@ -[[redirects]] - from = "/community/discord/invite" - to = "https://discord.gg/sycytVQ" - status = 302 \ No newline at end of file diff --git a/zmk/docs/package-lock.json b/zmk/docs/package-lock.json deleted file mode 100644 index 757beb04..00000000 --- a/zmk/docs/package-lock.json +++ /dev/null @@ -1,31438 +0,0 @@ -{ - "name": "docs", - "version": "0.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "version": "0.0.0", - "dependencies": { - "@docusaurus/core": "^2.0.0-alpha.66", - "@docusaurus/preset-classic": "^2.0.0-alpha.66", - "@fortawesome/fontawesome-svg-core": "^1.2.32", - "@fortawesome/free-solid-svg-icons": "^5.15.1", - "@fortawesome/react-fontawesome": "^0.1.12", - "classnames": "^2.2.6", - "react": "^16.8.4", - "react-copy-to-clipboard": "^5.0.2", - "react-dom": "^16.8.4", - "react-toastify": "^6.0.9" - }, - "devDependencies": { - "eslint": "^7.12.0", - "eslint-config-prettier": "^6.14.0", - "eslint-plugin-mdx": "^1.8.2", - "eslint-plugin-react": "^7.21.5", - "prettier": "2.1.2" - } - }, - "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.5.1.tgz", - "integrity": "sha512-TAQHRHaCUAR0bNhUHG0CnO6FTx3EMPwZQrjPuNS6kHvCQ/H8dVD0sLsHyM8C7U4j33xPQCWi9TBnSx8cYXNmNw==", - "dependencies": { - "@algolia/cache-common": "4.5.1" - } - }, - "node_modules/@algolia/cache-common": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.5.1.tgz", - "integrity": "sha512-Sux+pcedQi9sfScIiQdl6pEaTVl712qM9OblvDhnaeF1v6lf4jyTlRTiBLP7YBLuvO1Yo54W3maf03kmz9PVhA==" - }, - "node_modules/@algolia/cache-in-memory": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.5.1.tgz", - "integrity": "sha512-fzwAtBFwveuG+E5T/namChEIvdVl0DoV3djV1C078b/JpO5+DeAwuXIJGYbyl950u170n5NEYuIwYG+R6h4lJQ==", - "dependencies": { - "@algolia/cache-common": "4.5.1" - } - }, - "node_modules/@algolia/client-account": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.5.1.tgz", - "integrity": "sha512-2WFEaI7Zf4ljnBsSAS4e+YylZ5glovm78xFg4E1JKA8PE6M+TeIgUY6HO2ouLh2dqQKxc9UfdAT1Loo/dha2iQ==", - "dependencies": { - "@algolia/client-common": "4.5.1", - "@algolia/client-search": "4.5.1", - "@algolia/transporter": "4.5.1" - } - }, - "node_modules/@algolia/client-analytics": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.5.1.tgz", - "integrity": "sha512-bTmZUU8zhZMWBeGEQ/TVqLoL3OOT0benU0HtS3iOnQURwb+AOCv3RsgZvkj2djp+M24Q6P8/L34uBJMmCurbLg==", - "dependencies": { - "@algolia/client-common": "4.5.1", - "@algolia/client-search": "4.5.1", - "@algolia/requester-common": "4.5.1", - "@algolia/transporter": "4.5.1" - } - }, - "node_modules/@algolia/client-common": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.5.1.tgz", - "integrity": "sha512-5CpIf8IK1hke7q+N4e+A4TWdFXVJ5Qwyaa0xS84DrDO8HQ7vfYbDvG1oYa9hVEtGn6c3WVKPAvuWynK+fXQQCA==", - "dependencies": { - "@algolia/requester-common": "4.5.1", - "@algolia/transporter": "4.5.1" - } - }, - "node_modules/@algolia/client-recommendation": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/client-recommendation/-/client-recommendation-4.5.1.tgz", - "integrity": "sha512-GiFrNSImoEBUQICjFBEoxPGzrjWji8PY9GeMg2CNvOYcRQ0Xt0Y36v9GN53NLjvB7QdQ2FlE1Cuv/PLUfS/aQQ==", - "dependencies": { - "@algolia/client-common": "4.5.1", - "@algolia/requester-common": "4.5.1", - "@algolia/transporter": "4.5.1" - } - }, - "node_modules/@algolia/client-search": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.5.1.tgz", - "integrity": "sha512-wjuOTte9Auo9Cg4fL0709PjeJ9rXFh4okYUrOt/2SWqQid6DSdZOp+BtyaHKV3E94sj+SlmMxkMUacYluYg5zA==", - "dependencies": { - "@algolia/client-common": "4.5.1", - "@algolia/requester-common": "4.5.1", - "@algolia/transporter": "4.5.1" - } - }, - "node_modules/@algolia/logger-common": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.5.1.tgz", - "integrity": "sha512-ZoVnGriinlLHlkvn5K7djOUn1/1IeTjU8rDzOJ3t06T+2hQytgJghaX7rSwKIeH4CjWMy61w8jLisuGJRBOEeg==" - }, - "node_modules/@algolia/logger-console": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.5.1.tgz", - "integrity": "sha512-1qa7K18+uAgxyWuguayaDS5ViiZFcOjI3J5ACBb0i/n7RsXUo149lP6mwmx6TIU7s135hT0f0TCqnvfMvN1ilA==", - "dependencies": { - "@algolia/logger-common": "4.5.1" - } - }, - "node_modules/@algolia/requester-browser-xhr": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.5.1.tgz", - "integrity": "sha512-tsQz+9pZw9dwPm/wMvZDpsWFZgmghLjXi4c3O4rfwoP/Ikum5fhle5fiR14yb4Lw4WlOQ1AJIHJvrg1qLIG8hQ==", - "dependencies": { - "@algolia/requester-common": "4.5.1" - } - }, - "node_modules/@algolia/requester-common": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.5.1.tgz", - "integrity": "sha512-bPCiLvhHKXaka7f5FLtheChToz0yHVhvza64naFJRRh/3kC0nvyrvQ0ogjiydiSrGIfdNDyyTVfKGdk4gS5gyA==" - }, - "node_modules/@algolia/requester-node-http": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.5.1.tgz", - "integrity": "sha512-BfFc2h9eQOKu1gGs3DtQO7GrVZW/rxUgpJVLja4UVQyGplJyTCrFgkTyfl+8rb3MkNgA/S2LNo7cKNSPfpqeAQ==", - "dependencies": { - "@algolia/requester-common": "4.5.1" - } - }, - "node_modules/@algolia/transporter": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.5.1.tgz", - "integrity": "sha512-asPDNToDAPhH0tM6qKGTn1l0wTlNUbekpa1ifZ6v+qhSjo3VdqGyp+2VeciJOBW/wVHXh3HUbAcycvLERRlCLg==", - "dependencies": { - "@algolia/cache-common": "4.5.1", - "@algolia/logger-common": "4.5.1", - "@algolia/requester-common": "4.5.1" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dependencies": { - "@babel/highlight": "7.10.4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.1.tgz", - "integrity": "sha512-725AQupWJZ8ba0jbKceeFblZTY90McUBWMwHhkFQ9q1zKPJ95GUktljFcgcsIVwRnTnRKlcYzfiNImg5G9m6ZQ==" - }, - "node_modules/@babel/core": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", - "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", - "dependencies": { - "@babel/code-frame": "7.10.4", - "@babel/generator": "7.12.1", - "@babel/helper-module-transforms": "7.12.1", - "@babel/helpers": "7.12.1", - "@babel/parser": "7.12.3", - "@babel/template": "7.10.4", - "@babel/traverse": "7.12.1", - "@babel/types": "7.12.1", - "convert-source-map": "1.7.0", - "debug": "4.2.0", - "gensync": "1.0.0-beta.1", - "json5": "2.1.3", - "lodash": "4.17.20", - "resolve": "1.17.0", - "semver": "5.7.1", - "source-map": "0.5.7" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "node_modules/@babel/generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", - "integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", - "dependencies": { - "@babel/types": "7.12.1", - "jsesc": "2.5.2", - "source-map": "0.5.7" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", - "dependencies": { - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", - "dependencies": { - "@babel/helper-explode-assignable-expression": "7.12.1", - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helper-builder-react-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz", - "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "7.10.4", - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helper-builder-react-jsx-experimental": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.1.tgz", - "integrity": "sha512-82to8lR7TofZWbTd3IEZT1xNHfeU/Ef4rDm/GLXddzqDh+yQ19QuGSzqww51aNxVH8rwfRIzL0EUQsvODVhtyw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "7.10.4", - "@babel/helper-module-imports": "7.12.1", - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.1.tgz", - "integrity": "sha512-jtBEif7jsPwP27GPHs06v4WBV0KrE8a/P7n0N0sSvHn2hwUCYnolP/CLmz51IzAW4NlN+HuoBtb9QcwnRo9F/g==", - "dependencies": { - "@babel/compat-data": "7.12.1", - "@babel/helper-validator-option": "7.12.1", - "browserslist": "4.14.5", - "semver": "5.7.1" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", - "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", - "dependencies": { - "@babel/helper-function-name": "7.10.4", - "@babel/helper-member-expression-to-functions": "7.12.1", - "@babel/helper-optimise-call-expression": "7.10.4", - "@babel/helper-replace-supers": "7.12.1", - "@babel/helper-split-export-declaration": "7.11.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz", - "integrity": "sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "7.10.4", - "@babel/helper-regex": "7.10.5", - "regexpu-core": "4.7.1" - } - }, - "node_modules/@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", - "dependencies": { - "@babel/helper-function-name": "7.10.4", - "@babel/types": "7.12.1", - "lodash": "4.17.20" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", - "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", - "dependencies": { - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", - "dependencies": { - "@babel/helper-get-function-arity": "7.10.4", - "@babel/template": "7.10.4", - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", - "dependencies": { - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", - "dependencies": { - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", - "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", - "dependencies": { - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.1.tgz", - "integrity": "sha512-ZeC1TlMSvikvJNy1v/wPIazCu3NdOwgYZLIkmIyAsGhqkNpiDoQQRmaCK8YP4Pq3GPTLPV9WXaPCJKvx06JxKA==", - "dependencies": { - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", - "dependencies": { - "@babel/helper-module-imports": "7.12.1", - "@babel/helper-replace-supers": "7.12.1", - "@babel/helper-simple-access": "7.12.1", - "@babel/helper-split-export-declaration": "7.11.0", - "@babel/helper-validator-identifier": "7.10.4", - "@babel/template": "7.10.4", - "@babel/traverse": "7.12.1", - "@babel/types": "7.12.1", - "lodash": "4.17.20" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", - "dependencies": { - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - }, - "node_modules/@babel/helper-regex": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", - "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", - "dependencies": { - "lodash": "4.17.20" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", - "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", - "dependencies": { - "@babel/helper-annotate-as-pure": "7.10.4", - "@babel/helper-wrap-function": "7.12.3", - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.1.tgz", - "integrity": "sha512-zJjTvtNJnCFsCXVi5rUInstLd/EIVNmIKA1Q9ynESmMBWPWd+7sdR+G4/wdu+Mppfep0XLyG2m7EBPvjCeFyrw==", - "dependencies": { - "@babel/helper-member-expression-to-functions": "7.12.1", - "@babel/helper-optimise-call-expression": "7.10.4", - "@babel/traverse": "7.12.1", - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", - "dependencies": { - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", - "dependencies": { - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", - "dependencies": { - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz", - "integrity": "sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==" - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", - "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", - "dependencies": { - "@babel/helper-function-name": "7.10.4", - "@babel/template": "7.10.4", - "@babel/traverse": "7.12.1", - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/helpers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.1.tgz", - "integrity": "sha512-9JoDSBGoWtmbay98efmT2+mySkwjzeFeAL9BuWNoVQpkPFQF8SIIFUfY5os9u8wVzglzoiPRSW7cuJmBDUt43g==", - "dependencies": { - "@babel/template": "7.10.4", - "@babel/traverse": "7.12.1", - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dependencies": { - "@babel/helper-validator-identifier": "7.10.4", - "chalk": "2.4.2", - "js-tokens": "4.0.0" - } - }, - "node_modules/@babel/highlight/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==", - "dependencies": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz", - "integrity": "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==" - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", - "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-remap-async-to-generator": "7.12.1", - "@babel/plugin-syntax-async-generators": "7.8.4" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", - "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", - "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-dynamic-import": "7.8.3" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", - "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-export-namespace-from": "7.8.3" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", - "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-json-strings": "7.8.3" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", - "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-logical-assignment-operators": "7.10.4" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", - "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "7.8.3" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.1.tgz", - "integrity": "sha512-MR7Ok+Af3OhNTCxYVjJZHS0t97ydnJZt/DbR4WISO39iDnhiD8XHrY12xuSJ90FFEGjir0Fzyyn7g/zY6hxbxA==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-numeric-separator": "7.10.4" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "@babel/plugin-transform-parameters": "7.12.1" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", - "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "7.8.3" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz", - "integrity": "sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "7.12.1", - "@babel/plugin-syntax-optional-chaining": "7.8.3" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", - "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", - "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", - "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz", - "integrity": "sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", - "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", - "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", - "dependencies": { - "@babel/helper-module-imports": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-remap-async-to-generator": "7.12.1" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", - "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz", - "integrity": "sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", - "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", - "dependencies": { - "@babel/helper-annotate-as-pure": "7.10.4", - "@babel/helper-define-map": "7.10.5", - "@babel/helper-function-name": "7.10.4", - "@babel/helper-optimise-call-expression": "7.10.4", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-replace-supers": "7.12.1", - "@babel/helper-split-export-declaration": "7.11.0", - "globals": "11.12.0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", - "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", - "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", - "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", - "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", - "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "7.10.4", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", - "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", - "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", - "dependencies": { - "@babel/helper-function-name": "7.10.4", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", - "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", - "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", - "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", - "dependencies": { - "@babel/helper-module-transforms": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "babel-plugin-dynamic-import-node": "2.3.3" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", - "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", - "dependencies": { - "@babel/helper-module-transforms": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-simple-access": "7.12.1", - "babel-plugin-dynamic-import-node": "2.3.3" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", - "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", - "dependencies": { - "@babel/helper-hoist-variables": "7.10.4", - "@babel/helper-module-transforms": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-validator-identifier": "7.10.4", - "babel-plugin-dynamic-import-node": "2.3.3" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", - "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", - "dependencies": { - "@babel/helper-module-transforms": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", - "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "7.12.1" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", - "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", - "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-replace-supers": "7.12.1" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", - "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", - "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.12.1.tgz", - "integrity": "sha512-KOHd0tIRLoER+J+8f9DblZDa1fLGPwaaN1DI1TVHuQFOpjHV22C3CUB3obeC4fexHY9nx+fH0hQNvLFFfA1mxA==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz", - "integrity": "sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.1.tgz", - "integrity": "sha512-RmKejwnT0T0QzQUzcbP5p1VWlpnP8QHtdhEtLG55ZDQnJNalbF3eeDyu3dnGKvGzFIQiBzFhBYTwvv435p9Xpw==", - "dependencies": { - "@babel/helper-builder-react-jsx": "7.10.4", - "@babel/helper-builder-react-jsx-experimental": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-jsx": "7.12.1" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.1.tgz", - "integrity": "sha512-IilcGWdN1yNgEGOrB96jbTplRh+V2Pz1EoEwsKsHfX1a/L40cUYuD71Zepa7C+ujv7kJIxnDftWeZbKNEqZjCQ==", - "dependencies": { - "@babel/helper-builder-react-jsx-experimental": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-jsx": "7.12.1" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.1.tgz", - "integrity": "sha512-FbpL0ieNWiiBB5tCldX17EtXgmzeEZjFrix72rQYeq9X6nUK38HCaxexzVQrZWXanxKJPKVVIU37gFjEQYkPkA==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.1.tgz", - "integrity": "sha512-keQ5kBfjJNRc6zZN1/nVHCd6LLIHq4aUKcVnvE/2l+ZZROSbqoiGFRtT5t3Is89XJxBQaP7NLZX2jgGHdZvvFQ==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz", - "integrity": "sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "7.10.4", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", - "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", - "dependencies": { - "regenerator-transform": "0.14.5" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", - "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz", - "integrity": "sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg==", - "dependencies": { - "@babel/helper-module-imports": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "resolve": "1.17.0", - "semver": "5.7.1" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", - "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", - "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "7.12.1" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz", - "integrity": "sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-regex": "7.10.5" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", - "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz", - "integrity": "sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz", - "integrity": "sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-typescript": "7.12.1" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", - "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", - "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1.tgz", - "integrity": "sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg==", - "dependencies": { - "@babel/compat-data": "7.12.1", - "@babel/helper-compilation-targets": "7.12.1", - "@babel/helper-module-imports": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-validator-option": "7.12.1", - "@babel/plugin-proposal-async-generator-functions": "7.12.1", - "@babel/plugin-proposal-class-properties": "7.12.1", - "@babel/plugin-proposal-dynamic-import": "7.12.1", - "@babel/plugin-proposal-export-namespace-from": "7.12.1", - "@babel/plugin-proposal-json-strings": "7.12.1", - "@babel/plugin-proposal-logical-assignment-operators": "7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "7.12.1", - "@babel/plugin-proposal-numeric-separator": "7.12.1", - "@babel/plugin-proposal-object-rest-spread": "7.12.1", - "@babel/plugin-proposal-optional-catch-binding": "7.12.1", - "@babel/plugin-proposal-optional-chaining": "7.12.1", - "@babel/plugin-proposal-private-methods": "7.12.1", - "@babel/plugin-proposal-unicode-property-regex": "7.12.1", - "@babel/plugin-syntax-async-generators": "7.8.4", - "@babel/plugin-syntax-class-properties": "7.12.1", - "@babel/plugin-syntax-dynamic-import": "7.8.3", - "@babel/plugin-syntax-export-namespace-from": "7.8.3", - "@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-top-level-await": "7.12.1", - "@babel/plugin-transform-arrow-functions": "7.12.1", - "@babel/plugin-transform-async-to-generator": "7.12.1", - "@babel/plugin-transform-block-scoped-functions": "7.12.1", - "@babel/plugin-transform-block-scoping": "7.12.1", - "@babel/plugin-transform-classes": "7.12.1", - "@babel/plugin-transform-computed-properties": "7.12.1", - "@babel/plugin-transform-destructuring": "7.12.1", - "@babel/plugin-transform-dotall-regex": "7.12.1", - "@babel/plugin-transform-duplicate-keys": "7.12.1", - "@babel/plugin-transform-exponentiation-operator": "7.12.1", - "@babel/plugin-transform-for-of": "7.12.1", - "@babel/plugin-transform-function-name": "7.12.1", - "@babel/plugin-transform-literals": "7.12.1", - "@babel/plugin-transform-member-expression-literals": "7.12.1", - "@babel/plugin-transform-modules-amd": "7.12.1", - "@babel/plugin-transform-modules-commonjs": "7.12.1", - "@babel/plugin-transform-modules-systemjs": "7.12.1", - "@babel/plugin-transform-modules-umd": "7.12.1", - "@babel/plugin-transform-named-capturing-groups-regex": "7.12.1", - "@babel/plugin-transform-new-target": "7.12.1", - "@babel/plugin-transform-object-super": "7.12.1", - "@babel/plugin-transform-parameters": "7.12.1", - "@babel/plugin-transform-property-literals": "7.12.1", - "@babel/plugin-transform-regenerator": "7.12.1", - "@babel/plugin-transform-reserved-words": "7.12.1", - "@babel/plugin-transform-shorthand-properties": "7.12.1", - "@babel/plugin-transform-spread": "7.12.1", - "@babel/plugin-transform-sticky-regex": "7.12.1", - "@babel/plugin-transform-template-literals": "7.12.1", - "@babel/plugin-transform-typeof-symbol": "7.12.1", - "@babel/plugin-transform-unicode-escapes": "7.12.1", - "@babel/plugin-transform-unicode-regex": "7.12.1", - "@babel/preset-modules": "0.1.4", - "@babel/types": "7.12.1", - "core-js-compat": "3.6.5", - "semver": "5.7.1" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", - "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-proposal-unicode-property-regex": "7.12.1", - "@babel/plugin-transform-dotall-regex": "7.12.1", - "@babel/types": "7.12.1", - "esutils": "2.0.3" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.1.tgz", - "integrity": "sha512-euCExymHCi0qB9u5fKw7rvlw7AZSjw/NaB9h7EkdTt5+yHRrXdiRTh7fkG3uBPpJg82CqLfp1LHLqWGSCrab+g==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-transform-react-display-name": "7.12.1", - "@babel/plugin-transform-react-jsx": "7.12.1", - "@babel/plugin-transform-react-jsx-development": "7.12.1", - "@babel/plugin-transform-react-jsx-self": "7.12.1", - "@babel/plugin-transform-react-jsx-source": "7.12.1", - "@babel/plugin-transform-react-pure-annotations": "7.12.1" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.1.tgz", - "integrity": "sha512-hNK/DhmoJPsksdHuI/RVrcEws7GN5eamhi28JkO52MqIxU8Z0QpmiSOQxZHWOHV7I3P4UjHV97ay4TcamMA6Kw==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-transform-typescript": "7.12.1" - } - }, - "node_modules/@babel/runtime": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz", - "integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==", - "dependencies": { - "regenerator-runtime": "0.13.7" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.1.tgz", - "integrity": "sha512-umhPIcMrlBZ2aTWlWjUseW9LjQKxi1dpFlQS8DzsxB//5K+u6GLTC/JliPKHsd5kJVPIU6X/Hy0YvWOYPcMxBw==", - "dependencies": { - "core-js-pure": "3.6.5", - "regenerator-runtime": "0.13.7" - } - }, - "node_modules/@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", - "dependencies": { - "@babel/code-frame": "7.10.4", - "@babel/parser": "7.12.3", - "@babel/types": "7.12.1" - } - }, - "node_modules/@babel/traverse": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz", - "integrity": "sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==", - "dependencies": { - "@babel/code-frame": "7.10.4", - "@babel/generator": "7.12.1", - "@babel/helper-function-name": "7.10.4", - "@babel/helper-split-export-declaration": "7.11.0", - "@babel/parser": "7.12.3", - "@babel/types": "7.12.1", - "debug": "4.2.0", - "globals": "11.12.0", - "lodash": "4.17.20" - } - }, - "node_modules/@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", - "integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", - "dependencies": { - "@babel/helper-validator-identifier": "7.10.4", - "lodash": "4.17.20", - "to-fast-properties": "2.0.0" - } - }, - "node_modules/@csstools/convert-colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", - "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==" - }, - "node_modules/@docsearch/css": { - "version": "1.0.0-alpha.28", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-1.0.0-alpha.28.tgz", - "integrity": "sha512-1AhRzVdAkrWwhaxTX6/R7SnFHz8yLz1W8I/AldlTrfbNvZs9INk1FZiEFTJdgHaP68nhgQNWSGlQiDiI3y2RYg==" - }, - "node_modules/@docsearch/react": { - "version": "1.0.0-alpha.28", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-1.0.0-alpha.28.tgz", - "integrity": "sha512-XjJOnCBXn+UZmtuDmgzlVIHnnvh6yHVwG4aFq8AXN6xJEIX3f180FvGaowFWAxgdtHplJxFGux0Xx4piHqBzIw==", - "dependencies": { - "@docsearch/css": "^1.0.0-alpha.28", - "@francoischalifour/autocomplete-core": "^1.0.0-alpha.28", - "@francoischalifour/autocomplete-preset-algolia": "^1.0.0-alpha.28", - "algoliasearch": "^4.0.0" - }, - "peerDependencies": { - "react": "^16.8.0", - "react-dom": "^16.8.0" - } - }, - "node_modules/@docusaurus/core": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-alpha.66.tgz", - "integrity": "sha512-9HKqObYoyArpzSTIDguyUXm7z54bpV3dSWSc0PbKGu0Us6zP1TiOuhRDX1diFsKyvjNy7VbCe8XH8LJIdKi5dQ==", - "dependencies": { - "@babel/core": "^7.9.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1", - "@babel/plugin-proposal-optional-chaining": "^7.10.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.9.0", - "@babel/preset-env": "^7.9.0", - "@babel/preset-react": "^7.9.4", - "@babel/preset-typescript": "^7.9.0", - "@babel/runtime": "^7.9.2", - "@babel/runtime-corejs3": "^7.10.4", - "@docusaurus/types": "2.0.0-alpha.66", - "@docusaurus/utils": "2.0.0-alpha.66", - "@docusaurus/utils-validation": "2.0.0-alpha.66", - "@endiliey/static-site-generator-webpack-plugin": "^4.0.0", - "@hapi/joi": "^17.1.1", - "@svgr/webpack": "^5.4.0", - "babel-loader": "^8.1.0", - "babel-plugin-dynamic-import-node": "^2.3.0", - "boxen": "^4.2.0", - "cache-loader": "^4.1.0", - "chalk": "^3.0.0", - "chokidar": "^3.3.0", - "commander": "^4.0.1", - "copy-webpack-plugin": "^6.0.3", - "core-js": "^2.6.5", - "css-loader": "^3.4.2", - "del": "^5.1.0", - "detect-port": "^1.3.0", - "eta": "^1.1.1", - "express": "^4.17.1", - "file-loader": "^6.0.0", - "fs-extra": "^8.1.0", - "globby": "^10.0.1", - "html-minifier-terser": "^5.0.5", - "html-tags": "^3.1.0", - "html-webpack-plugin": "^4.0.4", - "import-fresh": "^3.2.1", - "inquirer": "^7.2.0", - "is-root": "^2.1.0", - "leven": "^3.1.0", - "lodash": "^4.5.2", - "lodash.flatmap": "^4.5.0", - "lodash.has": "^4.5.2", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "mini-css-extract-plugin": "^0.8.0", - "nprogress": "^0.2.0", - "null-loader": "^3.0.0", - "optimize-css-assets-webpack-plugin": "^5.0.3", - "pnp-webpack-plugin": "^1.6.4", - "postcss-loader": "^3.0.0", - "postcss-preset-env": "^6.7.0", - "react-dev-utils": "^10.2.1", - "react-helmet": "^6.0.0-beta", - "react-loadable": "^5.5.0", - "react-loadable-ssr-addon": "^0.3.0", - "react-router": "^5.1.2", - "react-router-config": "^5.1.1", - "react-router-dom": "^5.1.2", - "resolve-pathname": "^3.0.0", - "semver": "^6.3.0", - "serve-handler": "^6.1.3", - "shelljs": "^0.8.4", - "std-env": "^2.2.1", - "terser-webpack-plugin": "^4.1.0", - "update-notifier": "^4.1.0", - "url-loader": "^4.1.0", - "wait-file": "^1.0.5", - "webpack": "^4.44.1", - "webpack-bundle-analyzer": "^3.6.1", - "webpack-dev-server": "^3.11.0", - "webpack-merge": "^4.2.2", - "webpackbar": "^4.0.0" - }, - "bin": { - "docusaurus": "bin/docusaurus.js" - }, - "engines": { - "node": ">=10.15.1" - }, - "peerDependencies": { - "react": "^16.8.4", - "react-dom": "^16.8.4" - } - }, - "node_modules/@docusaurus/mdx-loader": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-alpha.66.tgz", - "integrity": "sha512-IvtrTNeAaynEGgfCbC4CeBgO76Mu76cGogBGv8a84bYeyCOtlxOJoH6JHkJ7T/v5D6lM16qzwx5oqesZ0kZuzA==", - "dependencies": { - "@babel/parser": "^7.9.4", - "@babel/traverse": "^7.9.0", - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/utils": "2.0.0-alpha.66", - "@mdx-js/mdx": "^1.5.8", - "@mdx-js/react": "^1.5.8", - "escape-html": "^1.0.3", - "file-loader": "^6.0.0", - "fs-extra": "^8.1.0", - "github-slugger": "^1.3.0", - "gray-matter": "^4.0.2", - "loader-utils": "^1.2.3", - "mdast-util-to-string": "^1.1.0", - "remark-emoji": "^2.1.0", - "stringify-object": "^3.3.0", - "unist-util-visit": "^2.0.2", - "url-loader": "^4.1.0" - }, - "engines": { - "node": ">=10.15.1" - } - }, - "node_modules/@docusaurus/mdx-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/@docusaurus/mdx-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-blog": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-alpha.66.tgz", - "integrity": "sha512-voK5ZUZcUn5blIDakYNKQ42wPMZLfrZnvEJuwh/8S/W1oNbPN935NBu9vL23fHEmp9L2MGykAdaCmev0Su04yQ==", - "dependencies": { - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/mdx-loader": "2.0.0-alpha.66", - "@docusaurus/types": "2.0.0-alpha.66", - "@docusaurus/utils": "2.0.0-alpha.66", - "@docusaurus/utils-validation": "2.0.0-alpha.66", - "@hapi/joi": "^17.1.1", - "chalk": "^3.0.0", - "feed": "^4.1.0", - "fs-extra": "^8.1.0", - "globby": "^10.0.1", - "loader-utils": "^1.2.3", - "lodash": "^4.5.2", - "reading-time": "^1.2.0", - "remark-admonitions": "^1.2.1", - "webpack": "^4.44.1" - }, - "engines": { - "node": ">=10.15.1" - }, - "peerDependencies": { - "react": "^16.8.4", - "react-dom": "^16.8.4" - } - }, - "node_modules/@docusaurus/plugin-content-blog/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/@docusaurus/plugin-content-blog/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-alpha.66.tgz", - "integrity": "sha512-jvFKJR7BgjIq6xdmPg+7d2DS1fBeuIfmRTtB/apgfIW8NWO5N0DRYXOj0lgpw/ICwW//o8cLbrN+jkLlzTV/eg==", - "dependencies": { - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/mdx-loader": "2.0.0-alpha.66", - "@docusaurus/types": "2.0.0-alpha.66", - "@docusaurus/utils": "2.0.0-alpha.66", - "@docusaurus/utils-validation": "2.0.0-alpha.66", - "@hapi/joi": "17.1.1", - "chalk": "^3.0.0", - "execa": "^3.4.0", - "fs-extra": "^8.1.0", - "globby": "^10.0.1", - "import-fresh": "^3.2.1", - "loader-utils": "^1.2.3", - "lodash": "^4.17.19", - "lodash.flatmap": "^4.5.0", - "lodash.groupby": "^4.6.0", - "lodash.pick": "^4.4.0", - "lodash.pickby": "^4.6.0", - "lodash.sortby": "^4.6.0", - "remark-admonitions": "^1.2.1", - "shelljs": "^0.8.4", - "utility-types": "^3.10.0", - "webpack": "^4.44.1" - }, - "engines": { - "node": ">=10.15.1" - }, - "peerDependencies": { - "react": "^16.8.4", - "react-dom": "^16.8.4" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/execa": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", - "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": "^8.12.0 || >=9.7.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/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==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@docusaurus/plugin-content-pages": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-alpha.66.tgz", - "integrity": "sha512-mY26Aeb/Wf+NFLy70YvXgdLTB+2iPN0SKOVKYwgg6ZN7Nm2kPwEpSVRq2iwiqlWk2G/vOM+ADm99Gxvm3kS61A==", - "dependencies": { - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/mdx-loader": "2.0.0-alpha.66", - "@docusaurus/types": "2.0.0-alpha.66", - "@docusaurus/utils": "2.0.0-alpha.66", - "@docusaurus/utils-validation": "2.0.0-alpha.66", - "@hapi/joi": "17.1.1", - "globby": "^10.0.1", - "loader-utils": "^1.2.3", - "minimatch": "^3.0.4", - "remark-admonitions": "^1.2.1", - "slash": "^3.0.0", - "webpack": "^4.44.1" - }, - "engines": { - "node": ">=10.15.1" - }, - "peerDependencies": { - "react": "^16.8.4", - "react-dom": "^16.8.4" - } - }, - "node_modules/@docusaurus/plugin-content-pages/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/@docusaurus/plugin-content-pages/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/@docusaurus/plugin-debug": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-alpha.66.tgz", - "integrity": "sha512-9AZaEUxaY0CDOCWXQMfY3TzG79HkquZlVeJOZaA6IvCoK/Oq3B58TMNLiQyA6TA2DYf5ZYQorLJaMd02x5qBQw==", - "dependencies": { - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/types": "2.0.0-alpha.66", - "@docusaurus/utils": "2.0.0-alpha.66", - "react-json-view": "^1.19.1" - }, - "engines": { - "node": ">=10.15.1" - }, - "peerDependencies": { - "react": "^16.8.4", - "react-dom": "^16.8.4" - } - }, - "node_modules/@docusaurus/plugin-google-analytics": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-alpha.66.tgz", - "integrity": "sha512-HVWRLHtlQYpVqH3MHloUmktJMXt7oMDQzBlKzrwAMiWUK1oXFX35DrKjTt2SE2SADpObnwWFjo0E71YT0ApQLw==", - "dependencies": { - "@docusaurus/core": "2.0.0-alpha.66" - }, - "engines": { - "node": ">=10.15.1" - } - }, - "node_modules/@docusaurus/plugin-google-gtag": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-alpha.66.tgz", - "integrity": "sha512-MVnzApLSQaC38nVS+A/WkXEV4kHeX6Q/KM2DqkLeovNWLBtkQ0aHL3bvn1clAEmB33Pia0v93mzG+I1+9mrquA==", - "dependencies": { - "@docusaurus/core": "2.0.0-alpha.66" - }, - "engines": { - "node": ">=10.15.1" - } - }, - "node_modules/@docusaurus/plugin-sitemap": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-alpha.66.tgz", - "integrity": "sha512-ztDevVIREyq8g+QhSGpDqscVqtubcPnEE3a4JwWSALQ2D6JscIxg897axwZSZNUMxrHBuXRjOEYOtVb/O/stVg==", - "dependencies": { - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/types": "2.0.0-alpha.66", - "@hapi/joi": "17.1.1", - "fs-extra": "^8.1.0", - "sitemap": "^3.2.2" - }, - "engines": { - "node": ">=10.15.1" - } - }, - "node_modules/@docusaurus/preset-classic": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.0.0-alpha.66.tgz", - "integrity": "sha512-FjxjchzUS6vOUSr9Pc5kqOSQAnc+cAYsR4pTlqwD2uOJcZMr2vQ6jeKbJnhEmUYwAvzdKOVnCndnxbA+Ii8L3w==", - "dependencies": { - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/plugin-content-blog": "2.0.0-alpha.66", - "@docusaurus/plugin-content-docs": "2.0.0-alpha.66", - "@docusaurus/plugin-content-pages": "2.0.0-alpha.66", - "@docusaurus/plugin-debug": "2.0.0-alpha.66", - "@docusaurus/plugin-google-analytics": "2.0.0-alpha.66", - "@docusaurus/plugin-google-gtag": "2.0.0-alpha.66", - "@docusaurus/plugin-sitemap": "2.0.0-alpha.66", - "@docusaurus/theme-classic": "2.0.0-alpha.66", - "@docusaurus/theme-search-algolia": "2.0.0-alpha.66" - }, - "engines": { - "node": ">=10.15.1" - }, - "peerDependencies": { - "react": "^16.8.4", - "react-dom": "^16.8.4" - } - }, - "node_modules/@docusaurus/theme-classic": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.0.0-alpha.66.tgz", - "integrity": "sha512-WsWqzfzA2gIF5TUMGSbiAeDeNZtKvsgymTQzalcwyhyT/QI0ywcag+03Bmjeq4H3PTC3qU+tkhddO2Rh5w/YCw==", - "dependencies": { - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/plugin-content-blog": "2.0.0-alpha.66", - "@docusaurus/plugin-content-docs": "2.0.0-alpha.66", - "@docusaurus/plugin-content-pages": "2.0.0-alpha.66", - "@docusaurus/types": "2.0.0-alpha.66", - "@docusaurus/utils-validation": "2.0.0-alpha.66", - "@hapi/joi": "^17.1.1", - "@mdx-js/mdx": "^1.5.8", - "@mdx-js/react": "^1.5.8", - "@types/react-toggle": "^4.0.2", - "clsx": "^1.1.1", - "copy-text-to-clipboard": "^2.2.0", - "infima": "0.2.0-alpha.13", - "lodash": "^4.17.19", - "parse-numeric-range": "^0.0.2", - "prism-react-renderer": "^1.1.0", - "prismjs": "^1.20.0", - "prop-types": "^15.7.2", - "react-router-dom": "^5.1.2", - "react-toggle": "^4.1.1" - }, - "engines": { - "node": ">=10.15.1" - }, - "peerDependencies": { - "react": "^16.8.4", - "react-dom": "^16.8.4" - } - }, - "node_modules/@docusaurus/theme-search-algolia": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-alpha.66.tgz", - "integrity": "sha512-5k/Fwt81Gyjv9vPE+gO8mraEHx5IqEmHLwqld5yXj7yix5XrxywkaanHqC0cFJG4MFUBgF6vNjJC8CtfLnT4Tw==", - "dependencies": { - "@docsearch/react": "^1.0.0-alpha.27", - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/utils": "2.0.0-alpha.66", - "@hapi/joi": "^17.1.1", - "algoliasearch": "^4.0.0", - "algoliasearch-helper": "^3.1.1", - "clsx": "^1.1.1", - "eta": "^1.1.1", - "lodash": "^4.17.19" - }, - "engines": { - "node": ">=10.15.1" - }, - "peerDependencies": { - "react": "^16.8.4", - "react-dom": "^16.8.4" - } - }, - "node_modules/@docusaurus/types": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.0.0-alpha.66.tgz", - "integrity": "sha512-Zd2Kguw0+3faifr83ruIV4i/+KqfqM+zK3DpqCBxdtkP+ORLKbgsIQ48fJ40OOhQrvl38Ay4E+1w7USrrkj4Qg==", - "dependencies": { - "@types/webpack": "^4.41.0", - "commander": "^4.0.1", - "querystring": "0.2.0", - "webpack-merge": "^4.2.2" - } - }, - "node_modules/@docusaurus/utils": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.0.0-alpha.66.tgz", - "integrity": "sha512-47jGB+Z3YVM6Xf1hxyNbJLMmc1qoTLmfwSf7NseKSkpjucbc5Ueivr+oVYp5yWoZw5sT5bObmdJYfJoD/RrbOg==", - "dependencies": { - "escape-string-regexp": "^2.0.0", - "fs-extra": "^8.1.0", - "gray-matter": "^4.0.2", - "lodash.camelcase": "^4.3.0", - "lodash.kebabcase": "^4.1.1", - "resolve-pathname": "^3.0.0" - }, - "engines": { - "node": ">=10.15.1" - } - }, - "node_modules/@docusaurus/utils-validation": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.0.0-alpha.66.tgz", - "integrity": "sha512-vlenwY3THondey21x1qAUZyDz9qiG7ec2CBM9HgY1Ns8XhrKah9zz7TEGXjqM9lhqMQQRkvcCcveti9EXR0fcA==", - "dependencies": { - "@docusaurus/utils": "2.0.0-alpha.66", - "@hapi/joi": "17.1.1", - "chalk": "^3.0.0" - }, - "engines": { - "node": ">=10.15.1" - } - }, - "node_modules/@docusaurus/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@emotion/cache": { - "version": "10.0.29", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz", - "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==", - "dev": true, - "optional": true, - "dependencies": { - "@emotion/sheet": "0.9.4", - "@emotion/stylis": "0.8.5", - "@emotion/utils": "0.11.3", - "@emotion/weak-memoize": "0.2.5" - } - }, - "node_modules/@emotion/core": { - "version": "10.0.35", - "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.35.tgz", - "integrity": "sha512-sH++vJCdk025fBlRZSAhkRlSUoqSqgCzYf5fMOmqqi3bM6how+sQpg3hkgJonj8GxXM4WbD7dRO+4tegDB9fUw==", - "dev": true, - "optional": true, - "dependencies": { - "@babel/runtime": "^7.5.5", - "@emotion/cache": "^10.0.27", - "@emotion/css": "^10.0.27", - "@emotion/serialize": "^0.11.15", - "@emotion/sheet": "0.9.4", - "@emotion/utils": "0.11.3" - }, - "peerDependencies": { - "react": ">=16.3.0" - } - }, - "node_modules/@emotion/css": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz", - "integrity": "sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==", - "dev": true, - "optional": true, - "dependencies": { - "@emotion/serialize": "^0.11.15", - "@emotion/utils": "0.11.3", - "babel-plugin-emotion": "^10.0.27" - } - }, - "node_modules/@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", - "dev": true, - "optional": true - }, - "node_modules/@emotion/is-prop-valid": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", - "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", - "dev": true, - "optional": true, - "dependencies": { - "@emotion/memoize": "0.7.4" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "dev": true, - "optional": true - }, - "node_modules/@emotion/serialize": { - "version": "0.11.16", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", - "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", - "dev": true, - "optional": true, - "dependencies": { - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/unitless": "0.7.5", - "@emotion/utils": "0.11.3", - "csstype": "^2.5.7" - } - }, - "node_modules/@emotion/serialize/node_modules/csstype": { - "version": "2.6.13", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.13.tgz", - "integrity": "sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A==", - "dev": true, - "optional": true - }, - "node_modules/@emotion/sheet": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", - "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==", - "dev": true, - "optional": true - }, - "node_modules/@emotion/styled": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.0.27.tgz", - "integrity": "sha512-iK/8Sh7+NLJzyp9a5+vIQIXTYxfT4yB/OJbjzQanB2RZpvmzBQOHZWhpAMZWYEKRNNbsD6WfBw5sVWkb6WzS/Q==", - "dev": true, - "optional": true, - "dependencies": { - "@emotion/styled-base": "^10.0.27", - "babel-plugin-emotion": "^10.0.27" - }, - "peerDependencies": { - "@emotion/core": "^10.0.27", - "react": ">=16.3.0" - } - }, - "node_modules/@emotion/styled-base": { - "version": "10.0.31", - "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.0.31.tgz", - "integrity": "sha512-wTOE1NcXmqMWlyrtwdkqg87Mu6Rj1MaukEoEmEkHirO5IoHDJ8LgCQL4MjJODgxWxXibGR3opGp1p7YvkNEdXQ==", - "dev": true, - "optional": true, - "dependencies": { - "@babel/runtime": "^7.5.5", - "@emotion/is-prop-valid": "0.8.8", - "@emotion/serialize": "^0.11.15", - "@emotion/utils": "0.11.3" - }, - "peerDependencies": { - "@emotion/core": "^10.0.28", - "react": ">=16.3.0" - } - }, - "node_modules/@emotion/stylis": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==", - "dev": true, - "optional": true - }, - "node_modules/@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", - "dev": true, - "optional": true - }, - "node_modules/@emotion/utils": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", - "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==", - "dev": true, - "optional": true - }, - "node_modules/@emotion/weak-memoize": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", - "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==", - "dev": true, - "optional": true - }, - "node_modules/@endiliey/static-site-generator-webpack-plugin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@endiliey/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.0.tgz", - "integrity": "sha512-3MBqYCs30qk1OBRC697NqhGouYbs71D1B8hrk/AFJC6GwF2QaJOQZtA1JYAaGSe650sZ8r5ppRTtCRXepDWlng==", - "dependencies": { - "bluebird": "3.7.2", - "cheerio": "0.22.0", - "eval": "0.1.4", - "url": "0.11.0", - "webpack-sources": "1.4.3" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.0.tgz", - "integrity": "sha512-+cIGPCBdLCzqxdtwppswP+zTsH9BOIGzAeKfBIbtb4gW/giMlfMwP0HUSFfhzh20f9u8uZ8hOp62+4GPquTbwQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "lodash": "^4.17.19", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "dependencies": { - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@fortawesome/fontawesome-common-types": { - "version": "0.2.32", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.32.tgz", - "integrity": "sha512-ux2EDjKMpcdHBVLi/eWZynnPxs0BtFVXJkgHIxXRl+9ZFaHPvYamAfCzeeQFqHRjuJtX90wVnMRaMQAAlctz3w==", - "hasInstallScript": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/fontawesome-svg-core": { - "version": "1.2.32", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.32.tgz", - "integrity": "sha512-XjqyeLCsR/c/usUpdWcOdVtWFVjPbDFBTQkn2fQRrWhhUoxriQohO2RWDxLyUM8XpD+Zzg5xwJ8gqTYGDLeGaQ==", - "hasInstallScript": true, - "dependencies": { - "@fortawesome/fontawesome-common-types": "^0.2.32" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/free-solid-svg-icons": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.1.tgz", - "integrity": "sha512-EFMuKtzRMNbvjab/SvJBaOOpaqJfdSap/Nl6hst7CgrJxwfORR1drdTV6q1Ib/JVzq4xObdTDcT6sqTaXMqfdg==", - "hasInstallScript": true, - "dependencies": { - "@fortawesome/fontawesome-common-types": "^0.2.32" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/react-fontawesome": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.12.tgz", - "integrity": "sha512-kV6HtqotM3K4YIXlTVvomuIi6QgGCvYm++ImyEx2wwgmSppZ6kbbA29ASwjAUBD63j2OFU0yoxeXpZkjrrX0qQ==", - "dependencies": { - "prop-types": "^15.7.2" - }, - "peerDependencies": { - "@fortawesome/fontawesome-svg-core": "^1.2.20", - "react": ">=16.x" - } - }, - "node_modules/@francoischalifour/autocomplete-core": { - "version": "1.0.0-alpha.28", - "resolved": "https://registry.npmjs.org/@francoischalifour/autocomplete-core/-/autocomplete-core-1.0.0-alpha.28.tgz", - "integrity": "sha512-rL9x+72btViw+9icfBKUJjZj87FgjFrD2esuTUqtj4RAX3s4AuVZiN8XEsfjQBSc6qJk31cxlvqZHC/BIyYXgg==" - }, - "node_modules/@francoischalifour/autocomplete-preset-algolia": { - "version": "1.0.0-alpha.28", - "resolved": "https://registry.npmjs.org/@francoischalifour/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.0.0-alpha.28.tgz", - "integrity": "sha512-bprfNmYt1opFUFEtD2XfY/kEsm13bzHQgU80uMjhuK0DJ914IjolT1GytpkdM6tJ4MBvyiJPP+bTtWO+BZ7c7w==" - }, - "node_modules/@hapi/address": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", - "integrity": "sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==", - "dependencies": { - "@hapi/hoek": "9.1.0" - } - }, - "node_modules/@hapi/bourne": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", - "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" - }, - "node_modules/@hapi/formula": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", - "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" - }, - "node_modules/@hapi/hoek": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", - "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" - }, - "node_modules/@hapi/joi": { - "version": "17.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", - "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", - "dependencies": { - "@hapi/address": "4.1.0", - "@hapi/formula": "2.0.0", - "@hapi/hoek": "9.1.0", - "@hapi/pinpoint": "2.0.0", - "@hapi/topo": "5.0.0" - } - }, - "node_modules/@hapi/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" - }, - "node_modules/@hapi/topo": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", - "dependencies": { - "@hapi/hoek": "9.1.0" - } - }, - "node_modules/@mdx-js/mdx": { - "version": "1.6.19", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.19.tgz", - "integrity": "sha512-L3eLhEFnV/2bcb9XwOegsRmLHd1oEDQPtTBVezhptQ5U1YM+/WQNzx1apjzVTAyukwOanUXnTUMjRUtqJNgFCg==", - "dependencies": { - "@babel/core": "7.11.6", - "@babel/plugin-syntax-jsx": "7.10.4", - "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "@mdx-js/util": "1.6.19", - "babel-plugin-apply-mdx-type-prop": "1.6.19", - "babel-plugin-extract-import-names": "1.6.19", - "camelcase-css": "2.0.1", - "detab": "2.0.3", - "hast-util-raw": "6.0.1", - "lodash.uniq": "4.5.0", - "mdast-util-to-hast": "9.1.1", - "remark-footnotes": "2.0.0", - "remark-mdx": "1.6.19", - "remark-parse": "8.0.3", - "remark-squeeze-paragraphs": "4.0.0", - "style-to-object": "0.3.0", - "unified": "9.2.0", - "unist-builder": "2.0.3", - "unist-util-visit": "2.0.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/mdx/node_modules/@babel/core": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz", - "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.6", - "@babel/helper-module-transforms": "^7.11.0", - "@babel/helpers": "^7.10.4", - "@babel/parser": "^7.11.5", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.11.5", - "@babel/types": "^7.11.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@mdx-js/mdx/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", - "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@mdx-js/mdx/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@mdx-js/react": { - "version": "1.6.19", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.19.tgz", - "integrity": "sha512-RS37Tagqyp2R0XFPoUZeSbZC5uJQRPhqOHWeT1LEwxESjMWb3VORHz7E827ldeQr3UW6VEQEyq/THegu+bLj6A==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "react": "^16.13.1" - } - }, - "node_modules/@mdx-js/util": { - "version": "1.6.19", - "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.19.tgz", - "integrity": "sha512-bkkQNSHz3xSr3KRHUQ2Qk2XhewvvXAOUqjIUKwcQuL4ijOA4tUHZfUgXExi5CpMysrX7izcsyICtXjZHlfJUjg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dependencies": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", - "dependencies": { - "@nodelib/fs.stat": "2.0.3", - "run-parallel": "1.1.9" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.3", - "fastq": "1.8.0" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", - "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", - "dependencies": { - "mkdirp": "1.0.4" - } - }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "node_modules/@styled-system/background": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/background/-/background-5.1.2.tgz", - "integrity": "sha512-jtwH2C/U6ssuGSvwTN3ri/IyjdHb8W9X/g8Y0JLcrH02G+BW3OS8kZdHphF1/YyRklnrKrBT2ngwGUK6aqqV3A==", - "dev": true, - "optional": true, - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/border": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@styled-system/border/-/border-5.1.5.tgz", - "integrity": "sha512-JvddhNrnhGigtzWRCVuAHepniyVi6hBlimxWDVAdcTuk7aRn9BYJUwfHslURtwYFsF5FoEs8Zmr1oZq2M1AP0A==", - "dev": true, - "optional": true, - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/color": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/color/-/color-5.1.2.tgz", - "integrity": "sha512-1kCkeKDZkt4GYkuFNKc7vJQMcOmTl3bJY3YBUs7fCNM6mMYJeT1pViQ2LwBSBJytj3AB0o4IdLBoepgSgGl5MA==", - "dev": true, - "optional": true, - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/core": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/core/-/core-5.1.2.tgz", - "integrity": "sha512-XclBDdNIy7OPOsN4HBsawG2eiWfCcuFt6gxKn1x4QfMIgeO6TOlA2pZZ5GWZtIhCUqEPTgIBta6JXsGyCkLBYw==", - "dev": true, - "optional": true, - "dependencies": { - "object-assign": "^4.1.1" - } - }, - "node_modules/@styled-system/css": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@styled-system/css/-/css-5.1.5.tgz", - "integrity": "sha512-XkORZdS5kypzcBotAMPBoeckDs9aSZVkvrAlq5K3xP8IMAUek+x2O4NtwoSgkYkWWzVBu6DGdFZLR790QWGG+A==", - "dev": true, - "optional": true - }, - "node_modules/@styled-system/flexbox": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/flexbox/-/flexbox-5.1.2.tgz", - "integrity": "sha512-6hHV52+eUk654Y1J2v77B8iLeBNtc+SA3R4necsu2VVinSD7+XY5PCCEzBFaWs42dtOEDIa2lMrgL0YBC01mDQ==", - "dev": true, - "optional": true, - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/grid": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/grid/-/grid-5.1.2.tgz", - "integrity": "sha512-K3YiV1KyHHzgdNuNlaw8oW2ktMuGga99o1e/NAfTEi5Zsa7JXxzwEnVSDSBdJC+z6R8WYTCYRQC6bkVFcvdTeg==", - "dev": true, - "optional": true, - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/layout": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/layout/-/layout-5.1.2.tgz", - "integrity": "sha512-wUhkMBqSeacPFhoE9S6UF3fsMEKFv91gF4AdDWp0Aym1yeMPpqz9l9qS/6vjSsDPF7zOb5cOKC3tcKKOMuDCPw==", - "dev": true, - "optional": true, - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/position": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/position/-/position-5.1.2.tgz", - "integrity": "sha512-60IZfMXEOOZe3l1mCu6sj/2NAyUmES2kR9Kzp7s2D3P4qKsZWxD1Se1+wJvevb+1TP+ZMkGPEYYXRyU8M1aF5A==", - "dev": true, - "optional": true, - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/shadow": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/shadow/-/shadow-5.1.2.tgz", - "integrity": "sha512-wqniqYb7XuZM7K7C0d1Euxc4eGtqEe/lvM0WjuAFsQVImiq6KGT7s7is+0bNI8O4Dwg27jyu4Lfqo/oIQXNzAg==", - "dev": true, - "optional": true, - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/should-forward-prop": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@styled-system/should-forward-prop/-/should-forward-prop-5.1.5.tgz", - "integrity": "sha512-+rPRomgCGYnUIaFabDoOgpSDc4UUJ1KsmlnzcEp0tu5lFrBQKgZclSo18Z1URhaZm7a6agGtS5Xif7tuC2s52Q==", - "dev": true, - "optional": true, - "dependencies": { - "@emotion/is-prop-valid": "^0.8.1", - "@emotion/memoize": "^0.7.1", - "styled-system": "^5.1.5" - } - }, - "node_modules/@styled-system/space": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/space/-/space-5.1.2.tgz", - "integrity": "sha512-+zzYpR8uvfhcAbaPXhH8QgDAV//flxqxSjHiS9cDFQQUSznXMQmxJegbhcdEF7/eNnJgHeIXv1jmny78kipgBA==", - "dev": true, - "optional": true, - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/typography": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/typography/-/typography-5.1.2.tgz", - "integrity": "sha512-BxbVUnN8N7hJ4aaPOd7wEsudeT7CxarR+2hns8XCX1zp0DFfbWw4xYa/olA0oQaqx7F1hzDg+eRaGzAJbF+jOg==", - "dev": true, - "optional": true, - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/variant": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@styled-system/variant/-/variant-5.1.5.tgz", - "integrity": "sha512-Yn8hXAFoWIro8+Q5J8YJd/mP85Teiut3fsGVR9CAxwgNfIAiqlYxsk5iHU7VHJks/0KjL4ATSjmbtCDC/4l1qw==", - "dev": true, - "optional": true, - "dependencies": { - "@styled-system/core": "^5.1.2", - "@styled-system/css": "^5.1.5" - } - }, - "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==" - }, - "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==" - }, - "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==" - }, - "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==" - }, - "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==" - }, - "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==" - }, - "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==" - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.4.0.tgz", - "integrity": "sha512-zLl4Fl3NvKxxjWNkqEcpdSOpQ3LGVH2BNFQ6vjaK6sFo2IrSznrhURIPI0HAphKiiIwNYjAfE0TNoQDSZv0U9A==" - }, - "node_modules/@svgr/babel-preset": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.4.0.tgz", - "integrity": "sha512-Gyx7cCxua04DBtyILTYdQxeO/pwfTBev6+eXTbVbxe4HTGhOUW6yo7PSbG2p6eJMl44j6XSequ0ZDP7bl0nu9A==", - "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.4.0" - } - }, - "node_modules/@svgr/core": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.4.0.tgz", - "integrity": "sha512-hWGm1DCCvd4IEn7VgDUHYiC597lUYhFau2lwJBYpQWDirYLkX4OsXu9IslPgJ9UpP7wsw3n2Ffv9sW7SXJVfqQ==", - "dependencies": { - "@svgr/plugin-jsx": "5.4.0", - "camelcase": "6.1.0", - "cosmiconfig": "6.0.0" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.4.0.tgz", - "integrity": "sha512-+U0TZZpPsP2V1WvVhqAOSTk+N+CjYHdZx+x9UBa1eeeZDXwH8pt0CrQf2+SvRl/h2CAPRFkm+Ey96+jKP8Bsgg==", - "dependencies": { - "@babel/types": "7.12.1" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.4.0.tgz", - "integrity": "sha512-SGzO4JZQ2HvGRKDzRga9YFSqOqaNrgLlQVaGvpZ2Iht2gwRp/tq+18Pvv9kS9ZqOMYgyix2LLxZMY1LOe9NPqw==", - "dependencies": { - "@babel/core": "7.12.3", - "@svgr/babel-preset": "5.4.0", - "@svgr/hast-util-to-babel-ast": "5.4.0", - "svg-parser": "2.0.4" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.4.0.tgz", - "integrity": "sha512-3Cgv3aYi1l6SHyzArV9C36yo4kgwVdF3zPQUC6/aCDUeXAofDYwE5kk3e3oT5ZO2a0N3lB+lLGvipBG6lnG8EA==", - "dependencies": { - "cosmiconfig": "6.0.0", - "merge-deep": "3.0.2", - "svgo": "1.3.2" - } - }, - "node_modules/@svgr/webpack": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.4.0.tgz", - "integrity": "sha512-LjepnS/BSAvelnOnnzr6Gg0GcpLmnZ9ThGFK5WJtm1xOqdBE/1IACZU7MMdVzjyUkfFqGz87eRE4hFaSLiUwYg==", - "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.1", - "@svgr/core": "5.4.0", - "@svgr/plugin-jsx": "5.4.0", - "@svgr/plugin-svgo": "5.4.0", - "loader-utils": "2.0.0" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dependencies": { - "defer-to-connect": "1.1.3" - } - }, - "node_modules/@types/anymatch": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", - "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==" - }, - "node_modules/@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", - "dependencies": { - "@types/minimatch": "3.0.3", - "@types/node": "14.11.10" - } - }, - "node_modules/@types/hast": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.1.tgz", - "integrity": "sha512-viwwrB+6xGzw+G1eWpF9geV3fnsDgXqHG+cqgiHrvQfDUW5hzhCyV7Sy3UJxhfRFBsgky2SSW33qi/YrIkjX5Q==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==" - }, - "node_modules/@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==" - }, - "node_modules/@types/mdast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz", - "integrity": "sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" - }, - "node_modules/@types/node": { - "version": "14.11.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.10.tgz", - "integrity": "sha512-yV1nWZPlMFpoXyoknm4S56y2nlTAuFYaJuQtYRAOU7xA/FJ9RY0Xm7QOkaYMMmr8ESdHIuUb6oQgR/0+2NqlyA==" - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - }, - "node_modules/@types/parse5": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", - "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" - }, - "node_modules/@types/prop-types": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" - }, - "node_modules/@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" - }, - "node_modules/@types/react": { - "version": "16.9.53", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.53.tgz", - "integrity": "sha512-4nW60Sd4L7+WMXH1D6jCdVftuW7j4Za6zdp6tJ33Rqv0nk1ZAmQKML9ZLD4H0dehA3FZxXR/GM8gXplf82oNGw==", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-toggle": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/react-toggle/-/react-toggle-4.0.2.tgz", - "integrity": "sha512-sHqfoKFnL0YU2+OC4meNEC8Ptx9FE8/+nFeFvNcdBa6ANA8KpAzj3R9JN8GtrvlLgjKDoYgI7iILgXYcTPo2IA==", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==" - }, - "node_modules/@types/tapable": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", - "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==" - }, - "node_modules/@types/uglify-js": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.11.0.tgz", - "integrity": "sha512-I0Yd8TUELTbgRHq2K65j8rnDPAzAP+DiaF/syLem7yXwYLsHZhPd+AM2iXsWmf9P2F2NlFCgl5erZPQx9IbM9Q==", - "dependencies": { - "source-map": "0.6.1" - } - }, - "node_modules/@types/uglify-js/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==" - }, - "node_modules/@types/unist": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", - "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==" - }, - "node_modules/@types/webpack": { - "version": "4.41.22", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.22.tgz", - "integrity": "sha512-JQDJK6pj8OMV9gWOnN1dcLCyU9Hzs6lux0wBO4lr1+gyEhIBR9U3FMrz12t2GPkg110XAxEAw2WHF6g7nZIbRQ==", - "dependencies": { - "@types/anymatch": "1.3.1", - "@types/node": "14.11.10", - "@types/tapable": "1.0.6", - "@types/uglify-js": "3.11.0", - "@types/webpack-sources": "2.0.0", - "source-map": "0.6.1" - } - }, - "node_modules/@types/webpack-sources": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.0.0.tgz", - "integrity": "sha512-a5kPx98CNFRKQ+wqawroFunvFqv7GHm/3KOI52NY9xWADgc8smu4R6prt4EU/M4QfVjvgBkMqU4fBhw3QfMVkg==", - "dependencies": { - "@types/node": "14.11.10", - "@types/source-list-map": "0.1.2", - "source-map": "0.7.3" - } - }, - "node_modules/@types/webpack-sources/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - }, - "node_modules/@types/webpack/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==" - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" - }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dependencies": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" - }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "dependencies": { - "@xtuc/ieee754": "1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@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==" - }, - "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==" - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dependencies": { - "mime-types": "2.1.27", - "negotiator": "0.6.2" - } - }, - "node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" - }, - "node_modules/acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" - }, - "node_modules/address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "2.2.0", - "indent-string": "4.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "3.1.3", - "fast-json-stable-stringify": "2.1.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.4.0" - } - }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" - }, - "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==" - }, - "node_modules/algoliasearch": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.5.1.tgz", - "integrity": "sha512-b6yT1vWMlBdVObQipKxvt0M6SEvGetVj+FFFlo0Fy06gkdj6WCJaS4t10Q/hC3I2VG9QmpCqlK3Esgg1y1E+uw==", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.5.1", - "@algolia/cache-common": "4.5.1", - "@algolia/cache-in-memory": "4.5.1", - "@algolia/client-account": "4.5.1", - "@algolia/client-analytics": "4.5.1", - "@algolia/client-common": "4.5.1", - "@algolia/client-recommendation": "4.5.1", - "@algolia/client-search": "4.5.1", - "@algolia/logger-common": "4.5.1", - "@algolia/logger-console": "4.5.1", - "@algolia/requester-browser-xhr": "4.5.1", - "@algolia/requester-common": "4.5.1", - "@algolia/requester-node-http": "4.5.1", - "@algolia/transporter": "4.5.1" - } - }, - "node_modules/algoliasearch-helper": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.2.2.tgz", - "integrity": "sha512-/3XvE33R+gQKaiPdy3nmHYqhF8hqIu8xnlOicVxb1fD6uMFmxW8rGLzzrRfsPfxgAfm+c1NslLb3TzQVIB8aVA==", - "dependencies": { - "events": "^1.1.1" - }, - "peerDependencies": { - "algoliasearch": ">= 3.1 < 5" - } - }, - "node_modules/algoliasearch-helper/node_modules/events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" - }, - "node_modules/ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dependencies": { - "string-width": "3.1.0" - } - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dependencies": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" - } - }, - "node_modules/ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" - }, - "node_modules/ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dependencies": { - "type-fest": "0.11.0" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" - }, - "node_modules/ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" - }, - "node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "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==", - "dependencies": { - "color-convert": "1.9.3" - } - }, - "node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dependencies": { - "normalize-path": "3.0.0", - "picomatch": "2.2.2" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "1.0.3" - } - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "is-string": "^1.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "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==" - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "node_modules/array.prototype.flatmap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz", - "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dependencies": { - "bn.js": "4.11.9", - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1", - "safer-buffer": "2.1.2" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - }, - "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dependencies": { - "object-assign": "4.1.1", - "util": "0.10.3" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "4.17.20" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "node_modules/autoprefixer": { - "version": "9.8.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", - "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", - "dependencies": { - "browserslist": "4.14.5", - "caniuse-lite": "1.0.30001148", - "colorette": "1.2.1", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "7.0.35", - "postcss-value-parser": "4.1.0" - } - }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dependencies": { - "chalk": "1.1.3", - "esutils": "2.0.3", - "js-tokens": "3.0.2" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "node_modules/babel-code-frame/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "node_modules/babel-code-frame/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "node_modules/babel-code-frame/node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "node_modules/babel-code-frame/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "2.1.1" - } - }, - "node_modules/babel-code-frame/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "node_modules/babel-loader": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", - "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", - "dependencies": { - "find-cache-dir": "2.1.0", - "loader-utils": "1.4.0", - "mkdirp": "0.5.5", - "pify": "4.0.1", - "schema-utils": "2.7.1" - } - }, - "node_modules/babel-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "1.2.5" - } - }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" - } - }, - "node_modules/babel-plugin-apply-mdx-type-prop": { - "version": "1.6.19", - "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.19.tgz", - "integrity": "sha512-zAuL11EaBbeNpfTqsa9xP7mkvX3V4LaEV6M9UUaI4zQtTqN5JwvDyhNsALQs5Ud7WFQSXtoqU74saTgE+rgZOw==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@mdx-js/util": "1.6.19" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@babel/core": "^7.11.6" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dependencies": { - "object.assign": "4.1.1" - } - }, - "node_modules/babel-plugin-emotion": { - "version": "10.0.33", - "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz", - "integrity": "sha512-bxZbTTGz0AJQDHm8k6Rf3RQJ8tX2scsfsRyKVgAbiUPUNIRtlK+7JxP+TAd1kRLABFxe0CFm2VdK4ePkoA9FxQ==", - "dev": true, - "optional": true, - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/serialize": "^0.11.16", - "babel-plugin-macros": "^2.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^1.0.5", - "find-root": "^1.1.0", - "source-map": "^0.5.7" - } - }, - "node_modules/babel-plugin-extract-import-names": { - "version": "1.6.19", - "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.19.tgz", - "integrity": "sha512-5kbSEhQdg1ybR9OnxybbyR1PXw51z6T6ZCtX3vYSU6t1pC/+eBlSzWXyU2guStbwQgJyxS+mHWSNnL7PUdzAlw==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", - "dev": true, - "optional": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - } - }, - "node_modules/babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", - "dev": true, - "optional": true - }, - "node_modules/bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dependencies": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.3.0", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.2", - "pascalcase": "0.1.1" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "1.0.2" - } - }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "6.0.3" - } - }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "6.0.3" - } - }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" - } - }, - "node_modules/base16": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz", - "integrity": "sha1-4pf2DX7BAUp6lxo568ipjAtoHnA=" - }, - "node_modules/base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" - }, - "node_modules/bfj": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", - "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==", - "dependencies": { - "bluebird": "3.7.2", - "check-types": "8.0.3", - "hoopy": "0.1.4", - "tryer": "1.0.1" - } - }, - "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==" - }, - "node_modules/binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==" - }, - "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dependencies": { - "bytes": "3.1.0", - "content-type": "1.0.4", - "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "1.6.18" - } - }, - "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==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dependencies": { - "array-flatten": "2.1.2", - "deep-equal": "1.1.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.3", - "multicast-dns-service-types": "1.1.0" - } - }, - "node_modules/bonjour/node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "node_modules/boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "dependencies": { - "ansi-align": "3.0.0", - "camelcase": "5.3.1", - "chalk": "3.0.0", - "cli-boxes": "2.2.1", - "string-width": "4.2.0", - "term-size": "2.2.0", - "type-fest": "0.8.1", - "widest-line": "3.1.0" - } - }, - "node_modules/boxen/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "7.0.1" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dependencies": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.4", - "safe-buffer": "5.1.2" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dependencies": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.2", - "evp_bytestokey": "1.0.3" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dependencies": { - "cipher-base": "1.0.4", - "des.js": "1.0.1", - "inherits": "2.0.4", - "safe-buffer": "5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dependencies": { - "bn.js": "4.11.9", - "randombytes": "2.1.0" - } - }, - "node_modules/browserify-rsa/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dependencies": { - "bn.js": "5.1.3", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.5.3", - "inherits": "2.0.4", - "parse-asn1": "5.1.6", - "readable-stream": "3.6.0", - "safe-buffer": "5.2.1" - } - }, - "node_modules/browserify-sign/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==" - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dependencies": { - "pako": "1.0.11" - } - }, - "node_modules/browserslist": { - "version": "4.14.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.5.tgz", - "integrity": "sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA==", - "dependencies": { - "caniuse-lite": "1.0.30001148", - "electron-to-chromium": "1.3.582", - "escalade": "3.1.1", - "node-releases": "1.1.63" - } - }, - "node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dependencies": { - "base64-js": "1.3.1", - "ieee754": "1.1.13", - "isarray": "1.0.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, - "node_modules/buffer-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz", - "integrity": "sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "node_modules/cacache": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", - "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", - "dependencies": { - "@npmcli/move-file": "1.0.1", - "chownr": "2.0.0", - "fs-minipass": "2.1.0", - "glob": "7.1.6", - "infer-owner": "1.0.4", - "lru-cache": "6.0.0", - "minipass": "3.1.3", - "minipass-collect": "1.0.2", - "minipass-flush": "1.0.5", - "minipass-pipeline": "1.2.4", - "mkdirp": "1.0.4", - "p-map": "4.0.0", - "promise-inflight": "1.0.1", - "rimraf": "3.0.2", - "ssri": "8.0.0", - "tar": "6.0.5", - "unique-filename": "1.1.1" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dependencies": { - "collection-visit": "1.0.0", - "component-emitter": "1.3.0", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.1", - "to-object-path": "0.3.0", - "union-value": "1.0.1", - "unset-value": "1.0.0" - } - }, - "node_modules/cache-loader": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-4.1.0.tgz", - "integrity": "sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw==", - "dependencies": { - "buffer-json": "2.0.0", - "find-cache-dir": "3.3.1", - "loader-utils": "1.4.0", - "mkdirp": "0.5.5", - "neo-async": "2.6.2", - "schema-utils": "2.7.1" - } - }, - "node_modules/cache-loader/node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dependencies": { - "commondir": "1.0.1", - "make-dir": "3.1.0", - "pkg-dir": "4.2.0" - } - }, - "node_modules/cache-loader/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==", - "dependencies": { - "locate-path": "5.0.0", - "path-exists": "4.0.0" - } - }, - "node_modules/cache-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "1.2.5" - } - }, - "node_modules/cache-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" - } - }, - "node_modules/cache-loader/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==", - "dependencies": { - "p-locate": "4.1.0" - } - }, - "node_modules/cache-loader/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==", - "dependencies": { - "semver": "6.3.0" - } - }, - "node_modules/cache-loader/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==", - "dependencies": { - "p-limit": "2.3.0" - } - }, - "node_modules/cache-loader/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==" - }, - "node_modules/cache-loader/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==", - "dependencies": { - "find-up": "4.1.0" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dependencies": { - "clone-response": "1.0.2", - "get-stream": "5.2.0", - "http-cache-semantics": "4.1.0", - "keyv": "3.1.0", - "lowercase-keys": "2.0.0", - "normalize-url": "4.5.0", - "responselike": "1.0.2" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "3.0.0" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, - "node_modules/cacheable-request/node_modules/normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" - }, - "node_modules/call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dependencies": { - "callsites": "2.0.0" - } - }, - "node_modules/caller-callsite/node_modules/callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" - }, - "node_modules/caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dependencies": { - "caller-callsite": "2.0.0" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "node_modules/camel-case": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", - "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", - "dependencies": { - "pascal-case": "3.1.1", - "tslib": "1.14.1" - } - }, - "node_modules/camelcase": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.1.0.tgz", - "integrity": "sha512-WCMml9ivU60+8rEJgELlFp1gxFcEGxwYleE3bziHEDeqsqAWGHdimB7beBFGjLzVNgPGyDsfgXLQEYMpmIFnVQ==" - }, - "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==", - "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==", - "dependencies": { - "browserslist": "4.14.5", - "caniuse-lite": "1.0.30001148", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001148", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001148.tgz", - "integrity": "sha512-E66qcd0KMKZHNJQt9hiLZGE3J4zuTqE1OnU53miEVtylFbwOEmeA5OsRu90noZful+XGSQOni1aT2tiqu/9yYw==" - }, - "node_modules/ccount": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.5.tgz", - "integrity": "sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dependencies": { - "ansi-styles": "4.3.0", - "supports-color": "7.2.0" - } - }, - "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==", - "dependencies": { - "color-convert": "2.0.1" - } - }, - "node_modules/chalk/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==", - "dependencies": { - "color-name": "1.1.4" - } - }, - "node_modules/chalk/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==" - }, - "node_modules/chalk/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==" - }, - "node_modules/chalk/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==", - "dependencies": { - "has-flag": "4.0.0" - } - }, - "node_modules/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-html4": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", - "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "node_modules/check-types": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz", - "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==" - }, - "node_modules/cheerio": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", - "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", - "dependencies": { - "css-select": "1.2.0", - "dom-serializer": "0.1.1", - "entities": "1.1.2", - "htmlparser2": "3.10.1", - "lodash.assignin": "4.2.0", - "lodash.bind": "4.2.1", - "lodash.defaults": "4.2.0", - "lodash.filter": "4.6.0", - "lodash.flatten": "4.4.0", - "lodash.foreach": "4.5.0", - "lodash.map": "4.6.0", - "lodash.merge": "4.6.2", - "lodash.pick": "4.4.0", - "lodash.reduce": "4.6.0", - "lodash.reject": "4.6.0", - "lodash.some": "4.6.0" - } - }, - "node_modules/chokidar": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", - "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", - "dependencies": { - "anymatch": "3.1.1", - "braces": "3.0.2", - "fsevents": "2.1.3", - "glob-parent": "5.1.1", - "is-binary-path": "2.1.0", - "is-glob": "4.0.1", - "normalize-path": "3.0.0", - "readdirp": "3.5.0" - }, - "optionalDependencies": { - "fsevents": "2.1.3" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "node_modules/chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dependencies": { - "tslib": "1.14.1" - } - }, - "node_modules/ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dependencies": { - "inherits": "2.0.4", - "safe-buffer": "5.1.2" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dependencies": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "0.1.6" - } - }, - "node_modules/classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, - "node_modules/clean-css": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", - "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", - "dependencies": { - "source-map": "0.6.1" - } - }, - "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==" - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "3.1.0" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" - }, - "node_modules/clipboard": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", - "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", - "optional": true, - "dependencies": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dependencies": { - "string-width": "3.1.0", - "strip-ansi": "5.2.0", - "wrap-ansi": "5.1.0" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dependencies": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" - } - }, - "node_modules/clone-deep": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", - "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", - "dependencies": { - "for-own": "0.1.5", - "is-plain-object": "2.0.4", - "kind-of": "3.2.2", - "lazy-cache": "1.0.4", - "shallow-clone": "0.1.2" - } - }, - "node_modules/clone-deep/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "1.1.6" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dependencies": { - "mimic-response": "1.0.1" - } - }, - "node_modules/clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dependencies": { - "@types/q": "1.5.4", - "chalk": "2.4.2", - "q": "1.5.1" - } - }, - "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==", - "dependencies": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "node_modules/collapse-white-space": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", - "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dependencies": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "node_modules/color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", - "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", - "dependencies": { - "color-convert": "1.9.3", - "color-string": "1.5.4" - } - }, - "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==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/color-string": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", - "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", - "dependencies": { - "color-name": "1.1.3", - "simple-swizzle": "0.2.2" - } - }, - "node_modules/colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" - }, - "node_modules/comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dependencies": { - "mime-db": "1.44.0" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dependencies": { - "accepts": "1.3.7", - "bytes": "3.0.0", - "compressible": "2.0.18", - "debug": "2.6.9", - "on-headers": "1.0.2", - "safe-buffer": "5.1.2", - "vary": "1.1.2" - } - }, - "node_modules/compression/node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "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==", - "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dependencies": { - "buffer-from": "1.1.1", - "inherits": "2.0.4", - "readable-stream": "2.3.7", - "typedarray": "0.0.6" - } - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "node_modules/concat-stream/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==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dependencies": { - "dot-prop": "5.3.0", - "graceful-fs": "4.2.4", - "make-dir": "3.1.0", - "unique-string": "2.0.0", - "write-file-atomic": "3.0.3", - "xdg-basedir": "4.0.0" - } - }, - "node_modules/configstore/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==", - "dependencies": { - "semver": "6.3.0" - } - }, - "node_modules/connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" - }, - "node_modules/consola": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.0.tgz", - "integrity": "sha512-vlcSGgdYS26mPf7qNi+dCisbhiyDnrN1zaRbw3CSuc2wGOMEGGPsp46PdRG5gqXwgtJfjxDkxRNAgRPr1B77vQ==" - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dependencies": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.5", - "rimraf": "2.7.1", - "run-queue": "1.0.3" - } - }, - "node_modules/copy-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "7.1.6" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "node_modules/copy-text-to-clipboard": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-2.2.0.tgz", - "integrity": "sha512-WRvoIdnTs1rgPMkgA2pUOa/M4Enh2uzCwdKsOMYNAJiz/4ZvEJgmbF4OmninPmlFdAWisfeh0tH+Cpf7ni3RqQ==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-to-clipboard": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", - "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", - "dependencies": { - "toggle-selection": "^1.0.6" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.2.1.tgz", - "integrity": "sha512-VH2ZTMIBsx4p++Lmpg77adZ0KUyM5gFR/9cuTrbneNnJlcQXUFvsNariPqq2dq2kV3F2skHiDGPQCyKWy1+U0Q==", - "dependencies": { - "cacache": "15.0.5", - "fast-glob": "3.2.4", - "find-cache-dir": "3.3.1", - "glob-parent": "5.1.1", - "globby": "11.0.1", - "loader-utils": "2.0.0", - "normalize-path": "3.0.0", - "p-limit": "3.0.2", - "schema-utils": "3.0.0", - "serialize-javascript": "5.0.1", - "webpack-sources": "1.4.3" - } - }, - "node_modules/copy-webpack-plugin/node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dependencies": { - "commondir": "1.0.1", - "make-dir": "3.1.0", - "pkg-dir": "4.2.0" - } - }, - "node_modules/copy-webpack-plugin/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==", - "dependencies": { - "locate-path": "5.0.0", - "path-exists": "4.0.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", - "dependencies": { - "array-union": "2.1.0", - "dir-glob": "3.0.1", - "fast-glob": "3.2.4", - "ignore": "5.1.8", - "merge2": "1.4.1", - "slash": "3.0.0" - } - }, - "node_modules/copy-webpack-plugin/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==", - "dependencies": { - "p-locate": "4.1.0" - } - }, - "node_modules/copy-webpack-plugin/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==", - "dependencies": { - "semver": "6.3.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", - "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", - "dependencies": { - "p-try": "2.2.0" - } - }, - "node_modules/copy-webpack-plugin/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==", - "dependencies": { - "p-limit": "2.3.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/p-locate/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==", - "dependencies": { - "p-try": "2.2.0" - } - }, - "node_modules/copy-webpack-plugin/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==" - }, - "node_modules/copy-webpack-plugin/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==", - "dependencies": { - "find-up": "4.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dependencies": { - "@types/json-schema": "7.0.6", - "ajv": "6.12.6", - "ajv-keywords": "3.5.2" - } - }, - "node_modules/core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" - }, - "node_modules/core-js-compat": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", - "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", - "dependencies": { - "browserslist": "4.14.5", - "semver": "7.0.0" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - }, - "node_modules/core-js-pure": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", - "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==" - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dependencies": { - "@types/parse-json": "4.0.0", - "import-fresh": "3.2.1", - "parse-json": "5.1.0", - "path-type": "4.0.0", - "yaml": "1.10.0" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dependencies": { - "bn.js": "4.11.9", - "elliptic": "6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dependencies": { - "cipher-base": "1.0.4", - "inherits": "2.0.4", - "md5.js": "1.3.5", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dependencies": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.4", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", - "dependencies": { - "path-key": "3.1.1", - "shebang-command": "2.0.0", - "which": "2.0.2" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dependencies": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.2.1", - "create-ecdh": "4.0.4", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.4", - "pbkdf2": "3.1.1", - "public-encrypt": "4.0.3", - "randombytes": "2.1.0", - "randomfill": "1.0.4" - } - }, - "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==" - }, - "node_modules/css-blank-pseudo": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", - "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" - }, - "node_modules/css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "dependencies": { - "postcss": "7.0.35", - "timsort": "0.3.0" - } - }, - "node_modules/css-has-pseudo": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", - "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", - "dependencies": { - "postcss": "7.0.35", - "postcss-selector-parser": "5.0.0" - } - }, - "node_modules/css-has-pseudo/node_modules/cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "dependencies": { - "cssesc": "2.0.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "node_modules/css-loader": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", - "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", - "dependencies": { - "camelcase": "5.3.1", - "cssesc": "3.0.0", - "icss-utils": "4.1.1", - "loader-utils": "1.4.0", - "normalize-path": "3.0.0", - "postcss": "7.0.35", - "postcss-modules-extract-imports": "2.0.0", - "postcss-modules-local-by-default": "3.0.3", - "postcss-modules-scope": "2.2.0", - "postcss-modules-values": "3.0.0", - "postcss-value-parser": "4.1.0", - "schema-utils": "2.7.1", - "semver": "6.3.0" - } - }, - "node_modules/css-loader/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "node_modules/css-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "1.2.5" - } - }, - "node_modules/css-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", - "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "dependencies": { - "boolbase": "1.0.0", - "css-what": "2.1.3", - "domutils": "1.5.1", - "nth-check": "1.0.2" - } - }, - "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==" - }, - "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==", - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "0.6.1" - } - }, - "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==" - }, - "node_modules/css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" - }, - "node_modules/cssdb": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", - "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==" - }, - "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==" - }, - "node_modules/cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", - "dependencies": { - "cosmiconfig": "5.2.1", - "cssnano-preset-default": "4.0.7", - "is-resolvable": "1.1.0", - "postcss": "7.0.35" - } - }, - "node_modules/cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", - "dependencies": { - "css-declaration-sorter": "4.0.1", - "cssnano-util-raw-cache": "4.0.1", - "postcss": "7.0.35", - "postcss-calc": "7.0.5", - "postcss-colormin": "4.0.3", - "postcss-convert-values": "4.0.1", - "postcss-discard-comments": "4.0.2", - "postcss-discard-duplicates": "4.0.2", - "postcss-discard-empty": "4.0.1", - "postcss-discard-overridden": "4.0.1", - "postcss-merge-longhand": "4.0.11", - "postcss-merge-rules": "4.0.3", - "postcss-minify-font-values": "4.0.2", - "postcss-minify-gradients": "4.0.2", - "postcss-minify-params": "4.0.2", - "postcss-minify-selectors": "4.0.2", - "postcss-normalize-charset": "4.0.1", - "postcss-normalize-display-values": "4.0.2", - "postcss-normalize-positions": "4.0.2", - "postcss-normalize-repeat-style": "4.0.2", - "postcss-normalize-string": "4.0.2", - "postcss-normalize-timing-functions": "4.0.2", - "postcss-normalize-unicode": "4.0.1", - "postcss-normalize-url": "4.0.1", - "postcss-normalize-whitespace": "4.0.2", - "postcss-ordered-values": "4.1.2", - "postcss-reduce-initial": "4.0.3", - "postcss-reduce-transforms": "4.0.2", - "postcss-svgo": "4.0.2", - "postcss-unique-selectors": "4.0.1" - } - }, - "node_modules/cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" - }, - "node_modules/cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" - }, - "node_modules/cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" - }, - "node_modules/cssnano/node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dependencies": { - "import-fresh": "2.0.0", - "is-directory": "0.3.1", - "js-yaml": "3.14.0", - "parse-json": "4.0.0" - } - }, - "node_modules/cssnano/node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dependencies": { - "caller-path": "2.0.0", - "resolve-from": "3.0.0" - } - }, - "node_modules/cssnano/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dependencies": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" - } - }, - "node_modules/cssnano/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - }, - "node_modules/csso": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", - "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", - "dependencies": { - "css-tree": "1.0.0-alpha.39" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.0.0-alpha.39", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", - "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", - "dependencies": { - "mdn-data": "2.0.6", - "source-map": "0.6.1" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", - "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==" - }, - "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==" - }, - "node_modules/csstype": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", - "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==" - }, - "node_modules/cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "node_modules/debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "dependencies": { - "ms": "2.1.2" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dependencies": { - "mimic-response": "1.0.1" - } - }, - "node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dependencies": { - "is-arguments": "1.0.4", - "is-date-object": "1.0.2", - "is-regex": "1.1.1", - "object-is": "1.1.3", - "object-keys": "1.1.1", - "regexp.prototype.flags": "1.3.0" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "node_modules/default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dependencies": { - "execa": "1.0.0", - "ip-regex": "2.1.0" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dependencies": { - "object-keys": "1.1.1" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dependencies": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - } - }, - "node_modules/define-property/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "6.0.3" - } - }, - "node_modules/define-property/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "6.0.3" - } - }, - "node_modules/define-property/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" - } - }, - "node_modules/del": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", - "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", - "dependencies": { - "globby": "10.0.2", - "graceful-fs": "4.2.4", - "is-glob": "4.0.1", - "is-path-cwd": "2.2.0", - "is-path-inside": "3.0.2", - "p-map": "3.0.0", - "rimraf": "3.0.2", - "slash": "3.0.0" - } - }, - "node_modules/del/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dependencies": { - "aggregate-error": "3.1.0" - } - }, - "node_modules/delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", - "optional": true - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dependencies": { - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/detab": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.3.tgz", - "integrity": "sha512-Up8P0clUVwq0FnFjDclzZsy9PadzRn5FFxrr47tQQvMHqyiFYVbpH8oXDzWtF0Q7pYy3l+RPmtBl+BsFF6wH0A==", - "dependencies": { - "repeat-string": "^1.5.4" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" - }, - "node_modules/detect-port": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", - "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", - "dependencies": { - "address": "1.1.2", - "debug": "2.6.9" - } - }, - "node_modules/detect-port/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dependencies": { - "bn.js": "4.11.9", - "miller-rabin": "4.0.1", - "randombytes": "2.1.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - }, - "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==", - "dependencies": { - "path-type": "4.0.0" - } - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" - }, - "node_modules/dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "dependencies": { - "ip": "1.1.5", - "safe-buffer": "5.1.2" - } - }, - "node_modules/dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dependencies": { - "buffer-indexof": "1.1.1" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dependencies": { - "utila": "0.4.0" - } - }, - "node_modules/dom-helpers": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", - "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "dependencies": { - "domelementtype": "1.3.1", - "entities": "1.1.2" - } - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" - }, - "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "node_modules/domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dependencies": { - "domelementtype": "1.3.1" - } - }, - "node_modules/domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dependencies": { - "dom-serializer": "0.1.1", - "domelementtype": "1.3.1" - } - }, - "node_modules/dot-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz", - "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==", - "dependencies": { - "no-case": "3.0.3", - "tslib": "1.14.1" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dependencies": { - "is-obj": "2.0.0" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dependencies": { - "end-of-stream": "1.4.4", - "inherits": "2.0.4", - "readable-stream": "2.3.7", - "stream-shift": "1.0.1" - } - }, - "node_modules/duplexify/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "node_modules/duplexify/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==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/ejs": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", - "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" - }, - "node_modules/electron-to-chromium": { - "version": "1.3.582", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.582.tgz", - "integrity": "sha512-0nCJ7cSqnkMC+kUuPs0YgklFHraWGl/xHqtZWWtOeVtyi+YqkoAOMGuZQad43DscXCQI/yizcTa3u6B5r+BLww==" - }, - "node_modules/elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "dependencies": { - "bn.js": "4.11.9", - "brorand": "1.1.0", - "hash.js": "1.1.7", - "hmac-drbg": "1.0.1", - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - }, - "node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "node_modules/emoticon": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-3.2.0.tgz", - "integrity": "sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", - "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", - "dependencies": { - "graceful-fs": "4.2.4", - "memory-fs": "0.5.0", - "tapable": "1.1.3" - } - }, - "node_modules/enhanced-resolve/node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dependencies": { - "errno": "0.1.7", - "readable-stream": "2.3.7" - } - }, - "node_modules/enhanced-resolve/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "node_modules/enhanced-resolve/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==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/enquirer/node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "node_modules/errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dependencies": { - "prr": "1.0.1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "dependencies": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.2.2", - "is-negative-zero": "2.0.0", - "is-regex": "1.1.1", - "object-inspect": "1.8.0", - "object-keys": "1.1.1", - "object.assign": "4.1.1", - "string.prototype.trimend": "1.0.1", - "string.prototype.trimstart": "1.0.1" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "1.2.2", - "is-date-object": "1.0.2", - "is-symbol": "1.0.3" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "node_modules/eslint": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.12.0.tgz", - "integrity": "sha512-n5pEU27DRxCSlOhJ2rO57GDLcNsxO0LPpAbpFdh7xmcDmjmlGUfoyrsB3I7yYdQXO5N3gkSTiDrPSPNFiiirXA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.0", - "esquery": "^1.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash": "^4.17.19", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.14.0.tgz", - "integrity": "sha512-DbVwh0qZhAC7CNDWcq8cBdK6FcVHiMTKmCypOPWeZkp9hJ8xYwTaWSa6bb6cjfi8KOeJy0e9a8Izxyx+O4+gCQ==", - "dev": true, - "dependencies": { - "get-stdin": "^6.0.0" - }, - "bin": { - "eslint-config-prettier-check": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=3.14.1" - } - }, - "node_modules/eslint-mdx": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/eslint-mdx/-/eslint-mdx-1.8.2.tgz", - "integrity": "sha512-j7mkBFr7zHLaiqGu+iWker9qwWfti29xUAuUDDad95l+H189R4++dsuSUB6u19wy6CCuspIt5I6katzbpRbbMw==", - "dev": true, - "dependencies": { - "espree": "^7.2.0", - "remark-mdx": "^1.6.16", - "remark-parse": "^8.0.3", - "tslib": "^2.0.1", - "unified": "^9.1.0" - }, - "engines": { - "node": ">=7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "eslint": ">=5.0.0" - } - }, - "node_modules/eslint-mdx/node_modules/tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "dev": true - }, - "node_modules/eslint-plugin-mdx": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-mdx/-/eslint-plugin-mdx-1.8.2.tgz", - "integrity": "sha512-fKkhsR1cTCHQUVcoguUmOohMo87297/H1Z0Zye3GF4ivvxcpX8fboLILLR2Em76QV8RrjP4sxrgBuOA9rBIumw==", - "dev": true, - "dependencies": { - "cosmiconfig": "^7.0.0", - "eslint-mdx": "^1.8.2", - "eslint-plugin-react": "^7.20.6", - "rebass": "^4.0.7", - "remark-mdx": "^1.6.16", - "remark-parse": "^8.0.3", - "remark-stringify": "^8.1.1", - "tslib": "^2.0.1", - "unified": "^9.1.0", - "vfile": "^4.1.1" - }, - "engines": { - "node": ">=7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "optionalDependencies": { - "rebass": "^4.0.7" - }, - "peerDependencies": { - "eslint": ">=5.0.0" - } - }, - "node_modules/eslint-plugin-mdx/node_modules/cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", - "dev": true, - "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/eslint-plugin-mdx/node_modules/tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "dev": true - }, - "node_modules/eslint-plugin-react": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz", - "integrity": "sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.1", - "array.prototype.flatmap": "^1.2.3", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "object.entries": "^1.1.2", - "object.fromentries": "^2.0.2", - "object.values": "^1.1.1", - "prop-types": "^15.7.2", - "resolve": "^1.18.1", - "string.prototype.matchall": "^4.0.2" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7" - } - }, - "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==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", - "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", - "dev": true, - "dependencies": { - "is-core-module": "^2.0.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dependencies": { - "esrecurse": "4.3.0", - "estraverse": "4.3.0" - } - }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/eslint/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==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "dependencies": { - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/eslint/node_modules/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/espree": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", - "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", - "dev": true, - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "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==" - }, - "node_modules/esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dependencies": { - "estraverse": "5.2.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "node_modules/eta": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/eta/-/eta-1.11.0.tgz", - "integrity": "sha512-lfqIE6qD55WFYT6E0phTBUe0sapHJhfvRDB7jSpXxFGwzDaP69kQqRyF7krBe8I1QzF5nE1yAByiIOLB630x4Q==" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "node_modules/eval": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.4.tgz", - "integrity": "sha512-npGsebJejyjMRnLdFu+T/97dnigqIU0Ov3IGrZ8ygd1v7RL1vGkEKtvyWZobqUH1AQgKlg0Yqqe2BtMA9/QZLw==", - "dependencies": { - "require-like": "0.1.2" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" - }, - "node_modules/eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "dependencies": { - "original": "1.0.2" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dependencies": { - "md5.js": "1.3.5", - "safe-buffer": "5.1.2" - } - }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dependencies": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.3", - "strip-eof": "1.0.0" - } - }, - "node_modules/execa/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dependencies": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.7.1", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "node_modules/execa/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "node_modules/execa/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "node_modules/execa/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dependencies": { - "shebang-regex": "1.0.0" - } - }, - "node_modules/execa/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "node_modules/execa/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "2.0.0" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dependencies": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "0.1.6" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dependencies": { - "accepts": "1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "finalhandler": "1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.6", - "qs": "6.7.0", - "range-parser": "1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "1.5.0", - "type-is": "1.6.18", - "utils-merge": "1.0.1", - "vary": "1.1.2" - } - }, - "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==", - "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "0.1.1" - } - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dependencies": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dependencies": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "1.0.2" - } - }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "6.0.3" - } - }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "6.0.3" - } - }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" - } - }, - "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==" - }, - "node_modules/fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", - "dependencies": { - "@nodelib/fs.stat": "2.0.3", - "@nodelib/fs.walk": "1.2.4", - "glob-parent": "5.1.1", - "merge2": "1.4.1", - "micromatch": "4.0.2", - "picomatch": "2.2.2" - } - }, - "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==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", - "dependencies": { - "punycode": "1.3.2" - } - }, - "node_modules/fastq": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", - "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", - "dependencies": { - "reusify": "1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dependencies": { - "websocket-driver": "0.6.5" - } - }, - "node_modules/fbemitter": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", - "integrity": "sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=", - "dependencies": { - "fbjs": "^0.8.4" - } - }, - "node_modules/fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", - "dependencies": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - } - }, - "node_modules/fbjs/node_modules/core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", - "deprecated": "core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3." - }, - "node_modules/feed": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.1.tgz", - "integrity": "sha512-l28KKcK1J/u3iq5dRDmmoB2p7dtBfACC2NqJh4dI2kFptxH0asfjmOfcxqh5Sv8suAlVa73gZJ4REY5RrafVvg==", - "dependencies": { - "xml-js": "^1.6.11" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dependencies": { - "escape-string-regexp": "1.0.5" - } - }, - "node_modules/file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "dependencies": { - "flat-cache": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-loader": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.1.1.tgz", - "integrity": "sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw==", - "dependencies": { - "loader-utils": "2.0.0", - "schema-utils": "3.0.0" - } - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dependencies": { - "@types/json-schema": "7.0.6", - "ajv": "6.12.6", - "ajv-keywords": "3.5.2" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true - }, - "node_modules/filesize": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz", - "integrity": "sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg==" - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "5.0.1" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.3", - "statuses": "1.5.0", - "unpipe": "1.0.0" - } - }, - "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==", - "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dependencies": { - "commondir": "1.0.1", - "make-dir": "2.1.0", - "pkg-dir": "3.0.0" - } - }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true, - "optional": true - }, - "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==", - "dependencies": { - "locate-path": "3.0.0" - } - }, - "node_modules/flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "node_modules/flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", - "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==" - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dependencies": { - "inherits": "2.0.4", - "readable-stream": "2.3.7" - } - }, - "node_modules/flush-write-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "node_modules/flush-write-stream/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==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/flux": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/flux/-/flux-3.1.3.tgz", - "integrity": "sha1-0jvtUVp5oi2TOrU6tK2hnQWy8Io=", - "dependencies": { - "fbemitter": "^2.0.0", - "fbjs": "^0.8.0" - }, - "peerDependencies": { - "react": "^15.0.2 || ^16.0.0-beta || ^16.0.0" - } - }, - "node_modules/follow-redirects": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", - "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==" - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "node_modules/for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dependencies": { - "for-in": "1.0.2" - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz", - "integrity": "sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ==", - "dependencies": { - "babel-code-frame": "6.26.0", - "chalk": "2.4.2", - "chokidar": "3.4.3", - "micromatch": "3.1.10", - "minimatch": "3.0.4", - "semver": "5.7.1", - "tapable": "1.1.3", - "worker-rpc": "0.1.1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "0.1.1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/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==", - "dependencies": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "2.0.4" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "0.1.1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "3.2.2" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "1.1.6" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.3", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "node_modules/forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dependencies": { - "map-cache": "0.2.2" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dependencies": { - "inherits": "2.0.4", - "readable-stream": "2.3.7" - } - }, - "node_modules/from2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "node_modules/from2/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==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "4.2.4", - "jsonfile": "4.0.0", - "universalify": "0.1.2" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "3.1.3" - } - }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dependencies": { - "graceful-fs": "4.2.4", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.7" - } - }, - "node_modules/fs-write-stream-atomic/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "node_modules/fs-write-stream-atomic/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==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "optional": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" - }, - "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==" - }, - "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==" - }, - "node_modules/get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "3.0.0" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "node_modules/github-slugger": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz", - "integrity": "sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==", - "dependencies": { - "emoji-regex": ">=6.0.0 <=6.1.1" - } - }, - "node_modules/github-slugger/node_modules/emoji-regex": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz", - "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=" - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dependencies": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.4", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dependencies": { - "is-glob": "4.0.1" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" - }, - "node_modules/global-dirs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", - "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", - "dependencies": { - "ini": "1.3.5" - } - }, - "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==", - "dependencies": { - "global-prefix": "3.0.0" - } - }, - "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==", - "dependencies": { - "ini": "1.3.5", - "kind-of": "6.0.3", - "which": "1.3.1" - } - }, - "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==", - "dependencies": { - "isexe": "2.0.0" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "node_modules/globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "dependencies": { - "@types/glob": "7.1.3", - "array-union": "2.1.0", - "dir-glob": "3.0.1", - "fast-glob": "3.2.4", - "glob": "7.1.6", - "ignore": "5.1.8", - "merge2": "1.4.1", - "slash": "3.0.0" - } - }, - "node_modules/good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", - "optional": true, - "dependencies": { - "delegate": "^3.1.2" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dependencies": { - "@sindresorhus/is": "0.14.0", - "@szmarczak/http-timer": "1.1.2", - "cacheable-request": "6.1.0", - "decompress-response": "3.3.0", - "duplexer3": "0.1.4", - "get-stream": "4.1.0", - "lowercase-keys": "1.0.1", - "mimic-response": "1.0.1", - "p-cancelable": "1.1.0", - "to-readable-stream": "1.0.0", - "url-parse-lax": "3.0.0" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, - "node_modules/gray-matter": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.2.tgz", - "integrity": "sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==", - "dependencies": { - "js-yaml": "3.14.0", - "kind-of": "6.0.3", - "section-matter": "1.0.0", - "strip-bom-string": "1.0.0" - } - }, - "node_modules/gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", - "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", - "dependencies": { - "duplexer": "0.1.2", - "pify": "4.0.1" - } - }, - "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==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "1.1.1" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dependencies": { - "ansi-regex": "2.1.1" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dependencies": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dependencies": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - } - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "3.2.2" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "1.1.6" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dependencies": { - "is-buffer": "1.1.6" - } - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dependencies": { - "inherits": "2.0.4", - "readable-stream": "3.6.0", - "safe-buffer": "5.2.1" - } - }, - "node_modules/hash-base/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==" - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1" - } - }, - "node_modules/hast-to-hyperscript": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.0.tgz", - "integrity": "sha512-NJvMYU3GlMLs7hN3CRbsNlMzusVNkYBogVWDGybsuuVQ336gFLiD+q9qtFZT2meSHzln3pNISZWTASWothMSMg==", - "dependencies": { - "@types/unist": "^2.0.3", - "comma-separated-tokens": "^1.0.0", - "property-information": "^5.3.0", - "space-separated-tokens": "^1.0.0", - "style-to-object": "^0.3.0", - "unist-util-is": "^4.0.0", - "web-namespaces": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.0.tgz", - "integrity": "sha512-3ZYnfKenbbkhhNdmOQqgH10vnvPivTdsOJCri+APn0Kty+nRkDHArnaX9Hiaf8H+Ig+vkNptL+SRY/6RwWJk1Q==", - "dependencies": { - "@types/parse5": "^5.0.0", - "ccount": "^1.0.0", - "hastscript": "^5.0.0", - "property-information": "^5.0.0", - "vfile": "^4.0.0", - "web-namespaces": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-parse-selector": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz", - "integrity": "sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", - "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", - "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-from-parse5": "^6.0.0", - "hast-util-to-parse5": "^6.0.0", - "html-void-elements": "^1.0.0", - "parse5": "^6.0.0", - "unist-util-position": "^3.0.0", - "vfile": "^4.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-parse5": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", - "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", - "dependencies": { - "hast-to-hyperscript": "^9.0.0", - "property-information": "^5.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz", - "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==", - "dependencies": { - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "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==" - }, - "node_modules/hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" - }, - "node_modules/history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "dependencies": { - "@babel/runtime": "7.12.1", - "loose-envify": "1.4.0", - "resolve-pathname": "3.0.0", - "tiny-invariant": "1.1.0", - "tiny-warning": "1.0.3", - "value-equal": "1.0.1" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dependencies": { - "hash.js": "1.1.7", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "16.13.1" - } - }, - "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==" - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dependencies": { - "inherits": "2.0.4", - "obuf": "1.1.2", - "readable-stream": "2.3.7", - "wbuf": "1.7.3" - } - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "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==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" - }, - "node_modules/hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" - }, - "node_modules/html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" - }, - "node_modules/html-entities": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", - "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==" - }, - "node_modules/html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", - "dependencies": { - "camel-case": "4.1.1", - "clean-css": "4.2.3", - "commander": "4.1.1", - "he": "1.2.0", - "param-case": "3.0.3", - "relateurl": "0.2.7", - "terser": "4.8.0" - } - }, - "node_modules/html-tags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", - "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==" - }, - "node_modules/html-void-elements": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", - "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/html-webpack-plugin": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz", - "integrity": "sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw==", - "dependencies": { - "@types/html-minifier-terser": "5.1.1", - "@types/tapable": "1.0.6", - "@types/webpack": "4.41.22", - "html-minifier-terser": "5.1.1", - "loader-utils": "1.4.0", - "lodash": "4.17.20", - "pretty-error": "2.1.2", - "tapable": "1.1.3", - "util.promisify": "1.0.0" - } - }, - "node_modules/html-webpack-plugin/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "1.2.5" - } - }, - "node_modules/html-webpack-plugin/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" - } - }, - "node_modules/html-webpack-plugin/node_modules/util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dependencies": { - "define-properties": "1.1.3", - "object.getownpropertydescriptors": "2.1.0" - } - }, - "node_modules/htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dependencies": { - "domelementtype": "1.3.1", - "domhandler": "2.4.2", - "domutils": "1.5.1", - "entities": "1.1.2", - "inherits": "2.0.4", - "readable-stream": "3.6.0" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, - "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dependencies": { - "depd": "1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": "1.5.0", - "toidentifier": "1.0.0" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "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==", - "dependencies": { - "eventemitter3": "4.0.7", - "follow-redirects": "1.13.0", - "requires-port": "1.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "dependencies": { - "http-proxy": "1.18.1", - "is-glob": "4.0.1", - "lodash": "4.17.20", - "micromatch": "3.1.10" - } - }, - "node_modules/http-proxy-middleware/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - } - }, - "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "0.1.1" - } - }, - "node_modules/http-proxy-middleware/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "node_modules/http-proxy-middleware/node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "2.0.4" - } - }, - "node_modules/http-proxy-middleware/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - } - }, - "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "0.1.1" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "3.2.2" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "1.1.6" - } - }, - "node_modules/http-proxy-middleware/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.3", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "node_modules/http-proxy-middleware/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": "2.1.2" - } - }, - "node_modules/icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" - }, - "node_modules/immer": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", - "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==" - }, - "node_modules/import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dependencies": { - "import-from": "2.1.0" - } - }, - "node_modules/import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "dependencies": { - "parent-module": "1.0.1", - "resolve-from": "4.0.0" - } - }, - "node_modules/import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dependencies": { - "resolve-from": "3.0.0" - } - }, - "node_modules/import-from/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" - }, - "node_modules/import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dependencies": { - "pkg-dir": "3.0.0", - "resolve-cwd": "2.0.0" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "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==" - }, - "node_modules/indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "node_modules/infima": { - "version": "0.2.0-alpha.13", - "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.13.tgz", - "integrity": "sha512-BxCZ1pMcUF0PcL4WV07l/lvaeBBdUUw7uVqNyyeGAutzDpkDyFOl5gOv9wFAJKLo5yerPNFXxFPgDitNjctqIA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dependencies": { - "ansi-escapes": "4.3.1", - "chalk": "4.1.0", - "cli-cursor": "3.1.0", - "cli-width": "3.0.0", - "external-editor": "3.1.0", - "figures": "3.2.0", - "lodash": "4.17.20", - "mute-stream": "0.0.8", - "run-async": "2.4.1", - "rxjs": "6.6.3", - "string-width": "4.2.0", - "strip-ansi": "6.0.0", - "through": "2.3.8" - } - }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "node_modules/inquirer/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==", - "dependencies": { - "color-convert": "2.0.1" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dependencies": { - "ansi-styles": "4.3.0", - "supports-color": "7.2.0" - } - }, - "node_modules/inquirer/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==", - "dependencies": { - "color-name": "1.1.4" - } - }, - "node_modules/inquirer/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==" - }, - "node_modules/inquirer/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==" - }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dependencies": { - "ansi-regex": "5.0.0" - } - }, - "node_modules/inquirer/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==", - "dependencies": { - "has-flag": "4.0.0" - } - }, - "node_modules/internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dependencies": { - "default-gateway": "4.2.0", - "ipaddr.js": "1.9.1" - } - }, - "node_modules/internal-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", - "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", - "dev": true, - "dependencies": { - "es-abstract": "^1.17.0-next.1", - "has": "^1.0.3", - "side-channel": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/internal-slot/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "node_modules/ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" - }, - "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==" - }, - "node_modules/is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" - }, - "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "3.2.2" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "1.1.6" - } - }, - "node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumeric": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", - "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "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==", - "dependencies": { - "binary-extensions": "2.1.0" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dependencies": { - "ci-info": "2.0.0" - } - }, - "node_modules/is-ci/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "node_modules/is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dependencies": { - "css-color-names": "0.0.4", - "hex-color-regex": "1.1.0", - "hsl-regex": "1.0.0", - "hsla-regex": "1.0.0", - "rgb-regex": "1.0.1", - "rgba-regex": "1.0.0" - } - }, - "node_modules/is-core-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz", - "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "3.2.2" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "1.1.6" - } - }, - "node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" - }, - "node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - }, - "node_modules/is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "node_modules/is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==" - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dependencies": { - "is-extglob": "2.1.1" - } - }, - "node_modules/is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "dependencies": { - "global-dirs": "2.0.1", - "is-path-inside": "3.0.2" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" - }, - "node_modules/is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==" - }, - "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==" - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" - }, - "node_modules/is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dependencies": { - "is-path-inside": "2.1.0" - } - }, - "node_modules/is-path-in-cwd/node_modules/is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dependencies": { - "path-is-inside": "1.0.2" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "3.0.1" - } - }, - "node_modules/is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "dependencies": { - "has-symbols": "1.0.1" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" - }, - "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==" - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "node_modules/is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", - "dependencies": { - "html-comment-regex": "1.1.2" - } - }, - "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dependencies": { - "has-symbols": "1.0.1" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/is-whitespace-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", - "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "node_modules/is-word-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", - "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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==", - "dependencies": { - "is-docker": "2.1.1" - } - }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "node_modules/isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "dependencies": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "node_modules/jest-worker": { - "version": "26.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.5.0.tgz", - "integrity": "sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug==", - "dependencies": { - "@types/node": "14.11.10", - "merge-stream": "2.0.0", - "supports-color": "7.2.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "node_modules/jest-worker/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==", - "dependencies": { - "has-flag": "4.0.0" - } - }, - "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==" - }, - "node_modules/js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "dependencies": { - "argparse": "1.0.10", - "esprima": "4.0.1" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "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==" - }, - "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==" - }, - "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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" - }, - "node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dependencies": { - "minimist": "1.2.5" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dependencies": { - "graceful-fs": "4.2.4" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.1.0.tgz", - "integrity": "sha512-d4/UOjg+mxAWxCiF0c5UTSwyqbchkbqCvK87aBovhnh8GtysTjWmgC63tY0cJx/HzGgm9qnA147jVBdpOiQ2RA==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.1", - "object.assign": "^4.1.1" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" - }, - "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==" - }, - "node_modules/last-call-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", - "dependencies": { - "lodash": "4.17.20", - "webpack-sources": "1.4.3" - } - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dependencies": { - "package-json": "6.5.0" - } - }, - "node_modules/lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" - }, - "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==" - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" - }, - "node_modules/loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" - }, - "node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dependencies": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "2.1.3" - } - }, - "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==", - "dependencies": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" - }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "node_modules/lodash.assignin": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", - "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=" - }, - "node_modules/lodash.bind": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", - "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=" - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/lodash.chunk": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", - "integrity": "sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw=" - }, - "node_modules/lodash.curry": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz", - "integrity": "sha1-JI42By7ekGUB11lmIAqG2riyMXA=" - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" - }, - "node_modules/lodash.filter": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", - "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=" - }, - "node_modules/lodash.flatmap": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz", - "integrity": "sha1-74y/QI9uSCaGYzRTBcaswLd4cC4=" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "node_modules/lodash.flow": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", - "integrity": "sha1-h79AKSuM+D5OjOGjrkIJ4gBxZ1o=" - }, - "node_modules/lodash.foreach": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" - }, - "node_modules/lodash.groupby": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", - "integrity": "sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E=" - }, - "node_modules/lodash.has": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz", - "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "node_modules/lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=" - }, - "node_modules/lodash.map": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "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==" - }, - "node_modules/lodash.padstart": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", - "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=" - }, - "node_modules/lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" - }, - "node_modules/lodash.pickby": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz", - "integrity": "sha1-feoh2MGNdwOifHBMFdO4SmfjOv8=" - }, - "node_modules/lodash.reduce": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", - "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" - }, - "node_modules/lodash.reject": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", - "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=" - }, - "node_modules/lodash.some": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", - "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "node_modules/lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dependencies": { - "lodash._reinterpolate": "3.0.0", - "lodash.templatesettings": "4.2.0" - } - }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dependencies": { - "lodash._reinterpolate": "3.0.0" - } - }, - "node_modules/lodash.toarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "node_modules/loglevel": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz", - "integrity": "sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==" - }, - "node_modules/longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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==", - "dependencies": { - "js-tokens": "4.0.0" - } - }, - "node_modules/lower-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", - "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", - "dependencies": { - "tslib": "1.14.1" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "4.0.0" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dependencies": { - "pify": "4.0.1", - "semver": "5.7.1" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dependencies": { - "object-visit": "1.0.1" - } - }, - "node_modules/markdown-escapes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", - "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/markdown-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", - "dev": true, - "dependencies": { - "repeat-string": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dependencies": { - "hash-base": "3.1.0", - "inherits": "2.0.4", - "safe-buffer": "5.1.2" - } - }, - "node_modules/mdast-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", - "dependencies": { - "unist-util-remove": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-compact": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz", - "integrity": "sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==", - "dev": true, - "dependencies": { - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-definitions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-3.0.1.tgz", - "integrity": "sha512-BAv2iUm/e6IK/b2/t+Fx69EL/AGcq/IG2S+HxHjDJGfLJtd6i9SZUS76aC9cig+IEucsqxKTR0ot3m933R3iuA==", - "dependencies": { - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-9.1.1.tgz", - "integrity": "sha512-vpMWKFKM2mnle+YbNgDXxx95vv0CoLU0v/l3F5oFAG5DV7qwkZVWA206LsAdOnEVyf5vQcLnb3cWJywu7mUxsQ==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.3", - "mdast-util-definitions": "^3.0.0", - "mdurl": "^1.0.0", - "unist-builder": "^2.0.0", - "unist-util-generated": "^1.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "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==" - }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dependencies": { - "errno": "0.1.7", - "readable-stream": "2.3.7" - } - }, - "node_modules/memory-fs/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "node_modules/memory-fs/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==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/merge-deep": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", - "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", - "dependencies": { - "arr-union": "3.1.0", - "clone-deep": "0.2.4", - "kind-of": "3.2.2" - } - }, - "node_modules/merge-deep/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "1.1.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "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==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "node_modules/microevent.ts": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", - "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==" - }, - "node_modules/micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dependencies": { - "braces": "3.0.2", - "picomatch": "2.2.2" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dependencies": { - "bn.js": "4.11.9", - "brorand": "1.1.0" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "node_modules/mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" - }, - "node_modules/mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "dependencies": { - "mime-db": "1.44.0" - } - }, - "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==" - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "node_modules/mini-create-react-context": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz", - "integrity": "sha512-b0TytUgFSbgFJGzJqXPKCFCBWigAjpjo+Fl7Vf7ZbKRDptszpppKxXH6DRXEABZ/gcEQczeb0iZ7JvL8e8jjCA==", - "dependencies": { - "@babel/runtime": "7.12.1", - "tiny-warning": "1.0.3" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz", - "integrity": "sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw==", - "dependencies": { - "loader-utils": "1.4.0", - "normalize-url": "1.9.1", - "schema-utils": "1.0.0", - "webpack-sources": "1.4.3" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "1.2.5" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dependencies": { - "ajv": "6.12.6", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.5.2" - } - }, - "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==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "1.1.11" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "dependencies": { - "yallist": "4.0.0" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dependencies": { - "minipass": "3.1.3" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dependencies": { - "minipass": "3.1.3" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dependencies": { - "minipass": "3.1.3" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "3.1.3", - "yallist": "4.0.0" - } - }, - "node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dependencies": { - "concat-stream": "1.6.2", - "duplexify": "3.7.1", - "end-of-stream": "1.4.4", - "flush-write-stream": "1.1.1", - "from2": "2.3.0", - "parallel-transform": "1.2.0", - "pump": "3.0.0", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.5" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dependencies": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - } - }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "2.0.4" - } - }, - "node_modules/mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", - "dependencies": { - "for-in": "0.1.8", - "is-extendable": "0.1.1" - } - }, - "node_modules/mixin-object/node_modules/for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=" - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "1.2.5" - } - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dependencies": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.5", - "rimraf": "2.7.1", - "run-queue": "1.0.3" - } - }, - "node_modules/move-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "7.1.6" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dependencies": { - "dns-packet": "1.3.1", - "thunky": "1.1.0" - } - }, - "node_modules/multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dependencies": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.3", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "node_modules/nanomatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "node_modules/nanomatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "2.0.4" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "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==" - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node_modules/no-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", - "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", - "dependencies": { - "lower-case": "2.0.1", - "tslib": "1.14.1" - } - }, - "node_modules/node-emoji": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", - "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", - "dependencies": { - "lodash.toarray": "^4.4.0" - } - }, - "node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" - }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dependencies": { - "assert": "1.5.0", - "browserify-zlib": "0.2.0", - "buffer": "4.9.2", - "console-browserify": "1.2.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "3.2.0", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", - "path-browserify": "0.0.1", - "process": "0.11.10", - "punycode": "1.3.2", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.7", - "stream-browserify": "2.0.2", - "stream-http": "2.8.3", - "string_decoder": "1.3.0", - "timers-browserify": "2.0.11", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.11.1", - "vm-browserify": "1.1.2" - } - }, - "node_modules/node-libs-browser/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "node_modules/node-libs-browser/node_modules/readable-stream/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==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/node-releases": { - "version": "1.1.63", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.63.tgz", - "integrity": "sha512-ukW3iCfQaoxJkSPN+iK7KznTeqDGVJatAEuXsJERYHa9tn/KaT5lBdIyxQjLEVTzSkyjJEuQ17/vaEjrOauDkg==" - }, - "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==" - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "node_modules/normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dependencies": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" - } - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dependencies": { - "path-key": "2.0.1" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "node_modules/nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" - }, - "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==", - "dependencies": { - "boolbase": "1.0.0" - } - }, - "node_modules/null-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-3.0.0.tgz", - "integrity": "sha512-hf5sNLl8xdRho4UPBOOeoIwT3WhjYcMUQm0zj44EhD6UscMAz72o2udpoDFBgykucdEDGIcd6SXbc/G6zssbzw==", - "dependencies": { - "loader-utils": "1.4.0", - "schema-utils": "1.0.0" - } - }, - "node_modules/null-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "1.2.5" - } - }, - "node_modules/null-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" - } - }, - "node_modules/null-loader/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dependencies": { - "ajv": "6.12.6", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.5.2" - } - }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dependencies": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "0.1.6" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "1.1.6" - } - }, - "node_modules/object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" - }, - "node_modules/object-is": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.3.tgz", - "integrity": "sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==", - "dependencies": { - "define-properties": "1.1.3", - "es-abstract": "1.18.0-next.1" - } - }, - "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==" - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dependencies": { - "isobject": "3.0.1" - } - }, - "node_modules/object.assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz", - "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==", - "dependencies": { - "define-properties": "1.1.3", - "es-abstract": "1.18.0-next.1", - "has-symbols": "1.0.1", - "object-keys": "1.1.1" - } - }, - "node_modules/object.entries": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", - "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.entries/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", - "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.fromentries/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", - "dependencies": { - "define-properties": "1.1.3", - "es-abstract": "1.17.7" - } - }, - "node_modules/object.getownpropertydescriptors/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dependencies": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.2.2", - "is-regex": "1.1.1", - "object-inspect": "1.8.0", - "object-keys": "1.1.1", - "object.assign": "4.1.1", - "string.prototype.trimend": "1.0.1", - "string.prototype.trimstart": "1.0.1" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dependencies": { - "isobject": "3.0.1" - } - }, - "node_modules/object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", - "dependencies": { - "define-properties": "1.1.3", - "es-abstract": "1.17.7", - "function-bind": "1.1.1", - "has": "1.0.3" - } - }, - "node_modules/object.values/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dependencies": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.2.2", - "is-regex": "1.1.1", - "object-inspect": "1.8.0", - "object-keys": "1.1.1", - "object.assign": "4.1.1", - "string.prototype.trimend": "1.0.1", - "string.prototype.trimstart": "1.0.1" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1.0.2" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "2.1.0" - } - }, - "node_modules/open": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz", - "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==", - "dependencies": { - "is-docker": "2.1.1", - "is-wsl": "2.2.0" - } - }, - "node_modules/opener": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", - "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==" - }, - "node_modules/opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "dependencies": { - "is-wsl": "1.1.0" - } - }, - "node_modules/opn/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "node_modules/optimize-css-assets-webpack-plugin": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz", - "integrity": "sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A==", - "dependencies": { - "cssnano": "4.1.10", - "last-call-webpack-plugin": "3.0.0" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "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.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dependencies": { - "url-parse": "1.4.7" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "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==", - "dependencies": { - "p-try": "2.2.0" - } - }, - "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==", - "dependencies": { - "p-limit": "2.3.0" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "3.1.0" - } - }, - "node_modules/p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dependencies": { - "retry": "0.12.0" - } - }, - "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==" - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dependencies": { - "got": "9.6.0", - "registry-auth-token": "4.2.0", - "registry-url": "5.1.0", - "semver": "6.3.0" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dependencies": { - "cyclist": "1.0.1", - "inherits": "2.0.4", - "readable-stream": "2.3.7" - } - }, - "node_modules/parallel-transform/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "node_modules/parallel-transform/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==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/param-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz", - "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==", - "dependencies": { - "dot-case": "3.0.3", - "tslib": "1.14.1" - } - }, - "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==", - "dependencies": { - "callsites": "3.1.0" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dependencies": { - "asn1.js": "5.4.1", - "browserify-aes": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.1.1", - "safe-buffer": "5.1.2" - } - }, - "node_modules/parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-json": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", - "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", - "dependencies": { - "@babel/code-frame": "7.10.4", - "error-ex": "1.3.2", - "json-parse-even-better-errors": "2.3.1", - "lines-and-columns": "1.1.6" - } - }, - "node_modules/parse-numeric-range": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz", - "integrity": "sha1-tPCdQTx6282Yf26SM8e0shDJOOQ=" - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "node_modules/pascal-case": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", - "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", - "dependencies": { - "no-case": "3.0.3", - "tslib": "1.14.1" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "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==" - }, - "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "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==" - }, - "node_modules/pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "dependencies": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dependencies": { - "pinkie": "2.0.4" - } - }, - "node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dependencies": { - "find-up": "3.0.0" - } - }, - "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==", - "dependencies": { - "find-up": "3.0.0" - } - }, - "node_modules/pnp-webpack-plugin": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", - "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", - "dependencies": { - "ts-pnp": "1.2.0" - } - }, - "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dependencies": { - "async": "2.6.3", - "debug": "3.2.6", - "mkdirp": "0.5.5" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dependencies": { - "ms": "2.1.2" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dependencies": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" - } - }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", - "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", - "dependencies": { - "postcss": "7.0.35", - "postcss-selector-parser": "6.0.4" - } - }, - "node_modules/postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", - "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", - "dependencies": { - "postcss": "7.0.35", - "postcss-selector-parser": "6.0.4", - "postcss-value-parser": "4.1.0" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", - "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", - "dependencies": { - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "node_modules/postcss-color-gray": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", - "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", - "dependencies": { - "@csstools/convert-colors": "1.4.0", - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", - "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", - "dependencies": { - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "node_modules/postcss-color-mod-function": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", - "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", - "dependencies": { - "@csstools/convert-colors": "1.4.0", - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", - "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", - "dependencies": { - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "node_modules/postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "dependencies": { - "browserslist": "4.14.5", - "color": "3.1.3", - "has": "1.0.3", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - } - }, - "node_modules/postcss-colormin/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "dependencies": { - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - } - }, - "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-custom-media": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", - "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-custom-properties": { - "version": "8.0.11", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", - "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", - "dependencies": { - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", - "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", - "dependencies": { - "postcss": "7.0.35", - "postcss-selector-parser": "5.0.0" - } - }, - "node_modules/postcss-custom-selectors/node_modules/cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "dependencies": { - "cssesc": "2.0.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", - "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", - "dependencies": { - "postcss": "7.0.35", - "postcss-selector-parser": "5.0.0" - } - }, - "node_modules/postcss-dir-pseudo-class/node_modules/cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "dependencies": { - "cssesc": "2.0.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "node_modules/postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-double-position-gradients": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", - "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", - "dependencies": { - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "node_modules/postcss-env-function": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", - "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", - "dependencies": { - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "node_modules/postcss-focus-visible": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", - "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-focus-within": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", - "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-font-variant": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz", - "integrity": "sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-gap-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", - "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-image-set-function": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", - "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", - "dependencies": { - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "node_modules/postcss-initial": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.2.tgz", - "integrity": "sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA==", - "dependencies": { - "lodash.template": "4.5.0", - "postcss": "7.0.35" - } - }, - "node_modules/postcss-lab-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", - "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", - "dependencies": { - "@csstools/convert-colors": "1.4.0", - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "node_modules/postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", - "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", - "dependencies": { - "cosmiconfig": "5.2.1", - "import-cwd": "2.1.0" - } - }, - "node_modules/postcss-load-config/node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dependencies": { - "import-fresh": "2.0.0", - "is-directory": "0.3.1", - "js-yaml": "3.14.0", - "parse-json": "4.0.0" - } - }, - "node_modules/postcss-load-config/node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dependencies": { - "caller-path": "2.0.0", - "resolve-from": "3.0.0" - } - }, - "node_modules/postcss-load-config/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dependencies": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" - } - }, - "node_modules/postcss-load-config/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - }, - "node_modules/postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", - "dependencies": { - "loader-utils": "1.4.0", - "postcss": "7.0.35", - "postcss-load-config": "2.1.2", - "schema-utils": "1.0.0" - } - }, - "node_modules/postcss-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "1.2.5" - } - }, - "node_modules/postcss-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" - } - }, - "node_modules/postcss-loader/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dependencies": { - "ajv": "6.12.6", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.5.2" - } - }, - "node_modules/postcss-logical": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", - "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-media-minmax": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", - "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "dependencies": { - "css-color-names": "0.0.4", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1", - "stylehacks": "4.0.3" - } - }, - "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "dependencies": { - "browserslist": "4.14.5", - "caniuse-api": "3.0.0", - "cssnano-util-same-parent": "4.0.1", - "postcss": "7.0.35", - "postcss-selector-parser": "3.1.2", - "vendors": "1.0.4" - } - }, - "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dependencies": { - "dot-prop": "5.3.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "dependencies": { - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - } - }, - "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "dependencies": { - "cssnano-util-get-arguments": "4.0.0", - "is-color-stop": "1.1.0", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - } - }, - "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "dependencies": { - "alphanum-sort": "1.0.2", - "browserslist": "4.14.5", - "cssnano-util-get-arguments": "4.0.0", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1", - "uniqs": "2.0.0" - } - }, - "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "dependencies": { - "alphanum-sort": "1.0.2", - "has": "1.0.3", - "postcss": "7.0.35", - "postcss-selector-parser": "3.1.2" - } - }, - "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dependencies": { - "dot-prop": "5.3.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", - "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", - "dependencies": { - "icss-utils": "4.1.1", - "postcss": "7.0.35", - "postcss-selector-parser": "6.0.4", - "postcss-value-parser": "4.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", - "dependencies": { - "postcss": "7.0.35", - "postcss-selector-parser": "6.0.4" - } - }, - "node_modules/postcss-modules-values": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", - "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", - "dependencies": { - "icss-utils": "4.1.1", - "postcss": "7.0.35" - } - }, - "node_modules/postcss-nesting": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", - "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "dependencies": { - "cssnano-util-get-match": "4.0.0", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "dependencies": { - "cssnano-util-get-arguments": "4.0.0", - "has": "1.0.3", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - } - }, - "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "dependencies": { - "cssnano-util-get-arguments": "4.0.0", - "cssnano-util-get-match": "4.0.0", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "dependencies": { - "has": "1.0.3", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - } - }, - "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "dependencies": { - "cssnano-util-get-match": "4.0.0", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "dependencies": { - "browserslist": "4.14.5", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "dependencies": { - "is-absolute-url": "2.1.0", - "normalize-url": "3.3.0", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - } - }, - "node_modules/postcss-normalize-url/node_modules/normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" - }, - "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "dependencies": { - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "dependencies": { - "cssnano-util-get-arguments": "4.0.0", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - } - }, - "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-overflow-shorthand": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", - "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-page-break": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", - "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-place": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", - "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", - "dependencies": { - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "node_modules/postcss-preset-env": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", - "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", - "dependencies": { - "autoprefixer": "9.8.6", - "browserslist": "4.14.5", - "caniuse-lite": "1.0.30001148", - "css-blank-pseudo": "0.1.4", - "css-has-pseudo": "0.10.0", - "css-prefers-color-scheme": "3.1.1", - "cssdb": "4.4.0", - "postcss": "7.0.35", - "postcss-attribute-case-insensitive": "4.0.2", - "postcss-color-functional-notation": "2.0.1", - "postcss-color-gray": "5.0.0", - "postcss-color-hex-alpha": "5.0.3", - "postcss-color-mod-function": "3.0.3", - "postcss-color-rebeccapurple": "4.0.1", - "postcss-custom-media": "7.0.8", - "postcss-custom-properties": "8.0.11", - "postcss-custom-selectors": "5.1.2", - "postcss-dir-pseudo-class": "5.0.0", - "postcss-double-position-gradients": "1.0.0", - "postcss-env-function": "2.0.2", - "postcss-focus-visible": "4.0.0", - "postcss-focus-within": "3.0.0", - "postcss-font-variant": "4.0.0", - "postcss-gap-properties": "2.0.0", - "postcss-image-set-function": "3.0.1", - "postcss-initial": "3.0.2", - "postcss-lab-function": "2.0.1", - "postcss-logical": "3.0.0", - "postcss-media-minmax": "4.0.0", - "postcss-nesting": "7.0.1", - "postcss-overflow-shorthand": "2.0.0", - "postcss-page-break": "2.0.0", - "postcss-place": "4.0.1", - "postcss-pseudo-class-any-link": "6.0.0", - "postcss-replace-overflow-wrap": "3.0.0", - "postcss-selector-matches": "4.0.0", - "postcss-selector-not": "4.0.0" - } - }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", - "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", - "dependencies": { - "postcss": "7.0.35", - "postcss-selector-parser": "5.0.0" - } - }, - "node_modules/postcss-pseudo-class-any-link/node_modules/cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "dependencies": { - "cssesc": "2.0.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "dependencies": { - "browserslist": "4.14.5", - "caniuse-api": "3.0.0", - "has": "1.0.3", - "postcss": "7.0.35" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "dependencies": { - "cssnano-util-get-match": "4.0.0", - "has": "1.0.3", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", - "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", - "dependencies": { - "postcss": "7.0.35" - } - }, - "node_modules/postcss-selector-matches": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", - "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", - "dependencies": { - "balanced-match": "1.0.0", - "postcss": "7.0.35" - } - }, - "node_modules/postcss-selector-not": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz", - "integrity": "sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ==", - "dependencies": { - "balanced-match": "1.0.0", - "postcss": "7.0.35" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", - "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", - "dependencies": { - "cssesc": "3.0.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "node_modules/postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", - "dependencies": { - "is-svg": "3.0.0", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1", - "svgo": "1.3.2" - } - }, - "node_modules/postcss-svgo/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", - "dependencies": { - "alphanum-sort": "1.0.2", - "postcss": "7.0.35", - "uniqs": "2.0.0" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" - }, - "node_modules/postcss-values-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", - "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", - "dependencies": { - "flatten": "1.0.3", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "node_modules/postcss/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==", - "dependencies": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "node_modules/postcss/node_modules/chalk/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==", - "dependencies": { - "has-flag": "3.0.0" - } - }, - "node_modules/postcss/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==" - }, - "node_modules/postcss/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dependencies": { - "has-flag": "3.0.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "node_modules/prettier": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", - "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", - "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", - "dependencies": { - "lodash": "4.17.20", - "renderkid": "2.0.4" - } - }, - "node_modules/pretty-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", - "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==" - }, - "node_modules/prism-react-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.1.1.tgz", - "integrity": "sha512-MgMhSdHuHymNRqD6KM3eGS0PNqgK9q4QF5P0yoQQvpB6jNjeSAi3jcSAz0Sua/t9fa4xDOMar9HJbLa08gl9ug==", - "peerDependencies": { - "react": ">=0.14.9" - } - }, - "node_modules/prismjs": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.22.0.tgz", - "integrity": "sha512-lLJ/Wt9yy0AiSYBf212kK3mM5L8ycwlyTlSxHBAneXLR0nzFMlZ5y7riFPF3E33zXOF2IH95xdY5jIyZbM9z/w==", - "dependencies": { - "clipboard": "^2.0.0" - }, - "optionalDependencies": { - "clipboard": "^2.0.0" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "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==" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dependencies": { - "asap": "~2.0.3" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dependencies": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "react-is": "16.13.1" - } - }, - "node_modules/property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "dependencies": { - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dependencies": { - "forwarded": "0.1.2", - "ipaddr.js": "1.9.1" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dependencies": { - "bn.js": "4.11.9", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.6", - "randombytes": "2.1.0", - "safe-buffer": "5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "1.4.4", - "once": "1.4.0" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dependencies": { - "duplexify": "3.7.1", - "inherits": "2.0.4", - "pump": "2.0.1" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dependencies": { - "end-of-stream": "1.4.4", - "once": "1.4.0" - } - }, - "node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, - "node_modules/pupa": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", - "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", - "dependencies": { - "escape-goat": "2.1.1" - } - }, - "node_modules/pure-color": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz", - "integrity": "sha1-H+Bk+wrIUfDeYTIKi/eWg2Qi8z4=" - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" - }, - "node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "node_modules/query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dependencies": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dependencies": { - "randombytes": "2.1.0", - "safe-buffer": "5.1.2" - } - }, - "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==" - }, - "node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.5", - "strip-json-comments": "2.0.1" - } - }, - "node_modules/react": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", - "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", - "dependencies": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "prop-types": "15.7.2" - } - }, - "node_modules/react-base16-styling": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz", - "integrity": "sha1-7yFW1mz0E5aVyKFniGy2nqZgeSw=", - "dependencies": { - "base16": "^1.0.0", - "lodash.curry": "^4.0.1", - "lodash.flow": "^3.3.0", - "pure-color": "^1.2.0" - } - }, - "node_modules/react-copy-to-clipboard": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.2.tgz", - "integrity": "sha512-/2t5mLMMPuN5GmdXo6TebFa8IoFxZ+KTDDqYhcDm0PhkgEzSxVvIX26G20s1EB02A4h2UZgwtfymZ3lGJm0OLg==", - "dependencies": { - "copy-to-clipboard": "^3", - "prop-types": "^15.5.8" - }, - "peerDependencies": { - "react": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/react-dev-utils": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.2.1.tgz", - "integrity": "sha512-XxTbgJnYZmxuPtY3y/UV0D8/65NKkmaia4rXzViknVnZeVlklSh8u6TnaEYPfAi/Gh1TP4mEOXHI6jQOPbeakQ==", - "dependencies": { - "@babel/code-frame": "7.8.3", - "address": "1.1.2", - "browserslist": "4.10.0", - "chalk": "2.4.2", - "cross-spawn": "7.0.1", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "2.0.0", - "filesize": "6.0.1", - "find-up": "4.1.0", - "fork-ts-checker-webpack-plugin": "3.1.1", - "global-modules": "2.0.0", - "globby": "8.0.2", - "gzip-size": "5.1.1", - "immer": "1.10.0", - "inquirer": "7.0.4", - "is-root": "2.1.0", - "loader-utils": "1.2.3", - "open": "7.3.0", - "pkg-up": "3.1.0", - "react-error-overlay": "6.0.7", - "recursive-readdir": "2.2.2", - "shell-quote": "1.7.2", - "strip-ansi": "6.0.0", - "text-table": "0.2.0" - } - }, - "node_modules/react-dev-utils/node_modules/@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "dependencies": { - "@babel/highlight": "7.10.4" - } - }, - "node_modules/react-dev-utils/node_modules/@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" - }, - "node_modules/react-dev-utils/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dependencies": { - "array-uniq": "1.0.3" - } - }, - "node_modules/react-dev-utils/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - } - }, - "node_modules/react-dev-utils/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "0.1.1" - } - }, - "node_modules/react-dev-utils/node_modules/browserslist": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz", - "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==", - "dependencies": { - "caniuse-lite": "1.0.30001148", - "electron-to-chromium": "1.3.582", - "node-releases": "1.1.63", - "pkg-up": "3.1.0" - } - }, - "node_modules/react-dev-utils/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==", - "dependencies": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "node_modules/react-dev-utils/node_modules/chalk/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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "node_modules/react-dev-utils/node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" - }, - "node_modules/react-dev-utils/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/react-dev-utils/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==", - "dependencies": { - "address": "1.1.2", - "debug": "2.6.9" - } - }, - "node_modules/react-dev-utils/node_modules/dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "dependencies": { - "arrify": "1.0.1", - "path-type": "3.0.0" - } - }, - "node_modules/react-dev-utils/node_modules/emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "node_modules/react-dev-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==" - }, - "node_modules/react-dev-utils/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "node_modules/react-dev-utils/node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "2.0.4" - } - }, - "node_modules/react-dev-utils/node_modules/fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "dependencies": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.3", - "glob-parent": "3.1.0", - "is-glob": "4.0.1", - "merge2": "1.4.1", - "micromatch": "3.1.10" - } - }, - "node_modules/react-dev-utils/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - } - }, - "node_modules/react-dev-utils/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "0.1.1" - } - }, - "node_modules/react-dev-utils/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==", - "dependencies": { - "locate-path": "5.0.0", - "path-exists": "4.0.0" - } - }, - "node_modules/react-dev-utils/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dependencies": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - } - }, - "node_modules/react-dev-utils/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dependencies": { - "is-extglob": "2.1.1" - } - }, - "node_modules/react-dev-utils/node_modules/globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "dependencies": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "fast-glob": "2.2.7", - "glob": "7.1.6", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" - } - }, - "node_modules/react-dev-utils/node_modules/ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, - "node_modules/react-dev-utils/node_modules/inquirer": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", - "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", - "dependencies": { - "ansi-escapes": "4.3.1", - "chalk": "2.4.2", - "cli-cursor": "3.1.0", - "cli-width": "2.2.1", - "external-editor": "3.1.0", - "figures": "3.2.0", - "lodash": "4.17.20", - "mute-stream": "0.0.8", - "run-async": "2.4.1", - "rxjs": "6.6.3", - "string-width": "4.2.0", - "strip-ansi": "5.2.0", - "through": "2.3.8" - } - }, - "node_modules/react-dev-utils/node_modules/inquirer/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dependencies": { - "ansi-regex": "4.1.0" - } - }, - "node_modules/react-dev-utils/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "3.2.2" - } - }, - "node_modules/react-dev-utils/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "1.1.6" - } - }, - "node_modules/react-dev-utils/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "1.2.5" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "dependencies": { - "big.js": "5.2.2", - "emojis-list": "2.1.0", - "json5": "1.0.1" - } - }, - "node_modules/react-dev-utils/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==", - "dependencies": { - "p-locate": "4.1.0" - } - }, - "node_modules/react-dev-utils/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.3", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "node_modules/react-dev-utils/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/react-dev-utils/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==", - "dependencies": { - "p-limit": "2.3.0" - } - }, - "node_modules/react-dev-utils/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==" - }, - "node_modules/react-dev-utils/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dependencies": { - "pify": "3.0.0" - } - }, - "node_modules/react-dev-utils/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "node_modules/react-dev-utils/node_modules/slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "node_modules/react-dev-utils/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dependencies": { - "ansi-regex": "5.0.0" - } - }, - "node_modules/react-dev-utils/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "node_modules/react-dev-utils/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "node_modules/react-dom": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", - "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", - "dependencies": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "prop-types": "15.7.2", - "scheduler": "0.19.1" - } - }, - "node_modules/react-error-overlay": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz", - "integrity": "sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA==" - }, - "node_modules/react-fast-compare": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" - }, - "node_modules/react-helmet": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", - "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", - "dependencies": { - "object-assign": "4.1.1", - "prop-types": "15.7.2", - "react-fast-compare": "3.2.0", - "react-side-effect": "2.1.0" - } - }, - "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==" - }, - "node_modules/react-json-view": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.19.1.tgz", - "integrity": "sha512-u5e0XDLIs9Rj43vWkKvwL8G3JzvXSl6etuS5G42a8klMohZuYFQzSN6ri+/GiBptDqlrXPTdExJVU7x9rrlXhg==", - "dependencies": { - "flux": "^3.1.3", - "react-base16-styling": "^0.6.0", - "react-lifecycles-compat": "^3.0.4", - "react-textarea-autosize": "^6.1.0" - }, - "peerDependencies": { - "react": "^16.0.0 || ^15.5.4", - "react-dom": "^16.0.0 || ^15.5.4" - } - }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "node_modules/react-loadable": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/react-loadable/-/react-loadable-5.5.0.tgz", - "integrity": "sha512-C8Aui0ZpMd4KokxRdVAm2bQtI03k2RMRNzOB+IipV3yxFTSVICv7WoUr5L9ALB5BmKO1iHgZtWM8EvYG83otdg==", - "dependencies": { - "prop-types": "15.7.2" - } - }, - "node_modules/react-loadable-ssr-addon": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon/-/react-loadable-ssr-addon-0.3.0.tgz", - "integrity": "sha512-E+lnmDakV0k6ut6R2J77vurwCOwTKEwKlHs9S62G8ez+ujecLPcqjt3YAU8M58kIGjp2QjFlZ7F9QWkq/mr6Iw==", - "dependencies": { - "@babel/runtime": "7.12.1" - } - }, - "node_modules/react-router": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", - "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", - "dependencies": { - "@babel/runtime": "7.12.1", - "history": "4.10.1", - "hoist-non-react-statics": "3.3.2", - "loose-envify": "1.4.0", - "mini-create-react-context": "0.4.0", - "path-to-regexp": "1.8.0", - "prop-types": "15.7.2", - "react-is": "16.13.1", - "tiny-invariant": "1.1.0", - "tiny-warning": "1.0.3" - } - }, - "node_modules/react-router-config": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", - "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", - "dependencies": { - "@babel/runtime": "7.12.1" - } - }, - "node_modules/react-router-dom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz", - "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", - "dependencies": { - "@babel/runtime": "7.12.1", - "history": "4.10.1", - "loose-envify": "1.4.0", - "prop-types": "15.7.2", - "react-router": "5.2.0", - "tiny-invariant": "1.1.0", - "tiny-warning": "1.0.3" - } - }, - "node_modules/react-router/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/react-router/node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/react-side-effect": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.0.tgz", - "integrity": "sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg==" - }, - "node_modules/react-textarea-autosize": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-6.1.0.tgz", - "integrity": "sha512-F6bI1dgib6fSvG8so1HuArPUv+iVEfPliuLWusLF+gAKz0FbB4jLrWUrTAeq1afnPT2c9toEZYUdz/y1uKMy4A==", - "dependencies": { - "prop-types": "^15.6.0" - }, - "peerDependencies": { - "react": ">=0.14.0 <17.0.0" - } - }, - "node_modules/react-toastify": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-6.0.9.tgz", - "integrity": "sha512-StHXv+4kezHUnPyoILlvygSptQ79bxVuvKcC05yXP0FlqQgPA1ue+80BqxZZiCw2jWDGiY2MHyqBfFKf5YzZbA==", - "dependencies": { - "classnames": "^2.2.6", - "prop-types": "^15.7.2", - "react-transition-group": "^4.4.1" - }, - "peerDependencies": { - "react": ">=16" - } - }, - "node_modules/react-toggle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/react-toggle/-/react-toggle-4.1.1.tgz", - "integrity": "sha512-+wXlMcSpg8SmnIXauMaZiKpR+r2wp2gMUteroejp2UTSqGTVvZLN+m9EhMzFARBKEw7KpQOwzCyfzeHeAndQGw==", - "dependencies": { - "classnames": "^2.2.5" - }, - "peerDependencies": { - "prop-types": "^15.3.0 || ^16.0.0", - "react": "^15.3.0 || ^16.0.0", - "react-dom": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/react-transition-group": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", - "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "2.0.4", - "string_decoder": "1.3.0", - "util-deprecate": "1.0.2" - } - }, - "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dependencies": { - "picomatch": "2.2.2" - } - }, - "node_modules/reading-time": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.2.0.tgz", - "integrity": "sha512-5b4XmKK4MEss63y0Lw0vn0Zn6G5kiHP88mUnD8UeEsyORj3sh1ghTH0/u6m1Ax9G2F4wUZrknlp6WlIsCvoXVA==" - }, - "node_modules/rebass": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/rebass/-/rebass-4.0.7.tgz", - "integrity": "sha512-GJot6j6Qcr7jk1QIgf9qBoud75CGRpN8pGcEo98TSp4KNSWV01ZLvGwFKGI35oEBuNs+lpEd3+pnwkQUTSFytg==", - "dev": true, - "optional": true, - "dependencies": { - "reflexbox": "^4.0.6" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dependencies": { - "resolve": "1.17.0" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "dependencies": { - "minimatch": "3.0.4" - } - }, - "node_modules/reflexbox": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/reflexbox/-/reflexbox-4.0.6.tgz", - "integrity": "sha512-UNUL4YoJEXAPjRKHuty1tuOk+LV1nDJ2KYViDcH7lYm5yU3AQ+EKNXxPU3E14bQNK/pE09b1hYl+ZKdA94tWLQ==", - "dev": true, - "optional": true, - "dependencies": { - "@emotion/core": "^10.0.0", - "@emotion/styled": "^10.0.0", - "@styled-system/css": "^5.0.0", - "@styled-system/should-forward-prop": "^5.0.0", - "styled-system": "^5.0.0" - }, - "peerDependencies": { - "react": "^16.8.6" - } - }, - "node_modules/regenerate": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", - "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==" - }, - "node_modules/regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "dependencies": { - "regenerate": "1.4.1" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dependencies": { - "@babel/runtime": "7.12.1" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dependencies": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "node_modules/regex-not/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "node_modules/regex-not/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "2.0.4" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "dependencies": { - "define-properties": "1.1.3", - "es-abstract": "1.17.7" - } - }, - "node_modules/regexp.prototype.flags/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dependencies": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.2.2", - "is-regex": "1.1.1", - "object-inspect": "1.8.0", - "object-keys": "1.1.1", - "object.assign": "4.1.1", - "string.prototype.trimend": "1.0.1", - "string.prototype.trimstart": "1.0.1" - } - }, - "node_modules/regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", - "dependencies": { - "regenerate": "1.4.1", - "regenerate-unicode-properties": "8.2.0", - "regjsgen": "0.5.2", - "regjsparser": "0.6.4", - "unicode-match-property-ecmascript": "1.0.4", - "unicode-match-property-value-ecmascript": "1.2.0" - } - }, - "node_modules/registry-auth-token": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz", - "integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==", - "dependencies": { - "rc": "1.2.8" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dependencies": { - "rc": "1.2.8" - } - }, - "node_modules/regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" - }, - "node_modules/regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", - "dependencies": { - "jsesc": "0.5.0" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - }, - "node_modules/rehype-parse": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-6.0.2.tgz", - "integrity": "sha512-0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug==", - "dependencies": { - "hast-util-from-parse5": "^5.0.0", - "parse5": "^5.0.0", - "xtend": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-parse/node_modules/hast-util-from-parse5": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz", - "integrity": "sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==", - "dependencies": { - "ccount": "^1.0.3", - "hastscript": "^5.0.0", - "property-information": "^5.0.0", - "web-namespaces": "^1.1.2", - "xtend": "^4.0.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-parse/node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" - }, - "node_modules/remark-admonitions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/remark-admonitions/-/remark-admonitions-1.2.1.tgz", - "integrity": "sha512-Ji6p68VDvD+H1oS95Fdx9Ar5WA2wcDA4kwrrhVU7fGctC6+d3uiMICu7w7/2Xld+lnU7/gi+432+rRbup5S8ow==", - "dependencies": { - "rehype-parse": "^6.0.2", - "unified": "^8.4.2", - "unist-util-visit": "^2.0.1" - } - }, - "node_modules/remark-admonitions/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/remark-admonitions/node_modules/unified": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz", - "integrity": "sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==", - "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-emoji": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-2.1.0.tgz", - "integrity": "sha512-lDddGsxXURV01WS9WAiS9rO/cedO1pvr9tahtLhr6qCGFhHG4yZSJW3Ha4Nw9Uk1hLNmUBtPC0+m45Ms+xEitg==", - "dependencies": { - "emoticon": "^3.2.0", - "node-emoji": "^1.10.0", - "unist-util-visit": "^2.0.2" - } - }, - "node_modules/remark-footnotes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", - "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx": { - "version": "1.6.19", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.19.tgz", - "integrity": "sha512-UKK1CFatVPNhgjsIlNQ3GjVl3+6O7x7Hag6oyntFTg8s7sgq+rhWaSfM/6lW5UWU6hzkj520KYBuBlsaSriGtA==", - "dependencies": { - "@babel/core": "7.11.6", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-proposal-object-rest-spread": "7.11.0", - "@babel/plugin-syntax-jsx": "7.10.4", - "@mdx-js/util": "1.6.19", - "is-alphabetical": "1.0.4", - "remark-parse": "8.0.3", - "unified": "9.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx/node_modules/@babel/core": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz", - "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.6", - "@babel/helper-module-transforms": "^7.11.0", - "@babel/helpers": "^7.10.4", - "@babel/parser": "^7.11.5", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.11.5", - "@babel/types": "^7.11.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/remark-mdx/node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz", - "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/remark-mdx/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", - "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/remark-mdx/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/remark-parse": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", - "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", - "dependencies": { - "ccount": "^1.0.0", - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^2.0.0", - "vfile-location": "^3.0.0", - "xtend": "^4.0.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", - "dependencies": { - "mdast-squeeze-paragraphs": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz", - "integrity": "sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==", - "dev": true, - "dependencies": { - "ccount": "^1.0.0", - "is-alphanumeric": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "longest-streak": "^2.0.1", - "markdown-escapes": "^1.0.0", - "markdown-table": "^2.0.0", - "mdast-util-compact": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "stringify-entities": "^3.0.0", - "unherit": "^1.0.4", - "xtend": "^4.0.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "node_modules/renderkid": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.4.tgz", - "integrity": "sha512-K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g==", - "dependencies": { - "css-select": "1.2.0", - "dom-converter": "0.2.0", - "htmlparser2": "3.10.1", - "lodash": "4.17.20", - "strip-ansi": "3.0.1" - } - }, - "node_modules/renderkid/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "node_modules/renderkid/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "2.1.1" - } - }, - "node_modules/repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "node_modules/replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "node_modules/require-like": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", - "integrity": "sha1-rW8wwTvs15cBDEaK+ndcDAprR/o=" - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dependencies": { - "path-parse": "1.0.6" - } - }, - "node_modules/resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dependencies": { - "resolve-from": "3.0.0" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - }, - "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==" - }, - "node_modules/resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dependencies": { - "lowercase-keys": "1.0.1" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dependencies": { - "onetime": "5.1.2", - "signal-exit": "3.0.3" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "node_modules/rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" - }, - "node_modules/rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "7.1.6" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "3.1.0", - "inherits": "2.0.4" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" - }, - "node_modules/run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" - }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dependencies": { - "aproba": "1.2.0" - } - }, - "node_modules/rx": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=" - }, - "node_modules/rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dependencies": { - "tslib": "1.14.1" - } - }, - "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==" - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dependencies": { - "ret": "0.1.15" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "dependencies": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1" - } - }, - "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==", - "dependencies": { - "@types/json-schema": "7.0.6", - "ajv": "6.12.6", - "ajv-keywords": "3.5.2" - } - }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "dependencies": { - "extend-shallow": "2.0.1", - "kind-of": "6.0.3" - } - }, - "node_modules/select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", - "optional": true - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "node_modules/selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", - "dependencies": { - "node-forge": "0.10.0" - } - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dependencies": { - "semver": "6.3.0" - } - }, - "node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dependencies": { - "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "fresh": "0.5.2", - "http-errors": "1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "2.3.0", - "range-parser": "1.2.1", - "statuses": "1.5.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==", - "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "node_modules/serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dependencies": { - "randombytes": "2.1.0" - } - }, - "node_modules/serve-handler": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz", - "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==", - "dependencies": { - "bytes": "3.0.0", - "content-disposition": "0.5.2", - "fast-url-parser": "1.1.3", - "mime-types": "2.1.18", - "minimatch": "3.0.4", - "path-is-inside": "1.0.2", - "path-to-regexp": "2.2.1", - "range-parser": "1.2.0" - } - }, - "node_modules/serve-handler/node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "node_modules/serve-handler/node_modules/content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" - }, - "node_modules/serve-handler/node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" - }, - "node_modules/serve-handler/node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "dependencies": { - "mime-db": "1.33.0" - } - }, - "node_modules/serve-handler/node_modules/path-to-regexp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", - "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" - }, - "node_modules/serve-handler/node_modules/range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dependencies": { - "accepts": "1.3.7", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.3", - "mime-types": "2.1.27", - "parseurl": "1.3.3" - } - }, - "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==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dependencies": { - "depd": "1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": "1.5.0" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dependencies": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.3", - "send": "0.17.1" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dependencies": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "2.0.4", - "safe-buffer": "5.1.2" - } - }, - "node_modules/shallow-clone": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", - "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", - "dependencies": { - "is-extendable": "0.1.1", - "kind-of": "2.0.1", - "lazy-cache": "0.2.7", - "mixin-object": "2.0.1" - } - }, - "node_modules/shallow-clone/node_modules/kind-of": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", - "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", - "dependencies": { - "is-buffer": "1.1.6" - } - }, - "node_modules/shallow-clone/node_modules/lazy-cache": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", - "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=" - }, - "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==", - "dependencies": { - "shebang-regex": "3.0.0" - } - }, - "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==" - }, - "node_modules/shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" - }, - "node_modules/shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "dependencies": { - "glob": "7.1.6", - "interpret": "1.4.0", - "rechoir": "0.6.2" - } - }, - "node_modules/side-channel": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz", - "integrity": "sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g==", - "dev": true, - "dependencies": { - "es-abstract": "^1.18.0-next.0", - "object-inspect": "^1.8.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dependencies": { - "is-arrayish": "0.3.2" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "node_modules/sitemap": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz", - "integrity": "sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg==", - "dependencies": { - "lodash.chunk": "^4.2.0", - "lodash.padstart": "^4.6.1", - "whatwg-url": "^7.0.0", - "xmlbuilder": "^13.0.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=4.0.0" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dependencies": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.3", - "use": "3.1.1" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dependencies": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "1.0.2" - } - }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "6.0.3" - } - }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "6.0.3" - } - }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dependencies": { - "kind-of": "3.2.2" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "1.1.6" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "0.1.6" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/sockjs": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", - "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", - "dependencies": { - "faye-websocket": "0.10.0", - "uuid": "3.4.0", - "websocket-driver": "0.6.5" - } - }, - "node_modules/sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", - "dependencies": { - "debug": "3.2.6", - "eventsource": "1.0.7", - "faye-websocket": "0.11.3", - "inherits": "2.0.4", - "json3": "3.3.3", - "url-parse": "1.4.7" - } - }, - "node_modules/sockjs-client/node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dependencies": { - "ms": "2.1.2" - } - }, - "node_modules/sockjs-client/node_modules/faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "dependencies": { - "websocket-driver": "0.6.5" - } - }, - "node_modules/sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dependencies": { - "is-plain-obj": "1.1.0" - } - }, - "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==" - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dependencies": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dependencies": { - "buffer-from": "1.1.1", - "source-map": "0.6.1" - } - }, - "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==" - }, - "node_modules/source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "node_modules/space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dependencies": { - "debug": "4.2.0", - "handle-thing": "2.0.1", - "http-deceiver": "1.2.7", - "select-hose": "2.0.0", - "spdy-transport": "3.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==", - "dependencies": { - "debug": "4.2.0", - "detect-node": "2.0.4", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "3.6.0", - "wbuf": "1.7.3" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dependencies": { - "extend-shallow": "3.0.2" - } - }, - "node_modules/split-string/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "node_modules/split-string/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "2.0.4" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "node_modules/ssri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", - "dependencies": { - "minipass": "3.1.3" - } - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "node_modules/state-toggle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", - "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dependencies": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "0.1.6" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "node_modules/std-env": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-2.2.1.tgz", - "integrity": "sha512-IjYQUinA3lg5re/YMlwlfhqNRTzMZMqE+pezevdcTaHceqx8ngEi1alX9nNCk9Sc81fy1fLDeQoaCzeiW1yBOQ==", - "dependencies": { - "ci-info": "1.6.0" - } - }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dependencies": { - "inherits": "2.0.4", - "readable-stream": "2.3.7" - } - }, - "node_modules/stream-browserify/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "node_modules/stream-browserify/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==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dependencies": { - "end-of-stream": "1.4.4", - "stream-shift": "1.0.1" - } - }, - "node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dependencies": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.4", - "readable-stream": "2.3.7", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.2" - } - }, - "node_modules/stream-http/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "node_modules/stream-http/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==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - }, - "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==", - "dependencies": { - "safe-buffer": "5.2.1" - } - }, - "node_modules/string_decoder/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==" - }, - "node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dependencies": { - "emoji-regex": "8.0.0", - "is-fullwidth-code-point": "3.0.0", - "strip-ansi": "6.0.0" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "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==" - }, - "node_modules/string-width/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==" - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dependencies": { - "ansi-regex": "5.0.0" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz", - "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "has-symbols": "^1.0.1", - "internal-slot": "^1.0.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.matchall/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "dependencies": { - "define-properties": "1.1.3", - "es-abstract": "1.17.7" - } - }, - "node_modules/string.prototype.trimend/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dependencies": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.2.2", - "is-regex": "1.1.1", - "object-inspect": "1.8.0", - "object-keys": "1.1.1", - "object.assign": "4.1.1", - "string.prototype.trimend": "1.0.1", - "string.prototype.trimstart": "1.0.1" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "dependencies": { - "define-properties": "1.1.3", - "es-abstract": "1.17.7" - } - }, - "node_modules/string.prototype.trimstart/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dependencies": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.2.2", - "is-regex": "1.1.1", - "object-inspect": "1.8.0", - "object-keys": "1.1.1", - "object.assign": "4.1.1", - "string.prototype.trimend": "1.0.1", - "string.prototype.trimstart": "1.0.1" - } - }, - "node_modules/stringify-entities": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz", - "integrity": "sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==", - "dev": true, - "dependencies": { - "character-entities-html4": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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==", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stringify-object/node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dependencies": { - "ansi-regex": "4.1.0" - } - }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=" - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "node_modules/style-to-object": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", - "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", - "dependencies": { - "inline-style-parser": "0.1.1" - } - }, - "node_modules/styled-system": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/styled-system/-/styled-system-5.1.5.tgz", - "integrity": "sha512-7VoD0o2R3RKzOzPK0jYrVnS8iJdfkKsQJNiLRDjikOpQVqQHns/DXWaPZOH4tIKkhAT7I6wIsy9FWTWh2X3q+A==", - "dev": true, - "optional": true, - "dependencies": { - "@styled-system/background": "^5.1.2", - "@styled-system/border": "^5.1.5", - "@styled-system/color": "^5.1.2", - "@styled-system/core": "^5.1.2", - "@styled-system/flexbox": "^5.1.2", - "@styled-system/grid": "^5.1.2", - "@styled-system/layout": "^5.1.2", - "@styled-system/position": "^5.1.2", - "@styled-system/shadow": "^5.1.2", - "@styled-system/space": "^5.1.2", - "@styled-system/typography": "^5.1.2", - "@styled-system/variant": "^5.1.5", - "object-assign": "^4.1.1" - } - }, - "node_modules/stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "dependencies": { - "browserslist": "4.14.5", - "postcss": "7.0.35", - "postcss-selector-parser": "3.1.2" - } - }, - "node_modules/stylehacks/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dependencies": { - "dot-prop": "5.3.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "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==", - "dependencies": { - "has-flag": "3.0.0" - } - }, - "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==" - }, - "node_modules/svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "dependencies": { - "chalk": "2.4.2", - "coa": "2.0.2", - "css-select": "2.1.0", - "css-select-base-adapter": "0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "4.0.3", - "js-yaml": "3.14.0", - "mkdirp": "0.5.5", - "object.values": "1.1.1", - "sax": "1.2.4", - "stable": "0.1.8", - "unquote": "1.1.1", - "util.promisify": "1.0.1" - } - }, - "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==", - "dependencies": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "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==", - "dependencies": { - "boolbase": "1.0.0", - "css-what": "3.4.2", - "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==" - }, - "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==", - "dependencies": { - "dom-serializer": "0.1.1", - "domelementtype": "1.3.1" - } - }, - "node_modules/table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "dependencies": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/table/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - }, - "node_modules/tar": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", - "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", - "dependencies": { - "chownr": "2.0.0", - "fs-minipass": "2.1.0", - "minipass": "3.1.3", - "minizlib": "2.1.2", - "mkdirp": "1.0.4", - "yallist": "4.0.0" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "node_modules/term-size": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", - "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==" - }, - "node_modules/terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dependencies": { - "commander": "2.20.3", - "source-map": "0.6.1", - "source-map-support": "0.5.19" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", - "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", - "dependencies": { - "cacache": "15.0.5", - "find-cache-dir": "3.3.1", - "jest-worker": "26.5.0", - "p-limit": "3.0.2", - "schema-utils": "3.0.0", - "serialize-javascript": "5.0.1", - "source-map": "0.6.1", - "terser": "5.3.6", - "webpack-sources": "1.4.3" - } - }, - "node_modules/terser-webpack-plugin/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==" - }, - "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dependencies": { - "commondir": "1.0.1", - "make-dir": "3.1.0", - "pkg-dir": "4.2.0" - } - }, - "node_modules/terser-webpack-plugin/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==", - "dependencies": { - "locate-path": "5.0.0", - "path-exists": "4.0.0" - } - }, - "node_modules/terser-webpack-plugin/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==", - "dependencies": { - "p-locate": "4.1.0" - } - }, - "node_modules/terser-webpack-plugin/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==", - "dependencies": { - "semver": "6.3.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", - "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", - "dependencies": { - "p-try": "2.2.0" - } - }, - "node_modules/terser-webpack-plugin/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==", - "dependencies": { - "p-limit": "2.3.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/p-locate/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==", - "dependencies": { - "p-try": "2.2.0" - } - }, - "node_modules/terser-webpack-plugin/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==" - }, - "node_modules/terser-webpack-plugin/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==", - "dependencies": { - "find-up": "4.1.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dependencies": { - "@types/json-schema": "7.0.6", - "ajv": "6.12.6", - "ajv-keywords": "3.5.2" - } - }, - "node_modules/terser-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==" - }, - "node_modules/terser-webpack-plugin/node_modules/terser": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.6.tgz", - "integrity": "sha512-145ap5v1HYx69HfLuwWaxTIlXyiSr+nSTb7ZWlJCgJn2JptuJRKziNa/zwFx9B1IU99Q055jHni74nLuuEC78w==", - "dependencies": { - "commander": "2.20.3", - "source-map": "0.7.3", - "source-map-support": "0.5.19" - } - }, - "node_modules/terser-webpack-plugin/node_modules/terser/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - }, - "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==" - }, - "node_modules/terser/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==" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "2.3.7", - "xtend": "4.0.2" - } - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "node_modules/through2/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==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "node_modules/timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "dependencies": { - "setimmediate": "1.0.5" - } - }, - "node_modules/timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" - }, - "node_modules/tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", - "optional": true - }, - "node_modules/tiny-invariant": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", - "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" - }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dependencies": { - "os-tmpdir": "1.0.2" - } - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dependencies": { - "kind-of": "3.2.2" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "1.1.6" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dependencies": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - } - }, - "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==", - "dependencies": { - "is-number": "7.0.0" - } - }, - "node_modules/to-regex/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "node_modules/to-regex/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "2.0.4" - } - }, - "node_modules/toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/tr46/node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" - }, - "node_modules/trim-trailing-lines": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz", - "integrity": "sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/tryer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" - }, - "node_modules/ts-pnp": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", - "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==" - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" - }, - "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==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "2.1.27" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "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==", - "dependencies": { - "is-typedarray": "1.0.0" - } - }, - "node_modules/ua-parser-js": { - "version": "0.7.22", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", - "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==", - "engines": { - "node": "*" - } - }, - "node_modules/unherit": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", - "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", - "dependencies": { - "inherits": "^2.0.0", - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "1.0.4", - "unicode-property-aliases-ecmascript": "1.1.0" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" - }, - "node_modules/unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", - "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified/node_modules/is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unified/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dependencies": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "2.0.1" - } - }, - "node_modules/uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "node_modules/uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dependencies": { - "unique-slug": "2.0.2" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dependencies": { - "imurmurhash": "0.1.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==", - "dependencies": { - "crypto-random-string": "2.0.0" - } - }, - "node_modules/unist-builder": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", - "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-generated": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.5.tgz", - "integrity": "sha512-1TC+NxQa4N9pNdayCYA1EGUOCAO0Le3fVp7Jzns6lnua/mYgwHo0tz5WUAfrdpNch1RZLHc61VZ1SDgrtNXLSw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", - "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", - "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.0.0.tgz", - "integrity": "sha512-HwwWyNHKkeg/eXRnE11IpzY8JT55JNM1YCwwU9YNCnfzk6s8GhPXrVBBZWiwLeATJbI7euvoGSzcy9M29UeW3g==", - "dependencies": { - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove-position": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", - "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", - "dependencies": { - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "dependencies": { - "@types/unist": "^2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dependencies": { - "has-value": "0.3.1", - "isobject": "3.0.1" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dependencies": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dependencies": { - "isarray": "1.0.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "node_modules/update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", - "dependencies": { - "boxen": "4.2.0", - "chalk": "3.0.0", - "configstore": "5.0.1", - "has-yarn": "2.1.0", - "import-lazy": "2.1.0", - "is-ci": "2.0.0", - "is-installed-globally": "0.3.2", - "is-npm": "4.0.0", - "is-yarn-global": "0.3.0", - "latest-version": "5.1.0", - "pupa": "2.0.1", - "semver-diff": "3.1.1", - "xdg-basedir": "4.0.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", - "dependencies": { - "punycode": "2.1.1" - } - }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", - "dependencies": { - "loader-utils": "2.0.0", - "mime-types": "2.1.27", - "schema-utils": "3.0.0" - } - }, - "node_modules/url-loader/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dependencies": { - "@types/json-schema": "7.0.6", - "ajv": "6.12.6", - "ajv-keywords": "3.5.2" - } - }, - "node_modules/url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", - "dependencies": { - "querystringify": "2.2.0", - "requires-port": "1.0.0" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dependencies": { - "prepend-http": "2.0.0" - } - }, - "node_modules/url-parse-lax/node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "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==", - "dependencies": { - "define-properties": "1.1.3", - "es-abstract": "1.17.7", - "has-symbols": "1.0.1", - "object.getownpropertydescriptors": "2.1.0" - } - }, - "node_modules/util.promisify/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dependencies": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.2.2", - "is-regex": "1.1.1", - "object-inspect": "1.8.0", - "object-keys": "1.1.1", - "object.assign": "4.1.1", - "string.prototype.trimend": "1.0.1", - "string.prototype.trimstart": "1.0.1" - } - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, - "node_modules/utility-types": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", - "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "node_modules/v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", - "dev": true - }, - "node_modules/value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "node_modules/vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" - }, - "node_modules/vfile": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.0.tgz", - "integrity": "sha512-a/alcwCvtuc8OX92rqqo7PflxiCgXRFjdyoGVuYV+qbgCb0GgZJRvIgCD4+U/Kl1yhaRsaTwksF88xbPyGsgpw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "replace-ext": "1.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.1.0.tgz", - "integrity": "sha512-FCZ4AN9xMcjFIG1oGmZKo61PjwJHRVA+0/tPUP2ul4uIwjGGndIxavEMRpWn5p4xwm/ZsdXp9YNygf1ZyE4x8g==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile/node_modules/is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", - "engines": { - "node": ">=4" - } - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" - }, - "node_modules/wait-file": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/wait-file/-/wait-file-1.0.5.tgz", - "integrity": "sha512-udLpJY/eOxlrMm3+XD1RLuF2oT9B7J7wiyR5/9xrvQymS6YR6trWvVhzOldHrVbLwyiRmLj9fcvsjzpSXeZHkw==", - "dependencies": { - "@hapi/joi": "15.1.1", - "fs-extra": "8.1.0", - "rx": "4.1.0" - } - }, - "node_modules/wait-file/node_modules/@hapi/address": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", - "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" - }, - "node_modules/wait-file/node_modules/@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", - "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" - }, - "node_modules/wait-file/node_modules/@hapi/joi": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", - "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", - "dependencies": { - "@hapi/address": "2.1.4", - "@hapi/bourne": "1.3.2", - "@hapi/hoek": "8.5.1", - "@hapi/topo": "3.1.6" - } - }, - "node_modules/wait-file/node_modules/@hapi/topo": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", - "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", - "dependencies": { - "@hapi/hoek": "8.5.1" - } - }, - "node_modules/watchpack": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", - "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", - "dependencies": { - "chokidar": "3.4.3", - "graceful-fs": "4.2.4", - "neo-async": "2.6.2", - "watchpack-chokidar2": "2.0.0" - }, - "optionalDependencies": { - "watchpack-chokidar2": "2.0.0" - } - }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", - "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", - "optional": true, - "dependencies": { - "chokidar": "2.1.8" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "optional": true, - "dependencies": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "optional": true, - "dependencies": { - "remove-trailing-separator": "1.1.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "optional": true - }, - "node_modules/watchpack-chokidar2/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "optional": true, - "dependencies": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, - "dependencies": { - "is-extendable": "0.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "optional": true, - "dependencies": { - "anymatch": "2.0.0", - "async-each": "1.0.3", - "braces": "2.3.2", - "fsevents": "1.2.13", - "glob-parent": "3.1.0", - "inherits": "2.0.4", - "is-binary-path": "1.0.1", - "is-glob": "4.0.1", - "normalize-path": "3.0.0", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.2.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "optional": true, - "dependencies": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "optional": true, - "dependencies": { - "is-plain-object": "2.0.4" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "optional": true, - "dependencies": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, - "dependencies": { - "is-extendable": "0.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, - "dependencies": { - "bindings": "1.5.0", - "nan": "2.14.2" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "optional": true, - "dependencies": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "optional": true, - "dependencies": { - "is-extglob": "2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "optional": true, - "dependencies": { - "binary-extensions": "1.13.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "optional": true, - "dependencies": { - "kind-of": "3.2.2" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "dependencies": { - "is-buffer": "1.1.6" - } - }, - "node_modules/watchpack-chokidar2/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "optional": true, - "dependencies": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.3", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "dependencies": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "optional": true, - "dependencies": { - "graceful-fs": "4.2.4", - "micromatch": "3.1.10", - "readable-stream": "2.3.7" - } - }, - "node_modules/watchpack-chokidar2/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==", - "optional": true, - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "optional": true, - "dependencies": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dependencies": { - "minimalistic-assert": "1.0.1" - } - }, - "node_modules/web-namespaces": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", - "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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==" - }, - "node_modules/webpack": { - "version": "4.44.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", - "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "6.4.2", - "ajv": "6.12.6", - "ajv-keywords": "3.5.2", - "chrome-trace-event": "1.0.2", - "enhanced-resolve": "4.3.0", - "eslint-scope": "4.0.3", - "json-parse-better-errors": "1.0.2", - "loader-runner": "2.4.0", - "loader-utils": "1.4.0", - "memory-fs": "0.4.1", - "micromatch": "3.1.10", - "mkdirp": "0.5.5", - "neo-async": "2.6.2", - "node-libs-browser": "2.2.1", - "schema-utils": "1.0.0", - "tapable": "1.1.3", - "terser-webpack-plugin": "1.4.5", - "watchpack": "1.7.4", - "webpack-sources": "1.4.3" - } - }, - "node_modules/webpack-bundle-analyzer": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz", - "integrity": "sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA==", - "dependencies": { - "acorn": "7.4.0", - "acorn-walk": "7.2.0", - "bfj": "6.1.2", - "chalk": "2.4.2", - "commander": "2.20.3", - "ejs": "2.7.4", - "express": "4.17.1", - "filesize": "3.6.1", - "gzip-size": "5.1.1", - "lodash": "4.17.20", - "mkdirp": "0.5.5", - "opener": "1.5.1", - "ws": "6.2.1" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==" - }, - "node_modules/webpack-bundle-analyzer/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==", - "dependencies": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "node_modules/webpack-bundle-analyzer/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==" - }, - "node_modules/webpack-bundle-analyzer/node_modules/filesize": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", - "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==" - }, - "node_modules/webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", - "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", - "dependencies": { - "memory-fs": "0.4.1", - "mime": "2.4.6", - "mkdirp": "0.5.5", - "range-parser": "1.2.1", - "webpack-log": "2.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==" - }, - "node_modules/webpack-dev-server": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", - "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", - "dependencies": { - "ansi-html": "0.0.7", - "bonjour": "3.5.0", - "chokidar": "2.1.8", - "compression": "1.7.4", - "connect-history-api-fallback": "1.6.0", - "debug": "4.2.0", - "del": "4.1.1", - "express": "4.17.1", - "html-entities": "1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "2.0.0", - "internal-ip": "4.3.0", - "ip": "1.1.5", - "is-absolute-url": "3.0.3", - "killable": "1.0.1", - "loglevel": "1.7.0", - "opn": "5.5.0", - "p-retry": "3.0.1", - "portfinder": "1.0.28", - "schema-utils": "1.0.0", - "selfsigned": "1.10.8", - "semver": "6.3.0", - "serve-index": "1.9.1", - "sockjs": "0.3.20", - "sockjs-client": "1.4.0", - "spdy": "4.0.2", - "strip-ansi": "3.0.1", - "supports-color": "6.1.0", - "url": "0.11.0", - "webpack-dev-middleware": "3.7.2", - "webpack-log": "2.0.0", - "ws": "6.2.1", - "yargs": "13.3.2" - } - }, - "node_modules/webpack-dev-server/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "node_modules/webpack-dev-server/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dependencies": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - } - }, - "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dependencies": { - "remove-trailing-separator": "1.1.0" - } - }, - "node_modules/webpack-dev-server/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dependencies": { - "array-uniq": "1.0.3" - } - }, - "node_modules/webpack-dev-server/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" - }, - "node_modules/webpack-dev-server/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - } - }, - "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "0.1.1" - } - }, - "node_modules/webpack-dev-server/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dependencies": { - "anymatch": "2.0.0", - "async-each": "1.0.3", - "braces": "2.3.2", - "fsevents": "1.2.13", - "glob-parent": "3.1.0", - "inherits": "2.0.4", - "is-binary-path": "1.0.1", - "is-glob": "4.0.1", - "normalize-path": "3.0.0", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.2.0" - }, - "optionalDependencies": { - "fsevents": "1.2.13" - } - }, - "node_modules/webpack-dev-server/node_modules/del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dependencies": { - "@types/glob": "7.1.3", - "globby": "6.1.0", - "is-path-cwd": "2.2.0", - "is-path-in-cwd": "2.1.0", - "p-map": "2.1.0", - "pify": "4.0.1", - "rimraf": "2.7.1" - } - }, - "node_modules/webpack-dev-server/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "node_modules/webpack-dev-server/node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "2.0.4" - } - }, - "node_modules/webpack-dev-server/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - } - }, - "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "0.1.1" - } - }, - "node_modules/webpack-dev-server/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, - "dependencies": { - "bindings": "1.5.0", - "nan": "2.14.2" - } - }, - "node_modules/webpack-dev-server/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dependencies": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - } - }, - "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dependencies": { - "is-extglob": "2.1.1" - } - }, - "node_modules/webpack-dev-server/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dependencies": { - "array-union": "1.0.2", - "glob": "7.1.6", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "node_modules/webpack-dev-server/node_modules/globby/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "node_modules/webpack-dev-server/node_modules/is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==" - }, - "node_modules/webpack-dev-server/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dependencies": { - "binary-extensions": "1.13.1" - } - }, - "node_modules/webpack-dev-server/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "3.2.2" - } - }, - "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "1.1.6" - } - }, - "node_modules/webpack-dev-server/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.3", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "node_modules/webpack-dev-server/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - }, - "node_modules/webpack-dev-server/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "node_modules/webpack-dev-server/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dependencies": { - "graceful-fs": "4.2.4", - "micromatch": "3.1.10", - "readable-stream": "2.3.7" - } - }, - "node_modules/webpack-dev-server/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "7.1.6" - } - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dependencies": { - "ajv": "6.12.6", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.5.2" - } - }, - "node_modules/webpack-dev-server/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==", - "dependencies": { - "safe-buffer": "5.1.2" - } - }, - "node_modules/webpack-dev-server/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "2.1.1" - } - }, - "node_modules/webpack-dev-server/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dependencies": { - "has-flag": "3.0.0" - } - }, - "node_modules/webpack-dev-server/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "node_modules/webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dependencies": { - "ansi-colors": "3.2.4", - "uuid": "3.4.0" - } - }, - "node_modules/webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "dependencies": { - "lodash": "4.17.20" - } - }, - "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==", - "dependencies": { - "source-list-map": "2.0.1", - "source-map": "0.6.1" - } - }, - "node_modules/webpack-sources/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==" - }, - "node_modules/webpack/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - } - }, - "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "0.1.1" - } - }, - "node_modules/webpack/node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dependencies": { - "bluebird": "3.7.2", - "chownr": "1.1.4", - "figgy-pudding": "3.5.2", - "glob": "7.1.6", - "graceful-fs": "4.2.4", - "infer-owner": "1.0.4", - "lru-cache": "5.1.1", - "mississippi": "3.0.0", - "mkdirp": "0.5.5", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.7.1", - "ssri": "6.0.1", - "unique-filename": "1.1.1", - "y18n": "4.0.0" - } - }, - "node_modules/webpack/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/webpack/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "node_modules/webpack/node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "2.0.4" - } - }, - "node_modules/webpack/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - } - }, - "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "0.1.1" - } - }, - "node_modules/webpack/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "3.2.2" - } - }, - "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "1.1.6" - } - }, - "node_modules/webpack/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "node_modules/webpack/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "1.2.5" - } - }, - "node_modules/webpack/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" - } - }, - "node_modules/webpack/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==", - "dependencies": { - "yallist": "3.1.1" - } - }, - "node_modules/webpack/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.3", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "node_modules/webpack/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "7.1.6" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dependencies": { - "ajv": "6.12.6", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.5.2" - } - }, - "node_modules/webpack/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==", - "dependencies": { - "randombytes": "2.1.0" - } - }, - "node_modules/webpack/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==" - }, - "node_modules/webpack/node_modules/ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dependencies": { - "figgy-pudding": "3.5.2" - } - }, - "node_modules/webpack/node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "dependencies": { - "cacache": "12.0.4", - "find-cache-dir": "2.1.0", - "is-wsl": "1.1.0", - "schema-utils": "1.0.0", - "serialize-javascript": "4.0.0", - "source-map": "0.6.1", - "terser": "4.8.0", - "webpack-sources": "1.4.3", - "worker-farm": "1.7.0" - } - }, - "node_modules/webpack/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "node_modules/webpack/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/webpackbar": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-4.0.0.tgz", - "integrity": "sha512-k1qRoSL/3BVuINzngj09nIwreD8wxV4grcuhHTD8VJgUbGcy8lQSPqv+bM00B7F+PffwIsQ8ISd4mIwRbr23eQ==", - "dependencies": { - "ansi-escapes": "4.3.1", - "chalk": "2.4.2", - "consola": "2.15.0", - "figures": "3.2.0", - "pretty-time": "1.1.0", - "std-env": "2.2.1", - "text-table": "0.2.0", - "wrap-ansi": "6.2.0" - } - }, - "node_modules/webpackbar/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "node_modules/webpackbar/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==", - "dependencies": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "node_modules/webpackbar/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==", - "dependencies": { - "color-name": "1.1.4" - } - }, - "node_modules/webpackbar/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==" - }, - "node_modules/webpackbar/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dependencies": { - "ansi-regex": "5.0.0" - } - }, - "node_modules/webpackbar/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "4.3.0", - "string-width": "4.2.0", - "strip-ansi": "6.0.0" - } - }, - "node_modules/webpackbar/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==", - "dependencies": { - "color-convert": "2.0.1" - } - }, - "node_modules/websocket-driver": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", - "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "dependencies": { - "websocket-extensions": "0.1.4" - } - }, - "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==" - }, - "node_modules/whatwg-fetch": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.1.tgz", - "integrity": "sha512-sofZVzE1wKwO+EYPbWfiwzaKovWiZXf4coEzjGP9b2GBVgQRLQUZ2QcuPpQExGDAW5GItpEm6Tl4OU5mywnAoQ==" - }, - "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==", - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "2.0.0" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dependencies": { - "string-width": "4.2.0" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dependencies": { - "errno": "0.1.7" - } - }, - "node_modules/worker-rpc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", - "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", - "dependencies": { - "microevent.ts": "0.1.1" - } - }, - "node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dependencies": { - "ansi-styles": "3.2.1", - "string-width": "3.1.0", - "strip-ansi": "5.2.0" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dependencies": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "dependencies": { - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=4" - } - }, - "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==", - "dependencies": { - "imurmurhash": "0.1.4", - "is-typedarray": "1.0.0", - "signal-exit": "3.0.3", - "typedarray-to-buffer": "3.1.5" - } - }, - "node_modules/ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "dependencies": { - "async-limiter": "1.0.1" - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" - }, - "node_modules/xml-js": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", - "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", - "dependencies": { - "sax": "^1.2.4" - }, - "bin": { - "xml-js": "bin/cli.js" - } - }, - "node_modules/xmlbuilder": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz", - "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "node_modules/y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yaml": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==" - }, - "node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dependencies": { - "cliui": "5.0.0", - "find-up": "3.0.0", - "get-caller-file": "2.0.5", - "require-directory": "2.1.1", - "require-main-filename": "2.0.0", - "set-blocking": "2.0.0", - "string-width": "3.1.0", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "13.1.2" - } - }, - "node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dependencies": { - "camelcase": "5.3.1", - "decamelize": "1.2.0" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "node_modules/yargs/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dependencies": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" - } - }, - "node_modules/zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - }, - "dependencies": { - "@algolia/cache-browser-local-storage": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.5.1.tgz", - "integrity": "sha512-TAQHRHaCUAR0bNhUHG0CnO6FTx3EMPwZQrjPuNS6kHvCQ/H8dVD0sLsHyM8C7U4j33xPQCWi9TBnSx8cYXNmNw==", - "requires": { - "@algolia/cache-common": "4.5.1" - } - }, - "@algolia/cache-common": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.5.1.tgz", - "integrity": "sha512-Sux+pcedQi9sfScIiQdl6pEaTVl712qM9OblvDhnaeF1v6lf4jyTlRTiBLP7YBLuvO1Yo54W3maf03kmz9PVhA==" - }, - "@algolia/cache-in-memory": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.5.1.tgz", - "integrity": "sha512-fzwAtBFwveuG+E5T/namChEIvdVl0DoV3djV1C078b/JpO5+DeAwuXIJGYbyl950u170n5NEYuIwYG+R6h4lJQ==", - "requires": { - "@algolia/cache-common": "4.5.1" - } - }, - "@algolia/client-account": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.5.1.tgz", - "integrity": "sha512-2WFEaI7Zf4ljnBsSAS4e+YylZ5glovm78xFg4E1JKA8PE6M+TeIgUY6HO2ouLh2dqQKxc9UfdAT1Loo/dha2iQ==", - "requires": { - "@algolia/client-common": "4.5.1", - "@algolia/client-search": "4.5.1", - "@algolia/transporter": "4.5.1" - } - }, - "@algolia/client-analytics": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.5.1.tgz", - "integrity": "sha512-bTmZUU8zhZMWBeGEQ/TVqLoL3OOT0benU0HtS3iOnQURwb+AOCv3RsgZvkj2djp+M24Q6P8/L34uBJMmCurbLg==", - "requires": { - "@algolia/client-common": "4.5.1", - "@algolia/client-search": "4.5.1", - "@algolia/requester-common": "4.5.1", - "@algolia/transporter": "4.5.1" - } - }, - "@algolia/client-common": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.5.1.tgz", - "integrity": "sha512-5CpIf8IK1hke7q+N4e+A4TWdFXVJ5Qwyaa0xS84DrDO8HQ7vfYbDvG1oYa9hVEtGn6c3WVKPAvuWynK+fXQQCA==", - "requires": { - "@algolia/requester-common": "4.5.1", - "@algolia/transporter": "4.5.1" - } - }, - "@algolia/client-recommendation": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/client-recommendation/-/client-recommendation-4.5.1.tgz", - "integrity": "sha512-GiFrNSImoEBUQICjFBEoxPGzrjWji8PY9GeMg2CNvOYcRQ0Xt0Y36v9GN53NLjvB7QdQ2FlE1Cuv/PLUfS/aQQ==", - "requires": { - "@algolia/client-common": "4.5.1", - "@algolia/requester-common": "4.5.1", - "@algolia/transporter": "4.5.1" - } - }, - "@algolia/client-search": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.5.1.tgz", - "integrity": "sha512-wjuOTte9Auo9Cg4fL0709PjeJ9rXFh4okYUrOt/2SWqQid6DSdZOp+BtyaHKV3E94sj+SlmMxkMUacYluYg5zA==", - "requires": { - "@algolia/client-common": "4.5.1", - "@algolia/requester-common": "4.5.1", - "@algolia/transporter": "4.5.1" - } - }, - "@algolia/logger-common": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.5.1.tgz", - "integrity": "sha512-ZoVnGriinlLHlkvn5K7djOUn1/1IeTjU8rDzOJ3t06T+2hQytgJghaX7rSwKIeH4CjWMy61w8jLisuGJRBOEeg==" - }, - "@algolia/logger-console": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.5.1.tgz", - "integrity": "sha512-1qa7K18+uAgxyWuguayaDS5ViiZFcOjI3J5ACBb0i/n7RsXUo149lP6mwmx6TIU7s135hT0f0TCqnvfMvN1ilA==", - "requires": { - "@algolia/logger-common": "4.5.1" - } - }, - "@algolia/requester-browser-xhr": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.5.1.tgz", - "integrity": "sha512-tsQz+9pZw9dwPm/wMvZDpsWFZgmghLjXi4c3O4rfwoP/Ikum5fhle5fiR14yb4Lw4WlOQ1AJIHJvrg1qLIG8hQ==", - "requires": { - "@algolia/requester-common": "4.5.1" - } - }, - "@algolia/requester-common": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.5.1.tgz", - "integrity": "sha512-bPCiLvhHKXaka7f5FLtheChToz0yHVhvza64naFJRRh/3kC0nvyrvQ0ogjiydiSrGIfdNDyyTVfKGdk4gS5gyA==" - }, - "@algolia/requester-node-http": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.5.1.tgz", - "integrity": "sha512-BfFc2h9eQOKu1gGs3DtQO7GrVZW/rxUgpJVLja4UVQyGplJyTCrFgkTyfl+8rb3MkNgA/S2LNo7cKNSPfpqeAQ==", - "requires": { - "@algolia/requester-common": "4.5.1" - } - }, - "@algolia/transporter": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.5.1.tgz", - "integrity": "sha512-asPDNToDAPhH0tM6qKGTn1l0wTlNUbekpa1ifZ6v+qhSjo3VdqGyp+2VeciJOBW/wVHXh3HUbAcycvLERRlCLg==", - "requires": { - "@algolia/cache-common": "4.5.1", - "@algolia/logger-common": "4.5.1", - "@algolia/requester-common": "4.5.1" - } - }, - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "requires": { - "@babel/highlight": "7.10.4" - } - }, - "@babel/compat-data": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.1.tgz", - "integrity": "sha512-725AQupWJZ8ba0jbKceeFblZTY90McUBWMwHhkFQ9q1zKPJ95GUktljFcgcsIVwRnTnRKlcYzfiNImg5G9m6ZQ==" - }, - "@babel/core": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", - "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", - "requires": { - "@babel/code-frame": "7.10.4", - "@babel/generator": "7.12.1", - "@babel/helper-module-transforms": "7.12.1", - "@babel/helpers": "7.12.1", - "@babel/parser": "7.12.3", - "@babel/template": "7.10.4", - "@babel/traverse": "7.12.1", - "@babel/types": "7.12.1", - "convert-source-map": "1.7.0", - "debug": "4.2.0", - "gensync": "1.0.0-beta.1", - "json5": "2.1.3", - "lodash": "4.17.20", - "resolve": "1.17.0", - "semver": "5.7.1", - "source-map": "0.5.7" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@babel/generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", - "integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", - "requires": { - "@babel/types": "7.12.1", - "jsesc": "2.5.2", - "source-map": "0.5.7" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", - "requires": { - "@babel/types": "7.12.1" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", - "requires": { - "@babel/helper-explode-assignable-expression": "7.12.1", - "@babel/types": "7.12.1" - } - }, - "@babel/helper-builder-react-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz", - "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", - "requires": { - "@babel/helper-annotate-as-pure": "7.10.4", - "@babel/types": "7.12.1" - } - }, - "@babel/helper-builder-react-jsx-experimental": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.1.tgz", - "integrity": "sha512-82to8lR7TofZWbTd3IEZT1xNHfeU/Ef4rDm/GLXddzqDh+yQ19QuGSzqww51aNxVH8rwfRIzL0EUQsvODVhtyw==", - "requires": { - "@babel/helper-annotate-as-pure": "7.10.4", - "@babel/helper-module-imports": "7.12.1", - "@babel/types": "7.12.1" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.1.tgz", - "integrity": "sha512-jtBEif7jsPwP27GPHs06v4WBV0KrE8a/P7n0N0sSvHn2hwUCYnolP/CLmz51IzAW4NlN+HuoBtb9QcwnRo9F/g==", - "requires": { - "@babel/compat-data": "7.12.1", - "@babel/helper-validator-option": "7.12.1", - "browserslist": "4.14.5", - "semver": "5.7.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", - "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", - "requires": { - "@babel/helper-function-name": "7.10.4", - "@babel/helper-member-expression-to-functions": "7.12.1", - "@babel/helper-optimise-call-expression": "7.10.4", - "@babel/helper-replace-supers": "7.12.1", - "@babel/helper-split-export-declaration": "7.11.0" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz", - "integrity": "sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA==", - "requires": { - "@babel/helper-annotate-as-pure": "7.10.4", - "@babel/helper-regex": "7.10.5", - "regexpu-core": "4.7.1" - } - }, - "@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", - "requires": { - "@babel/helper-function-name": "7.10.4", - "@babel/types": "7.12.1", - "lodash": "4.17.20" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", - "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", - "requires": { - "@babel/types": "7.12.1" - } - }, - "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", - "requires": { - "@babel/helper-get-function-arity": "7.10.4", - "@babel/template": "7.10.4", - "@babel/types": "7.12.1" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", - "requires": { - "@babel/types": "7.12.1" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", - "requires": { - "@babel/types": "7.12.1" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", - "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", - "requires": { - "@babel/types": "7.12.1" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.1.tgz", - "integrity": "sha512-ZeC1TlMSvikvJNy1v/wPIazCu3NdOwgYZLIkmIyAsGhqkNpiDoQQRmaCK8YP4Pq3GPTLPV9WXaPCJKvx06JxKA==", - "requires": { - "@babel/types": "7.12.1" - } - }, - "@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", - "requires": { - "@babel/helper-module-imports": "7.12.1", - "@babel/helper-replace-supers": "7.12.1", - "@babel/helper-simple-access": "7.12.1", - "@babel/helper-split-export-declaration": "7.11.0", - "@babel/helper-validator-identifier": "7.10.4", - "@babel/template": "7.10.4", - "@babel/traverse": "7.12.1", - "@babel/types": "7.12.1", - "lodash": "4.17.20" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", - "requires": { - "@babel/types": "7.12.1" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - }, - "@babel/helper-regex": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", - "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", - "requires": { - "lodash": "4.17.20" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", - "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", - "requires": { - "@babel/helper-annotate-as-pure": "7.10.4", - "@babel/helper-wrap-function": "7.12.3", - "@babel/types": "7.12.1" - } - }, - "@babel/helper-replace-supers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.1.tgz", - "integrity": "sha512-zJjTvtNJnCFsCXVi5rUInstLd/EIVNmIKA1Q9ynESmMBWPWd+7sdR+G4/wdu+Mppfep0XLyG2m7EBPvjCeFyrw==", - "requires": { - "@babel/helper-member-expression-to-functions": "7.12.1", - "@babel/helper-optimise-call-expression": "7.10.4", - "@babel/traverse": "7.12.1", - "@babel/types": "7.12.1" - } - }, - "@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", - "requires": { - "@babel/types": "7.12.1" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", - "requires": { - "@babel/types": "7.12.1" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", - "requires": { - "@babel/types": "7.12.1" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" - }, - "@babel/helper-validator-option": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz", - "integrity": "sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==" - }, - "@babel/helper-wrap-function": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", - "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", - "requires": { - "@babel/helper-function-name": "7.10.4", - "@babel/template": "7.10.4", - "@babel/traverse": "7.12.1", - "@babel/types": "7.12.1" - } - }, - "@babel/helpers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.1.tgz", - "integrity": "sha512-9JoDSBGoWtmbay98efmT2+mySkwjzeFeAL9BuWNoVQpkPFQF8SIIFUfY5os9u8wVzglzoiPRSW7cuJmBDUt43g==", - "requires": { - "@babel/template": "7.10.4", - "@babel/traverse": "7.12.1", - "@babel/types": "7.12.1" - } - }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "requires": { - "@babel/helper-validator-identifier": "7.10.4", - "chalk": "2.4.2", - "js-tokens": "4.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - } - } - }, - "@babel/parser": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz", - "integrity": "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==" - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", - "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-remap-async-to-generator": "7.12.1", - "@babel/plugin-syntax-async-generators": "7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", - "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", - "requires": { - "@babel/helper-create-class-features-plugin": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", - "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-dynamic-import": "7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", - "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-export-namespace-from": "7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", - "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-json-strings": "7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", - "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-logical-assignment-operators": "7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", - "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.1.tgz", - "integrity": "sha512-MR7Ok+Af3OhNTCxYVjJZHS0t97ydnJZt/DbR4WISO39iDnhiD8XHrY12xuSJ90FFEGjir0Fzyyn7g/zY6hxbxA==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-numeric-separator": "7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "@babel/plugin-transform-parameters": "7.12.1" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", - "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz", - "integrity": "sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "7.12.1", - "@babel/plugin-syntax-optional-chaining": "7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", - "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", - "requires": { - "@babel/helper-create-class-features-plugin": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", - "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@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==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", - "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@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==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@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==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@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==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@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==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz", - "integrity": "sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", - "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", - "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", - "requires": { - "@babel/helper-module-imports": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-remap-async-to-generator": "7.12.1" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", - "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz", - "integrity": "sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", - "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", - "requires": { - "@babel/helper-annotate-as-pure": "7.10.4", - "@babel/helper-define-map": "7.10.5", - "@babel/helper-function-name": "7.10.4", - "@babel/helper-optimise-call-expression": "7.10.4", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-replace-supers": "7.12.1", - "@babel/helper-split-export-declaration": "7.11.0", - "globals": "11.12.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", - "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", - "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", - "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", - "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", - "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "7.10.4", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", - "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", - "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", - "requires": { - "@babel/helper-function-name": "7.10.4", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", - "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", - "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", - "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", - "requires": { - "@babel/helper-module-transforms": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "babel-plugin-dynamic-import-node": "2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", - "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", - "requires": { - "@babel/helper-module-transforms": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-simple-access": "7.12.1", - "babel-plugin-dynamic-import-node": "2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", - "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", - "requires": { - "@babel/helper-hoist-variables": "7.10.4", - "@babel/helper-module-transforms": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-validator-identifier": "7.10.4", - "babel-plugin-dynamic-import-node": "2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", - "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", - "requires": { - "@babel/helper-module-transforms": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", - "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "7.12.1" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", - "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", - "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-replace-supers": "7.12.1" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", - "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", - "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-react-constant-elements": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.12.1.tgz", - "integrity": "sha512-KOHd0tIRLoER+J+8f9DblZDa1fLGPwaaN1DI1TVHuQFOpjHV22C3CUB3obeC4fexHY9nx+fH0hQNvLFFfA1mxA==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz", - "integrity": "sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.1.tgz", - "integrity": "sha512-RmKejwnT0T0QzQUzcbP5p1VWlpnP8QHtdhEtLG55ZDQnJNalbF3eeDyu3dnGKvGzFIQiBzFhBYTwvv435p9Xpw==", - "requires": { - "@babel/helper-builder-react-jsx": "7.10.4", - "@babel/helper-builder-react-jsx-experimental": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-jsx": "7.12.1" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.1.tgz", - "integrity": "sha512-IilcGWdN1yNgEGOrB96jbTplRh+V2Pz1EoEwsKsHfX1a/L40cUYuD71Zepa7C+ujv7kJIxnDftWeZbKNEqZjCQ==", - "requires": { - "@babel/helper-builder-react-jsx-experimental": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-jsx": "7.12.1" - } - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.1.tgz", - "integrity": "sha512-FbpL0ieNWiiBB5tCldX17EtXgmzeEZjFrix72rQYeq9X6nUK38HCaxexzVQrZWXanxKJPKVVIU37gFjEQYkPkA==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.1.tgz", - "integrity": "sha512-keQ5kBfjJNRc6zZN1/nVHCd6LLIHq4aUKcVnvE/2l+ZZROSbqoiGFRtT5t3Is89XJxBQaP7NLZX2jgGHdZvvFQ==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz", - "integrity": "sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==", - "requires": { - "@babel/helper-annotate-as-pure": "7.10.4", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", - "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", - "requires": { - "regenerator-transform": "0.14.5" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", - "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz", - "integrity": "sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg==", - "requires": { - "@babel/helper-module-imports": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "resolve": "1.17.0", - "semver": "5.7.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", - "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", - "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "7.12.1" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz", - "integrity": "sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-regex": "7.10.5" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", - "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz", - "integrity": "sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz", - "integrity": "sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw==", - "requires": { - "@babel/helper-create-class-features-plugin": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-syntax-typescript": "7.12.1" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", - "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", - "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "@babel/preset-env": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1.tgz", - "integrity": "sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg==", - "requires": { - "@babel/compat-data": "7.12.1", - "@babel/helper-compilation-targets": "7.12.1", - "@babel/helper-module-imports": "7.12.1", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/helper-validator-option": "7.12.1", - "@babel/plugin-proposal-async-generator-functions": "7.12.1", - "@babel/plugin-proposal-class-properties": "7.12.1", - "@babel/plugin-proposal-dynamic-import": "7.12.1", - "@babel/plugin-proposal-export-namespace-from": "7.12.1", - "@babel/plugin-proposal-json-strings": "7.12.1", - "@babel/plugin-proposal-logical-assignment-operators": "7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "7.12.1", - "@babel/plugin-proposal-numeric-separator": "7.12.1", - "@babel/plugin-proposal-object-rest-spread": "7.12.1", - "@babel/plugin-proposal-optional-catch-binding": "7.12.1", - "@babel/plugin-proposal-optional-chaining": "7.12.1", - "@babel/plugin-proposal-private-methods": "7.12.1", - "@babel/plugin-proposal-unicode-property-regex": "7.12.1", - "@babel/plugin-syntax-async-generators": "7.8.4", - "@babel/plugin-syntax-class-properties": "7.12.1", - "@babel/plugin-syntax-dynamic-import": "7.8.3", - "@babel/plugin-syntax-export-namespace-from": "7.8.3", - "@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-top-level-await": "7.12.1", - "@babel/plugin-transform-arrow-functions": "7.12.1", - "@babel/plugin-transform-async-to-generator": "7.12.1", - "@babel/plugin-transform-block-scoped-functions": "7.12.1", - "@babel/plugin-transform-block-scoping": "7.12.1", - "@babel/plugin-transform-classes": "7.12.1", - "@babel/plugin-transform-computed-properties": "7.12.1", - "@babel/plugin-transform-destructuring": "7.12.1", - "@babel/plugin-transform-dotall-regex": "7.12.1", - "@babel/plugin-transform-duplicate-keys": "7.12.1", - "@babel/plugin-transform-exponentiation-operator": "7.12.1", - "@babel/plugin-transform-for-of": "7.12.1", - "@babel/plugin-transform-function-name": "7.12.1", - "@babel/plugin-transform-literals": "7.12.1", - "@babel/plugin-transform-member-expression-literals": "7.12.1", - "@babel/plugin-transform-modules-amd": "7.12.1", - "@babel/plugin-transform-modules-commonjs": "7.12.1", - "@babel/plugin-transform-modules-systemjs": "7.12.1", - "@babel/plugin-transform-modules-umd": "7.12.1", - "@babel/plugin-transform-named-capturing-groups-regex": "7.12.1", - "@babel/plugin-transform-new-target": "7.12.1", - "@babel/plugin-transform-object-super": "7.12.1", - "@babel/plugin-transform-parameters": "7.12.1", - "@babel/plugin-transform-property-literals": "7.12.1", - "@babel/plugin-transform-regenerator": "7.12.1", - "@babel/plugin-transform-reserved-words": "7.12.1", - "@babel/plugin-transform-shorthand-properties": "7.12.1", - "@babel/plugin-transform-spread": "7.12.1", - "@babel/plugin-transform-sticky-regex": "7.12.1", - "@babel/plugin-transform-template-literals": "7.12.1", - "@babel/plugin-transform-typeof-symbol": "7.12.1", - "@babel/plugin-transform-unicode-escapes": "7.12.1", - "@babel/plugin-transform-unicode-regex": "7.12.1", - "@babel/preset-modules": "0.1.4", - "@babel/types": "7.12.1", - "core-js-compat": "3.6.5", - "semver": "5.7.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@babel/preset-modules": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", - "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-proposal-unicode-property-regex": "7.12.1", - "@babel/plugin-transform-dotall-regex": "7.12.1", - "@babel/types": "7.12.1", - "esutils": "2.0.3" - } - }, - "@babel/preset-react": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.1.tgz", - "integrity": "sha512-euCExymHCi0qB9u5fKw7rvlw7AZSjw/NaB9h7EkdTt5+yHRrXdiRTh7fkG3uBPpJg82CqLfp1LHLqWGSCrab+g==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-transform-react-display-name": "7.12.1", - "@babel/plugin-transform-react-jsx": "7.12.1", - "@babel/plugin-transform-react-jsx-development": "7.12.1", - "@babel/plugin-transform-react-jsx-self": "7.12.1", - "@babel/plugin-transform-react-jsx-source": "7.12.1", - "@babel/plugin-transform-react-pure-annotations": "7.12.1" - } - }, - "@babel/preset-typescript": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.1.tgz", - "integrity": "sha512-hNK/DhmoJPsksdHuI/RVrcEws7GN5eamhi28JkO52MqIxU8Z0QpmiSOQxZHWOHV7I3P4UjHV97ay4TcamMA6Kw==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-transform-typescript": "7.12.1" - } - }, - "@babel/runtime": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz", - "integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==", - "requires": { - "regenerator-runtime": "0.13.7" - } - }, - "@babel/runtime-corejs3": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.1.tgz", - "integrity": "sha512-umhPIcMrlBZ2aTWlWjUseW9LjQKxi1dpFlQS8DzsxB//5K+u6GLTC/JliPKHsd5kJVPIU6X/Hy0YvWOYPcMxBw==", - "requires": { - "core-js-pure": "3.6.5", - "regenerator-runtime": "0.13.7" - } - }, - "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", - "requires": { - "@babel/code-frame": "7.10.4", - "@babel/parser": "7.12.3", - "@babel/types": "7.12.1" - } - }, - "@babel/traverse": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz", - "integrity": "sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==", - "requires": { - "@babel/code-frame": "7.10.4", - "@babel/generator": "7.12.1", - "@babel/helper-function-name": "7.10.4", - "@babel/helper-split-export-declaration": "7.11.0", - "@babel/parser": "7.12.3", - "@babel/types": "7.12.1", - "debug": "4.2.0", - "globals": "11.12.0", - "lodash": "4.17.20" - } - }, - "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", - "integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", - "requires": { - "@babel/helper-validator-identifier": "7.10.4", - "lodash": "4.17.20", - "to-fast-properties": "2.0.0" - } - }, - "@csstools/convert-colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", - "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==" - }, - "@docsearch/css": { - "version": "1.0.0-alpha.28", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-1.0.0-alpha.28.tgz", - "integrity": "sha512-1AhRzVdAkrWwhaxTX6/R7SnFHz8yLz1W8I/AldlTrfbNvZs9INk1FZiEFTJdgHaP68nhgQNWSGlQiDiI3y2RYg==" - }, - "@docsearch/react": { - "version": "1.0.0-alpha.28", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-1.0.0-alpha.28.tgz", - "integrity": "sha512-XjJOnCBXn+UZmtuDmgzlVIHnnvh6yHVwG4aFq8AXN6xJEIX3f180FvGaowFWAxgdtHplJxFGux0Xx4piHqBzIw==", - "requires": { - "@docsearch/css": "^1.0.0-alpha.28", - "@francoischalifour/autocomplete-core": "^1.0.0-alpha.28", - "@francoischalifour/autocomplete-preset-algolia": "^1.0.0-alpha.28", - "algoliasearch": "^4.0.0" - } - }, - "@docusaurus/core": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-alpha.66.tgz", - "integrity": "sha512-9HKqObYoyArpzSTIDguyUXm7z54bpV3dSWSc0PbKGu0Us6zP1TiOuhRDX1diFsKyvjNy7VbCe8XH8LJIdKi5dQ==", - "requires": { - "@babel/core": "^7.9.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1", - "@babel/plugin-proposal-optional-chaining": "^7.10.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.9.0", - "@babel/preset-env": "^7.9.0", - "@babel/preset-react": "^7.9.4", - "@babel/preset-typescript": "^7.9.0", - "@babel/runtime": "^7.9.2", - "@babel/runtime-corejs3": "^7.10.4", - "@docusaurus/types": "2.0.0-alpha.66", - "@docusaurus/utils": "2.0.0-alpha.66", - "@docusaurus/utils-validation": "2.0.0-alpha.66", - "@endiliey/static-site-generator-webpack-plugin": "^4.0.0", - "@hapi/joi": "^17.1.1", - "@svgr/webpack": "^5.4.0", - "babel-loader": "^8.1.0", - "babel-plugin-dynamic-import-node": "^2.3.0", - "boxen": "^4.2.0", - "cache-loader": "^4.1.0", - "chalk": "^3.0.0", - "chokidar": "^3.3.0", - "commander": "^4.0.1", - "copy-webpack-plugin": "^6.0.3", - "core-js": "^2.6.5", - "css-loader": "^3.4.2", - "del": "^5.1.0", - "detect-port": "^1.3.0", - "eta": "^1.1.1", - "express": "^4.17.1", - "file-loader": "^6.0.0", - "fs-extra": "^8.1.0", - "globby": "^10.0.1", - "html-minifier-terser": "^5.0.5", - "html-tags": "^3.1.0", - "html-webpack-plugin": "^4.0.4", - "import-fresh": "^3.2.1", - "inquirer": "^7.2.0", - "is-root": "^2.1.0", - "leven": "^3.1.0", - "lodash": "^4.5.2", - "lodash.flatmap": "^4.5.0", - "lodash.has": "^4.5.2", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "mini-css-extract-plugin": "^0.8.0", - "nprogress": "^0.2.0", - "null-loader": "^3.0.0", - "optimize-css-assets-webpack-plugin": "^5.0.3", - "pnp-webpack-plugin": "^1.6.4", - "postcss-loader": "^3.0.0", - "postcss-preset-env": "^6.7.0", - "react-dev-utils": "^10.2.1", - "react-helmet": "^6.0.0-beta", - "react-loadable": "^5.5.0", - "react-loadable-ssr-addon": "^0.3.0", - "react-router": "^5.1.2", - "react-router-config": "^5.1.1", - "react-router-dom": "^5.1.2", - "resolve-pathname": "^3.0.0", - "semver": "^6.3.0", - "serve-handler": "^6.1.3", - "shelljs": "^0.8.4", - "std-env": "^2.2.1", - "terser-webpack-plugin": "^4.1.0", - "update-notifier": "^4.1.0", - "url-loader": "^4.1.0", - "wait-file": "^1.0.5", - "webpack": "^4.44.1", - "webpack-bundle-analyzer": "^3.6.1", - "webpack-dev-server": "^3.11.0", - "webpack-merge": "^4.2.2", - "webpackbar": "^4.0.0" - } - }, - "@docusaurus/mdx-loader": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-alpha.66.tgz", - "integrity": "sha512-IvtrTNeAaynEGgfCbC4CeBgO76Mu76cGogBGv8a84bYeyCOtlxOJoH6JHkJ7T/v5D6lM16qzwx5oqesZ0kZuzA==", - "requires": { - "@babel/parser": "^7.9.4", - "@babel/traverse": "^7.9.0", - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/utils": "2.0.0-alpha.66", - "@mdx-js/mdx": "^1.5.8", - "@mdx-js/react": "^1.5.8", - "escape-html": "^1.0.3", - "file-loader": "^6.0.0", - "fs-extra": "^8.1.0", - "github-slugger": "^1.3.0", - "gray-matter": "^4.0.2", - "loader-utils": "^1.2.3", - "mdast-util-to-string": "^1.1.0", - "remark-emoji": "^2.1.0", - "stringify-object": "^3.3.0", - "unist-util-visit": "^2.0.2", - "url-loader": "^4.1.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "@docusaurus/plugin-content-blog": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-alpha.66.tgz", - "integrity": "sha512-voK5ZUZcUn5blIDakYNKQ42wPMZLfrZnvEJuwh/8S/W1oNbPN935NBu9vL23fHEmp9L2MGykAdaCmev0Su04yQ==", - "requires": { - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/mdx-loader": "2.0.0-alpha.66", - "@docusaurus/types": "2.0.0-alpha.66", - "@docusaurus/utils": "2.0.0-alpha.66", - "@docusaurus/utils-validation": "2.0.0-alpha.66", - "@hapi/joi": "^17.1.1", - "chalk": "^3.0.0", - "feed": "^4.1.0", - "fs-extra": "^8.1.0", - "globby": "^10.0.1", - "loader-utils": "^1.2.3", - "lodash": "^4.5.2", - "reading-time": "^1.2.0", - "remark-admonitions": "^1.2.1", - "webpack": "^4.44.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "@docusaurus/plugin-content-docs": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-alpha.66.tgz", - "integrity": "sha512-jvFKJR7BgjIq6xdmPg+7d2DS1fBeuIfmRTtB/apgfIW8NWO5N0DRYXOj0lgpw/ICwW//o8cLbrN+jkLlzTV/eg==", - "requires": { - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/mdx-loader": "2.0.0-alpha.66", - "@docusaurus/types": "2.0.0-alpha.66", - "@docusaurus/utils": "2.0.0-alpha.66", - "@docusaurus/utils-validation": "2.0.0-alpha.66", - "@hapi/joi": "17.1.1", - "chalk": "^3.0.0", - "execa": "^3.4.0", - "fs-extra": "^8.1.0", - "globby": "^10.0.1", - "import-fresh": "^3.2.1", - "loader-utils": "^1.2.3", - "lodash": "^4.17.19", - "lodash.flatmap": "^4.5.0", - "lodash.groupby": "^4.6.0", - "lodash.pick": "^4.4.0", - "lodash.pickby": "^4.6.0", - "lodash.sortby": "^4.6.0", - "remark-admonitions": "^1.2.1", - "shelljs": "^0.8.4", - "utility-types": "^3.10.0", - "webpack": "^4.44.1" - }, - "dependencies": { - "execa": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", - "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "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==", - "requires": { - "path-key": "^3.0.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==" - } - } - }, - "@docusaurus/plugin-content-pages": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-alpha.66.tgz", - "integrity": "sha512-mY26Aeb/Wf+NFLy70YvXgdLTB+2iPN0SKOVKYwgg6ZN7Nm2kPwEpSVRq2iwiqlWk2G/vOM+ADm99Gxvm3kS61A==", - "requires": { - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/mdx-loader": "2.0.0-alpha.66", - "@docusaurus/types": "2.0.0-alpha.66", - "@docusaurus/utils": "2.0.0-alpha.66", - "@docusaurus/utils-validation": "2.0.0-alpha.66", - "@hapi/joi": "17.1.1", - "globby": "^10.0.1", - "loader-utils": "^1.2.3", - "minimatch": "^3.0.4", - "remark-admonitions": "^1.2.1", - "slash": "^3.0.0", - "webpack": "^4.44.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "@docusaurus/plugin-debug": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-alpha.66.tgz", - "integrity": "sha512-9AZaEUxaY0CDOCWXQMfY3TzG79HkquZlVeJOZaA6IvCoK/Oq3B58TMNLiQyA6TA2DYf5ZYQorLJaMd02x5qBQw==", - "requires": { - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/types": "2.0.0-alpha.66", - "@docusaurus/utils": "2.0.0-alpha.66", - "react-json-view": "^1.19.1" - } - }, - "@docusaurus/plugin-google-analytics": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-alpha.66.tgz", - "integrity": "sha512-HVWRLHtlQYpVqH3MHloUmktJMXt7oMDQzBlKzrwAMiWUK1oXFX35DrKjTt2SE2SADpObnwWFjo0E71YT0ApQLw==", - "requires": { - "@docusaurus/core": "2.0.0-alpha.66" - } - }, - "@docusaurus/plugin-google-gtag": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-alpha.66.tgz", - "integrity": "sha512-MVnzApLSQaC38nVS+A/WkXEV4kHeX6Q/KM2DqkLeovNWLBtkQ0aHL3bvn1clAEmB33Pia0v93mzG+I1+9mrquA==", - "requires": { - "@docusaurus/core": "2.0.0-alpha.66" - } - }, - "@docusaurus/plugin-sitemap": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-alpha.66.tgz", - "integrity": "sha512-ztDevVIREyq8g+QhSGpDqscVqtubcPnEE3a4JwWSALQ2D6JscIxg897axwZSZNUMxrHBuXRjOEYOtVb/O/stVg==", - "requires": { - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/types": "2.0.0-alpha.66", - "@hapi/joi": "17.1.1", - "fs-extra": "^8.1.0", - "sitemap": "^3.2.2" - } - }, - "@docusaurus/preset-classic": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.0.0-alpha.66.tgz", - "integrity": "sha512-FjxjchzUS6vOUSr9Pc5kqOSQAnc+cAYsR4pTlqwD2uOJcZMr2vQ6jeKbJnhEmUYwAvzdKOVnCndnxbA+Ii8L3w==", - "requires": { - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/plugin-content-blog": "2.0.0-alpha.66", - "@docusaurus/plugin-content-docs": "2.0.0-alpha.66", - "@docusaurus/plugin-content-pages": "2.0.0-alpha.66", - "@docusaurus/plugin-debug": "2.0.0-alpha.66", - "@docusaurus/plugin-google-analytics": "2.0.0-alpha.66", - "@docusaurus/plugin-google-gtag": "2.0.0-alpha.66", - "@docusaurus/plugin-sitemap": "2.0.0-alpha.66", - "@docusaurus/theme-classic": "2.0.0-alpha.66", - "@docusaurus/theme-search-algolia": "2.0.0-alpha.66" - } - }, - "@docusaurus/theme-classic": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.0.0-alpha.66.tgz", - "integrity": "sha512-WsWqzfzA2gIF5TUMGSbiAeDeNZtKvsgymTQzalcwyhyT/QI0ywcag+03Bmjeq4H3PTC3qU+tkhddO2Rh5w/YCw==", - "requires": { - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/plugin-content-blog": "2.0.0-alpha.66", - "@docusaurus/plugin-content-docs": "2.0.0-alpha.66", - "@docusaurus/plugin-content-pages": "2.0.0-alpha.66", - "@docusaurus/types": "2.0.0-alpha.66", - "@docusaurus/utils-validation": "2.0.0-alpha.66", - "@hapi/joi": "^17.1.1", - "@mdx-js/mdx": "^1.5.8", - "@mdx-js/react": "^1.5.8", - "@types/react-toggle": "^4.0.2", - "clsx": "^1.1.1", - "copy-text-to-clipboard": "^2.2.0", - "infima": "0.2.0-alpha.13", - "lodash": "^4.17.19", - "parse-numeric-range": "^0.0.2", - "prism-react-renderer": "^1.1.0", - "prismjs": "^1.20.0", - "prop-types": "^15.7.2", - "react-router-dom": "^5.1.2", - "react-toggle": "^4.1.1" - } - }, - "@docusaurus/theme-search-algolia": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-alpha.66.tgz", - "integrity": "sha512-5k/Fwt81Gyjv9vPE+gO8mraEHx5IqEmHLwqld5yXj7yix5XrxywkaanHqC0cFJG4MFUBgF6vNjJC8CtfLnT4Tw==", - "requires": { - "@docsearch/react": "^1.0.0-alpha.27", - "@docusaurus/core": "2.0.0-alpha.66", - "@docusaurus/utils": "2.0.0-alpha.66", - "@hapi/joi": "^17.1.1", - "algoliasearch": "^4.0.0", - "algoliasearch-helper": "^3.1.1", - "clsx": "^1.1.1", - "eta": "^1.1.1", - "lodash": "^4.17.19" - } - }, - "@docusaurus/types": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.0.0-alpha.66.tgz", - "integrity": "sha512-Zd2Kguw0+3faifr83ruIV4i/+KqfqM+zK3DpqCBxdtkP+ORLKbgsIQ48fJ40OOhQrvl38Ay4E+1w7USrrkj4Qg==", - "requires": { - "@types/webpack": "^4.41.0", - "commander": "^4.0.1", - "querystring": "0.2.0", - "webpack-merge": "^4.2.2" - } - }, - "@docusaurus/utils": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.0.0-alpha.66.tgz", - "integrity": "sha512-47jGB+Z3YVM6Xf1hxyNbJLMmc1qoTLmfwSf7NseKSkpjucbc5Ueivr+oVYp5yWoZw5sT5bObmdJYfJoD/RrbOg==", - "requires": { - "escape-string-regexp": "^2.0.0", - "fs-extra": "^8.1.0", - "gray-matter": "^4.0.2", - "lodash.camelcase": "^4.3.0", - "lodash.kebabcase": "^4.1.1", - "resolve-pathname": "^3.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - } - } - }, - "@docusaurus/utils-validation": { - "version": "2.0.0-alpha.66", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.0.0-alpha.66.tgz", - "integrity": "sha512-vlenwY3THondey21x1qAUZyDz9qiG7ec2CBM9HgY1Ns8XhrKah9zz7TEGXjqM9lhqMQQRkvcCcveti9EXR0fcA==", - "requires": { - "@docusaurus/utils": "2.0.0-alpha.66", - "@hapi/joi": "17.1.1", - "chalk": "^3.0.0" - } - }, - "@emotion/cache": { - "version": "10.0.29", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz", - "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==", - "dev": true, - "optional": true, - "requires": { - "@emotion/sheet": "0.9.4", - "@emotion/stylis": "0.8.5", - "@emotion/utils": "0.11.3", - "@emotion/weak-memoize": "0.2.5" - } - }, - "@emotion/core": { - "version": "10.0.35", - "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.35.tgz", - "integrity": "sha512-sH++vJCdk025fBlRZSAhkRlSUoqSqgCzYf5fMOmqqi3bM6how+sQpg3hkgJonj8GxXM4WbD7dRO+4tegDB9fUw==", - "dev": true, - "optional": true, - "requires": { - "@babel/runtime": "^7.5.5", - "@emotion/cache": "^10.0.27", - "@emotion/css": "^10.0.27", - "@emotion/serialize": "^0.11.15", - "@emotion/sheet": "0.9.4", - "@emotion/utils": "0.11.3" - } - }, - "@emotion/css": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz", - "integrity": "sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==", - "dev": true, - "optional": true, - "requires": { - "@emotion/serialize": "^0.11.15", - "@emotion/utils": "0.11.3", - "babel-plugin-emotion": "^10.0.27" - } - }, - "@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", - "dev": true, - "optional": true - }, - "@emotion/is-prop-valid": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", - "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", - "dev": true, - "optional": true, - "requires": { - "@emotion/memoize": "0.7.4" - } - }, - "@emotion/memoize": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "dev": true, - "optional": true - }, - "@emotion/serialize": { - "version": "0.11.16", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", - "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", - "dev": true, - "optional": true, - "requires": { - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/unitless": "0.7.5", - "@emotion/utils": "0.11.3", - "csstype": "^2.5.7" - }, - "dependencies": { - "csstype": { - "version": "2.6.13", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.13.tgz", - "integrity": "sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A==", - "dev": true, - "optional": true - } - } - }, - "@emotion/sheet": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", - "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==", - "dev": true, - "optional": true - }, - "@emotion/styled": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.0.27.tgz", - "integrity": "sha512-iK/8Sh7+NLJzyp9a5+vIQIXTYxfT4yB/OJbjzQanB2RZpvmzBQOHZWhpAMZWYEKRNNbsD6WfBw5sVWkb6WzS/Q==", - "dev": true, - "optional": true, - "requires": { - "@emotion/styled-base": "^10.0.27", - "babel-plugin-emotion": "^10.0.27" - } - }, - "@emotion/styled-base": { - "version": "10.0.31", - "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.0.31.tgz", - "integrity": "sha512-wTOE1NcXmqMWlyrtwdkqg87Mu6Rj1MaukEoEmEkHirO5IoHDJ8LgCQL4MjJODgxWxXibGR3opGp1p7YvkNEdXQ==", - "dev": true, - "optional": true, - "requires": { - "@babel/runtime": "^7.5.5", - "@emotion/is-prop-valid": "0.8.8", - "@emotion/serialize": "^0.11.15", - "@emotion/utils": "0.11.3" - } - }, - "@emotion/stylis": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==", - "dev": true, - "optional": true - }, - "@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", - "dev": true, - "optional": true - }, - "@emotion/utils": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", - "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==", - "dev": true, - "optional": true - }, - "@emotion/weak-memoize": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", - "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==", - "dev": true, - "optional": true - }, - "@endiliey/static-site-generator-webpack-plugin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@endiliey/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.0.tgz", - "integrity": "sha512-3MBqYCs30qk1OBRC697NqhGouYbs71D1B8hrk/AFJC6GwF2QaJOQZtA1JYAaGSe650sZ8r5ppRTtCRXepDWlng==", - "requires": { - "bluebird": "3.7.2", - "cheerio": "0.22.0", - "eval": "0.1.4", - "url": "0.11.0", - "webpack-sources": "1.4.3" - } - }, - "@eslint/eslintrc": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.0.tgz", - "integrity": "sha512-+cIGPCBdLCzqxdtwppswP+zTsH9BOIGzAeKfBIbtb4gW/giMlfMwP0HUSFfhzh20f9u8uZ8hOp62+4GPquTbwQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "lodash": "^4.17.19", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - } - } - }, - "@fortawesome/fontawesome-common-types": { - "version": "0.2.32", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.32.tgz", - "integrity": "sha512-ux2EDjKMpcdHBVLi/eWZynnPxs0BtFVXJkgHIxXRl+9ZFaHPvYamAfCzeeQFqHRjuJtX90wVnMRaMQAAlctz3w==" - }, - "@fortawesome/fontawesome-svg-core": { - "version": "1.2.32", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.32.tgz", - "integrity": "sha512-XjqyeLCsR/c/usUpdWcOdVtWFVjPbDFBTQkn2fQRrWhhUoxriQohO2RWDxLyUM8XpD+Zzg5xwJ8gqTYGDLeGaQ==", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.32" - } - }, - "@fortawesome/free-solid-svg-icons": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.1.tgz", - "integrity": "sha512-EFMuKtzRMNbvjab/SvJBaOOpaqJfdSap/Nl6hst7CgrJxwfORR1drdTV6q1Ib/JVzq4xObdTDcT6sqTaXMqfdg==", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.32" - } - }, - "@fortawesome/react-fontawesome": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.12.tgz", - "integrity": "sha512-kV6HtqotM3K4YIXlTVvomuIi6QgGCvYm++ImyEx2wwgmSppZ6kbbA29ASwjAUBD63j2OFU0yoxeXpZkjrrX0qQ==", - "requires": { - "prop-types": "^15.7.2" - } - }, - "@francoischalifour/autocomplete-core": { - "version": "1.0.0-alpha.28", - "resolved": "https://registry.npmjs.org/@francoischalifour/autocomplete-core/-/autocomplete-core-1.0.0-alpha.28.tgz", - "integrity": "sha512-rL9x+72btViw+9icfBKUJjZj87FgjFrD2esuTUqtj4RAX3s4AuVZiN8XEsfjQBSc6qJk31cxlvqZHC/BIyYXgg==" - }, - "@francoischalifour/autocomplete-preset-algolia": { - "version": "1.0.0-alpha.28", - "resolved": "https://registry.npmjs.org/@francoischalifour/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.0.0-alpha.28.tgz", - "integrity": "sha512-bprfNmYt1opFUFEtD2XfY/kEsm13bzHQgU80uMjhuK0DJ914IjolT1GytpkdM6tJ4MBvyiJPP+bTtWO+BZ7c7w==" - }, - "@hapi/address": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", - "integrity": "sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==", - "requires": { - "@hapi/hoek": "9.1.0" - } - }, - "@hapi/bourne": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", - "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" - }, - "@hapi/formula": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", - "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" - }, - "@hapi/hoek": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", - "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" - }, - "@hapi/joi": { - "version": "17.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", - "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", - "requires": { - "@hapi/address": "4.1.0", - "@hapi/formula": "2.0.0", - "@hapi/hoek": "9.1.0", - "@hapi/pinpoint": "2.0.0", - "@hapi/topo": "5.0.0" - } - }, - "@hapi/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" - }, - "@hapi/topo": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", - "requires": { - "@hapi/hoek": "9.1.0" - } - }, - "@mdx-js/mdx": { - "version": "1.6.19", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.19.tgz", - "integrity": "sha512-L3eLhEFnV/2bcb9XwOegsRmLHd1oEDQPtTBVezhptQ5U1YM+/WQNzx1apjzVTAyukwOanUXnTUMjRUtqJNgFCg==", - "requires": { - "@babel/core": "7.11.6", - "@babel/plugin-syntax-jsx": "7.10.4", - "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "@mdx-js/util": "1.6.19", - "babel-plugin-apply-mdx-type-prop": "1.6.19", - "babel-plugin-extract-import-names": "1.6.19", - "camelcase-css": "2.0.1", - "detab": "2.0.3", - "hast-util-raw": "6.0.1", - "lodash.uniq": "4.5.0", - "mdast-util-to-hast": "9.1.1", - "remark-footnotes": "2.0.0", - "remark-mdx": "1.6.19", - "remark-parse": "8.0.3", - "remark-squeeze-paragraphs": "4.0.0", - "style-to-object": "0.3.0", - "unified": "9.2.0", - "unist-builder": "2.0.3", - "unist-util-visit": "2.0.3" - }, - "dependencies": { - "@babel/core": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz", - "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.6", - "@babel/helper-module-transforms": "^7.11.0", - "@babel/helpers": "^7.10.4", - "@babel/parser": "^7.11.5", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.11.5", - "@babel/types": "^7.11.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", - "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@mdx-js/react": { - "version": "1.6.19", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.19.tgz", - "integrity": "sha512-RS37Tagqyp2R0XFPoUZeSbZC5uJQRPhqOHWeT1LEwxESjMWb3VORHz7E827ldeQr3UW6VEQEyq/THegu+bLj6A==", - "requires": {} - }, - "@mdx-js/util": { - "version": "1.6.19", - "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.19.tgz", - "integrity": "sha512-bkkQNSHz3xSr3KRHUQ2Qk2XhewvvXAOUqjIUKwcQuL4ijOA4tUHZfUgXExi5CpMysrX7izcsyICtXjZHlfJUjg==" - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", - "requires": { - "@nodelib/fs.stat": "2.0.3", - "run-parallel": "1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" - }, - "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", - "requires": { - "@nodelib/fs.scandir": "2.1.3", - "fastq": "1.8.0" - } - }, - "@npmcli/move-file": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", - "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", - "requires": { - "mkdirp": "1.0.4" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - } - } - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "@styled-system/background": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/background/-/background-5.1.2.tgz", - "integrity": "sha512-jtwH2C/U6ssuGSvwTN3ri/IyjdHb8W9X/g8Y0JLcrH02G+BW3OS8kZdHphF1/YyRklnrKrBT2ngwGUK6aqqV3A==", - "dev": true, - "optional": true, - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/border": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@styled-system/border/-/border-5.1.5.tgz", - "integrity": "sha512-JvddhNrnhGigtzWRCVuAHepniyVi6hBlimxWDVAdcTuk7aRn9BYJUwfHslURtwYFsF5FoEs8Zmr1oZq2M1AP0A==", - "dev": true, - "optional": true, - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/color": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/color/-/color-5.1.2.tgz", - "integrity": "sha512-1kCkeKDZkt4GYkuFNKc7vJQMcOmTl3bJY3YBUs7fCNM6mMYJeT1pViQ2LwBSBJytj3AB0o4IdLBoepgSgGl5MA==", - "dev": true, - "optional": true, - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/core": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/core/-/core-5.1.2.tgz", - "integrity": "sha512-XclBDdNIy7OPOsN4HBsawG2eiWfCcuFt6gxKn1x4QfMIgeO6TOlA2pZZ5GWZtIhCUqEPTgIBta6JXsGyCkLBYw==", - "dev": true, - "optional": true, - "requires": { - "object-assign": "^4.1.1" - } - }, - "@styled-system/css": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@styled-system/css/-/css-5.1.5.tgz", - "integrity": "sha512-XkORZdS5kypzcBotAMPBoeckDs9aSZVkvrAlq5K3xP8IMAUek+x2O4NtwoSgkYkWWzVBu6DGdFZLR790QWGG+A==", - "dev": true, - "optional": true - }, - "@styled-system/flexbox": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/flexbox/-/flexbox-5.1.2.tgz", - "integrity": "sha512-6hHV52+eUk654Y1J2v77B8iLeBNtc+SA3R4necsu2VVinSD7+XY5PCCEzBFaWs42dtOEDIa2lMrgL0YBC01mDQ==", - "dev": true, - "optional": true, - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/grid": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/grid/-/grid-5.1.2.tgz", - "integrity": "sha512-K3YiV1KyHHzgdNuNlaw8oW2ktMuGga99o1e/NAfTEi5Zsa7JXxzwEnVSDSBdJC+z6R8WYTCYRQC6bkVFcvdTeg==", - "dev": true, - "optional": true, - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/layout": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/layout/-/layout-5.1.2.tgz", - "integrity": "sha512-wUhkMBqSeacPFhoE9S6UF3fsMEKFv91gF4AdDWp0Aym1yeMPpqz9l9qS/6vjSsDPF7zOb5cOKC3tcKKOMuDCPw==", - "dev": true, - "optional": true, - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/position": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/position/-/position-5.1.2.tgz", - "integrity": "sha512-60IZfMXEOOZe3l1mCu6sj/2NAyUmES2kR9Kzp7s2D3P4qKsZWxD1Se1+wJvevb+1TP+ZMkGPEYYXRyU8M1aF5A==", - "dev": true, - "optional": true, - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/shadow": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/shadow/-/shadow-5.1.2.tgz", - "integrity": "sha512-wqniqYb7XuZM7K7C0d1Euxc4eGtqEe/lvM0WjuAFsQVImiq6KGT7s7is+0bNI8O4Dwg27jyu4Lfqo/oIQXNzAg==", - "dev": true, - "optional": true, - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/should-forward-prop": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@styled-system/should-forward-prop/-/should-forward-prop-5.1.5.tgz", - "integrity": "sha512-+rPRomgCGYnUIaFabDoOgpSDc4UUJ1KsmlnzcEp0tu5lFrBQKgZclSo18Z1URhaZm7a6agGtS5Xif7tuC2s52Q==", - "dev": true, - "optional": true, - "requires": { - "@emotion/is-prop-valid": "^0.8.1", - "@emotion/memoize": "^0.7.1", - "styled-system": "^5.1.5" - } - }, - "@styled-system/space": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/space/-/space-5.1.2.tgz", - "integrity": "sha512-+zzYpR8uvfhcAbaPXhH8QgDAV//flxqxSjHiS9cDFQQUSznXMQmxJegbhcdEF7/eNnJgHeIXv1jmny78kipgBA==", - "dev": true, - "optional": true, - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/typography": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/typography/-/typography-5.1.2.tgz", - "integrity": "sha512-BxbVUnN8N7hJ4aaPOd7wEsudeT7CxarR+2hns8XCX1zp0DFfbWw4xYa/olA0oQaqx7F1hzDg+eRaGzAJbF+jOg==", - "dev": true, - "optional": true, - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/variant": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@styled-system/variant/-/variant-5.1.5.tgz", - "integrity": "sha512-Yn8hXAFoWIro8+Q5J8YJd/mP85Teiut3fsGVR9CAxwgNfIAiqlYxsk5iHU7VHJks/0KjL4ATSjmbtCDC/4l1qw==", - "dev": true, - "optional": true, - "requires": { - "@styled-system/core": "^5.1.2", - "@styled-system/css": "^5.1.5" - } - }, - "@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==" - }, - "@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==" - }, - "@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==" - }, - "@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==" - }, - "@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==" - }, - "@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==" - }, - "@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==" - }, - "@svgr/babel-plugin-transform-svg-component": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.4.0.tgz", - "integrity": "sha512-zLl4Fl3NvKxxjWNkqEcpdSOpQ3LGVH2BNFQ6vjaK6sFo2IrSznrhURIPI0HAphKiiIwNYjAfE0TNoQDSZv0U9A==" - }, - "@svgr/babel-preset": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.4.0.tgz", - "integrity": "sha512-Gyx7cCxua04DBtyILTYdQxeO/pwfTBev6+eXTbVbxe4HTGhOUW6yo7PSbG2p6eJMl44j6XSequ0ZDP7bl0nu9A==", - "requires": { - "@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.4.0" - } - }, - "@svgr/core": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.4.0.tgz", - "integrity": "sha512-hWGm1DCCvd4IEn7VgDUHYiC597lUYhFau2lwJBYpQWDirYLkX4OsXu9IslPgJ9UpP7wsw3n2Ffv9sW7SXJVfqQ==", - "requires": { - "@svgr/plugin-jsx": "5.4.0", - "camelcase": "6.1.0", - "cosmiconfig": "6.0.0" - } - }, - "@svgr/hast-util-to-babel-ast": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.4.0.tgz", - "integrity": "sha512-+U0TZZpPsP2V1WvVhqAOSTk+N+CjYHdZx+x9UBa1eeeZDXwH8pt0CrQf2+SvRl/h2CAPRFkm+Ey96+jKP8Bsgg==", - "requires": { - "@babel/types": "7.12.1" - } - }, - "@svgr/plugin-jsx": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.4.0.tgz", - "integrity": "sha512-SGzO4JZQ2HvGRKDzRga9YFSqOqaNrgLlQVaGvpZ2Iht2gwRp/tq+18Pvv9kS9ZqOMYgyix2LLxZMY1LOe9NPqw==", - "requires": { - "@babel/core": "7.12.3", - "@svgr/babel-preset": "5.4.0", - "@svgr/hast-util-to-babel-ast": "5.4.0", - "svg-parser": "2.0.4" - } - }, - "@svgr/plugin-svgo": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.4.0.tgz", - "integrity": "sha512-3Cgv3aYi1l6SHyzArV9C36yo4kgwVdF3zPQUC6/aCDUeXAofDYwE5kk3e3oT5ZO2a0N3lB+lLGvipBG6lnG8EA==", - "requires": { - "cosmiconfig": "6.0.0", - "merge-deep": "3.0.2", - "svgo": "1.3.2" - } - }, - "@svgr/webpack": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.4.0.tgz", - "integrity": "sha512-LjepnS/BSAvelnOnnzr6Gg0GcpLmnZ9ThGFK5WJtm1xOqdBE/1IACZU7MMdVzjyUkfFqGz87eRE4hFaSLiUwYg==", - "requires": { - "@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.1", - "@svgr/core": "5.4.0", - "@svgr/plugin-jsx": "5.4.0", - "@svgr/plugin-svgo": "5.4.0", - "loader-utils": "2.0.0" - } - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "1.1.3" - } - }, - "@types/anymatch": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", - "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==" - }, - "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", - "requires": { - "@types/minimatch": "3.0.3", - "@types/node": "14.11.10" - } - }, - "@types/hast": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.1.tgz", - "integrity": "sha512-viwwrB+6xGzw+G1eWpF9geV3fnsDgXqHG+cqgiHrvQfDUW5hzhCyV7Sy3UJxhfRFBsgky2SSW33qi/YrIkjX5Q==", - "requires": { - "@types/unist": "*" - } - }, - "@types/html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==" - }, - "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==" - }, - "@types/mdast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz", - "integrity": "sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==", - "requires": { - "@types/unist": "*" - } - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" - }, - "@types/node": { - "version": "14.11.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.10.tgz", - "integrity": "sha512-yV1nWZPlMFpoXyoknm4S56y2nlTAuFYaJuQtYRAOU7xA/FJ9RY0Xm7QOkaYMMmr8ESdHIuUb6oQgR/0+2NqlyA==" - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - }, - "@types/parse5": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", - "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" - }, - "@types/prop-types": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" - }, - "@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" - }, - "@types/react": { - "version": "16.9.53", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.53.tgz", - "integrity": "sha512-4nW60Sd4L7+WMXH1D6jCdVftuW7j4Za6zdp6tJ33Rqv0nk1ZAmQKML9ZLD4H0dehA3FZxXR/GM8gXplf82oNGw==", - "requires": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "@types/react-toggle": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/react-toggle/-/react-toggle-4.0.2.tgz", - "integrity": "sha512-sHqfoKFnL0YU2+OC4meNEC8Ptx9FE8/+nFeFvNcdBa6ANA8KpAzj3R9JN8GtrvlLgjKDoYgI7iILgXYcTPo2IA==", - "requires": { - "@types/react": "*" - } - }, - "@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==" - }, - "@types/tapable": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", - "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==" - }, - "@types/uglify-js": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.11.0.tgz", - "integrity": "sha512-I0Yd8TUELTbgRHq2K65j8rnDPAzAP+DiaF/syLem7yXwYLsHZhPd+AM2iXsWmf9P2F2NlFCgl5erZPQx9IbM9Q==", - "requires": { - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "@types/unist": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", - "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==" - }, - "@types/webpack": { - "version": "4.41.22", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.22.tgz", - "integrity": "sha512-JQDJK6pj8OMV9gWOnN1dcLCyU9Hzs6lux0wBO4lr1+gyEhIBR9U3FMrz12t2GPkg110XAxEAw2WHF6g7nZIbRQ==", - "requires": { - "@types/anymatch": "1.3.1", - "@types/node": "14.11.10", - "@types/tapable": "1.0.6", - "@types/uglify-js": "3.11.0", - "@types/webpack-sources": "2.0.0", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "@types/webpack-sources": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.0.0.tgz", - "integrity": "sha512-a5kPx98CNFRKQ+wqawroFunvFqv7GHm/3KOI52NY9xWADgc8smu4R6prt4EU/M4QfVjvgBkMqU4fBhw3QfMVkg==", - "requires": { - "@types/node": "14.11.10", - "@types/source-list-map": "0.1.2", - "source-map": "0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "requires": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "requires": { - "@xtuc/ieee754": "1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "@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==" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "2.1.27", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" - }, - "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" - }, - "address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "requires": { - "clean-stack": "2.2.0", - "indent-string": "4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "3.1.3", - "fast-json-stable-stringify": "2.1.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.4.0" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" - }, - "algoliasearch": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.5.1.tgz", - "integrity": "sha512-b6yT1vWMlBdVObQipKxvt0M6SEvGetVj+FFFlo0Fy06gkdj6WCJaS4t10Q/hC3I2VG9QmpCqlK3Esgg1y1E+uw==", - "requires": { - "@algolia/cache-browser-local-storage": "4.5.1", - "@algolia/cache-common": "4.5.1", - "@algolia/cache-in-memory": "4.5.1", - "@algolia/client-account": "4.5.1", - "@algolia/client-analytics": "4.5.1", - "@algolia/client-common": "4.5.1", - "@algolia/client-recommendation": "4.5.1", - "@algolia/client-search": "4.5.1", - "@algolia/logger-common": "4.5.1", - "@algolia/logger-console": "4.5.1", - "@algolia/requester-browser-xhr": "4.5.1", - "@algolia/requester-common": "4.5.1", - "@algolia/requester-node-http": "4.5.1", - "@algolia/transporter": "4.5.1" - } - }, - "algoliasearch-helper": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.2.2.tgz", - "integrity": "sha512-/3XvE33R+gQKaiPdy3nmHYqhF8hqIu8xnlOicVxb1fD6uMFmxW8rGLzzrRfsPfxgAfm+c1NslLb3TzQVIB8aVA==", - "requires": { - "events": "^1.1.1" - }, - "dependencies": { - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" - } - } - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" - }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "requires": { - "string-width": "3.1.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" - } - } - } - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" - }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "requires": { - "type-fest": "0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" - } - } - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "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==", - "requires": { - "color-convert": "1.9.3" - } - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "requires": { - "normalize-path": "3.0.0", - "picomatch": "2.2.2" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "1.0.3" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "is-string": "^1.0.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, - "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==" - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "array.prototype.flatmap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz", - "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "requires": { - "bn.js": "4.11.9", - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1", - "safer-buffer": "2.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "requires": { - "object-assign": "4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "4.17.20" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "autoprefixer": { - "version": "9.8.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", - "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", - "requires": { - "browserslist": "4.14.5", - "caniuse-lite": "1.0.30001148", - "colorette": "1.2.1", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "7.0.35", - "postcss-value-parser": "4.1.0" - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.3", - "js-tokens": "3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "babel-loader": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", - "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", - "requires": { - "find-cache-dir": "2.1.0", - "loader-utils": "1.4.0", - "mkdirp": "0.5.5", - "pify": "4.0.1", - "schema-utils": "2.7.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "1.2.5" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" - } - } - } - }, - "babel-plugin-apply-mdx-type-prop": { - "version": "1.6.19", - "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.19.tgz", - "integrity": "sha512-zAuL11EaBbeNpfTqsa9xP7mkvX3V4LaEV6M9UUaI4zQtTqN5JwvDyhNsALQs5Ud7WFQSXtoqU74saTgE+rgZOw==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@mdx-js/util": "1.6.19" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "requires": { - "object.assign": "4.1.1" - } - }, - "babel-plugin-emotion": { - "version": "10.0.33", - "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz", - "integrity": "sha512-bxZbTTGz0AJQDHm8k6Rf3RQJ8tX2scsfsRyKVgAbiUPUNIRtlK+7JxP+TAd1kRLABFxe0CFm2VdK4ePkoA9FxQ==", - "dev": true, - "optional": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/serialize": "^0.11.16", - "babel-plugin-macros": "^2.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^1.0.5", - "find-root": "^1.1.0", - "source-map": "^0.5.7" - } - }, - "babel-plugin-extract-import-names": { - "version": "1.6.19", - "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.19.tgz", - "integrity": "sha512-5kbSEhQdg1ybR9OnxybbyR1PXw51z6T6ZCtX3vYSU6t1pC/+eBlSzWXyU2guStbwQgJyxS+mHWSNnL7PUdzAlw==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - } - }, - "babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", - "dev": true, - "optional": true, - "requires": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - } - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", - "dev": true, - "optional": true - }, - "bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.3.0", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.2", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "6.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "6.0.3" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" - } - } - } - }, - "base16": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz", - "integrity": "sha1-4pf2DX7BAUp6lxo568ipjAtoHnA=" - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" - }, - "bfj": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", - "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==", - "requires": { - "bluebird": "3.7.2", - "check-types": "8.0.3", - "hoopy": "0.1.4", - "tryer": "1.0.1" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - }, - "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==" - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "bytes": "3.1.0", - "content-type": "1.0.4", - "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "1.6.18" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "requires": { - "array-flatten": "2.1.2", - "deep-equal": "1.1.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.3", - "multicast-dns-service-types": "1.1.0" - }, - "dependencies": { - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - } - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "requires": { - "ansi-align": "3.0.0", - "camelcase": "5.3.1", - "chalk": "3.0.0", - "cli-boxes": "2.2.1", - "string-width": "4.2.0", - "term-size": "2.2.0", - "type-fest": "0.8.1", - "widest-line": "3.1.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.4", - "safe-buffer": "5.1.2" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.2", - "evp_bytestokey": "1.0.3" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.1", - "inherits": "2.0.4", - "safe-buffer": "5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "requires": { - "bn.js": "4.11.9", - "randombytes": "2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "requires": { - "bn.js": "5.1.3", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.5.3", - "inherits": "2.0.4", - "parse-asn1": "5.1.6", - "readable-stream": "3.6.0", - "safe-buffer": "5.2.1" - }, - "dependencies": { - "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==" - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "requires": { - "pako": "1.0.11" - } - }, - "browserslist": { - "version": "4.14.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.5.tgz", - "integrity": "sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA==", - "requires": { - "caniuse-lite": "1.0.30001148", - "electron-to-chromium": "1.3.582", - "escalade": "3.1.1", - "node-releases": "1.1.63" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "requires": { - "base64-js": "1.3.1", - "ieee754": "1.1.13", - "isarray": "1.0.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, - "buffer-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz", - "integrity": "sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "cacache": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", - "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", - "requires": { - "@npmcli/move-file": "1.0.1", - "chownr": "2.0.0", - "fs-minipass": "2.1.0", - "glob": "7.1.6", - "infer-owner": "1.0.4", - "lru-cache": "6.0.0", - "minipass": "3.1.3", - "minipass-collect": "1.0.2", - "minipass-flush": "1.0.5", - "minipass-pipeline": "1.2.4", - "mkdirp": "1.0.4", - "p-map": "4.0.0", - "promise-inflight": "1.0.1", - "rimraf": "3.0.2", - "ssri": "8.0.0", - "tar": "6.0.5", - "unique-filename": "1.1.1" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.3.0", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.1", - "to-object-path": "0.3.0", - "union-value": "1.0.1", - "unset-value": "1.0.0" - } - }, - "cache-loader": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-4.1.0.tgz", - "integrity": "sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw==", - "requires": { - "buffer-json": "2.0.0", - "find-cache-dir": "3.3.1", - "loader-utils": "1.4.0", - "mkdirp": "0.5.5", - "neo-async": "2.6.2", - "schema-utils": "2.7.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "requires": { - "commondir": "1.0.1", - "make-dir": "3.1.0", - "pkg-dir": "4.2.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "5.0.0", - "path-exists": "4.0.0" - } - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "1.2.5" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "4.1.0" - } - }, - "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==", - "requires": { - "semver": "6.3.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "2.3.0" - } - }, - "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==" - }, - "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==", - "requires": { - "find-up": "4.1.0" - } - } - } - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "1.0.2", - "get-stream": "5.2.0", - "http-cache-semantics": "4.1.0", - "keyv": "3.1.0", - "lowercase-keys": "2.0.0", - "normalize-url": "4.5.0", - "responselike": "1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" - } - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "requires": { - "callsites": "2.0.0" - }, - "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" - } - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "requires": { - "caller-callsite": "2.0.0" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camel-case": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", - "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", - "requires": { - "pascal-case": "3.1.1", - "tslib": "1.14.1" - } - }, - "camelcase": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.1.0.tgz", - "integrity": "sha512-WCMml9ivU60+8rEJgELlFp1gxFcEGxwYleE3bziHEDeqsqAWGHdimB7beBFGjLzVNgPGyDsfgXLQEYMpmIFnVQ==" - }, - "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==" - }, - "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==", - "requires": { - "browserslist": "4.14.5", - "caniuse-lite": "1.0.30001148", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001148", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001148.tgz", - "integrity": "sha512-E66qcd0KMKZHNJQt9hiLZGE3J4zuTqE1OnU53miEVtylFbwOEmeA5OsRu90noZful+XGSQOni1aT2tiqu/9yYw==" - }, - "ccount": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.5.tgz", - "integrity": "sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "4.3.0", - "supports-color": "7.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "requires": { - "has-flag": "4.0.0" - } - } - } - }, - "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" - }, - "character-entities-html4": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", - "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==", - "dev": true - }, - "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" - }, - "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "check-types": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz", - "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==" - }, - "cheerio": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", - "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", - "requires": { - "css-select": "1.2.0", - "dom-serializer": "0.1.1", - "entities": "1.1.2", - "htmlparser2": "3.10.1", - "lodash.assignin": "4.2.0", - "lodash.bind": "4.2.1", - "lodash.defaults": "4.2.0", - "lodash.filter": "4.6.0", - "lodash.flatten": "4.4.0", - "lodash.foreach": "4.5.0", - "lodash.map": "4.6.0", - "lodash.merge": "4.6.2", - "lodash.pick": "4.4.0", - "lodash.reduce": "4.6.0", - "lodash.reject": "4.6.0", - "lodash.some": "4.6.0" - } - }, - "chokidar": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", - "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", - "requires": { - "anymatch": "3.1.1", - "braces": "3.0.2", - "fsevents": "2.1.3", - "glob-parent": "5.1.1", - "is-binary-path": "2.1.0", - "is-glob": "4.0.1", - "normalize-path": "3.0.0", - "readdirp": "3.5.0" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "requires": { - "tslib": "1.14.1" - } - }, - "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "2.0.4", - "safe-buffer": "5.1.2" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, - "clean-css": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", - "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", - "requires": { - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "requires": { - "restore-cursor": "3.1.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" - }, - "clipboard": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", - "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", - "optional": true, - "requires": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "requires": { - "string-width": "3.1.0", - "strip-ansi": "5.2.0", - "wrap-ansi": "5.1.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" - } - } - } - }, - "clone-deep": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", - "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", - "requires": { - "for-own": "0.1.5", - "is-plain-object": "2.0.4", - "kind-of": "3.2.2", - "lazy-cache": "1.0.4", - "shallow-clone": "0.1.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "1.0.1" - } - }, - "clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "requires": { - "@types/q": "1.5.4", - "chalk": "2.4.2", - "q": "1.5.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - } - } - }, - "collapse-white-space": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", - "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", - "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", - "requires": { - "color-convert": "1.9.3", - "color-string": "1.5.4" - } - }, - "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==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-string": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", - "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", - "requires": { - "color-name": "1.1.3", - "simple-swizzle": "0.2.2" - } - }, - "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" - }, - "comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==" - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "requires": { - "mime-db": "1.44.0" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "requires": { - "accepts": "1.3.7", - "bytes": "3.0.0", - "compressible": "2.0.18", - "debug": "2.6.9", - "on-headers": "1.0.2", - "safe-buffer": "5.1.2", - "vary": "1.1.2" - }, - "dependencies": { - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.4", - "readable-stream": "2.3.7", - "typedarray": "0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "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==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "requires": { - "dot-prop": "5.3.0", - "graceful-fs": "4.2.4", - "make-dir": "3.1.0", - "unique-string": "2.0.0", - "write-file-atomic": "3.0.3", - "xdg-basedir": "4.0.0" - }, - "dependencies": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "6.3.0" - } - } - } - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" - }, - "consola": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.0.tgz", - "integrity": "sha512-vlcSGgdYS26mPf7qNi+dCisbhiyDnrN1zaRbw3CSuc2wGOMEGGPsp46PdRG5gqXwgtJfjxDkxRNAgRPr1B77vQ==" - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.5", - "rimraf": "2.7.1", - "run-queue": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "7.1.6" - } - } - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copy-text-to-clipboard": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-2.2.0.tgz", - "integrity": "sha512-WRvoIdnTs1rgPMkgA2pUOa/M4Enh2uzCwdKsOMYNAJiz/4ZvEJgmbF4OmninPmlFdAWisfeh0tH+Cpf7ni3RqQ==" - }, - "copy-to-clipboard": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", - "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", - "requires": { - "toggle-selection": "^1.0.6" - } - }, - "copy-webpack-plugin": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.2.1.tgz", - "integrity": "sha512-VH2ZTMIBsx4p++Lmpg77adZ0KUyM5gFR/9cuTrbneNnJlcQXUFvsNariPqq2dq2kV3F2skHiDGPQCyKWy1+U0Q==", - "requires": { - "cacache": "15.0.5", - "fast-glob": "3.2.4", - "find-cache-dir": "3.3.1", - "glob-parent": "5.1.1", - "globby": "11.0.1", - "loader-utils": "2.0.0", - "normalize-path": "3.0.0", - "p-limit": "3.0.2", - "schema-utils": "3.0.0", - "serialize-javascript": "5.0.1", - "webpack-sources": "1.4.3" - }, - "dependencies": { - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "requires": { - "commondir": "1.0.1", - "make-dir": "3.1.0", - "pkg-dir": "4.2.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "5.0.0", - "path-exists": "4.0.0" - } - }, - "globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", - "requires": { - "array-union": "2.1.0", - "dir-glob": "3.0.1", - "fast-glob": "3.2.4", - "ignore": "5.1.8", - "merge2": "1.4.1", - "slash": "3.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "4.1.0" - } - }, - "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==", - "requires": { - "semver": "6.3.0" - } - }, - "p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", - "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", - "requires": { - "p-try": "2.2.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "2.3.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "2.2.0" - } - } - } - }, - "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==" - }, - "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==", - "requires": { - "find-up": "4.1.0" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "requires": { - "@types/json-schema": "7.0.6", - "ajv": "6.12.6", - "ajv-keywords": "3.5.2" - } - } - } - }, - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" - }, - "core-js-compat": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", - "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", - "requires": { - "browserslist": "4.14.5", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } - } - }, - "core-js-pure": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", - "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "requires": { - "@types/parse-json": "4.0.0", - "import-fresh": "3.2.1", - "parse-json": "5.1.0", - "path-type": "4.0.0", - "yaml": "1.10.0" - } - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "requires": { - "bn.js": "4.11.9", - "elliptic": "6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.4", - "md5.js": "1.3.5", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.4", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", - "requires": { - "path-key": "3.1.1", - "shebang-command": "2.0.0", - "which": "2.0.2" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.2.1", - "create-ecdh": "4.0.4", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.4", - "pbkdf2": "3.1.1", - "public-encrypt": "4.0.3", - "randombytes": "2.1.0", - "randomfill": "1.0.4" - } - }, - "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==" - }, - "css-blank-pseudo": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", - "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", - "requires": { - "postcss": "7.0.35" - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" - }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "requires": { - "postcss": "7.0.35", - "timsort": "0.3.0" - } - }, - "css-has-pseudo": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", - "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", - "requires": { - "postcss": "7.0.35", - "postcss-selector-parser": "5.0.0" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "requires": { - "cssesc": "2.0.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - } - } - }, - "css-loader": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", - "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", - "requires": { - "camelcase": "5.3.1", - "cssesc": "3.0.0", - "icss-utils": "4.1.1", - "loader-utils": "1.4.0", - "normalize-path": "3.0.0", - "postcss": "7.0.35", - "postcss-modules-extract-imports": "2.0.0", - "postcss-modules-local-by-default": "3.0.3", - "postcss-modules-scope": "2.2.0", - "postcss-modules-values": "3.0.0", - "postcss-value-parser": "4.1.0", - "schema-utils": "2.7.1", - "semver": "6.3.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "1.2.5" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" - } - } - } - }, - "css-prefers-color-scheme": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", - "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", - "requires": { - "postcss": "7.0.35" - } - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.3", - "domutils": "1.5.1", - "nth-check": "1.0.2" - } - }, - "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==" - }, - "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==", - "requires": { - "mdn-data": "2.0.4", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" - }, - "cssdb": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", - "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", - "requires": { - "cosmiconfig": "5.2.1", - "cssnano-preset-default": "4.0.7", - "is-resolvable": "1.1.0", - "postcss": "7.0.35" - }, - "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "requires": { - "import-fresh": "2.0.0", - "is-directory": "0.3.1", - "js-yaml": "3.14.0", - "parse-json": "4.0.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "2.0.0", - "resolve-from": "3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } - } - }, - "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", - "requires": { - "css-declaration-sorter": "4.0.1", - "cssnano-util-raw-cache": "4.0.1", - "postcss": "7.0.35", - "postcss-calc": "7.0.5", - "postcss-colormin": "4.0.3", - "postcss-convert-values": "4.0.1", - "postcss-discard-comments": "4.0.2", - "postcss-discard-duplicates": "4.0.2", - "postcss-discard-empty": "4.0.1", - "postcss-discard-overridden": "4.0.1", - "postcss-merge-longhand": "4.0.11", - "postcss-merge-rules": "4.0.3", - "postcss-minify-font-values": "4.0.2", - "postcss-minify-gradients": "4.0.2", - "postcss-minify-params": "4.0.2", - "postcss-minify-selectors": "4.0.2", - "postcss-normalize-charset": "4.0.1", - "postcss-normalize-display-values": "4.0.2", - "postcss-normalize-positions": "4.0.2", - "postcss-normalize-repeat-style": "4.0.2", - "postcss-normalize-string": "4.0.2", - "postcss-normalize-timing-functions": "4.0.2", - "postcss-normalize-unicode": "4.0.1", - "postcss-normalize-url": "4.0.1", - "postcss-normalize-whitespace": "4.0.2", - "postcss-ordered-values": "4.1.2", - "postcss-reduce-initial": "4.0.3", - "postcss-reduce-transforms": "4.0.2", - "postcss-svgo": "4.0.2", - "postcss-unique-selectors": "4.0.1" - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", - "requires": { - "postcss": "7.0.35" - } - }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" - }, - "csso": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", - "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", - "requires": { - "css-tree": "1.0.0-alpha.39" - }, - "dependencies": { - "css-tree": { - "version": "1.0.0-alpha.39", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", - "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", - "requires": { - "mdn-data": "2.0.6", - "source-map": "0.6.1" - } - }, - "mdn-data": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", - "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "csstype": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", - "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==" - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "1.0.1" - } - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "requires": { - "is-arguments": "1.0.4", - "is-date-object": "1.0.2", - "is-regex": "1.1.1", - "object-is": "1.1.3", - "object-keys": "1.1.1", - "regexp.prototype.flags": "1.3.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "requires": { - "execa": "1.0.0", - "ip-regex": "2.1.0" - } - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "1.1.1" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "6.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "6.0.3" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" - } - } - } - }, - "del": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", - "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", - "requires": { - "globby": "10.0.2", - "graceful-fs": "4.2.4", - "is-glob": "4.0.1", - "is-path-cwd": "2.2.0", - "is-path-inside": "3.0.2", - "p-map": "3.0.0", - "rimraf": "3.0.2", - "slash": "3.0.0" - }, - "dependencies": { - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "requires": { - "aggregate-error": "3.1.0" - } - } - } - }, - "delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", - "optional": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "requires": { - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detab": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.3.tgz", - "integrity": "sha512-Up8P0clUVwq0FnFjDclzZsy9PadzRn5FFxrr47tQQvMHqyiFYVbpH8oXDzWtF0Q7pYy3l+RPmtBl+BsFF6wH0A==", - "requires": { - "repeat-string": "^1.5.4" - } - }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" - }, - "detect-port": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", - "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", - "requires": { - "address": "1.1.2", - "debug": "2.6.9" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "4.11.9", - "miller-rabin": "4.0.1", - "randombytes": "2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { - "path-type": "4.0.0" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.2" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "requires": { - "buffer-indexof": "1.1.1" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "requires": { - "utila": "0.4.0" - } - }, - "dom-helpers": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", - "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "requires": { - "domelementtype": "1.3.1", - "entities": "1.1.2" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "requires": { - "domelementtype": "1.3.1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "requires": { - "dom-serializer": "0.1.1", - "domelementtype": "1.3.1" - } - }, - "dot-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz", - "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==", - "requires": { - "no-case": "3.0.3", - "tslib": "1.14.1" - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "requires": { - "is-obj": "2.0.0" - } - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "1.4.4", - "inherits": "2.0.4", - "readable-stream": "2.3.7", - "stream-shift": "1.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "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==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "ejs": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", - "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" - }, - "electron-to-chromium": { - "version": "1.3.582", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.582.tgz", - "integrity": "sha512-0nCJ7cSqnkMC+kUuPs0YgklFHraWGl/xHqtZWWtOeVtyi+YqkoAOMGuZQad43DscXCQI/yizcTa3u6B5r+BLww==" - }, - "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "requires": { - "bn.js": "4.11.9", - "brorand": "1.1.0", - "hash.js": "1.1.7", - "hmac-drbg": "1.0.1", - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "emoticon": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-3.2.0.tgz", - "integrity": "sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", - "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", - "requires": { - "graceful-fs": "4.2.4", - "memory-fs": "0.5.0", - "tapable": "1.1.3" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.7" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "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==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - }, - "dependencies": { - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - } - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "requires": { - "prr": "1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "0.2.1" - } - }, - "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "requires": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.2.2", - "is-negative-zero": "2.0.0", - "is-regex": "1.1.1", - "object-inspect": "1.8.0", - "object-keys": "1.1.1", - "object.assign": "4.1.1", - "string.prototype.trimend": "1.0.1", - "string.prototype.trimstart": "1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "1.2.2", - "is-date-object": "1.0.2", - "is-symbol": "1.0.3" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "eslint": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.12.0.tgz", - "integrity": "sha512-n5pEU27DRxCSlOhJ2rO57GDLcNsxO0LPpAbpFdh7xmcDmjmlGUfoyrsB3I7yYdQXO5N3gkSTiDrPSPNFiiirXA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.0", - "esquery": "^1.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash": "^4.17.19", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "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==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "eslint-config-prettier": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.14.0.tgz", - "integrity": "sha512-DbVwh0qZhAC7CNDWcq8cBdK6FcVHiMTKmCypOPWeZkp9hJ8xYwTaWSa6bb6cjfi8KOeJy0e9a8Izxyx+O4+gCQ==", - "dev": true, - "requires": { - "get-stdin": "^6.0.0" - } - }, - "eslint-mdx": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/eslint-mdx/-/eslint-mdx-1.8.2.tgz", - "integrity": "sha512-j7mkBFr7zHLaiqGu+iWker9qwWfti29xUAuUDDad95l+H189R4++dsuSUB6u19wy6CCuspIt5I6katzbpRbbMw==", - "dev": true, - "requires": { - "espree": "^7.2.0", - "remark-mdx": "^1.6.16", - "remark-parse": "^8.0.3", - "tslib": "^2.0.1", - "unified": "^9.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "dev": true - } - } - }, - "eslint-plugin-mdx": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-mdx/-/eslint-plugin-mdx-1.8.2.tgz", - "integrity": "sha512-fKkhsR1cTCHQUVcoguUmOohMo87297/H1Z0Zye3GF4ivvxcpX8fboLILLR2Em76QV8RrjP4sxrgBuOA9rBIumw==", - "dev": true, - "requires": { - "cosmiconfig": "^7.0.0", - "eslint-mdx": "^1.8.2", - "eslint-plugin-react": "^7.20.6", - "rebass": "^4.0.7", - "remark-mdx": "^1.6.16", - "remark-parse": "^8.0.3", - "remark-stringify": "^8.1.1", - "tslib": "^2.0.1", - "unified": "^9.1.0", - "vfile": "^4.1.1" - }, - "dependencies": { - "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", - "dev": true, - "requires": { - "@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" - } - }, - "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "dev": true - } - } - }, - "eslint-plugin-react": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz", - "integrity": "sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flatmap": "^1.2.3", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "object.entries": "^1.1.2", - "object.fromentries": "^2.0.2", - "object.values": "^1.1.1", - "prop-types": "^15.7.2", - "resolve": "^1.18.1", - "string.prototype.matchall": "^4.0.2" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", - "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", - "dev": true, - "requires": { - "is-core-module": "^2.0.0", - "path-parse": "^1.0.6" - } - } - } - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "requires": { - "esrecurse": "4.3.0", - "estraverse": "4.3.0" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true - }, - "espree": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", - "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "requires": { - "estraverse": "5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "eta": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/eta/-/eta-1.11.0.tgz", - "integrity": "sha512-lfqIE6qD55WFYT6E0phTBUe0sapHJhfvRDB7jSpXxFGwzDaP69kQqRyF7krBe8I1QzF5nE1yAByiIOLB630x4Q==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "eval": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.4.tgz", - "integrity": "sha512-npGsebJejyjMRnLdFu+T/97dnigqIU0Ov3IGrZ8ygd1v7RL1vGkEKtvyWZobqUH1AQgKlg0Yqqe2BtMA9/QZLw==", - "requires": { - "require-like": "0.1.2" - } - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" - }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "requires": { - "original": "1.0.2" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "1.3.5", - "safe-buffer": "5.1.2" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.3", - "strip-eof": "1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.7.1", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "2.0.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "requires": { - "accepts": "1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "finalhandler": "1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.6", - "qs": "6.7.0", - "range-parser": "1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "1.5.0", - "type-is": "1.6.18", - "utils-merge": "1.0.1", - "vary": "1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "6.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "6.0.3" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" - } - } - } - }, - "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==" - }, - "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", - "requires": { - "@nodelib/fs.stat": "2.0.3", - "@nodelib/fs.walk": "1.2.4", - "glob-parent": "5.1.1", - "merge2": "1.4.1", - "micromatch": "4.0.2", - "picomatch": "2.2.2" - } - }, - "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==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", - "requires": { - "punycode": "1.3.2" - } - }, - "fastq": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", - "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", - "requires": { - "reusify": "1.0.4" - } - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "requires": { - "websocket-driver": "0.6.5" - } - }, - "fbemitter": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", - "integrity": "sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=", - "requires": { - "fbjs": "^0.8.4" - } - }, - "fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - } - } - }, - "feed": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.1.tgz", - "integrity": "sha512-l28KKcK1J/u3iq5dRDmmoB2p7dtBfACC2NqJh4dI2kFptxH0asfjmOfcxqh5Sv8suAlVa73gZJ4REY5RrafVvg==", - "requires": { - "xml-js": "^1.6.11" - } - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, - "file-loader": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.1.1.tgz", - "integrity": "sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw==", - "requires": { - "loader-utils": "2.0.0", - "schema-utils": "3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "requires": { - "@types/json-schema": "7.0.6", - "ajv": "6.12.6", - "ajv-keywords": "3.5.2" - } - } - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true - }, - "filesize": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz", - "integrity": "sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg==" - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.3", - "statuses": "1.5.0", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "requires": { - "commondir": "1.0.1", - "make-dir": "2.1.0", - "pkg-dir": "3.0.0" - } - }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true, - "optional": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "3.0.0" - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", - "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==" - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "2.0.4", - "readable-stream": "2.3.7" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "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==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "flux": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/flux/-/flux-3.1.3.tgz", - "integrity": "sha1-0jvtUVp5oi2TOrU6tK2hnQWy8Io=", - "requires": { - "fbemitter": "^2.0.0", - "fbjs": "^0.8.0" - } - }, - "follow-redirects": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", - "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==" - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "requires": { - "for-in": "1.0.2" - } - }, - "fork-ts-checker-webpack-plugin": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz", - "integrity": "sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ==", - "requires": { - "babel-code-frame": "6.26.0", - "chalk": "2.4.2", - "chokidar": "3.4.3", - "micromatch": "3.1.10", - "minimatch": "3.0.4", - "semver": "5.7.1", - "tapable": "1.1.3", - "worker-rpc": "0.1.1" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.3", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - } - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "2.0.4", - "readable-stream": "2.3.7" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "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==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "4.2.4", - "jsonfile": "4.0.0", - "universalify": "0.1.2" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "3.1.3" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "4.2.4", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.7" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "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==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" - }, - "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==" - }, - "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==" - }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "github-slugger": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz", - "integrity": "sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==", - "requires": { - "emoji-regex": ">=6.0.0 <=6.1.1" - }, - "dependencies": { - "emoji-regex": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz", - "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=" - } - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.4", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "requires": { - "is-glob": "4.0.1" - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" - }, - "global-dirs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", - "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", - "requires": { - "ini": "1.3.5" - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "requires": { - "global-prefix": "3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "requires": { - "ini": "1.3.5", - "kind-of": "6.0.3", - "which": "1.3.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "2.0.0" - } - } - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "requires": { - "@types/glob": "7.1.3", - "array-union": "2.1.0", - "dir-glob": "3.0.1", - "fast-glob": "3.2.4", - "glob": "7.1.6", - "ignore": "5.1.8", - "merge2": "1.4.1", - "slash": "3.0.0" - } - }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", - "optional": true, - "requires": { - "delegate": "^3.1.2" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "0.14.0", - "@szmarczak/http-timer": "1.1.2", - "cacheable-request": "6.1.0", - "decompress-response": "3.3.0", - "duplexer3": "0.1.4", - "get-stream": "4.1.0", - "lowercase-keys": "1.0.1", - "mimic-response": "1.0.1", - "p-cancelable": "1.1.0", - "to-readable-stream": "1.0.0", - "url-parse-lax": "3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, - "gray-matter": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.2.tgz", - "integrity": "sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==", - "requires": { - "js-yaml": "3.14.0", - "kind-of": "6.0.3", - "section-matter": "1.0.0", - "strip-bom-string": "1.0.0" - } - }, - "gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", - "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", - "requires": { - "duplexer": "0.1.2", - "pify": "4.0.1" - } - }, - "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==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "2.0.4", - "readable-stream": "3.6.0", - "safe-buffer": "5.2.1" - }, - "dependencies": { - "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==" - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1" - } - }, - "hast-to-hyperscript": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.0.tgz", - "integrity": "sha512-NJvMYU3GlMLs7hN3CRbsNlMzusVNkYBogVWDGybsuuVQ336gFLiD+q9qtFZT2meSHzln3pNISZWTASWothMSMg==", - "requires": { - "@types/unist": "^2.0.3", - "comma-separated-tokens": "^1.0.0", - "property-information": "^5.3.0", - "space-separated-tokens": "^1.0.0", - "style-to-object": "^0.3.0", - "unist-util-is": "^4.0.0", - "web-namespaces": "^1.0.0" - } - }, - "hast-util-from-parse5": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.0.tgz", - "integrity": "sha512-3ZYnfKenbbkhhNdmOQqgH10vnvPivTdsOJCri+APn0Kty+nRkDHArnaX9Hiaf8H+Ig+vkNptL+SRY/6RwWJk1Q==", - "requires": { - "@types/parse5": "^5.0.0", - "ccount": "^1.0.0", - "hastscript": "^5.0.0", - "property-information": "^5.0.0", - "vfile": "^4.0.0", - "web-namespaces": "^1.0.0" - } - }, - "hast-util-parse-selector": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz", - "integrity": "sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA==" - }, - "hast-util-raw": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", - "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", - "requires": { - "@types/hast": "^2.0.0", - "hast-util-from-parse5": "^6.0.0", - "hast-util-to-parse5": "^6.0.0", - "html-void-elements": "^1.0.0", - "parse5": "^6.0.0", - "unist-util-position": "^3.0.0", - "vfile": "^4.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - } - }, - "hast-util-to-parse5": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", - "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", - "requires": { - "hast-to-hyperscript": "^9.0.0", - "property-information": "^5.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - } - }, - "hastscript": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz", - "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==", - "requires": { - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" - }, - "history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "requires": { - "@babel/runtime": "7.12.1", - "loose-envify": "1.4.0", - "resolve-pathname": "3.0.0", - "tiny-invariant": "1.1.0", - "tiny-warning": "1.0.3", - "value-equal": "1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "1.1.7", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "16.13.1" - } - }, - "hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "requires": { - "inherits": "2.0.4", - "obuf": "1.1.2", - "readable-stream": "2.3.7", - "wbuf": "1.7.3" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "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==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" - }, - "html-entities": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", - "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==" - }, - "html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", - "requires": { - "camel-case": "4.1.1", - "clean-css": "4.2.3", - "commander": "4.1.1", - "he": "1.2.0", - "param-case": "3.0.3", - "relateurl": "0.2.7", - "terser": "4.8.0" - } - }, - "html-tags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", - "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==" - }, - "html-void-elements": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", - "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==" - }, - "html-webpack-plugin": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz", - "integrity": "sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw==", - "requires": { - "@types/html-minifier-terser": "5.1.1", - "@types/tapable": "1.0.6", - "@types/webpack": "4.41.22", - "html-minifier-terser": "5.1.1", - "loader-utils": "1.4.0", - "lodash": "4.17.20", - "pretty-error": "2.1.2", - "tapable": "1.1.3", - "util.promisify": "1.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "1.2.5" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" - } - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "requires": { - "define-properties": "1.1.3", - "object.getownpropertydescriptors": "2.1.0" - } - } - } - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "requires": { - "domelementtype": "1.3.1", - "domhandler": "2.4.2", - "domutils": "1.5.1", - "entities": "1.1.2", - "inherits": "2.0.4", - "readable-stream": "3.6.0" - } - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": "1.5.0", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "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==", - "requires": { - "eventemitter3": "4.0.7", - "follow-redirects": "1.13.0", - "requires-port": "1.0.0" - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "requires": { - "http-proxy": "1.18.1", - "is-glob": "4.0.1", - "lodash": "4.17.20", - "micromatch": "3.1.10" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.3", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - } - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": "2.1.2" - } - }, - "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "requires": { - "postcss": "7.0.35" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" - }, - "immer": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", - "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==" - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "requires": { - "import-from": "2.1.0" - } - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "requires": { - "parent-module": "1.0.1", - "resolve-from": "4.0.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "requires": { - "resolve-from": "3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "requires": { - "pkg-dir": "3.0.0", - "resolve-cwd": "2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "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==" - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "infima": { - "version": "0.2.0-alpha.13", - "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.13.tgz", - "integrity": "sha512-BxCZ1pMcUF0PcL4WV07l/lvaeBBdUUw7uVqNyyeGAutzDpkDyFOl5gOv9wFAJKLo5yerPNFXxFPgDitNjctqIA==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "requires": { - "ansi-escapes": "4.3.1", - "chalk": "4.1.0", - "cli-cursor": "3.1.0", - "cli-width": "3.0.0", - "external-editor": "3.1.0", - "figures": "3.2.0", - "lodash": "4.17.20", - "mute-stream": "0.0.8", - "run-async": "2.4.1", - "rxjs": "6.6.3", - "string-width": "4.2.0", - "strip-ansi": "6.0.0", - "through": "2.3.8" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { - "ansi-styles": "4.3.0", - "supports-color": "7.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "4.0.0" - } - } - } - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "requires": { - "default-gateway": "4.2.0", - "ipaddr.js": "1.9.1" - } - }, - "internal-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", - "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", - "dev": true, - "requires": { - "es-abstract": "^1.17.0-next.1", - "has": "^1.0.3", - "side-channel": "^1.0.2" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" - }, - "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==" - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" - }, - "is-alphanumeric": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", - "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=", - "dev": true - }, - "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "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==", - "requires": { - "binary-extensions": "2.1.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "requires": { - "ci-info": "2.0.0" - }, - "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - } - } - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "requires": { - "css-color-names": "0.0.4", - "hex-color-regex": "1.1.0", - "hsl-regex": "1.0.0", - "hsla-regex": "1.0.0", - "rgb-regex": "1.0.1", - "rgba-regex": "1.0.0" - } - }, - "is-core-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz", - "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" - }, - "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==" - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" - }, - "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "requires": { - "global-dirs": "2.0.1", - "is-path-inside": "3.0.2" - } - }, - "is-negative-zero": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" - }, - "is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "requires": { - "is-path-inside": "2.1.0" - }, - "dependencies": { - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "requires": { - "path-is-inside": "1.0.2" - } - } - } - }, - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "3.0.1" - } - }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "requires": { - "has-symbols": "1.0.1" - } - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" - }, - "is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true - }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", - "requires": { - "html-comment-regex": "1.1.2" - } - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "requires": { - "has-symbols": "1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-whitespace-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", - "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "is-word-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", - "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==" - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "2.1.1" - } - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "jest-worker": { - "version": "26.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.5.0.tgz", - "integrity": "sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug==", - "requires": { - "@types/node": "14.11.10", - "merge-stream": "2.0.0", - "supports-color": "7.2.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "requires": { - "has-flag": "4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "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==" - }, - "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==" - }, - "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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "requires": { - "minimist": "1.2.5" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "4.2.4" - } - }, - "jsx-ast-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.1.0.tgz", - "integrity": "sha512-d4/UOjg+mxAWxCiF0c5UTSwyqbchkbqCvK87aBovhnh8GtysTjWmgC63tY0cJx/HzGgm9qnA147jVBdpOiQ2RA==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "object.assign": "^4.1.1" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" - }, - "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==" - }, - "last-call-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", - "requires": { - "lodash": "4.17.20", - "webpack-sources": "1.4.3" - } - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "requires": { - "package-json": "6.5.0" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" - }, - "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==" - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "requires": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "2.1.3" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "lodash.assignin": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", - "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=" - }, - "lodash.bind": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", - "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "lodash.chunk": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", - "integrity": "sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw=" - }, - "lodash.curry": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz", - "integrity": "sha1-JI42By7ekGUB11lmIAqG2riyMXA=" - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" - }, - "lodash.filter": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", - "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=" - }, - "lodash.flatmap": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz", - "integrity": "sha1-74y/QI9uSCaGYzRTBcaswLd4cC4=" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "lodash.flow": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", - "integrity": "sha1-h79AKSuM+D5OjOGjrkIJ4gBxZ1o=" - }, - "lodash.foreach": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" - }, - "lodash.groupby": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", - "integrity": "sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E=" - }, - "lodash.has": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz", - "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=" - }, - "lodash.map": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "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==" - }, - "lodash.padstart": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", - "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=" - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" - }, - "lodash.pickby": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz", - "integrity": "sha1-feoh2MGNdwOifHBMFdO4SmfjOv8=" - }, - "lodash.reduce": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", - "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" - }, - "lodash.reject": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", - "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=" - }, - "lodash.some": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", - "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "requires": { - "lodash._reinterpolate": "3.0.0", - "lodash.templatesettings": "4.2.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "requires": { - "lodash._reinterpolate": "3.0.0" - } - }, - "lodash.toarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "loglevel": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz", - "integrity": "sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==" - }, - "longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", - "dev": true - }, - "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==", - "requires": { - "js-tokens": "4.0.0" - } - }, - "lower-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", - "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", - "requires": { - "tslib": "1.14.1" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "4.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "4.0.1", - "semver": "5.7.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "1.0.1" - } - }, - "markdown-escapes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", - "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==" - }, - "markdown-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", - "dev": true, - "requires": { - "repeat-string": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "3.1.0", - "inherits": "2.0.4", - "safe-buffer": "5.1.2" - } - }, - "mdast-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", - "requires": { - "unist-util-remove": "^2.0.0" - } - }, - "mdast-util-compact": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz", - "integrity": "sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==", - "dev": true, - "requires": { - "unist-util-visit": "^2.0.0" - } - }, - "mdast-util-definitions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-3.0.1.tgz", - "integrity": "sha512-BAv2iUm/e6IK/b2/t+Fx69EL/AGcq/IG2S+HxHjDJGfLJtd6i9SZUS76aC9cig+IEucsqxKTR0ot3m933R3iuA==", - "requires": { - "unist-util-visit": "^2.0.0" - } - }, - "mdast-util-to-hast": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-9.1.1.tgz", - "integrity": "sha512-vpMWKFKM2mnle+YbNgDXxx95vv0CoLU0v/l3F5oFAG5DV7qwkZVWA206LsAdOnEVyf5vQcLnb3cWJywu7mUxsQ==", - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.3", - "mdast-util-definitions": "^3.0.0", - "mdurl": "^1.0.0", - "unist-builder": "^2.0.0", - "unist-util-generated": "^1.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" - } - }, - "mdast-util-to-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==" - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.7" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "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==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "merge-deep": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", - "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", - "requires": { - "arr-union": "3.1.0", - "clone-deep": "0.2.4", - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "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==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "microevent.ts": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", - "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==" - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "requires": { - "braces": "3.0.2", - "picomatch": "2.2.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "4.11.9", - "brorand": "1.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" - }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "requires": { - "mime-db": "1.44.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "mini-create-react-context": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz", - "integrity": "sha512-b0TytUgFSbgFJGzJqXPKCFCBWigAjpjo+Fl7Vf7ZbKRDptszpppKxXH6DRXEABZ/gcEQczeb0iZ7JvL8e8jjCA==", - "requires": { - "@babel/runtime": "7.12.1", - "tiny-warning": "1.0.3" - } - }, - "mini-css-extract-plugin": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz", - "integrity": "sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw==", - "requires": { - "loader-utils": "1.4.0", - "normalize-url": "1.9.1", - "schema-utils": "1.0.0", - "webpack-sources": "1.4.3" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "1.2.5" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "6.12.6", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.5.2" - } - } - } - }, - "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==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "requires": { - "yallist": "4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "requires": { - "minipass": "3.1.3" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "requires": { - "minipass": "3.1.3" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "requires": { - "minipass": "3.1.3" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { - "minipass": "3.1.3", - "yallist": "4.0.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.7.1", - "end-of-stream": "1.4.4", - "flush-write-stream": "1.1.1", - "from2": "2.3.0", - "parallel-transform": "1.2.0", - "pump": "3.0.0", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.5" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", - "requires": { - "for-in": "0.1.8", - "is-extendable": "0.1.1" - }, - "dependencies": { - "for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=" - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "1.2.5" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.5", - "rimraf": "2.7.1", - "run-queue": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "7.1.6" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "requires": { - "dns-packet": "1.3.1", - "thunky": "1.1.0" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.3", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "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==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "no-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", - "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", - "requires": { - "lower-case": "2.0.1", - "tslib": "1.14.1" - } - }, - "node-emoji": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", - "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", - "requires": { - "lodash.toarray": "^4.4.0" - } - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "requires": { - "assert": "1.5.0", - "browserify-zlib": "0.2.0", - "buffer": "4.9.2", - "console-browserify": "1.2.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "3.2.0", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", - "path-browserify": "0.0.1", - "process": "0.11.10", - "punycode": "1.3.2", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.7", - "stream-browserify": "2.0.2", - "stream-http": "2.8.3", - "string_decoder": "1.3.0", - "timers-browserify": "2.0.11", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.11.1", - "vm-browserify": "1.1.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - }, - "dependencies": { - "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==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - } - } - }, - "node-releases": { - "version": "1.1.63", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.63.tgz", - "integrity": "sha512-ukW3iCfQaoxJkSPN+iK7KznTeqDGVJatAEuXsJERYHa9tn/KaT5lBdIyxQjLEVTzSkyjJEuQ17/vaEjrOauDkg==" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "2.0.1" - }, - "dependencies": { - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - } - } - }, - "nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" - }, - "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==", - "requires": { - "boolbase": "1.0.0" - } - }, - "null-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-3.0.0.tgz", - "integrity": "sha512-hf5sNLl8xdRho4UPBOOeoIwT3WhjYcMUQm0zj44EhD6UscMAz72o2udpoDFBgykucdEDGIcd6SXbc/G6zssbzw==", - "requires": { - "loader-utils": "1.4.0", - "schema-utils": "1.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "1.2.5" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "6.12.6", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.5.2" - } - } - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" - }, - "object-is": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.3.tgz", - "integrity": "sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==", - "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.18.0-next.1" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "3.0.1" - } - }, - "object.assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz", - "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==", - "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.18.0-next.1", - "has-symbols": "1.0.1", - "object-keys": "1.1.1" - } - }, - "object.entries": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", - "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "has": "^1.0.3" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, - "object.fromentries": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", - "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", - "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.7" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "requires": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.2.2", - "is-regex": "1.1.1", - "object-inspect": "1.8.0", - "object-keys": "1.1.1", - "object.assign": "4.1.1", - "string.prototype.trimend": "1.0.1", - "string.prototype.trimstart": "1.0.1" - } - } - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "3.0.1" - } - }, - "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", - "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.7", - "function-bind": "1.1.1", - "has": "1.0.3" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "requires": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.2.2", - "is-regex": "1.1.1", - "object-inspect": "1.8.0", - "object-keys": "1.1.1", - "object.assign": "4.1.1", - "string.prototype.trimend": "1.0.1", - "string.prototype.trimstart": "1.0.1" - } - } - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1.0.2" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "2.1.0" - } - }, - "open": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz", - "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==", - "requires": { - "is-docker": "2.1.1", - "is-wsl": "2.2.0" - } - }, - "opener": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", - "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==" - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "requires": { - "is-wsl": "1.1.0" - }, - "dependencies": { - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - } - } - }, - "optimize-css-assets-webpack-plugin": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz", - "integrity": "sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A==", - "requires": { - "cssnano": "4.1.10", - "last-call-webpack-plugin": "3.0.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "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.3" - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "requires": { - "url-parse": "1.4.7" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "2.2.0" - } - }, - "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==", - "requires": { - "p-limit": "2.3.0" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "requires": { - "aggregate-error": "3.1.0" - } - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "requires": { - "retry": "0.12.0" - } - }, - "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==" - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "requires": { - "got": "9.6.0", - "registry-auth-token": "4.2.0", - "registry-url": "5.1.0", - "semver": "6.3.0" - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "requires": { - "cyclist": "1.0.1", - "inherits": "2.0.4", - "readable-stream": "2.3.7" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "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==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "param-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz", - "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==", - "requires": { - "dot-case": "3.0.3", - "tslib": "1.14.1" - } - }, - "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==", - "requires": { - "callsites": "3.1.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "requires": { - "asn1.js": "5.4.1", - "browserify-aes": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.1.1", - "safe-buffer": "5.1.2" - } - }, - "parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, - "parse-json": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", - "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", - "requires": { - "@babel/code-frame": "7.10.4", - "error-ex": "1.3.2", - "json-parse-even-better-errors": "2.3.1", - "lines-and-columns": "1.1.6" - } - }, - "parse-numeric-range": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz", - "integrity": "sha1-tPCdQTx6282Yf26SM8e0shDJOOQ=" - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascal-case": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", - "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", - "requires": { - "no-case": "3.0.3", - "tslib": "1.14.1" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "2.0.4" - } - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "3.0.0" - } - }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "3.0.0" - } - }, - "pnp-webpack-plugin": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", - "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", - "requires": { - "ts-pnp": "1.2.0" - } - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "requires": { - "async": "2.6.3", - "debug": "3.2.6", - "mkdirp": "0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "2.1.2" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-attribute-case-insensitive": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", - "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", - "requires": { - "postcss": "7.0.35", - "postcss-selector-parser": "6.0.4" - } - }, - "postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", - "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", - "requires": { - "postcss": "7.0.35", - "postcss-selector-parser": "6.0.4", - "postcss-value-parser": "4.1.0" - } - }, - "postcss-color-functional-notation": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", - "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", - "requires": { - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "postcss-color-gray": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", - "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", - "requires": { - "@csstools/convert-colors": "1.4.0", - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "postcss-color-hex-alpha": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", - "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", - "requires": { - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "postcss-color-mod-function": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", - "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", - "requires": { - "@csstools/convert-colors": "1.4.0", - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "postcss-color-rebeccapurple": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", - "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", - "requires": { - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "requires": { - "browserslist": "4.14.5", - "color": "3.1.3", - "has": "1.0.3", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "requires": { - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-custom-media": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", - "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-custom-properties": { - "version": "8.0.11", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", - "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", - "requires": { - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "postcss-custom-selectors": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", - "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", - "requires": { - "postcss": "7.0.35", - "postcss-selector-parser": "5.0.0" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "requires": { - "cssesc": "2.0.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - } - } - }, - "postcss-dir-pseudo-class": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", - "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", - "requires": { - "postcss": "7.0.35", - "postcss-selector-parser": "5.0.0" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "requires": { - "cssesc": "2.0.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-double-position-gradients": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", - "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", - "requires": { - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "postcss-env-function": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", - "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", - "requires": { - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "postcss-focus-visible": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", - "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-focus-within": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", - "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-font-variant": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz", - "integrity": "sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-gap-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", - "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-image-set-function": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", - "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", - "requires": { - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "postcss-initial": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.2.tgz", - "integrity": "sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA==", - "requires": { - "lodash.template": "4.5.0", - "postcss": "7.0.35" - } - }, - "postcss-lab-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", - "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", - "requires": { - "@csstools/convert-colors": "1.4.0", - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", - "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", - "requires": { - "cosmiconfig": "5.2.1", - "import-cwd": "2.1.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "requires": { - "import-fresh": "2.0.0", - "is-directory": "0.3.1", - "js-yaml": "3.14.0", - "parse-json": "4.0.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "2.0.0", - "resolve-from": "3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } - } - }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", - "requires": { - "loader-utils": "1.4.0", - "postcss": "7.0.35", - "postcss-load-config": "2.1.2", - "schema-utils": "1.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "1.2.5" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "6.12.6", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.5.2" - } - } - } - }, - "postcss-logical": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", - "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-media-minmax": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", - "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "requires": { - "css-color-names": "0.0.4", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1", - "stylehacks": "4.0.3" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "requires": { - "browserslist": "4.14.5", - "caniuse-api": "3.0.0", - "cssnano-util-same-parent": "4.0.1", - "postcss": "7.0.35", - "postcss-selector-parser": "3.1.2", - "vendors": "1.0.4" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "5.3.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "requires": { - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "requires": { - "cssnano-util-get-arguments": "4.0.0", - "is-color-stop": "1.1.0", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "requires": { - "alphanum-sort": "1.0.2", - "browserslist": "4.14.5", - "cssnano-util-get-arguments": "4.0.0", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1", - "uniqs": "2.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.3", - "postcss": "7.0.35", - "postcss-selector-parser": "3.1.2" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "5.3.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-modules-local-by-default": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", - "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", - "requires": { - "icss-utils": "4.1.1", - "postcss": "7.0.35", - "postcss-selector-parser": "6.0.4", - "postcss-value-parser": "4.1.0" - } - }, - "postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", - "requires": { - "postcss": "7.0.35", - "postcss-selector-parser": "6.0.4" - } - }, - "postcss-modules-values": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", - "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", - "requires": { - "icss-utils": "4.1.1", - "postcss": "7.0.35" - } - }, - "postcss-nesting": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", - "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "requires": { - "cssnano-util-get-match": "4.0.0", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "requires": { - "cssnano-util-get-arguments": "4.0.0", - "has": "1.0.3", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "requires": { - "cssnano-util-get-arguments": "4.0.0", - "cssnano-util-get-match": "4.0.0", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "requires": { - "has": "1.0.3", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "requires": { - "cssnano-util-get-match": "4.0.0", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "requires": { - "browserslist": "4.14.5", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "3.3.0", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "requires": { - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "requires": { - "cssnano-util-get-arguments": "4.0.0", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-overflow-shorthand": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", - "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-page-break": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", - "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-place": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", - "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", - "requires": { - "postcss": "7.0.35", - "postcss-values-parser": "2.0.1" - } - }, - "postcss-preset-env": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", - "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", - "requires": { - "autoprefixer": "9.8.6", - "browserslist": "4.14.5", - "caniuse-lite": "1.0.30001148", - "css-blank-pseudo": "0.1.4", - "css-has-pseudo": "0.10.0", - "css-prefers-color-scheme": "3.1.1", - "cssdb": "4.4.0", - "postcss": "7.0.35", - "postcss-attribute-case-insensitive": "4.0.2", - "postcss-color-functional-notation": "2.0.1", - "postcss-color-gray": "5.0.0", - "postcss-color-hex-alpha": "5.0.3", - "postcss-color-mod-function": "3.0.3", - "postcss-color-rebeccapurple": "4.0.1", - "postcss-custom-media": "7.0.8", - "postcss-custom-properties": "8.0.11", - "postcss-custom-selectors": "5.1.2", - "postcss-dir-pseudo-class": "5.0.0", - "postcss-double-position-gradients": "1.0.0", - "postcss-env-function": "2.0.2", - "postcss-focus-visible": "4.0.0", - "postcss-focus-within": "3.0.0", - "postcss-font-variant": "4.0.0", - "postcss-gap-properties": "2.0.0", - "postcss-image-set-function": "3.0.1", - "postcss-initial": "3.0.2", - "postcss-lab-function": "2.0.1", - "postcss-logical": "3.0.0", - "postcss-media-minmax": "4.0.0", - "postcss-nesting": "7.0.1", - "postcss-overflow-shorthand": "2.0.0", - "postcss-page-break": "2.0.0", - "postcss-place": "4.0.1", - "postcss-pseudo-class-any-link": "6.0.0", - "postcss-replace-overflow-wrap": "3.0.0", - "postcss-selector-matches": "4.0.0", - "postcss-selector-not": "4.0.0" - } - }, - "postcss-pseudo-class-any-link": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", - "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", - "requires": { - "postcss": "7.0.35", - "postcss-selector-parser": "5.0.0" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "requires": { - "cssesc": "2.0.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - } - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "requires": { - "browserslist": "4.14.5", - "caniuse-api": "3.0.0", - "has": "1.0.3", - "postcss": "7.0.35" - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "requires": { - "cssnano-util-get-match": "4.0.0", - "has": "1.0.3", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-replace-overflow-wrap": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", - "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", - "requires": { - "postcss": "7.0.35" - } - }, - "postcss-selector-matches": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", - "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", - "requires": { - "balanced-match": "1.0.0", - "postcss": "7.0.35" - } - }, - "postcss-selector-not": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz", - "integrity": "sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ==", - "requires": { - "balanced-match": "1.0.0", - "postcss": "7.0.35" - } - }, - "postcss-selector-parser": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", - "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", - "requires": { - "cssesc": "3.0.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", - "requires": { - "is-svg": "3.0.0", - "postcss": "7.0.35", - "postcss-value-parser": "3.3.1", - "svgo": "1.3.2" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "7.0.35", - "uniqs": "2.0.0" - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" - }, - "postcss-values-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", - "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", - "requires": { - "flatten": "1.0.3", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "prettier": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", - "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", - "dev": true - }, - "pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", - "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", - "requires": { - "lodash": "4.17.20", - "renderkid": "2.0.4" - } - }, - "pretty-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", - "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==" - }, - "prism-react-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.1.1.tgz", - "integrity": "sha512-MgMhSdHuHymNRqD6KM3eGS0PNqgK9q4QF5P0yoQQvpB6jNjeSAi3jcSAz0Sua/t9fa4xDOMar9HJbLa08gl9ug==", - "requires": {} - }, - "prismjs": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.22.0.tgz", - "integrity": "sha512-lLJ/Wt9yy0AiSYBf212kK3mM5L8ycwlyTlSxHBAneXLR0nzFMlZ5y7riFPF3E33zXOF2IH95xdY5jIyZbM9z/w==", - "requires": { - "clipboard": "^2.0.0" - } - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "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==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "react-is": "16.13.1" - } - }, - "property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "requires": { - "xtend": "^4.0.0" - } - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "4.11.9", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.6", - "randombytes": "2.1.0", - "safe-buffer": "5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "1.4.4", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "3.7.1", - "inherits": "2.0.4", - "pump": "2.0.1" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "1.4.4", - "once": "1.4.0" - } - } - } - }, - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, - "pupa": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", - "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", - "requires": { - "escape-goat": "2.1.1" - } - }, - "pure-color": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz", - "integrity": "sha1-H+Bk+wrIUfDeYTIKi/eWg2Qi8z4=" - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "2.1.0", - "safe-buffer": "5.1.2" - } - }, - "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==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.5", - "strip-json-comments": "2.0.1" - } - }, - "react": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", - "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", - "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "prop-types": "15.7.2" - } - }, - "react-base16-styling": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz", - "integrity": "sha1-7yFW1mz0E5aVyKFniGy2nqZgeSw=", - "requires": { - "base16": "^1.0.0", - "lodash.curry": "^4.0.1", - "lodash.flow": "^3.3.0", - "pure-color": "^1.2.0" - } - }, - "react-copy-to-clipboard": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.2.tgz", - "integrity": "sha512-/2t5mLMMPuN5GmdXo6TebFa8IoFxZ+KTDDqYhcDm0PhkgEzSxVvIX26G20s1EB02A4h2UZgwtfymZ3lGJm0OLg==", - "requires": { - "copy-to-clipboard": "^3", - "prop-types": "^15.5.8" - } - }, - "react-dev-utils": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.2.1.tgz", - "integrity": "sha512-XxTbgJnYZmxuPtY3y/UV0D8/65NKkmaia4rXzViknVnZeVlklSh8u6TnaEYPfAi/Gh1TP4mEOXHI6jQOPbeakQ==", - "requires": { - "@babel/code-frame": "7.8.3", - "address": "1.1.2", - "browserslist": "4.10.0", - "chalk": "2.4.2", - "cross-spawn": "7.0.1", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "2.0.0", - "filesize": "6.0.1", - "find-up": "4.1.0", - "fork-ts-checker-webpack-plugin": "3.1.1", - "global-modules": "2.0.0", - "globby": "8.0.2", - "gzip-size": "5.1.1", - "immer": "1.10.0", - "inquirer": "7.0.4", - "is-root": "2.1.0", - "loader-utils": "1.2.3", - "open": "7.3.0", - "pkg-up": "3.1.0", - "react-error-overlay": "6.0.7", - "recursive-readdir": "2.2.2", - "shell-quote": "1.7.2", - "strip-ansi": "6.0.0", - "text-table": "0.2.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "requires": { - "@babel/highlight": "7.10.4" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "1.0.3" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "browserslist": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz", - "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==", - "requires": { - "caniuse-lite": "1.0.30001148", - "electron-to-chromium": "1.3.582", - "node-releases": "1.1.63", - "pkg-up": "3.1.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - } - } - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "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==", - "requires": { - "address": "1.1.2", - "debug": "2.6.9" - } - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "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==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.3", - "glob-parent": "3.1.0", - "is-glob": "4.0.1", - "merge2": "1.4.1", - "micromatch": "3.1.10" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "5.0.0", - "path-exists": "4.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "fast-glob": "2.2.7", - "glob": "7.1.6", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" - } - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, - "inquirer": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", - "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", - "requires": { - "ansi-escapes": "4.3.1", - "chalk": "2.4.2", - "cli-cursor": "3.1.0", - "cli-width": "2.2.1", - "external-editor": "3.1.0", - "figures": "3.2.0", - "lodash": "4.17.20", - "mute-stream": "0.0.8", - "run-async": "2.4.1", - "rxjs": "6.6.3", - "string-width": "4.2.0", - "strip-ansi": "5.2.0", - "through": "2.3.8" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "4.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "1.2.5" - } - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "requires": { - "big.js": "5.2.2", - "emojis-list": "2.1.0", - "json5": "1.0.1" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "4.1.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.3", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "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==", - "requires": { - "p-limit": "2.3.0" - } - }, - "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==" - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - } - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - } - } - }, - "react-dom": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", - "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", - "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "prop-types": "15.7.2", - "scheduler": "0.19.1" - } - }, - "react-error-overlay": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz", - "integrity": "sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA==" - }, - "react-fast-compare": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" - }, - "react-helmet": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", - "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", - "requires": { - "object-assign": "4.1.1", - "prop-types": "15.7.2", - "react-fast-compare": "3.2.0", - "react-side-effect": "2.1.0" - } - }, - "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==" - }, - "react-json-view": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.19.1.tgz", - "integrity": "sha512-u5e0XDLIs9Rj43vWkKvwL8G3JzvXSl6etuS5G42a8klMohZuYFQzSN6ri+/GiBptDqlrXPTdExJVU7x9rrlXhg==", - "requires": { - "flux": "^3.1.3", - "react-base16-styling": "^0.6.0", - "react-lifecycles-compat": "^3.0.4", - "react-textarea-autosize": "^6.1.0" - } - }, - "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "react-loadable": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/react-loadable/-/react-loadable-5.5.0.tgz", - "integrity": "sha512-C8Aui0ZpMd4KokxRdVAm2bQtI03k2RMRNzOB+IipV3yxFTSVICv7WoUr5L9ALB5BmKO1iHgZtWM8EvYG83otdg==", - "requires": { - "prop-types": "15.7.2" - } - }, - "react-loadable-ssr-addon": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon/-/react-loadable-ssr-addon-0.3.0.tgz", - "integrity": "sha512-E+lnmDakV0k6ut6R2J77vurwCOwTKEwKlHs9S62G8ez+ujecLPcqjt3YAU8M58kIGjp2QjFlZ7F9QWkq/mr6Iw==", - "requires": { - "@babel/runtime": "7.12.1" - } - }, - "react-router": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", - "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", - "requires": { - "@babel/runtime": "7.12.1", - "history": "4.10.1", - "hoist-non-react-statics": "3.3.2", - "loose-envify": "1.4.0", - "mini-create-react-context": "0.4.0", - "path-to-regexp": "1.8.0", - "prop-types": "15.7.2", - "react-is": "16.13.1", - "tiny-invariant": "1.1.0", - "tiny-warning": "1.0.3" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "requires": { - "isarray": "0.0.1" - } - } - } - }, - "react-router-config": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", - "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", - "requires": { - "@babel/runtime": "7.12.1" - } - }, - "react-router-dom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz", - "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", - "requires": { - "@babel/runtime": "7.12.1", - "history": "4.10.1", - "loose-envify": "1.4.0", - "prop-types": "15.7.2", - "react-router": "5.2.0", - "tiny-invariant": "1.1.0", - "tiny-warning": "1.0.3" - } - }, - "react-side-effect": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.0.tgz", - "integrity": "sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg==" - }, - "react-textarea-autosize": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-6.1.0.tgz", - "integrity": "sha512-F6bI1dgib6fSvG8so1HuArPUv+iVEfPliuLWusLF+gAKz0FbB4jLrWUrTAeq1afnPT2c9toEZYUdz/y1uKMy4A==", - "requires": { - "prop-types": "^15.6.0" - } - }, - "react-toastify": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-6.0.9.tgz", - "integrity": "sha512-StHXv+4kezHUnPyoILlvygSptQ79bxVuvKcC05yXP0FlqQgPA1ue+80BqxZZiCw2jWDGiY2MHyqBfFKf5YzZbA==", - "requires": { - "classnames": "^2.2.6", - "prop-types": "^15.7.2", - "react-transition-group": "^4.4.1" - } - }, - "react-toggle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/react-toggle/-/react-toggle-4.1.1.tgz", - "integrity": "sha512-+wXlMcSpg8SmnIXauMaZiKpR+r2wp2gMUteroejp2UTSqGTVvZLN+m9EhMzFARBKEw7KpQOwzCyfzeHeAndQGw==", - "requires": { - "classnames": "^2.2.5" - } - }, - "react-transition-group": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", - "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "2.0.4", - "string_decoder": "1.3.0", - "util-deprecate": "1.0.2" - } - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "requires": { - "picomatch": "2.2.2" - } - }, - "reading-time": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.2.0.tgz", - "integrity": "sha512-5b4XmKK4MEss63y0Lw0vn0Zn6G5kiHP88mUnD8UeEsyORj3sh1ghTH0/u6m1Ax9G2F4wUZrknlp6WlIsCvoXVA==" - }, - "rebass": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/rebass/-/rebass-4.0.7.tgz", - "integrity": "sha512-GJot6j6Qcr7jk1QIgf9qBoud75CGRpN8pGcEo98TSp4KNSWV01ZLvGwFKGI35oEBuNs+lpEd3+pnwkQUTSFytg==", - "dev": true, - "optional": true, - "requires": { - "reflexbox": "^4.0.6" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "1.17.0" - } - }, - "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "requires": { - "minimatch": "3.0.4" - } - }, - "reflexbox": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/reflexbox/-/reflexbox-4.0.6.tgz", - "integrity": "sha512-UNUL4YoJEXAPjRKHuty1tuOk+LV1nDJ2KYViDcH7lYm5yU3AQ+EKNXxPU3E14bQNK/pE09b1hYl+ZKdA94tWLQ==", - "dev": true, - "optional": true, - "requires": { - "@emotion/core": "^10.0.0", - "@emotion/styled": "^10.0.0", - "@styled-system/css": "^5.0.0", - "@styled-system/should-forward-prop": "^5.0.0", - "styled-system": "^5.0.0" - } - }, - "regenerate": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", - "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==" - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "requires": { - "regenerate": "1.4.1" - } - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "requires": { - "@babel/runtime": "7.12.1" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.7" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "requires": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.2.2", - "is-regex": "1.1.1", - "object-inspect": "1.8.0", - "object-keys": "1.1.1", - "object.assign": "4.1.1", - "string.prototype.trimend": "1.0.1", - "string.prototype.trimstart": "1.0.1" - } - } - } - }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true - }, - "regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", - "requires": { - "regenerate": "1.4.1", - "regenerate-unicode-properties": "8.2.0", - "regjsgen": "0.5.2", - "regjsparser": "0.6.4", - "unicode-match-property-ecmascript": "1.0.4", - "unicode-match-property-value-ecmascript": "1.2.0" - } - }, - "registry-auth-token": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz", - "integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==", - "requires": { - "rc": "1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "requires": { - "rc": "1.2.8" - } - }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" - }, - "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", - "requires": { - "jsesc": "0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } - } - }, - "rehype-parse": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-6.0.2.tgz", - "integrity": "sha512-0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug==", - "requires": { - "hast-util-from-parse5": "^5.0.0", - "parse5": "^5.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "hast-util-from-parse5": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz", - "integrity": "sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==", - "requires": { - "ccount": "^1.0.3", - "hastscript": "^5.0.0", - "property-information": "^5.0.0", - "web-namespaces": "^1.1.2", - "xtend": "^4.0.1" - } - }, - "parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" - }, - "remark-admonitions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/remark-admonitions/-/remark-admonitions-1.2.1.tgz", - "integrity": "sha512-Ji6p68VDvD+H1oS95Fdx9Ar5WA2wcDA4kwrrhVU7fGctC6+d3uiMICu7w7/2Xld+lnU7/gi+432+rRbup5S8ow==", - "requires": { - "rehype-parse": "^6.0.2", - "unified": "^8.4.2", - "unist-util-visit": "^2.0.1" - }, - "dependencies": { - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" - }, - "unified": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz", - "integrity": "sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==", - "requires": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - } - } - } - }, - "remark-emoji": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-2.1.0.tgz", - "integrity": "sha512-lDddGsxXURV01WS9WAiS9rO/cedO1pvr9tahtLhr6qCGFhHG4yZSJW3Ha4Nw9Uk1hLNmUBtPC0+m45Ms+xEitg==", - "requires": { - "emoticon": "^3.2.0", - "node-emoji": "^1.10.0", - "unist-util-visit": "^2.0.2" - } - }, - "remark-footnotes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", - "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==" - }, - "remark-mdx": { - "version": "1.6.19", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.19.tgz", - "integrity": "sha512-UKK1CFatVPNhgjsIlNQ3GjVl3+6O7x7Hag6oyntFTg8s7sgq+rhWaSfM/6lW5UWU6hzkj520KYBuBlsaSriGtA==", - "requires": { - "@babel/core": "7.11.6", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-proposal-object-rest-spread": "7.11.0", - "@babel/plugin-syntax-jsx": "7.10.4", - "@mdx-js/util": "1.6.19", - "is-alphabetical": "1.0.4", - "remark-parse": "8.0.3", - "unified": "9.2.0" - }, - "dependencies": { - "@babel/core": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz", - "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.6", - "@babel/helper-module-transforms": "^7.11.0", - "@babel/helpers": "^7.10.4", - "@babel/parser": "^7.11.5", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.11.5", - "@babel/types": "^7.11.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz", - "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.10.4" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", - "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "remark-parse": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", - "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", - "requires": { - "ccount": "^1.0.0", - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^2.0.0", - "vfile-location": "^3.0.0", - "xtend": "^4.0.1" - } - }, - "remark-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", - "requires": { - "mdast-squeeze-paragraphs": "^4.0.0" - } - }, - "remark-stringify": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz", - "integrity": "sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==", - "dev": true, - "requires": { - "ccount": "^1.0.0", - "is-alphanumeric": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "longest-streak": "^2.0.1", - "markdown-escapes": "^1.0.0", - "markdown-table": "^2.0.0", - "mdast-util-compact": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "stringify-entities": "^3.0.0", - "unherit": "^1.0.4", - "xtend": "^4.0.1" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "renderkid": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.4.tgz", - "integrity": "sha512-K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g==", - "requires": { - "css-select": "1.2.0", - "dom-converter": "0.2.0", - "htmlparser2": "3.10.1", - "lodash": "4.17.20", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - } - } - } - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-like": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", - "integrity": "sha1-rW8wwTvs15cBDEaK+ndcDAprR/o=" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "requires": { - "path-parse": "1.0.6" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "requires": { - "resolve-from": "3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } - } - }, - "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==" - }, - "resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "requires": { - "lowercase-keys": "1.0.1" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "requires": { - "onetime": "5.1.2", - "signal-exit": "3.0.3" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "7.1.6" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "3.1.0", - "inherits": "2.0.4" - } - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" - }, - "run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "1.2.0" - } - }, - "rx": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=" - }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "requires": { - "tslib": "1.14.1" - } - }, - "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==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "0.1.15" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "requires": { - "@types/json-schema": "7.0.6", - "ajv": "6.12.6", - "ajv-keywords": "3.5.2" - } - }, - "section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "requires": { - "extend-shallow": "2.0.1", - "kind-of": "6.0.3" - } - }, - "select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", - "optional": true - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", - "requires": { - "node-forge": "0.10.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "requires": { - "semver": "6.3.0" - } - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "requires": { - "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "fresh": "0.5.2", - "http-errors": "1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "2.3.0", - "range-parser": "1.2.1", - "statuses": "1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "requires": { - "randombytes": "2.1.0" - } - }, - "serve-handler": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz", - "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==", - "requires": { - "bytes": "3.0.0", - "content-disposition": "0.5.2", - "fast-url-parser": "1.1.3", - "mime-types": "2.1.18", - "minimatch": "3.0.4", - "path-is-inside": "1.0.2", - "path-to-regexp": "2.2.1", - "range-parser": "1.2.0" - }, - "dependencies": { - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" - }, - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "requires": { - "mime-db": "1.33.0" - } - }, - "path-to-regexp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", - "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" - } - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "requires": { - "accepts": "1.3.7", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.3", - "mime-types": "2.1.27", - "parseurl": "1.3.3" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": "1.5.0" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "2.0.4", - "safe-buffer": "5.1.2" - } - }, - "shallow-clone": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", - "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", - "requires": { - "is-extendable": "0.1.1", - "kind-of": "2.0.1", - "lazy-cache": "0.2.7", - "mixin-object": "2.0.1" - }, - "dependencies": { - "kind-of": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", - "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", - "requires": { - "is-buffer": "1.1.6" - } - }, - "lazy-cache": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", - "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=" - } - } - }, - "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==", - "requires": { - "shebang-regex": "3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" - }, - "shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "requires": { - "glob": "7.1.6", - "interpret": "1.4.0", - "rechoir": "0.6.2" - } - }, - "side-channel": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz", - "integrity": "sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g==", - "dev": true, - "requires": { - "es-abstract": "^1.18.0-next.0", - "object-inspect": "^1.8.0" - } - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "requires": { - "is-arrayish": "0.3.2" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - } - } - }, - "sitemap": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz", - "integrity": "sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg==", - "requires": { - "lodash.chunk": "^4.2.0", - "lodash.padstart": "^4.6.1", - "whatwg-url": "^7.0.0", - "xmlbuilder": "^13.0.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.3", - "use": "3.1.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "6.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "6.0.3" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "sockjs": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", - "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", - "requires": { - "faye-websocket": "0.10.0", - "uuid": "3.4.0", - "websocket-driver": "0.6.5" - } - }, - "sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", - "requires": { - "debug": "3.2.6", - "eventsource": "1.0.7", - "faye-websocket": "0.11.3", - "inherits": "2.0.4", - "json3": "3.3.3", - "url-parse": "1.4.7" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "2.1.2" - } - }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "requires": { - "websocket-driver": "0.6.5" - } - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "requires": { - "is-plain-obj": "1.1.0" - } - }, - "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==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "requires": { - "buffer-from": "1.1.1", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "requires": { - "debug": "4.2.0", - "handle-thing": "2.0.1", - "http-deceiver": "1.2.7", - "select-hose": "2.0.0", - "spdy-transport": "3.0.0" - } - }, - "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==", - "requires": { - "debug": "4.2.0", - "detect-node": "2.0.4", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "3.6.0", - "wbuf": "1.7.3" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "ssri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", - "requires": { - "minipass": "3.1.3" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "state-toggle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", - "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "std-env": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-2.2.1.tgz", - "integrity": "sha512-IjYQUinA3lg5re/YMlwlfhqNRTzMZMqE+pezevdcTaHceqx8ngEi1alX9nNCk9Sc81fy1fLDeQoaCzeiW1yBOQ==", - "requires": { - "ci-info": "1.6.0" - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "requires": { - "inherits": "2.0.4", - "readable-stream": "2.3.7" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "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==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "requires": { - "end-of-stream": "1.4.4", - "stream-shift": "1.0.1" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.4", - "readable-stream": "2.3.7", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "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==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - }, - "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==", - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "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==" - } - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "8.0.0", - "is-fullwidth-code-point": "3.0.0", - "strip-ansi": "6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "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==" - }, - "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==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "5.0.0" - } - } - } - }, - "string.prototype.matchall": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz", - "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "has-symbols": "^1.0.1", - "internal-slot": "^1.0.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.2" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.7" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "requires": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.2.2", - "is-regex": "1.1.1", - "object-inspect": "1.8.0", - "object-keys": "1.1.1", - "object.assign": "4.1.1", - "string.prototype.trimend": "1.0.1", - "string.prototype.trimstart": "1.0.1" - } - } - } - }, - "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.7" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "requires": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.2.2", - "is-regex": "1.1.1", - "object-inspect": "1.8.0", - "object-keys": "1.1.1", - "object.assign": "4.1.1", - "string.prototype.trimend": "1.0.1", - "string.prototype.trimstart": "1.0.1" - } - } - } - }, - "stringify-entities": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz", - "integrity": "sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==", - "dev": true, - "requires": { - "character-entities-html4": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "dependencies": { - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "4.1.0" - } - }, - "strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=" - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "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==" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "style-to-object": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", - "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", - "requires": { - "inline-style-parser": "0.1.1" - } - }, - "styled-system": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/styled-system/-/styled-system-5.1.5.tgz", - "integrity": "sha512-7VoD0o2R3RKzOzPK0jYrVnS8iJdfkKsQJNiLRDjikOpQVqQHns/DXWaPZOH4tIKkhAT7I6wIsy9FWTWh2X3q+A==", - "dev": true, - "optional": true, - "requires": { - "@styled-system/background": "^5.1.2", - "@styled-system/border": "^5.1.5", - "@styled-system/color": "^5.1.2", - "@styled-system/core": "^5.1.2", - "@styled-system/flexbox": "^5.1.2", - "@styled-system/grid": "^5.1.2", - "@styled-system/layout": "^5.1.2", - "@styled-system/position": "^5.1.2", - "@styled-system/shadow": "^5.1.2", - "@styled-system/space": "^5.1.2", - "@styled-system/typography": "^5.1.2", - "@styled-system/variant": "^5.1.5", - "object-assign": "^4.1.1" - } - }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "requires": { - "browserslist": "4.14.5", - "postcss": "7.0.35", - "postcss-selector-parser": "3.1.2" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "5.3.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "3.0.0" - } - }, - "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==" - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "requires": { - "chalk": "2.4.2", - "coa": "2.0.2", - "css-select": "2.1.0", - "css-select-base-adapter": "0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "4.0.3", - "js-yaml": "3.14.0", - "mkdirp": "0.5.5", - "object.values": "1.1.1", - "sax": "1.2.4", - "stable": "0.1.8", - "unquote": "1.1.1", - "util.promisify": "1.0.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "requires": { - "boolbase": "1.0.0", - "css-what": "3.4.2", - "domutils": "1.7.0", - "nth-check": "1.0.2" - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "requires": { - "dom-serializer": "0.1.1", - "domelementtype": "1.3.1" - } - } - } - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - }, - "tar": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", - "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", - "requires": { - "chownr": "2.0.0", - "fs-minipass": "2.1.0", - "minipass": "3.1.3", - "minizlib": "2.1.2", - "mkdirp": "1.0.4", - "yallist": "4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - } - } - }, - "term-size": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", - "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==" - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "requires": { - "commander": "2.20.3", - "source-map": "0.6.1", - "source-map-support": "0.5.19" - }, - "dependencies": { - "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==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "terser-webpack-plugin": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", - "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", - "requires": { - "cacache": "15.0.5", - "find-cache-dir": "3.3.1", - "jest-worker": "26.5.0", - "p-limit": "3.0.2", - "schema-utils": "3.0.0", - "serialize-javascript": "5.0.1", - "source-map": "0.6.1", - "terser": "5.3.6", - "webpack-sources": "1.4.3" - }, - "dependencies": { - "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==" - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "requires": { - "commondir": "1.0.1", - "make-dir": "3.1.0", - "pkg-dir": "4.2.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "5.0.0", - "path-exists": "4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "4.1.0" - } - }, - "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==", - "requires": { - "semver": "6.3.0" - } - }, - "p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", - "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", - "requires": { - "p-try": "2.2.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "2.3.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "2.2.0" - } - } - } - }, - "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==" - }, - "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==", - "requires": { - "find-up": "4.1.0" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "requires": { - "@types/json-schema": "7.0.6", - "ajv": "6.12.6", - "ajv-keywords": "3.5.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "terser": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.6.tgz", - "integrity": "sha512-145ap5v1HYx69HfLuwWaxTIlXyiSr+nSTb7ZWlJCgJn2JptuJRKziNa/zwFx9B1IU99Q055jHni74nLuuEC78w==", - "requires": { - "commander": "2.20.3", - "source-map": "0.7.3", - "source-map-support": "0.5.19" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "2.3.7", - "xtend": "4.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "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==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "requires": { - "setimmediate": "1.0.5" - } - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" - }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", - "optional": true - }, - "tiny-invariant": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", - "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" - }, - "tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "requires": { - "os-tmpdir": "1.0.2" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "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==", - "requires": { - "is-number": "7.0.0" - } - }, - "toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "requires": { - "punycode": "^2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - } - } - }, - "trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" - }, - "trim-trailing-lines": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz", - "integrity": "sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA==" - }, - "trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" - }, - "tryer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" - }, - "ts-pnp": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", - "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==" - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "2.1.27" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "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==", - "requires": { - "is-typedarray": "1.0.0" - } - }, - "ua-parser-js": { - "version": "0.7.22", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", - "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==" - }, - "unherit": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", - "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", - "requires": { - "inherits": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "requires": { - "unicode-canonical-property-names-ecmascript": "1.0.4", - "unicode-property-aliases-ecmascript": "1.1.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" - }, - "unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", - "requires": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" - } - } - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "2.0.1" - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "requires": { - "unique-slug": "2.0.2" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "requires": { - "imurmurhash": "0.1.4" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "requires": { - "crypto-random-string": "2.0.0" - } - }, - "unist-builder": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", - "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==" - }, - "unist-util-generated": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.5.tgz", - "integrity": "sha512-1TC+NxQa4N9pNdayCYA1EGUOCAO0Le3fVp7Jzns6lnua/mYgwHo0tz5WUAfrdpNch1RZLHc61VZ1SDgrtNXLSw==" - }, - "unist-util-is": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", - "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==" - }, - "unist-util-position": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", - "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==" - }, - "unist-util-remove": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.0.0.tgz", - "integrity": "sha512-HwwWyNHKkeg/eXRnE11IpzY8JT55JNM1YCwwU9YNCnfzk6s8GhPXrVBBZWiwLeATJbI7euvoGSzcy9M29UeW3g==", - "requires": { - "unist-util-is": "^4.0.0" - } - }, - "unist-util-remove-position": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", - "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", - "requires": { - "unist-util-visit": "^2.0.0" - } - }, - "unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "requires": { - "@types/unist": "^2.0.2" - } - }, - "unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - } - }, - "unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", - "requires": { - "boxen": "4.2.0", - "chalk": "3.0.0", - "configstore": "5.0.1", - "has-yarn": "2.1.0", - "import-lazy": "2.1.0", - "is-ci": "2.0.0", - "is-installed-globally": "0.3.2", - "is-npm": "4.0.0", - "is-yarn-global": "0.3.0", - "latest-version": "5.1.0", - "pupa": "2.0.1", - "semver-diff": "3.1.1", - "xdg-basedir": "4.0.0" - } - }, - "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", - "requires": { - "punycode": "2.1.1" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - } - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", - "requires": { - "loader-utils": "2.0.0", - "mime-types": "2.1.27", - "schema-utils": "3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "requires": { - "@types/json-schema": "7.0.6", - "ajv": "6.12.6", - "ajv-keywords": "3.5.2" - } - } - } - }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", - "requires": { - "querystringify": "2.2.0", - "requires-port": "1.0.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { - "prepend-http": "2.0.0" - }, - "dependencies": { - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - } - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.7", - "has-symbols": "1.0.1", - "object.getownpropertydescriptors": "2.1.0" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "requires": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.2.2", - "is-regex": "1.1.1", - "object-inspect": "1.8.0", - "object-keys": "1.1.1", - "object.assign": "4.1.1", - "string.prototype.trimend": "1.0.1", - "string.prototype.trimstart": "1.0.1" - } - } - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, - "utility-types": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", - "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", - "dev": true - }, - "value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" - }, - "vfile": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.0.tgz", - "integrity": "sha512-a/alcwCvtuc8OX92rqqo7PflxiCgXRFjdyoGVuYV+qbgCb0GgZJRvIgCD4+U/Kl1yhaRsaTwksF88xbPyGsgpw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "replace-ext": "1.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" - } - } - }, - "vfile-location": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.1.0.tgz", - "integrity": "sha512-FCZ4AN9xMcjFIG1oGmZKo61PjwJHRVA+0/tPUP2ul4uIwjGGndIxavEMRpWn5p4xwm/ZsdXp9YNygf1ZyE4x8g==" - }, - "vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" - }, - "wait-file": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/wait-file/-/wait-file-1.0.5.tgz", - "integrity": "sha512-udLpJY/eOxlrMm3+XD1RLuF2oT9B7J7wiyR5/9xrvQymS6YR6trWvVhzOldHrVbLwyiRmLj9fcvsjzpSXeZHkw==", - "requires": { - "@hapi/joi": "15.1.1", - "fs-extra": "8.1.0", - "rx": "4.1.0" - }, - "dependencies": { - "@hapi/address": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", - "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" - }, - "@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", - "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" - }, - "@hapi/joi": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", - "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", - "requires": { - "@hapi/address": "2.1.4", - "@hapi/bourne": "1.3.2", - "@hapi/hoek": "8.5.1", - "@hapi/topo": "3.1.6" - } - }, - "@hapi/topo": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", - "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", - "requires": { - "@hapi/hoek": "8.5.1" - } - } - } - }, - "watchpack": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", - "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", - "requires": { - "chokidar": "3.4.3", - "graceful-fs": "4.2.4", - "neo-async": "2.6.2", - "watchpack-chokidar2": "2.0.0" - } - }, - "watchpack-chokidar2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", - "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", - "optional": true, - "requires": { - "chokidar": "2.1.8" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "optional": true, - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "optional": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "optional": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "optional": true, - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.3", - "braces": "2.3.2", - "fsevents": "1.2.13", - "glob-parent": "3.1.0", - "inherits": "2.0.4", - "is-binary-path": "1.0.1", - "is-glob": "4.0.1", - "normalize-path": "3.0.0", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.2.0" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "optional": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "optional": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "optional": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, - "requires": { - "bindings": "1.5.0", - "nan": "2.14.2" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "optional": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "optional": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "optional": true, - "requires": { - "binary-extensions": "1.13.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "optional": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "optional": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.3", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "optional": true, - "requires": { - "graceful-fs": "4.2.4", - "micromatch": "3.1.10", - "readable-stream": "2.3.7" - } - }, - "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==", - "optional": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "optional": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - } - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "requires": { - "minimalistic-assert": "1.0.1" - } - }, - "web-namespaces": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", - "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" - }, - "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==" - }, - "webpack": { - "version": "4.44.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", - "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "6.4.2", - "ajv": "6.12.6", - "ajv-keywords": "3.5.2", - "chrome-trace-event": "1.0.2", - "enhanced-resolve": "4.3.0", - "eslint-scope": "4.0.3", - "json-parse-better-errors": "1.0.2", - "loader-runner": "2.4.0", - "loader-utils": "1.4.0", - "memory-fs": "0.4.1", - "micromatch": "3.1.10", - "mkdirp": "0.5.5", - "neo-async": "2.6.2", - "node-libs-browser": "2.2.1", - "schema-utils": "1.0.0", - "tapable": "1.1.3", - "terser-webpack-plugin": "1.4.5", - "watchpack": "1.7.4", - "webpack-sources": "1.4.3" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "requires": { - "bluebird": "3.7.2", - "chownr": "1.1.4", - "figgy-pudding": "3.5.2", - "glob": "7.1.6", - "graceful-fs": "4.2.4", - "infer-owner": "1.0.4", - "lru-cache": "5.1.1", - "mississippi": "3.0.0", - "mkdirp": "0.5.5", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.7.1", - "ssri": "6.0.1", - "unique-filename": "1.1.1", - "y18n": "4.0.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "1.2.5" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" - } - }, - "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==", - "requires": { - "yallist": "3.1.1" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.3", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "7.1.6" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "6.12.6", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.5.2" - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "requires": { - "randombytes": "2.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "requires": { - "figgy-pudding": "3.5.2" - } - }, - "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "requires": { - "cacache": "12.0.4", - "find-cache-dir": "2.1.0", - "is-wsl": "1.1.0", - "schema-utils": "1.0.0", - "serialize-javascript": "4.0.0", - "source-map": "0.6.1", - "terser": "4.8.0", - "webpack-sources": "1.4.3", - "worker-farm": "1.7.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } - }, - "webpack-bundle-analyzer": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz", - "integrity": "sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA==", - "requires": { - "acorn": "7.4.0", - "acorn-walk": "7.2.0", - "bfj": "6.1.2", - "chalk": "2.4.2", - "commander": "2.20.3", - "ejs": "2.7.4", - "express": "4.17.1", - "filesize": "3.6.1", - "gzip-size": "5.1.1", - "lodash": "4.17.20", - "mkdirp": "0.5.5", - "opener": "1.5.1", - "ws": "6.2.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "filesize": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", - "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==" - } - } - }, - "webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", - "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", - "requires": { - "memory-fs": "0.4.1", - "mime": "2.4.6", - "mkdirp": "0.5.5", - "range-parser": "1.2.1", - "webpack-log": "2.0.0" - }, - "dependencies": { - "mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==" - } - } - }, - "webpack-dev-server": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", - "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", - "requires": { - "ansi-html": "0.0.7", - "bonjour": "3.5.0", - "chokidar": "2.1.8", - "compression": "1.7.4", - "connect-history-api-fallback": "1.6.0", - "debug": "4.2.0", - "del": "4.1.1", - "express": "4.17.1", - "html-entities": "1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "2.0.0", - "internal-ip": "4.3.0", - "ip": "1.1.5", - "is-absolute-url": "3.0.3", - "killable": "1.0.1", - "loglevel": "1.7.0", - "opn": "5.5.0", - "p-retry": "3.0.1", - "portfinder": "1.0.28", - "schema-utils": "1.0.0", - "selfsigned": "1.10.8", - "semver": "6.3.0", - "serve-index": "1.9.1", - "sockjs": "0.3.20", - "sockjs-client": "1.4.0", - "spdy": "4.0.2", - "strip-ansi": "3.0.1", - "supports-color": "6.1.0", - "url": "0.11.0", - "webpack-dev-middleware": "3.7.2", - "webpack-log": "2.0.0", - "ws": "6.2.1", - "yargs": "13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "1.1.0" - } - } - } - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "1.0.3" - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.3", - "braces": "2.3.2", - "fsevents": "1.2.13", - "glob-parent": "3.1.0", - "inherits": "2.0.4", - "is-binary-path": "1.0.1", - "is-glob": "4.0.1", - "normalize-path": "3.0.0", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.2.0" - } - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "requires": { - "@types/glob": "7.1.3", - "globby": "6.1.0", - "is-path-cwd": "2.2.0", - "is-path-in-cwd": "2.1.0", - "p-map": "2.1.0", - "pify": "4.0.1", - "rimraf": "2.7.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, - "requires": { - "bindings": "1.5.0", - "nan": "2.14.2" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "requires": { - "array-union": "1.0.2", - "glob": "7.1.6", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "1.13.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.3", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "requires": { - "graceful-fs": "4.2.4", - "micromatch": "3.1.10", - "readable-stream": "2.3.7" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "7.1.6" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "6.12.6", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.5.2" - } - }, - "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==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "3.0.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "requires": { - "ansi-colors": "3.2.4", - "uuid": "3.4.0" - } - }, - "webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "requires": { - "lodash": "4.17.20" - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "2.0.1", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "webpackbar": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-4.0.0.tgz", - "integrity": "sha512-k1qRoSL/3BVuINzngj09nIwreD8wxV4grcuhHTD8VJgUbGcy8lQSPqv+bM00B7F+PffwIsQ8ISd4mIwRbr23eQ==", - "requires": { - "ansi-escapes": "4.3.1", - "chalk": "2.4.2", - "consola": "2.15.0", - "figures": "3.2.0", - "pretty-time": "1.1.0", - "std-env": "2.2.1", - "text-table": "0.2.0", - "wrap-ansi": "6.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "5.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "4.3.0", - "string-width": "4.2.0", - "strip-ansi": "6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "2.0.1" - } - } - } - } - } - }, - "websocket-driver": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", - "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "requires": { - "websocket-extensions": "0.1.4" - } - }, - "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==" - }, - "whatwg-fetch": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.1.tgz", - "integrity": "sha512-sofZVzE1wKwO+EYPbWfiwzaKovWiZXf4coEzjGP9b2GBVgQRLQUZ2QcuPpQExGDAW5GItpEm6Tl4OU5mywnAoQ==" - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "4.2.0" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "requires": { - "errno": "0.1.7" - } - }, - "worker-rpc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", - "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", - "requires": { - "microevent.ts": "0.1.1" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "requires": { - "ansi-styles": "3.2.1", - "string-width": "3.1.0", - "strip-ansi": "5.2.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "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==", - "requires": { - "imurmurhash": "0.1.4", - "is-typedarray": "1.0.0", - "signal-exit": "3.0.3", - "typedarray-to-buffer": "3.1.5" - } - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "requires": { - "async-limiter": "1.0.1" - } - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" - }, - "xml-js": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", - "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", - "requires": { - "sax": "^1.2.4" - } - }, - "xmlbuilder": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz", - "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yaml": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==" - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "requires": { - "cliui": "5.0.0", - "find-up": "3.0.0", - "get-caller-file": "2.0.5", - "require-directory": "2.1.1", - "require-main-filename": "2.0.0", - "set-blocking": "2.0.0", - "string-width": "3.1.0", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "13.1.2" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" - } - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "requires": { - "camelcase": "5.3.1", - "decamelize": "1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, - "zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==" - } - } -} diff --git a/zmk/docs/package.json b/zmk/docs/package.json deleted file mode 100644 index 00dc6275..00000000 --- a/zmk/docs/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "docs", - "version": "0.0.0", - "private": true, - "scripts": { - "start": "docusaurus start", - "build": "docusaurus build", - "serve": "docusaurus serve", - "swizzle": "docusaurus swizzle", - "deploy": "docusaurus deploy", - "clear": "docusaurus clear", - "lint": "eslint . --ext js,jsx,md,mdx", - "prettier:check": "prettier --check .", - "prettier:format": "prettier --write ." - }, - "dependencies": { - "@docusaurus/core": "^2.0.0-alpha.66", - "@docusaurus/preset-classic": "^2.0.0-alpha.66", - "@fortawesome/fontawesome-svg-core": "^1.2.32", - "@fortawesome/free-solid-svg-icons": "^5.15.1", - "@fortawesome/react-fontawesome": "^0.1.12", - "classnames": "^2.2.6", - "react": "^16.8.4", - "react-copy-to-clipboard": "^5.0.2", - "react-dom": "^16.8.4", - "react-toastify": "^6.0.9" - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "devDependencies": { - "eslint": "^7.12.0", - "eslint-config-prettier": "^6.14.0", - "eslint-plugin-mdx": "^1.8.2", - "eslint-plugin-react": "^7.21.5", - "prettier": "2.1.2" - } -} diff --git a/zmk/docs/sidebars.js b/zmk/docs/sidebars.js deleted file mode 100644 index 7d124cc6..00000000 --- a/zmk/docs/sidebars.js +++ /dev/null @@ -1,55 +0,0 @@ -module.exports = { - docs: { - "Getting Started": [ - "intro", - "hardware", - "faq", - "user-setup", - "customization", - "troubleshooting", - ], - Features: [ - "features/keymaps", - "features/displays", - "features/encoders", - "features/underglow", - ], - Behaviors: [ - "behaviors/key-press", - "behaviors/layers", - "behaviors/misc", - "behaviors/hold-tap", - "behaviors/mod-tap", - "behaviors/reset", - "behaviors/bluetooth", - "behaviors/outputs", - "behaviors/lighting", - "behaviors/power", - ], - Codes: [ - "codes/index", - "codes/keyboard-keypad", - "codes/modifiers", - "codes/editing", - "codes/media", - "codes/applications", - "codes/input-assist", - "codes/power", - ], - Development: [ - "development/clean-room", - "development/setup", - "development/build-flash", - "development/boards-shields-keymaps", - "development/posix-board", - "development/tests", - "development/usb-logging", - { - type: "category", - label: "Guides", - collapsed: false, - items: ["development/new-shield"], - }, - ], - }, -}; diff --git a/zmk/docs/src/components/codes/Context.jsx b/zmk/docs/src/components/codes/Context.jsx deleted file mode 100644 index 4fdcbfc0..00000000 --- a/zmk/docs/src/components/codes/Context.jsx +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import React from "react"; -import PropTypes from "prop-types"; - -export default function Context({ children }) { - return

{children}

; -} - -Context.propTypes = { - children: PropTypes.oneOfType([PropTypes.element, PropTypes.string]) - .isRequired, -}; diff --git a/zmk/docs/src/components/codes/Description.jsx b/zmk/docs/src/components/codes/Description.jsx deleted file mode 100644 index 6d8c5f62..00000000 --- a/zmk/docs/src/components/codes/Description.jsx +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import React from "react"; -import PropTypes from "prop-types"; - -const specialCharactersRegex = /(?:^|\s)((?:&(?:(?:\w+)|(?:#\d+));)|[_]|[^\w\s])(?:\s*\[([^[\]]+?)\])/g; - -function renderSpecialCharacters(description) { - const matches = Array.from(description.matchAll(specialCharactersRegex)); - if (matches.length == 0) return description; - let lastIndex = 0; - const parts = matches.reduce((acc, match, i) => { - const { index } = match; - const str = match[0]; - const chars = match[1]; - const meaning = match[2]; - if (index != lastIndex) { - acc.push(description.substring(lastIndex, index)); - } - const pos = str.indexOf(chars); - if (pos > 0) { - acc.push(description.substr(index, pos)); - } - acc.push( - - {description.substr(index + pos, chars.length)} - {meaning ? {meaning} : undefined} - - ); - lastIndex = index + str.length; - return acc; - }, []); - if (lastIndex < description.length) { - parts.push(description.substr(lastIndex)); - } - return parts; -} - -export default function Description({ description = "" }) { - return ( - {renderSpecialCharacters(description)} - ); -} - -Description.propTypes = { - description: PropTypes.string.isRequired, -}; diff --git a/zmk/docs/src/components/codes/Footnote.jsx b/zmk/docs/src/components/codes/Footnote.jsx deleted file mode 100644 index c9396a30..00000000 --- a/zmk/docs/src/components/codes/Footnote.jsx +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import React from "react"; -import PropTypes from "prop-types"; - -export default function Footnote({ children, symbol, id }) { - return ( -
-
{symbol}
-
{children}
-
- ); -} - -Footnote.propTypes = { - children: PropTypes.element.isRequired, - symbol: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired, - id: PropTypes.string.isRequired, -}; diff --git a/zmk/docs/src/components/codes/FootnoteRef.jsx b/zmk/docs/src/components/codes/FootnoteRef.jsx deleted file mode 100644 index c7b11a7d..00000000 --- a/zmk/docs/src/components/codes/FootnoteRef.jsx +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import React from "react"; -import PropTypes from "prop-types"; - -export default function FootnoteRef({ children, anchor }) { - return ( - - {children} - - ); -} - -FootnoteRef.propTypes = { - children: PropTypes.oneOfType([PropTypes.string, PropTypes.number]) - .isRequired, - anchor: PropTypes.string.isRequired, -}; diff --git a/zmk/docs/src/components/codes/FootnoteRefs.jsx b/zmk/docs/src/components/codes/FootnoteRefs.jsx deleted file mode 100644 index 3782c13f..00000000 --- a/zmk/docs/src/components/codes/FootnoteRefs.jsx +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import React from "react"; -import PropTypes from "prop-types"; -import FootnoteRef from "./FootnoteRef"; - -function joinReactElements(arr, delimiter) { - return arr.reduce((acc, fragment) => { - if (acc === null) { - return fragment; - } - return ( - <> - {acc} - {delimiter} - {fragment} - - ); - }, null); -} - -export default function FootnoteRefs({ footnotes }) { - return ( - - {joinReactElements( - footnotes.map((footnote) => ( - - {footnote.symbol} - - )), - ", " - )} - - ); -} - -FootnoteRefs.propTypes = { - footnotes: PropTypes.array.isRequired, -}; diff --git a/zmk/docs/src/components/codes/Footnotes.jsx b/zmk/docs/src/components/codes/Footnotes.jsx deleted file mode 100644 index b382141f..00000000 --- a/zmk/docs/src/components/codes/Footnotes.jsx +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import React from "react"; -import PropTypes from "prop-types"; -import Footnote from "./Footnote"; - -export default function Footnotes({ footnotes = [], id }) { - return ( - - ); -} - -Footnotes.propTypes = { - footnotes: PropTypes.array.isRequired, - id: PropTypes.string.isRequired, -}; diff --git a/zmk/docs/src/components/codes/LinkIcon.jsx b/zmk/docs/src/components/codes/LinkIcon.jsx deleted file mode 100644 index 5bfeebd4..00000000 --- a/zmk/docs/src/components/codes/LinkIcon.jsx +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import React from "react"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { faExternalLinkAlt } from "@fortawesome/free-solid-svg-icons"; -export default function LinkIcon() { - return ; -} - -LinkIcon.propTypes = {}; diff --git a/zmk/docs/src/components/codes/Name.jsx b/zmk/docs/src/components/codes/Name.jsx deleted file mode 100644 index 52dc7347..00000000 --- a/zmk/docs/src/components/codes/Name.jsx +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import React from "react"; -import PropTypes from "prop-types"; -import ToastyCopyToClipboard from "./ToastyCopyToClipboard"; - -export default function Name({ children, name }) { - return ( - - - {children} - - - ); -} - -Name.propTypes = { - children: PropTypes.oneOfType([PropTypes.element, PropTypes.string]) - .isRequired, - name: PropTypes.string.isRequired, -}; diff --git a/zmk/docs/src/components/codes/OsLegend.jsx b/zmk/docs/src/components/codes/OsLegend.jsx deleted file mode 100644 index c53907fa..00000000 --- a/zmk/docs/src/components/codes/OsLegend.jsx +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import React from "react"; -import operatingSystems from "@site/src/data/operating-systems"; - -export default function OsLegend() { - return ( -
- {operatingSystems.map(({ key, className, heading, title }) => ( -
- {heading} - {title} -
- ))} -
- ); -} - -OsLegend.propTypes = {}; diff --git a/zmk/docs/src/components/codes/OsSupport.jsx b/zmk/docs/src/components/codes/OsSupport.jsx deleted file mode 100644 index 2cb60c97..00000000 --- a/zmk/docs/src/components/codes/OsSupport.jsx +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import React from "react"; -import PropTypes from "prop-types"; -import OsSupportIcon from "./OsSupportIcon"; -import FootnoteRefs from "./FootnoteRefs"; - -export default function OsSupport({ value, footnotes = [] }) { - return ( - <> - - {footnotes.length > 0 ? ( - - ) : undefined} - - ); -} - -OsSupport.propTypes = { - value: PropTypes.oneOf([true, false, null]), - footnotes: PropTypes.array.isRequired, -}; diff --git a/zmk/docs/src/components/codes/OsSupportIcon.jsx b/zmk/docs/src/components/codes/OsSupportIcon.jsx deleted file mode 100644 index a518d62a..00000000 --- a/zmk/docs/src/components/codes/OsSupportIcon.jsx +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import React from "react"; -import PropTypes from "prop-types"; - -const Icon = ({ children, className, title }) => ( - - {children} - -); - -Icon.propTypes = { - children: PropTypes.oneOfType([PropTypes.element, PropTypes.string]) - .isRequired, - className: PropTypes.string.isRequired, - title: PropTypes.string.isRequired, -}; - -export const Supported = () => ( - - ⭐ - -); -export const NotSupported = () => ( - - ❌ - -); -export const NotTested = () => ( - - ❔ - -); - -export default function OsSupportIcon({ value }) { - if (value === true) { - return ; - } - if (value === false) { - return ; - } - return ; -} - -OsSupportIcon.propTypes = { - value: PropTypes.oneOf([true, false, null]), -}; diff --git a/zmk/docs/src/components/codes/Table.jsx b/zmk/docs/src/components/codes/Table.jsx deleted file mode 100644 index 0596de6a..00000000 --- a/zmk/docs/src/components/codes/Table.jsx +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import React from "react"; -import PropTypes from "prop-types"; -import TableRow from "./TableRow"; -import Footnotes from "./Footnotes"; -import LinkIcon from "./LinkIcon"; -import operatingSystems from "@site/src/data/operating-systems"; -import { getCodes } from "@site/src/hid"; -import { getGroup } from "@site/src/groups"; -import { getFootnote } from "@site/src/footnotes"; - -function extractFootnoteIds(codes) { - return Array.from( - new Set( - codes - .flatMap(({ footnotes }) => Object.values(footnotes)) - .flatMap((refs) => (Array.isArray(refs) ? refs.flat() : refs)) - ) - ); -} - -export default function Table({ group }) { - const codes = getCodes(getGroup(group)); - - const footnotesAnchor = group + "-" + "footnotes"; - - const tableFootnotes = extractFootnoteIds(codes).map((id, i) => { - const Component = getFootnote(id); - return { - id, - anchor: footnotesAnchor, - symbol: i + 1, - value: Component ? : undefined, - }; - }); - - return ( -
-
- - - - - - {operatingSystems.map(({ key, className, heading, title }) => ( - - ))} - - - - {Array.isArray(codes) - ? codes.map((code) => ( - - )) - : undefined} - -
NamesDescription - - - {heading} -
- {tableFootnotes.length > 0 ? ( - - ) : undefined} - - ); -} - -Table.propTypes = { - group: PropTypes.string.isRequired, -}; diff --git a/zmk/docs/src/components/codes/TableRow.jsx b/zmk/docs/src/components/codes/TableRow.jsx deleted file mode 100644 index a560911f..00000000 --- a/zmk/docs/src/components/codes/TableRow.jsx +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import React from "react"; -import PropTypes from "prop-types"; -import Name from "./Name"; -import Description from "./Description"; -import Context from "./Context"; -import LinkIcon from "./LinkIcon"; -import OsSupport from "./OsSupport"; -import operatingSystems from "@site/src/data/operating-systems"; - -export default function TableRow({ - names, - description, - context = "", - clarify = false, - documentation, - os, - footnotes, - tableFootnotes, -}) { - return ( - - - {names.map((name) => ( - - {name} - - ))} - - - - {clarify && context ? {context} : undefined} - - - - - - - {operatingSystems.map(({ key, className, title }) => ( - - - (Array.isArray(footnotes[key]) && - footnotes[key].includes(id)) || - footnotes[key] == id - )} - /> - - ))} - - ); -} - -TableRow.propTypes = { - names: PropTypes.array.isRequired, - description: PropTypes.string.isRequired, - context: PropTypes.string.isRequired, - clarify: PropTypes.bool, - documentation: PropTypes.string.isRequired, - os: PropTypes.object.isRequired, - footnotes: PropTypes.object.isRequired, - tableFootnotes: PropTypes.array.isRequired, -}; diff --git a/zmk/docs/src/components/codes/ToastyContainer.jsx b/zmk/docs/src/components/codes/ToastyContainer.jsx deleted file mode 100644 index ee4e3bca..00000000 --- a/zmk/docs/src/components/codes/ToastyContainer.jsx +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import React from "react"; -import { ToastContainer } from "react-toastify"; -import "react-toastify/dist/ReactToastify.css"; - -export default function ToastyContainer() { - return ( - - ); -} - -ToastyContainer.propTypes = {}; diff --git a/zmk/docs/src/components/codes/ToastyCopyToClipboard.jsx b/zmk/docs/src/components/codes/ToastyCopyToClipboard.jsx deleted file mode 100644 index b0e98092..00000000 --- a/zmk/docs/src/components/codes/ToastyCopyToClipboard.jsx +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import React from "react"; -import PropTypes from "prop-types"; -import { toast } from "react-toastify"; -import { CopyToClipboard } from "react-copy-to-clipboard"; - -export default function ToastyCopyToClipboard({ children, text }) { - const notify = () => - toast( - - 📋 Copied {text} - - ); - return ( -
- {children} -
- ); -} - -ToastyCopyToClipboard.propTypes = { - children: PropTypes.oneOfType([PropTypes.element, PropTypes.string]) - .isRequired, - text: PropTypes.string.isRequired, -}; diff --git a/zmk/docs/src/css/codes.css b/zmk/docs/src/css/codes.css deleted file mode 100644 index ce2c0efd..00000000 --- a/zmk/docs/src/css/codes.css +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -.codes.os.legend { - position: sticky; - z-index: 1; - top: var(--ifm-navbar-height); - width: 100%; - padding-top: 0.5em; - padding-bottom: 0.5em; - background: var(--ifm-background-color); - display: flex; - justify-content: space-between; -} - -html[data-theme="light"] .codes.os.legend { - background: white; -} - -.codes.os.legend .os { - flex: 1; - margin-left: 0.2em; - margin-right: 0.2em; - padding: 0.1em; - border: 1px var(--ifm-table-border-color) solid; - border-radius: 0.5em; - text-align: center; -} - -.codes.os.legend .os .heading { - font-weight: bold; -} - -.codes.os.legend .os .heading::after { - content: " : "; - font-weight: normal; -} - -.codes .name { - cursor: copy; -} - -.codes .name:hover { - opacity: 0.8; -} - -.codes .name:active { - color: var(--ifm-font-color-base-inverse); - background: var(--ifm-font-color-base); -} - -.codes.os.legend, -.codes table { - font-size: 0.8em; -} - -.codes table { - display: table; - font-size: 0.8em; - margin-bottom: 0; -} - -.codes th, -.codes td { - padding: 0.2rem; -} - -.codes td { - position: relative; -} - -.codes th.names, -.codes th.description { - text-align: left; -} - -.codes td.names code { - display: block; - float: left; - clear: both; - margin-top: 1px; - margin-bottom: 1px; - font-size: 0.85em; -} - -.codes .context { - display: inline; - margin: 0 0 0 0.5em; - font-size: 0.85em; -} - -.codes .context::before { - content: "("; -} - -.codes .context::after { - content: ")"; -} - -.codes .symbol { - display: inline-flex; - flex-direction: column; -} - -.codes .symbol code { - align-self: flex-start; - width: auto; -} - -.codes .symbol .meaning { - flex: 1; - font-size: 0.8em; - text-transform: uppercase; -} - -.codes td.documentation, -.codes td.os { - width: 0.1%; - min-width: 1.9rem; - text-align: center; -} - -.codes td.documentation { - font-size: 0.8em; -} - -.codes td.documentation a { - cursor: help; -} - -.codes .os { - color: black; -} - -.codes td.os { - font-size: 0.8em; -} - -.codes .not-tested { - font-weight: bold; -} - -.codes .os.windows { - background: #caedfd; -} - -.codes .os.linux { - background: #fff2ca; -} - -.codes .os.android { - background: #d8eed9; -} - -.codes .os.macos { - background: #ececec; -} - -.codes .os.ios { - background: #ffffff; -} - -.codes .footnotes { - display: flex; - width: 100%; - margin-top: 0; - margin-bottom: 0.5rem; - padding: 0.2rem 0.5rem 0.2rem 0.5rem; - border: var(--ifm-table-border-width) dashed var(--ifm-table-border-color); - border-top: 0; - font-size: 0.8em; -} - -.codes .footnotes .label { - display: block; - margin-right: 1em; - font-style: italic; -} - -.codes .footnotes .label::after { - content: ":"; -} - -.codes .footnotes .anchor { - display: block; - position: relative; - top: calc(var(--ifm-navbar-height) * -1 - 6em); - visibility: hidden; -} - -.codes .footnote { - flex: 1; - display: flex; - margin-top: 0; - margin-bottom: 0; -} - -.codes .footnote .symbol { - flex: 0; - float: left; - margin-right: 0.4em; - font-size: 0.8em; -} - -.codes .footnote .content p { - margin-top: 0; - margin-bottom: 0; -} - -.codes .footnoteRefs { - float: right; - font-size: 0.8em; -} - -.codes .footnoteRefs a { - color: black; -} diff --git a/zmk/docs/src/css/custom.css b/zmk/docs/src/css/custom.css deleted file mode 100644 index d9cddb85..00000000 --- a/zmk/docs/src/css/custom.css +++ /dev/null @@ -1,43 +0,0 @@ -/* stylelint-disable docusaurus/copyright-header */ -/** - * Any CSS included here will be global. The classic template - * bundles Infima by default. Infima is a CSS framework designed to - * work well for content-centric websites. - */ - -/* You can override the default Infima variables here. */ -:root { - --ifm-color-primary: #026fc5; - --ifm-color-primary-dark: #0264b1; - --ifm-color-primary-darker: #025ea7; - --ifm-color-primary-darkest: #014e8a; - --ifm-color-primary-light: #027ad9; - --ifm-color-primary-lighter: #0280e3; - --ifm-color-primary-lightest: #0690fc; - --ifm-code-font-size: 95%; -} - -.docusaurus-highlight-code-line { - background-color: rgb(72, 77, 91); - display: block; - margin: 0 calc(-1 * var(--ifm-pre-padding)); - padding: 0 var(--ifm-pre-padding); -} - -.video-container { - height: 0; - margin: 0; - margin-bottom: 30px; - overflow: hidden; - padding-bottom: 56.25%; - padding-top: 30px; - position: relative; -} - -.video-container iframe { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} diff --git a/zmk/docs/src/data/footnotes.js b/zmk/docs/src/data/footnotes.js deleted file mode 100644 index dabf98f5..00000000 --- a/zmk/docs/src/data/footnotes.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import example from "@site/docs/codes/_footnotes/example.mdx"; - -export default { - example, -}; diff --git a/zmk/docs/src/data/groups.js b/zmk/docs/src/data/groups.js deleted file mode 100644 index f7ced161..00000000 --- a/zmk/docs/src/data/groups.js +++ /dev/null @@ -1,414 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -export default { - "application-controls": [ - "K_MENU", - "C_AC_PROPERTIES", - "K_SELECT", - "C_AC_CANCEL", - "K_EXECUTE", - "C_AC_REFRESH", - "K_REFRESH", - "C_AC_STOP", - "K_STOP", - "C_AC_FORWARD", - "K_FORWARD", - "C_AC_BACK", - "K_BACK", - "C_AC_HOME", - "C_AC_BOOKMARKS", - "C_AC_NEW", - "C_AC_OPEN", - "C_AC_SAVE", - "C_AC_CLOSE", - "C_AC_EXIT", - "C_AC_PRINT", - "C_AC_FIND", - "K_FIND", - "K_FIND2", - "C_AC_SEARCH", - "C_AC_GOTO", - "C_AC_ZOOM", - "C_AC_ZOOM_IN", - "C_AC_ZOOM_OUT", - "C_AC_SCROLL_UP", - "K_SCROLL_UP", - "C_AC_SCROLL_DOWN", - "K_SCROLL_DOWN", - "C_AC_REPLY", - "C_AC_FORWARD_MAIL", - "C_AC_SEND", - "C_AC_EDIT", - "C_AC_INSERT", - "C_AC_DEL", - "C_AC_VIEW_TOGGLE", - "C_AC_DESKTOP_SHOW_ALL_WINDOWS", - "C_VOICE_COMMAND", - ], - applications: [ - "C_AL_NEXT_TASK", - "C_AL_PREVIOUS_TASK", - "C_AL_SELECT_TASK", - "C_AL_MY_COMPUTER", - "C_AL_DOCUMENTS", - "C_AL_FILE_BROWSER", - "C_AL_WWW", - "K_WWW", - "C_AL_EMAIL", - "C_AL_INSTANT_MESSAGING", - "C_AL_NETWORK_CHAT", - "C_AL_CONTACTS", - "C_AL_CALENDAR", - "C_AL_IMAGE_BROWSER", - "C_AL_AUDIO_BROWSER", - "C_AL_MOVIE_BROWSER", - "C_AL_TEXT_EDITOR", - "C_AL_WORD", - "C_AL_SPREADSHEET", - "C_AL_PRESENTATION", - "C_AL_GRAPHICS_EDITOR", - "C_AL_CALCULATOR", - "K_CALCULATOR", - "C_AL_NEWS", - "C_AL_DATABASE", - "C_AL_VOICEMAIL", - "C_AL_FINANCE", - "C_AL_TASK_MANAGER", - "C_AL_JOURNAL", - "C_AL_AV_CAPTURE_PLAYBACK", - "C_AL_SPELLCHECK", - "C_AL_SCREEN_SAVER", - "C_AL_KEYBOARD_LAYOUT", - "C_AL_CONTROL_PANEL", - "C_AL_HELP", - "K_HELP", - "C_AL_OEM_FEATURES", - "C_AL_CCC", - ], - "consumer-controls": [ - "C_CHANNEL_INC", - "C_CHANNEL_DEC", - "C_RECALL_LAST", - "C_MEDIA_VCR_PLUS", - "C_MEDIA_GUIDE", - "C_MEDIA_STEP", - "C_MEDIA_HOME", - "C_MEDIA_TV", - "C_MEDIA_CABLE", - "C_MEDIA_TUNER", - "C_MEDIA_DVD", - "C_MEDIA_CD", - "C_MEDIA_SATELLITE", - "C_MEDIA_VCR", - "C_MEDIA_TAPE", - "C_MEDIA_COMPUTER", - "C_MEDIA_WWW", - "C_MEDIA_GAMES", - "C_MEDIA_PHONE", - "C_MEDIA_VIDEOPHONE", - "C_MEDIA_MESSAGES", - "C_QUIT", - "C_HELP", - ], - "consumer-menus": [ - "C_MENU", - "C_MENU_PICK", - "C_MENU_UP", - "C_MENU_DOWN", - "C_MENU_LEFT", - "C_MENU_RIGHT", - "C_MENU_ESCAPE", - "C_MENU_INCREASE", - "C_MENU_DECREASE", - "C_RED_BUTTON", - "C_GREEN_BUTTON", - "C_BLUE_BUTTON", - "C_YELLOW_BUTTON", - ], - "cut-copy-paste": [ - "C_AC_CUT", - "K_CUT", - "C_AC_COPY", - "K_COPY", - "C_AC_PASTE", - "K_PASTE", - ], - display: [ - "C_BRIGHTNESS_INC", - "C_BRIGHTNESS_DEC", - "C_BRIGHTNESS_MINIMUM", - "C_BRIGHTNESS_MAXIMUM", - "C_BRIGHTNESS_AUTO", - "C_BACKLIGHT_TOGGLE", - "C_ASPECT", - "C_PIP", - ], - "input-assist": [ - "C_KEYBOARD_INPUT_ASSIST_NEXT", - "C_KEYBOARD_INPUT_ASSIST_PREVIOUS", - "C_KEYBOARD_INPUT_ASSIST_NEXT_GROUP", - "C_KEYBOARD_INPUT_ASSIST_PREVIOUS_GROUP", - "C_KEYBOARD_INPUT_ASSIST_ACCEPT", - "C_KEYBOARD_INPUT_ASSIST_CANCEL", - ], - "keyboard-control-whitespace": [ - "ESCAPE", - "RETURN", - "RETURN2", - "SPACE", - "TAB", - "BACKSPACE", - "DELETE", - "INSERT", - ], - "keyboard-fkeys": [ - "F1", - "F2", - "F3", - "F4", - "F5", - "F6", - "F7", - "F8", - "F9", - "F10", - "F11", - "F12", - "F13", - "F14", - "F15", - "F16", - "F17", - "F18", - "F19", - "F20", - "F21", - "F22", - "F23", - "F24", - ], - "keyboard-international": [ - "INTERNATIONAL_1", - "INTERNATIONAL_2", - "INTERNATIONAL_3", - "INTERNATIONAL_4", - "INTERNATIONAL_5", - "INTERNATIONAL_6", - "INTERNATIONAL_7", - "INTERNATIONAL_8", - "INTERNATIONAL_9", - ], - "keyboard-language": [ - "LANGUAGE_1", - "LANGUAGE_2", - "LANGUAGE_3", - "LANGUAGE_4", - "LANGUAGE_5", - "LANGUAGE_6", - "LANGUAGE_7", - "LANGUAGE_8", - "LANGUAGE_9", - ], - "keyboard-letters": [ - "A", - "B", - "C", - "D", - "E", - "F", - "G", - "H", - "I", - "J", - "K", - "L", - "M", - "N", - "O", - "P", - "Q", - "R", - "S", - "T", - "U", - "V", - "W", - "X", - "Y", - "Z", - ], - "keyboard-locks": [ - "CAPSLOCK", - "LOCKING_CAPS", - "SCROLLLOCK", - "LOCKING_SCROLL", - "LOCKING_NUM", - ], - "keyboard-miscellaneous": [ - "PRINTSCREEN", - "PAUSE_BREAK", - "ALT_ERASE", - "SYSREQ", - "K_CANCEL", - "CLEAR", - "CLEAR_AGAIN", - "CRSEL", - "PRIOR", - "SEPARATOR", - "OUT", - "OPER", - "EXSEL", - "K_EDIT", - ], - "keyboard-modifiers": [ - "LEFT_SHIFT", - "RIGHT_SHIFT", - "LEFT_CONTROL", - "RIGHT_CONTROL", - "LEFT_ALT", - "RIGHT_ALT", - "LEFT_GUI", - "RIGHT_GUI", - ], - "keyboard-navigation": [ - "HOME", - "END", - "PAGE_UP", - "PAGE_DOWN", - "UP_ARROW", - "DOWN_ARROW", - "LEFT_ARROW", - "RIGHT_ARROW", - "K_APPLICATION", - ], - "keyboard-numbers": [ - "NUMBER_1", - "NUMBER_2", - "NUMBER_3", - "NUMBER_4", - "NUMBER_5", - "NUMBER_6", - "NUMBER_7", - "NUMBER_8", - "NUMBER_9", - "NUMBER_0", - ], - "keyboard-symbols": [ - "EXCLAMATION", - "AT_SIGN", - "HASH", - "DOLLAR", - "PERCENT", - "CARET", - "AMPERSAND", - "ASTERISK", - "LEFT_PARENTHESIS", - "RIGHT_PARENTHESIS", - "EQUAL", - "PLUS", - "MINUS", - "UNDERSCORE", - "SLASH", - "QUESTION", - "BACKSLASH", - "PIPE", - "NON_US_BACKSLASH", - "PIPE2", - "SEMICOLON", - "COLON", - "SINGLE_QUOTE", - "DOUBLE_QUOTES", - "COMMA", - "LESS_THAN", - "PERIOD", - "GREATER_THAN", - "LEFT_BRACKET", - "LEFT_BRACE", - "RIGHT_BRACKET", - "RIGHT_BRACE", - "GRAVE", - "TILDE", - "NON_US_HASH", - "TILDE2", - ], - keypad: ["KP_NUMLOCK", "KP_CLEAR", "CLEAR2", "KP_ENTER"], - "keypad-numbers": [ - "KP_NUMBER_1", - "KP_NUMBER_2", - "KP_NUMBER_3", - "KP_NUMBER_4", - "KP_NUMBER_5", - "KP_NUMBER_6", - "KP_NUMBER_7", - "KP_NUMBER_8", - "KP_NUMBER_9", - "KP_NUMBER_0", - ], - "keypad-operations": [ - "KP_PLUS", - "KP_MINUS", - "KP_MULTIPLY", - "KP_DIVIDE", - "KP_EQUAL", - "KP_EQUAL_AS400", - "KP_DOT", - "KP_COMMA", - "KP_LEFT_PARENTHESIS", - "KP_RIGHT_PARENTHESIS", - ], - "media-controls": [ - "C_RECORD", - "C_PLAY", - "C_PLAY_PAUSE", - "K_PLAY_PAUSE", - "C_PAUSE", - "C_STOP", - "K_STOP2", - "K_STOP3", - "C_STOP_EJECT", - "C_EJECT", - "K_EJECT", - "C_NEXT", - "K_NEXT", - "C_PREVIOUS", - "K_PREVIOUS", - "C_FAST_FORWARD", - "C_REWIND", - "C_SLOW", - "C_SLOW_TRACKING", - "C_REPEAT", - "C_RANDOM_PLAY", - "C_CAPTIONS", - "C_DATA_ON_SCREEN", - "C_SNAPSHOT", - ], - power: [ - "C_POWER", - "K_POWER", - "C_RESET", - "C_SLEEP", - "K_SLEEP", - "C_SLEEP_MODE", - "C_AL_LOGOFF", - "C_AL_LOCK", - "K_LOCK", - ], - sound: [ - "C_VOLUME_UP", - "K_VOLUME_UP", - "K_VOLUME_UP2", - "C_VOLUME_DOWN", - "K_VOLUME_DOWN", - "K_VOLUME_DOWN2", - "C_MUTE", - "K_MUTE", - "K_MUTE2", - "C_ALTERNATE_AUDIO_INCREMENT", - "C_BASS_BOOST", - ], - "undo-redo": ["C_AC_UNDO", "K_UNDO", "C_AC_REDO", "K_AGAIN"], -}; diff --git a/zmk/docs/src/data/hid-applications.js b/zmk/docs/src/data/hid-applications.js deleted file mode 100644 index 7cb7eda4..00000000 --- a/zmk/docs/src/data/hid-applications.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import usage from "../hid-usage"; -import * as pages from "./hid-usage-pages"; - -export const keyboard = usage(pages.genericDesktop, 0x06); -export const consumer = usage(pages.consumer, 0x01); diff --git a/zmk/docs/src/data/hid-usage-pages.js b/zmk/docs/src/data/hid-usage-pages.js deleted file mode 100644 index ae11bc3b..00000000 --- a/zmk/docs/src/data/hid-usage-pages.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -export const genericDesktop = 0x01; -export const key = 0x07; -export const consumer = 0x0c; diff --git a/zmk/docs/src/data/hid.js b/zmk/docs/src/data/hid.js deleted file mode 100644 index d52331f9..00000000 --- a/zmk/docs/src/data/hid.js +++ /dev/null @@ -1,7839 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import { - keyboard as keyboardApplication, - consumer as consumerApplication, -} from "./hid-applications"; - -import { key as keyPage, consumer as consumerPage } from "./hid-usage-pages"; - -import usage from "../hid-usage"; - -export default [ - { - names: ["A"], - description: "a and A", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x04), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["B"], - description: "b and B", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x05), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["C"], - description: "c and C", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x06), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["D"], - description: "d and D", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x07), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["E"], - description: "e and E", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x08), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["F"], - description: "f and F", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x09), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["G"], - description: "g and G", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x0a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["H"], - description: "h and H", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x0b), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["I"], - description: "i and I", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x0c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["J"], - description: "j and J", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x0d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["K"], - description: "k and K", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x0e), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["L"], - description: "l and L", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x0f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["M"], - description: "m and M", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x10), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["N"], - description: "n and N", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x11), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["O"], - description: "o and O", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x12), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["P"], - description: "p and P", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x13), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["Q"], - description: "q and Q", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x14), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["R"], - description: "r and R", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x15), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["S"], - description: "s and S", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x16), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["T"], - description: "t and T", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x17), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["U"], - description: "u and U", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x18), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["V"], - description: "v and V", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x19), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["W"], - description: "w and W", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x1a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["X"], - description: "x and X", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x1b), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["Y"], - description: "y and Y", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x1c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["Z"], - description: "z and Z", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x1d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["NUMBER_1", "N1"], - description: "1 and ! [Exclamation]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x1e), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["EXCLAMATION", "EXCL"], - description: "! [Exclamation]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x1e), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["NUMBER_2", "N2"], - description: "2 and @ [At Sign]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x1f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["AT_SIGN", "AT"], - description: "@ [At Sign]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x1f), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["NUMBER_3", "N3"], - description: "3 and # [Hash / Pound]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x20), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["HASH", "POUND"], - description: "# [Hash / Pound]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x20), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["NUMBER_4", "N4"], - description: "4 and $ [Dollar]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x21), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["DOLLAR", "DLLR"], - description: "$ [Dollar]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x21), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["NUMBER_5", "N5"], - description: "5 and % [Percent]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x22), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["PERCENT", "PRCNT"], - description: "% [Percent]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x22), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["NUMBER_6", "N6"], - description: "6 and ^ [Caret]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x23), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["CARET"], - description: "^ [Caret]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x23), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["NUMBER_7", "N7"], - description: "7 and & [Ampersand]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x24), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["AMPERSAND", "AMPS"], - description: "& [Ampersand]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x24), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["NUMBER_8", "N8"], - description: "8 and * [Asterisk / Star]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x25), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["ASTERISK", "ASTRK", "STAR"], - description: "* [Asterisk / Star]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x25), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["NUMBER_9", "N9"], - description: "9 and ( [Left Parenthesis]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x26), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["LEFT_PARENTHESIS", "LPAR"], - description: "( [Left Parenthesis]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x26), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["NUMBER_0", "N0"], - description: "0 and ) [Right Parenthesis]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x27), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["RIGHT_PARENTHESIS", "RPAR"], - description: ") [Right Parenthesis]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x27), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["RETURN", "ENTER", "RET"], - description: "Return (Enter)", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x28), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["ESCAPE", "ESC"], - description: "Escape", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x29), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["BACKSPACE", "BSPC"], - description: "Backspace", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x2a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["TAB"], - description: "Tab", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x2b), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["SPACE"], - description: "Space", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x2c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["MINUS"], - description: "- [Minus] and _ [Underscore]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x2d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["UNDERSCORE", "UNDER"], - description: "_ [Underscore]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x2d), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["EQUAL"], - description: "= [Equal] and + [Plus]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x2e), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["PLUS"], - description: "+ [Plus]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x2e), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["LEFT_BRACKET", "LBKT"], - description: "[ [Left Bracket] and { [Left Brace]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x2f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["LEFT_BRACE", "LBRC"], - description: "{ [Left Brace]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x2f), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["RIGHT_BRACKET", "RBKT"], - description: "] [Right Bracket] and } [Right Brace]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x30), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["RIGHT_BRACE", "RBRC"], - description: "} [Right Brace]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x30), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["BACKSLASH", "BSLH"], - description: "\\ [Backslash] and | [Pipe]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x31), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["PIPE"], - description: "| [Pipe]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x31), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["NON_US_HASH"], - description: "Non-US # [Hash/Pound] and ~ [Tilde]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x32), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["TILDE2"], - description: "~ [Tilde]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x32), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["SEMICOLON", "SEMI"], - description: "; [Semicolon] and : [Colon]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x33), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["COLON"], - description: ": [Colon]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x33), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["SINGLE_QUOTE", "SQT", "APOSTROPHE", "APOS"], - description: "' [Apostrophe] and \" [Quote (Double)]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x34), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["DOUBLE_QUOTES", "DQT"], - description: '" [Quote (Double)]', - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x34), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["GRAVE"], - description: "` [Grave Accent] and ~ [Tilde]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x35), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["TILDE"], - description: "~ [Tilde]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x35), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["COMMA"], - description: ", [Comma] and < [Less Than]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x36), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["LESS_THAN", "LT"], - description: "< [Less Than]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x36), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["PERIOD", "DOT"], - description: ". [Period] and > [Greater Than]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x37), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["GREATER_THAN", "GT"], - description: "> [Greater Than]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x37), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["SLASH", "FSLH"], - description: "/ [Forward Slash] and ? [Question Mark]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x38), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["QUESTION", "QMARK"], - description: "? [Question Mark]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x38), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["CAPSLOCK", "CAPS", "CLCK"], - description: "Caps Lock", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x39), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["F1"], - description: "F1", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x3a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["F2"], - description: "F2", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x3b), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["F3"], - description: "F3", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x3c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["F4"], - description: "F4", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x3d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["F5"], - description: "F5", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x3e), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["F6"], - description: "F6", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x3f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["F7"], - description: "F7", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x40), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["F8"], - description: "F8", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x41), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["F9"], - description: "F9", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x42), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["F10"], - description: "F10", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x43), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["F11"], - description: "F11", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x44), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["F12"], - description: "F12", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x45), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["PRINTSCREEN", "PSCRN"], - description: "Print Screen", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x46), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["SCROLLLOCK", "SLCK"], - description: "Scroll Lock", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x47), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["PAUSE_BREAK"], - description: "Pause / Break", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x48), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["INSERT", "INS"], - description: "Insert", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x49), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["HOME"], - description: "Home", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x4a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["PAGE_UP", "PG_UP"], - description: "Page Up", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x4b), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["DELETE", "DEL"], - description: "Delete", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x4c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["END"], - description: "End", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x4d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["PAGE_DOWN", "PG_DN"], - description: "Page Down", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x4e), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["RIGHT_ARROW", "RIGHT"], - description: "⮕ [Right Arrow]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x4f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["LEFT_ARROW", "LEFT"], - description: "⬅ [Left Arrow]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x50), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["DOWN_ARROW", "DOWN"], - description: "⬇ [Down Arrow]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x51), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["UP_ARROW", "UP"], - description: "⬆ [Up Arrow]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x52), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["KP_NUMLOCK", "KP_NUM", "KP_NLCK"], - description: "Numlock and Clear", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x53), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["CLEAR2"], - description: "Clear", - context: "Keypad", - clarify: null, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x53), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_DIVIDE", "KP_SLASH"], - description: "/ [Divide]", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x54), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_MULTIPLY", "KP_ASTERISK"], - description: "* [Multiply]", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x55), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_MINUS", "KP_SUBTRACT"], - description: "- [Minus]", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x56), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_PLUS"], - description: "+ [Plus]", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x57), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_ENTER"], - description: "Enter", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x58), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_NUMBER_1", "KP_N1"], - description: "1", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x59), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_NUMBER_2", "KP_N2"], - description: "2", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x5a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_NUMBER_3", "KP_N3"], - description: "3", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x5b), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_NUMBER_4", "KP_N4"], - description: "4", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x5c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_NUMBER_5", "KP_N5"], - description: "5", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x5d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_NUMBER_6", "KP_N6"], - description: "6", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x5e), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_NUMBER_7", "KP_N7"], - description: "7", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x5f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_NUMBER_8", "KP_N8"], - description: "8", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x60), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_NUMBER_9", "KP_N9"], - description: "9", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x61), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_NUMBER_0", "KP_N0"], - description: "0", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x62), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_DOT"], - description: ". [Dot]", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x63), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: null, - }, - footnotes: {}, - }, - { - names: ["NON_US_BACKSLASH", "NON_US_BSLH"], - description: "Non-US \\ [Backslash] and | [Pipe]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x64), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["PIPE2"], - description: "| [Pipe]", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x64), - }, - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["K_APPLICATION", "K_APP", "K_CONTEXT_MENU", "K_CMENU"], - description: "Application (Context Menu)", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x65), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_POWER", "K_PWR"], - description: "Power", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x66), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: false, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_EQUAL"], - description: "= [Equal]", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x67), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["F13"], - description: "F13", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x68), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["F14"], - description: "F14", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x69), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["F15"], - description: "F15", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x6a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["F16"], - description: "F16", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x6b), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["F17"], - description: "F17", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x6c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["F18"], - description: "F18", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x6d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["F19"], - description: "F19", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x6e), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["F20"], - description: "F20", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x6f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["F21"], - description: "F21", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x70), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["F22"], - description: "F22", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x71), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["F23"], - description: "F23", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x72), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["F24"], - description: "F24", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x73), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_EXECUTE", "K_EXEC"], - description: "Execute", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x74), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_HELP"], - description: "Help", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x75), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_MENU"], - description: "Menu", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x76), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_SELECT"], - description: "Select", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x77), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_STOP"], - description: "Stop", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x78), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_AGAIN", "K_REDO"], - description: "Again", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x79), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_UNDO"], - description: "Undo", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x7a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_CUT"], - description: "Cut", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x7b), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_COPY"], - description: "Copy", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x7c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_PASTE"], - description: "Paste", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x7d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_FIND"], - description: "Find", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x7e), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_MUTE"], - description: "Mute", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x7f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_VOLUME_UP", "K_VOL_UP"], - description: "Volume Up", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x80), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_VOLUME_DOWN", "K_VOL_DN"], - description: "Volume Down", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x81), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["LOCKING_CAPS", "LCAPS"], - description: "Locking Caps Lock", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x82), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["LOCKING_NUM", "LNLCK"], - description: "Locking Num Lock", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x83), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["LOCKING_SCROLL", "LSLCK"], - description: "Locking Scroll Lock", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x84), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_COMMA"], - description: ", [Comma]", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x85), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_EQUAL_AS400"], - description: "= [Equal] (AS/400 keyboards)", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x86), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["INTERNATIONAL_1", "INT1", "INT_RO"], - description: "ろ (International 1)", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x87), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["INTERNATIONAL_2", "INT2", "INT_KATAKANAHIRAGANA", "INT_KANA"], - description: "かな (International 2)", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x88), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["INTERNATIONAL_3", "INT3", "INT_YEN"], - description: "¥ (International 3)", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x89), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["INTERNATIONAL_4", "INT4", "INT_HENKAN"], - description: "変換 (International 4)", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x8a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["INTERNATIONAL_5", "INT5", "INT_MUHENKAN"], - description: "無変換 (International 5)", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x8b), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["INTERNATIONAL_6", "INT6", "INT_KPJPCOMMA"], - description: ", [カソマ] (International 6)", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x8c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["INTERNATIONAL_7", "INT7"], - description: "International 7", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x8d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["INTERNATIONAL_8", "INT8"], - description: "International 8", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x8e), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["INTERNATIONAL_9", "INT9"], - description: "International 9", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x8f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["LANGUAGE_1", "LANG1", "LANG_HANGEUL"], - description: "한/영 (Language 1)", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x90), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["LANGUAGE_2", "LANG2", "LANG_HANJA"], - description: "한자 (Language 2)", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x91), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["LANGUAGE_3", "LANG3", "LANG_KATAKANA"], - description: "カタカナ (Language 3)", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x92), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["LANGUAGE_4", "LANG4", "LANG_HIRAGANA"], - description: "ひらがな (Language 4)", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x93), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["LANGUAGE_5", "LANG5", "LANG_ZENKAKUHANKAKU"], - description: "半角/全角 (Language 5)", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x94), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["LANGUAGE_6", "LANG6"], - description: "Language 6", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x95), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["LANGUAGE_7", "LANG7"], - description: "Language 7", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x96), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["LANGUAGE_8", "LANG8"], - description: "Language 8", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x97), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["LANGUAGE_9", "LANG9"], - description: "Language 9", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x98), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["ALT_ERASE"], - description: "Alternate Erase", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x99), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["SYSREQ", "ATTENTION"], - description: "SysReq / Attention", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x9a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_CANCEL"], - description: "Cancel", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x9b), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["CLEAR"], - description: "Clear", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x9c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["PRIOR"], - description: "Prior", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x9d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["RETURN2", "RET2"], - description: "Return", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x9e), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["SEPARATOR"], - description: "Separator", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0x9f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["OUT"], - description: "Out", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xa0), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["OPER"], - description: "Oper", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xa1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["CLEAR_AGAIN"], - description: "Clear / Again", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xa2), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["CRSEL"], - description: "CrSel / Props", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xa3), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["EXSEL"], - description: "ExSel", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xa4), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_LEFT_PARENTHESIS", "KP_LPAR"], - description: "( [Left Parenthesis]", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xb6), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_RIGHT_PARENTHESIS", "KP_RPAR"], - description: ") [Right Parenthesis]", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xb7), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["KP_CLEAR"], - description: "Clear", - context: "Keypad", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xd8), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=88", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["LEFT_CONTROL", "LCTRL", "LC(code)"], - description: "Left Control", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xe0), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=88", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["LEFT_SHIFT", "LSHFT", "LS(code)"], - description: "Left Shift ⇧", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xe1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=88", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["LEFT_ALT", "LALT", "LA(code)"], - description: "Left Alt", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xe2), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=88", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: [ - "LEFT_GUI", - "LGUI", - "LG(code)", - "LEFT_WIN", - "LWIN", - "LEFT_COMMAND", - "LCMD", - "LEFT_META", - "LMETA", - ], - description: "Left GUI (Windows / Command / Meta)", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xe3), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=88", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["RIGHT_CONTROL", "RCTRL", "RC(code)"], - description: "Right Control", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xe4), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=88", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["RIGHT_SHIFT", "RSHFT", "RS(code)"], - description: "Right Shift ⇧", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xe5), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=89", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["RIGHT_ALT", "RALT", "RA(code)"], - description: "Right Alt", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xe6), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=89", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: [ - "RIGHT_GUI", - "RGUI", - "RG(code)", - "RIGHT_WIN", - "RWIN", - "RIGHT_COMMAND", - "RCMD", - "RIGHT_META", - "RMETA", - ], - description: "Right GUI (Windows / Command / Meta)", - context: "Keyboard", - clarify: false, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xe7), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=89", - os: { - windows: true, - linux: true, - android: true, - macos: true, - ios: true, - }, - footnotes: {}, - }, - { - names: ["K_PLAY_PAUSE", "K_PP"], - description: "Play / Pause", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xe8), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_STOP2"], - description: "Stop", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xe9), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_PREVIOUS", "K_PREV"], - description: "Previous", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xea), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_NEXT"], - description: "Next", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xeb), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_EJECT"], - description: "Eject", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xec), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_VOLUME_UP2", "K_VOL_UP2"], - description: "Volume Up", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xed), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_VOLUME_DOWN2", "K_VOL_DN2"], - description: "Volume Down", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xee), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_MUTE2"], - description: "Mute", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xef), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_WWW"], - description: "Internet Browser", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xf0), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_BACK"], - description: "Back", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xf1), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_FORWARD"], - description: "Forward", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xf2), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_STOP3"], - description: "Stop", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xf3), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_FIND2"], - description: "Find", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xf4), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_SCROLL_UP"], - description: "Scroll Up", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xf5), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_SCROLL_DOWN"], - description: "Scroll Down", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xf6), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_EDIT"], - description: "Edit", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xf7), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_SLEEP"], - description: "Sleep", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xf8), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_LOCK", "K_SCREENSAVER", "K_COFFEE"], - description: "Lock", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xf9), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_REFRESH"], - description: "Refresh", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xfa), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["K_CALCULATOR", "K_CALC"], - description: "Calculator", - context: "Keyboard", - clarify: true, - usages: [ - { - application: keyboardApplication, - item: usage(keyPage, 0xfb), - }, - ], - documentation: - "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_POWER", "C_PWR"], - description: "Power", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x30), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=132", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_RESET"], - description: "Reset", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x31), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=132", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_SLEEP"], - description: "Sleep", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x32), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=132", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_SLEEP_MODE"], - description: "Sleep Mode", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x34), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=132", - os: { - windows: null, - linux: false, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MENU"], - description: "Menu", - context: "Consumer Menu", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x40), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MENU_PICK", "C_MENU_SELECT"], - description: "Pick", - context: "Consumer Menu", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x41), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MENU_UP"], - description: "Up", - context: "Consumer Menu", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x42), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MENU_DOWN"], - description: "Down", - context: "Consumer Menu", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x43), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MENU_LEFT"], - description: "Left", - context: "Consumer Menu", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x44), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MENU_RIGHT"], - description: "Right", - context: "Consumer Menu", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x45), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MENU_ESCAPE", "C_MENU_ESC"], - description: "Escape", - context: "Consumer Menu", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x46), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MENU_INCREASE", "C_MENU_INC"], - description: "Value Increase", - context: "Consumer Menu", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x47), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MENU_DECREASE", "C_MENU_DEC"], - description: "Value Decrease", - context: "Consumer Menu", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x48), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_DATA_ON_SCREEN"], - description: "Data On Screen", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x60), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_CAPTIONS", "C_SUBTITILES"], - description: "Closed Caption", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x61), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_SNAPSHOT"], - description: "Snapshot", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x65), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_PIP"], - description: "Picture-in-Picture Toggle", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x67), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", - os: { - windows: null, - linux: false, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_RED_BUTTON", "C_RED"], - description: "Red Button", - context: "Consumer Menu", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x69), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_GREEN_BUTTON", "C_GREEN"], - description: "Green Button", - context: "Consumer Menu", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x6a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_BLUE_BUTTON", "C_BLUE"], - description: "Blue Button", - context: "Consumer Menu", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x6b), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_YELLOW_BUTTON", "C_YELLOW"], - description: "Yellow Button", - context: "Consumer Menu", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x6c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_ASPECT"], - description: "Aspect", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x6d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_BRIGHTNESS_INC", "C_BRI_INC", "C_BRI_UP"], - description: "Increase Brightness", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x6f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_BRIGHTNESS_DEC", "C_BRI_DEC", "C_BRI_DN"], - description: "Decrease Brightness", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x70), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_BACKLIGHT_TOGGLE", "C_BKLT_TOG"], - description: "Backlight Toggle", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x72), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_BRIGHTNESS_MINIMUM", "C_BRI_MIN"], - description: "Minimum Brightness", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x73), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_BRIGHTNESS_MAXIMUM", "C_BRI_MAX"], - description: "Maximum Brightness", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x74), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_BRIGHTNESS_AUTO", "C_BRI_AUTO"], - description: "Auto Brightness", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x75), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_STEP", "C_MODE_STEP"], - description: "Mode Step", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x82), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_RECALL_LAST", "C_CHAN_LAST"], - description: "Recall Last", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x83), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_COMPUTER"], - description: "Computer", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x88), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_TV"], - description: "TV", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x89), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_WWW"], - description: "WWW", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x8a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_DVD"], - description: "DVD", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x8b), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_PHONE"], - description: "Telephone", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x8c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_GUIDE"], - description: "Program Guide", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x8d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_VIDEOPHONE"], - description: "Video Phone", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x8e), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_GAMES"], - description: "Games", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x8f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_MESSAGES"], - description: "Messages", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x90), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_CD"], - description: "CD", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x91), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_VCR"], - description: "VCR", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x92), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_TUNER"], - description: "Tuner", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x93), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_QUIT"], - description: "Quit", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x94), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_HELP"], - description: "Help", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x95), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_TAPE"], - description: "Tape", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x96), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_CABLE"], - description: "Cable", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x97), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_SATELLITE"], - description: "Satellite", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x98), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_HOME"], - description: "Home", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x9a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=136", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_CHANNEL_INC", "C_CHAN_INC"], - description: "Channel Increment", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x9c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=136", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_CHANNEL_DEC", "C_CHAN_DEC"], - description: "Channel Decrement", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x9d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=136", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MEDIA_VCR_PLUS"], - description: "VCR Plus", - context: "Consumer Media", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xa0), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_PLAY"], - description: "Play", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xb0), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_PAUSE"], - description: "Pause", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xb1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_RECORD", "C_REC"], - description: "Record", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xb2), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_FAST_FORWARD", "C_FF"], - description: "Fast Forward", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xb3), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_REWIND", "C_RW"], - description: "Rewind", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xb4), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_NEXT"], - description: "Next", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xb5), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_PREVIOUS", "C_PREV"], - description: "Previous", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xb6), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_STOP"], - description: "Stop", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xb7), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_EJECT"], - description: "Eject", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xb8), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_RANDOM_PLAY", "C_SHUFFLE"], - description: "Random Play", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xb9), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_REPEAT"], - description: "Repeat", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xbc), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_SLOW_TRACKING", "C_SLOW2"], - description: "Slow Tracking", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xbf), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_STOP_EJECT"], - description: "Stop / Eject", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xcc), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", - os: { - windows: null, - linux: false, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_PLAY_PAUSE", "C_PP"], - description: "Play / Pause", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xcd), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_VOICE_COMMAND"], - description: "Voice Command", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xcf), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=132", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_MUTE"], - description: "Mute", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xe2), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=139", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_BASS_BOOST"], - description: "Bass Boost", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xe5), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=139", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_VOLUME_UP", "C_VOL_UP"], - description: "Volume Up", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xe9), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=139", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_VOLUME_DOWN", "C_VOL_DN"], - description: "Volume Down", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xea), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=139", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_SLOW"], - description: "Slow", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0xf5), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=141", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_ALTERNATE_AUDIO_INCREMENT", "C_ALT_AUDIO_INC"], - description: "Alternate Audio Increment", - context: "Consumer", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x173), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf", - os: { - windows: null, - linux: false, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_CCC"], - description: "Consumer Control Configuration", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x183), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_WORD"], - description: "Word Processor", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x184), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_TEXT_EDITOR"], - description: "Text Editor", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x185), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_SPREADSHEET", "C_AL_SHEET"], - description: "Spreadsheet", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x186), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_GRAPHICS_EDITOR"], - description: "Graphics Editor", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x187), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_PRESENTATION"], - description: "Presentation", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x188), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_DATABASE", "C_AL_DB"], - description: "Database App", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x189), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_EMAIL", "C_AL_MAIL"], - description: "Email Reader", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x18a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_NEWS"], - description: "Newsreader", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x18b), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_VOICEMAIL"], - description: "Voicemail", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x18c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_CONTACTS", "C_AL_ADDRESS_BOOK"], - description: "Contacts / Address Book", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x18d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_CALENDAR", "C_AL_CAL"], - description: "Calendar / Schedule", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x18e), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_TASK_MANAGER"], - description: "Task / Project Manager", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x18f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_JOURNAL"], - description: "Log / Journal / Timecard", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x190), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_FINANCE"], - description: "Checkbook / Finance", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x191), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_CALCULATOR", "C_AL_CALC"], - description: "Calculator", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x192), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_AV_CAPTURE_PLAYBACK"], - description: "A/V Capture / Playback", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x193), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_MY_COMPUTER"], - description: "Local Machine Browser", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x194), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_WWW"], - description: "Internet Browser", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x196), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_NETWORK_CHAT", "C_AL_CHAT"], - description: "Network Chat", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x199), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_LOGOFF"], - description: "Logoff", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x19c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_LOCK", "C_AL_SCREENSAVER", "C_AL_COFFEE"], - description: "Terminal Lock / Screensaver", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x19e), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_CONTROL_PANEL"], - description: "Control Panel", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x19f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_SELECT_TASK"], - description: "Select Task / Application", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x1a2), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_NEXT_TASK"], - description: "Next Task / Application", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x1a3), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_PREVIOUS_TASK", "C_AL_PREV_TASK"], - description: "Previous Task / Application", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x1a4), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_HELP"], - description: "Integrated Help Center", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x1a6), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_DOCUMENTS", "C_AL_DOCS"], - description: "Documents", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x1a7), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_SPELLCHECK", "C_AL_SPELL"], - description: "Spell Check", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x1ab), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_KEYBOARD_LAYOUT"], - description: "Keyboard Layout", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x1ae), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_SCREEN_SAVER"], - description: "Screen Saver", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x1b1), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_FILE_BROWSER", "C_AL_FILES"], - description: "File Browser", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x1b4), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_IMAGE_BROWSER", "C_AL_IMAGES"], - description: "Image Browser", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x1b6), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_AUDIO_BROWSER", "C_AL_AUDIO", "C_AL_MUSIC"], - description: "Audio Browser", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x1b7), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_MOVIE_BROWSER", "C_AL_MOVIES"], - description: "Movie Browser", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x1b8), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_INSTANT_MESSAGING", "C_AL_IM"], - description: "Instant Messaging", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x1bc), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=149", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AL_OEM_FEATURES", "C_AL_TIPS", "C_AL_TUTORIAL"], - description: "OEM Features / Tips / Tutorial Browser", - context: "Consumer AL", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x1bd), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=149", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_NEW"], - description: "New", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x201), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_OPEN"], - description: "Open", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x202), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_CLOSE"], - description: "Close", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x203), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_EXIT"], - description: "Exit", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x204), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_SAVE"], - description: "Save", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x207), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_PRINT"], - description: "Print", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x208), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_PROPERTIES", "C_AC_PROPS"], - description: "Properties", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x209), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_UNDO"], - description: "Undo", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x21a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_COPY"], - description: "Copy", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x21b), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_CUT"], - description: "Cut", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x21c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_PASTE"], - description: "Paste", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x21d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_FIND"], - description: "Find", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x21f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_SEARCH"], - description: "Search", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x221), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_GOTO"], - description: "Go To", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x222), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_HOME"], - description: "Home", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x223), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_BACK"], - description: "Back", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x224), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_FORWARD"], - description: "Forward", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x225), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_STOP"], - description: "Stop", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x226), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_REFRESH"], - description: "Refresh", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x227), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_BOOKMARKS", "C_AC_FAVORITES", "C_AC_FAVOURITES"], - description: "Bookmarks", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x22a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_ZOOM_IN"], - description: "Zoom In", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x22d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_ZOOM_OUT"], - description: "Zoom Out", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x22e), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_ZOOM"], - description: "Zoom", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x22f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_VIEW_TOGGLE"], - description: "View Toggle", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x232), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=151", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_SCROLL_UP"], - description: "Scroll Up", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x233), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=151", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_SCROLL_DOWN"], - description: "Scroll Down", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x234), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=151", - os: { - windows: null, - linux: true, - android: true, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_EDIT"], - description: "Edit", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x23d), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=151", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_CANCEL"], - description: "Cancel", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x25f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=152", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_INSERT", "C_AC_INS"], - description: "Insert Mode", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x269), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=152", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_DEL"], - description: "Delete", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x26a), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=152", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_REDO"], - description: "Redo / Repeat", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x279), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=152", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_REPLY"], - description: "Reply", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x289), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=153", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_FORWARD_MAIL"], - description: "Forward", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x28b), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=153", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_SEND"], - description: "Send", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x28c), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=153", - os: { - windows: null, - linux: true, - android: false, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_AC_DESKTOP_SHOW_ALL_WINDOWS"], - description: "Desktop Show All Windows", - context: "Consumer AC", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x29f), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=153", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_KEYBOARD_INPUT_ASSIST_PREVIOUS", "C_KBIA_PREV"], - description: "Previous", - context: "Consumer KBIA", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x2c7), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=157", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_KEYBOARD_INPUT_ASSIST_NEXT", "C_KBIA_NEXT"], - description: "Next", - context: "Consumer KBIA", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x2c8), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=157", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_KEYBOARD_INPUT_ASSIST_PREVIOUS_GROUP", "C_KBIA_PREV_GRP"], - description: "Previous Group", - context: "Consumer KBIA", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x2c9), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=157", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_KEYBOARD_INPUT_ASSIST_NEXT_GROUP", "C_KBIA_NEXT_GRP"], - description: "Next Group", - context: "Consumer KBIA", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x2ca), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=157", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_KEYBOARD_INPUT_ASSIST_ACCEPT", "C_KBIA_ACCEPT"], - description: "Accept", - context: "Consumer KBIA", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x2cb), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=157", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, - { - names: ["C_KEYBOARD_INPUT_ASSIST_CANCEL", "C_KBIA_CANCEL"], - description: "Cancel", - context: "Consumer KBIA", - clarify: true, - usages: [ - { - application: consumerApplication, - item: usage(consumerPage, 0x2cc), - }, - ], - documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=157", - os: { - windows: null, - linux: true, - android: null, - macos: null, - ios: null, - }, - footnotes: {}, - }, -]; diff --git a/zmk/docs/src/data/operating-systems.js b/zmk/docs/src/data/operating-systems.js deleted file mode 100644 index 0631766d..00000000 --- a/zmk/docs/src/data/operating-systems.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -export default [ - { - key: "windows", - className: "windows", - heading: "W", - title: "Windows", - }, - { - key: "linux", - className: "linux", - heading: "L", - title: "Linux", - }, - { - key: "android", - className: "android", - heading: "A", - title: "Android", - }, - { - key: "macos", - className: "macos", - heading: "m", - title: "macOS", - }, - { - key: "ios", - className: "ios", - heading: "i", - title: "iOS", - }, -]; diff --git a/zmk/docs/src/footnotes.js b/zmk/docs/src/footnotes.js deleted file mode 100644 index c6fdbaa7..00000000 --- a/zmk/docs/src/footnotes.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import footnotes from "./data/footnotes"; - -export function getFootnote(id) { - const footnote = footnotes[id]; - if (typeof footnote != "undefined") { - return footnote; - } -} diff --git a/zmk/docs/src/groups.js b/zmk/docs/src/groups.js deleted file mode 100644 index a5ea294f..00000000 --- a/zmk/docs/src/groups.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import groups from "./data/groups.js"; - -export function getGroup(id) { - return groups[id] ?? null; -} diff --git a/zmk/docs/src/hid-usage.js b/zmk/docs/src/hid-usage.js deleted file mode 100644 index d6423589..00000000 --- a/zmk/docs/src/hid-usage.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -export default function usage(page, id) { - return (page << 16) | id; -} diff --git a/zmk/docs/src/hid.js b/zmk/docs/src/hid.js deleted file mode 100644 index 583ce7a5..00000000 --- a/zmk/docs/src/hid.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: CC-BY-NC-SA-4.0 - */ - -import codes from "./data/hid"; - -export const map = codes.reduce((map, item) => { - item.names.forEach((name) => (map[name] = item)); - return map; -}, {}); - -export function getCode(id) { - return map[id] ?? null; -} - -export function getCodes(ids) { - return ids.reduce((result, id) => [...result, map[id]], []); -} diff --git a/zmk/docs/src/pages/index.js b/zmk/docs/src/pages/index.js deleted file mode 100644 index 7019e579..00000000 --- a/zmk/docs/src/pages/index.js +++ /dev/null @@ -1,98 +0,0 @@ -import React from "react"; -import classnames from "classnames"; -import Layout from "@theme/Layout"; -import Link from "@docusaurus/Link"; -import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; -import useBaseUrl from "@docusaurus/useBaseUrl"; -import styles from "./styles.module.css"; -import PropTypes from "prop-types"; - -const features = [ - { - title: <>Powered by Zephyr™, - imageUrl: "img/undraw_zephyr.svg", - description: ( - <> - With a wide range of architecture support, ZMK is ready for many - existing keyboards. - - ), - }, - { - title: <>Permissive Licensing, - imageUrl: "img/undraw_open_source.svg", - description: ( - <>MIT licensed to remove any future limitations in innovation. - ), - }, - { - title: <>Wireless First, - imageUrl: "img/undraw_wireless.svg", - description: <>Designed for the future, including wireless support., - }, -]; - -function Feature({ imageUrl, title, description }) { - const imgUrl = useBaseUrl(imageUrl); - return ( -
- {imgUrl && ( -
- {title} -
- )} -

{title}

-

{description}

-
- ); -} - -Feature.propTypes = { - imageUrl: PropTypes.string.isRequired, - title: PropTypes.string.isRequired, - description: PropTypes.string.isRequired, -}; - -function Home() { - const context = useDocusaurusContext(); - const { siteConfig = {} } = context; - return ( - -
-
-

{siteConfig.title}

-

{siteConfig.tagline}

-
- - Get Started - -
-
-
-
- {features && features.length > 0 && ( -
-
-
- {features.map((props, idx) => ( - - ))} -
-
-
- )} -
-
- ); -} - -export default Home; diff --git a/zmk/docs/src/pages/styles.module.css b/zmk/docs/src/pages/styles.module.css deleted file mode 100644 index 9e3ab999..00000000 --- a/zmk/docs/src/pages/styles.module.css +++ /dev/null @@ -1,51 +0,0 @@ -/* stylelint-disable docusaurus/copyright-header */ - -/** - * CSS files with the .module.css suffix will be treated as CSS modules - * and scoped locally. - */ - -.heroBanner { - padding: 4rem 0; - text-align: center; - position: relative; - overflow: hidden; - background: linear-gradient(150deg, #026fc5, #7929d2); - color: #fff; -} - -@media screen and (max-width: 966px) { - .heroBanner { - padding: 2rem; - } -} - -.getStarted { - color: #fff; - border-color: #fff; - border: solid 1px; -} - -.getStarted:hover { - background: #fff; - color: #000; - border-color: #fff; -} - -.buttons { - display: flex; - align-items: center; - justify-content: center; -} - -.features { - display: flex; - align-items: center; - padding: 2rem 0; - width: 100%; -} - -.featureImage { - height: 200px; - width: 200px; -} diff --git a/zmk/docs/static/img/favicon.ico b/zmk/docs/static/img/favicon.ico deleted file mode 100644 index faec05fa..00000000 Binary files a/zmk/docs/static/img/favicon.ico and /dev/null differ diff --git a/zmk/docs/static/img/undraw_open_source.svg b/zmk/docs/static/img/undraw_open_source.svg deleted file mode 100644 index 80887c88..00000000 --- a/zmk/docs/static/img/undraw_open_source.svg +++ /dev/null @@ -1 +0,0 @@ -open source \ No newline at end of file diff --git a/zmk/docs/static/img/undraw_wireless.svg b/zmk/docs/static/img/undraw_wireless.svg deleted file mode 100644 index 5a7a9282..00000000 --- a/zmk/docs/static/img/undraw_wireless.svg +++ /dev/null @@ -1 +0,0 @@ -moving forward \ No newline at end of file diff --git a/zmk/docs/static/img/undraw_zephyr.svg b/zmk/docs/static/img/undraw_zephyr.svg deleted file mode 100644 index beb01d7b..00000000 --- a/zmk/docs/static/img/undraw_zephyr.svg +++ /dev/null @@ -1 +0,0 @@ -programmer \ No newline at end of file diff --git a/zmk/docs/static/img/zmk_logo.svg b/zmk/docs/static/img/zmk_logo.svg deleted file mode 100644 index 31977a60..00000000 --- a/zmk/docs/static/img/zmk_logo.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/zmk/docs/static/setup.ps1 b/zmk/docs/static/setup.ps1 deleted file mode 100644 index 6591da93..00000000 --- a/zmk/docs/static/setup.ps1 +++ /dev/null @@ -1,206 +0,0 @@ -# Copyright (c) 2020 The ZMK Contributors -# -# SPDX-License-Identifier: MIT - -$ErrorActionPreference = "Stop" - -function Get-Choice-From-Options { - param( - [String[]] $Options, - [String] $Prompt - ) - - while ($true) { - for ($i = 0; $i -lt $Options.length; $i++) { - Write-Host "$($i + 1)) $($Options[$i])" - } - - Write-Host "$($Options.length + 1)) Quit" - $selection = (Read-Host $Prompt) -as [int] - - if ($selection -eq $Options.length + 1) { - Write-Host "Goodbye!" - exit 1 - } - elseif ($selection -le $Options.length -and $selection -gt 0) { - $choice = $($selection - 1) - break - } - else { - Write-Host "Invalid Option. Try another one." - } - } - - return $choice -} - -function Test-Git-Config { - param( - [String] $Option, - [String] $ErrMsg - ) - - git config $Option | Out-Null - - if ($lastExitCode -ne 0) { - Write-Host $ErrMsg - exit 1 - } -} - -try { - git | Out-Null -} -catch [System.Management.Automation.CommandNotFoundException] { - Write-Host "Git is not installed, and is required for this script!" - exit 1 -} - -Test-Git-Config -Option "user.name" -ErrMsg "Git username not set!`nRun: git config --global user.name 'My Name'" -Test-Git-Config -Option "user.email" -ErrMsg "Git email not set!`nRun: git config --global user.email 'example@myemail.com'" - -$permission = (Get-Acl $pwd).Access | -?{$_.IdentityReference -match $env:UserName ` - -and $_.FileSystemRights -match "FullControl" ` - -or $_.FileSystemRights -match "Write" } | - - Select IdentityReference,FileSystemRights - -If (-Not $permission){ - Write-Host "Sorry, you do not have write permissions in this directory." - Write-Host "Please try running this script again from a directory that you do have write permissions for." - exit 1 -} - -$repo_path = "https://github.com/zmkfirmware/zmk-config-split-template.git" - -$title = "ZMK Config Setup:" -$prompt = "Pick an MCU board" -$options = "nice!nano", "QMK Proton-C", "BlueMicro840 (v1)", "makerdiary nRF52840 M.2" -$boards = "nice_nano", "proton_c", "bluemicro840_v1", "nrf52840_m2" - -Write-Host "$title" -Write-Host "" -Write-Host "MCU Board Selection:" - -$choice = Get-Choice-From-Options -Options $options -Prompt $prompt -$board = $($boards[$choice]) - -Write-Host "" -Write-Host "Keyboard Shield Selection:" -$prompt = "Pick a keyboard" - -# TODO: Add support for "Other" and linking to docs on adding custom shields in user config repos. -$options = "Kyria", "Lily58", "Corne", "Splitreus62", "Sofle", "Iris", "Reviung41", "RoMac", "RoMac+", "makerdiary M60", "Microdox", "TG4X", "QAZ", "NIBBLE", "Jorne", "Jian" -$names = "kyria", "lily58", "corne", "splitreus62", "sofle", "iris", "reviung41", "romac", "romac_plus", "m60", "microdox", "tg4x", "qaz", "nibble", "jorne", "jian" -$splits = "y", "y", "y", "y", "y", "y", "n", "n", "n", "n", "y", "n", "n", "n", "y", "y" - -$choice = Get-Choice-From-Options -Options $options -Prompt $prompt -$shield_title = $($options[$choice]) -$shield = $($names[$choice]) -$split = $($splits[$choice]) - -if ($split -eq "n") { - $repo_path = "https://github.com/zmkfirmware/zmk-config-template.git" -} - -$copy_keymap = Read-Host "Copy in the stock keymap for customisation? [Yn]" - -if ($copy_keymap -eq "" -or $copy_keymap -eq "Y" -or $copy_keymap -eq "y") { - $copy_keymap = "yes" -} - -$github_user = Read-Host "GitHub Username (leave empty to skip GitHub repo creation)" - -if ($github_user -ne "") { - $repo_name = Read-Host "GitHub Repo Name [zmk-config]" - - if ($repo_name -eq "") { - $repo_name = "zmk-config" - } - - $github_repo = Read-Host "GitHub Repo [https://github.com/$github_user/$repo_name.git]" - - if ($github_repo -eq "") { - $github_repo = "https://github.com/$github_user/$repo_name.git" - } -} -else { - $repo_name = "zmk-config" - $github_repo = "" -} - -Write-Host "" -Write-Host "Preparing a user config for:" -Write-Host "* MCU Board: ${board}" -Write-Host "* Shield: ${shield}" - -if ($copy_keymap -eq "yes") { - Write-Host "* Copy Keymap?: Yes" -} -else { - Write-Host "* Copy Keymap?: No" -} - -if ($github_repo -ne "") { - Write-Host "* GitHub Repo to Push (please create this in GH first!): $github_repo" -} - -Write-Host "" -$do_it = Read-Host "Continue? [Yn]" - -if ($do_it -ne "" -and $do_it -ne "Y" -and $do_it -ne "y") { - Write-Host "Aborting..." - exit 1 -} - -git clone --single-branch "$repo_path" "$repo_name" -Set-Location "$repo_name" - -Push-Location config - -Invoke-RestMethod -Uri "https://raw.githubusercontent.com/zmkfirmware/zmk/main/app/boards/shields/${shield}/${shield}.conf" -OutFile "${shield}.conf" - -if ($copy_keymap -eq "yes") { - Invoke-RestMethod -Uri "https://raw.githubusercontent.com/zmkfirmware/zmk/main/app/boards/shields/${shield}/${shield}.keymap" -OutFile "${shield}.keymap" -} - -Pop-Location - -$build_file = (Get-Content .github/workflows/build.yml).replace("BOARD_NAME", $board) -$build_file = $build_file.replace("SHIELD_NAME", $shield) -$build_file = $build_file.replace("KEYBOARD_TITLE", $shield_title) - -if ($board -eq "proton_c") { - $build_file = $build_file.replace("uf2", "hex") -} - -Set-Content -Path .github/workflows/build.yml -Value $build_file - -Remove-Item -Recurse -Force .git -git init . -git add . -git commit -m "Initial User Config." - -if ($github_repo -ne "") { - git remote add origin "$github_repo" - - git push --set-upstream origin $(git symbolic-ref --short HEAD) - - # If push failed, assume that the origin was incorrect and give instructions on fixing. - if ($lastExitCode -ne 0) { - Write-Host "Remote repository $github_repo not found..." - Write-Host "Check GitHub URL, and try adding again." - Write-Host "Run the following: " - Write-Host " git remote rm origin" - Write-Host " git remote add origin FIXED_URL" - Write-Host " git push --set-upstream origin $(git symbolic-ref --short HEAD)" - Write-Host "Once pushed, your firmware should be availalbe from GitHub Actions at: $actions" - exit 1 - } - - if ($github_repo -imatch "https") { - $actions = "$($github_repo.substring(0, $github_repo.length - 4))/actions" - Write-Host "Your firmware should be availalbe from GitHub Actions shortly: $actions" - } -} diff --git a/zmk/docs/static/setup.sh b/zmk/docs/static/setup.sh deleted file mode 100644 index 4360f2c5..00000000 --- a/zmk/docs/static/setup.sh +++ /dev/null @@ -1,224 +0,0 @@ -#!/bin/bash - -# Copyright (c) 2020 The ZMK Contributors -# -# SPDX-License-Identifier: MIT - -set -e - -check_exists() { - command_to_run=$1 - error_message=$2 - local __resultvar=$3 - - if ! eval "$command_to_run" &> /dev/null; then - if [[ "$__resultvar" != "" ]]; then - eval $__resultvar="'false'" - else - printf "%s\n" "$error_message" - exit 1 - fi - else - if [[ "$__resultvar" != "" ]]; then - eval $__resultvar="'true'" - fi - fi -} - -check_exists "command -v git" "git is not installed, and is required for this script!" -check_exists "command -v curl" "curl is not installed, and is required for this script!" curl_exists -check_exists "command -v wget" "wget is not installed, and is required for this script!" wget_exists - -check_exists "git config user.name" "Git username not set!\nRun: git config --global user.name 'My Name'" -check_exists "git config user.email" "Git email not set!\nRun: git config --global user.email 'example@myemail.com'" - -# Check to see if the user has write permissions in this directory to prevent a cryptic error later on -if [ ! -w `pwd` ]; then - echo 'Sorry, you do not have write permissions in this directory.'; - echo 'Please try running this script again from a directory that you do have write permissions for.'; - exit 1 -fi - -# Parse all commandline options -while [[ "$#" -gt 0 ]]; do - case $1 in - -w|--wget) force_wget="true"; break;; - *) echo "Unknown parameter: $1"; exit 1;; - esac - shift -done - -if [[ $curl_exists == "true" && $wget_exists == "true" ]]; then - if [[ $force_wget == "true" ]]; then - download_command="wget " - else - download_command="curl -O " - fi -elif [[ $curl_exists == "true" ]]; then - download_command="curl -O " -elif [[ $wget_exists == "true" ]]; then - download_command="wget " -else - echo 'Neither curl nor wget are installed. One of the two is required for this script!' - exit 1 -fi - -repo_path="https://github.com/zmkfirmware/zmk-config-split-template.git" -title="ZMK Config Setup:" - -prompt="Pick an MCU board:" -options=("nice!nano" "QMK Proton-C" "BlueMicro840 (v1)" "makerdiary nRF52840 M.2") - -echo "$title" -echo "" -echo "MCU Board Selection:" -PS3="$prompt " -select opt in "${options[@]}" "Quit"; do - - case "$REPLY" in - - 1 ) board="nice_nano"; break;; - 2 ) board="proton_c"; break;; - 3 ) board="bluemicro840_v1"; break;; - 3 ) board="nrf52840_m2"; break;; - - $(( ${#options[@]}+1 )) ) echo "Goodbye!"; exit 1;; - *) echo "Invalid option. Try another one."; continue;; - - esac -done - -echo "" -echo "Keyboard Shield Selection:" - -prompt="Pick an keyboard:" -options=("Kyria" "Lily58" "Corne" "Splitreus62" "Sofle" "Iris" "Reviung41" "RoMac" "RoMac+" "makerdiary M60" "Microdox" "TG4X" "QAZ" "Jorne" "Jian") - -PS3="$prompt " -# TODO: Add support for "Other" and linking to docs on adding custom shields in user config repos. -# select opt in "${options[@]}" "Other" "Quit"; do -select opt in "${options[@]}" "Quit"; do - - case "$REPLY" in - - 1 ) shield_title="Kyria" shield="kyria"; split="y"; break;; - 2 ) shield_title="Lily58" shield="lily58"; split="y"; break;; - 3 ) shield_title="Corne" shield="corne"; split="y"; break;; - 4 ) shield_title="Splitreus62" shield="splitreus62"; split="y"; break;; - 5 ) shield_title="Sofle" shield="sofle"; split="y"; break;; - 6 ) shield_title="Iris" shield="iris"; split="y"; break;; - 7 ) shield_title="Reviung41" shield="reviung41"; split="n"; break;; - 8 ) shield_title="RoMac" shield="romac"; split="n"; break;; - 9 ) shield_title="RoMac+" shield="romac_plus"; split="n"; break;; - 10 ) shield_title="M60" shield="m60"; split="n"; break;; - 11 ) shield_title="Microdox" shield="microdox"; split="y"; break;; - 12 ) shield_title="TG4X" shield="tg4x"; split="n"; break;; - 13 ) shield_title="QAZ" shield="qaz"; split="n"; break;; - 14 ) shield_title="NIBBLE" shield="nibble"; split="n"; break;; - 15 ) shield_title="Jorne" shield="jorne"; split="y"; break;; - 16 ) shield_title="Jian" shield="jian"; split="y"; break;; - - # Add link to docs on adding your own custom shield in your ZMK config! - # $(( ${#options[@]}+1 )) ) echo "Other!"; break;; - $(( ${#options[@]}+1 )) ) echo "Goodbye!"; exit 1;; - *) echo "Invalid option. Try another one.";continue;; - - esac -done - -if [ "$split" == "n" ]; then - repo_path="https://github.com/zmkfirmware/zmk-config-template.git" -fi - -read -r -e -p "Copy in the stock keymap for customization? [Yn]: " copy_keymap - -if [ -z "$copy_keymap" ] || [ "$copy_keymap" == "Y" ] || [ "$copy_keymap" == "y" ]; then copy_keymap="yes"; fi - -read -r -e -p "GitHub Username (leave empty to skip GitHub repo creation): " github_user -if [ -n "$github_user" ]; then - read -r -p "GitHub Repo Name [zmk-config]: " repo_name - if [ -z "$repo_name" ]; then repo_name="zmk-config"; fi - - read -r -p "GitHub Repo [https://github.com/${github_user}/${repo_name}.git]: " github_repo - - if [ -z "$github_repo" ]; then github_repo="https://github.com/${github_user}/${repo_name}.git"; fi -else - repo_name="zmk-config" -fi - -echo "" -echo "Preparing a user config for:" -echo "* MCU Board: ${board}" -echo "* Shield: ${shield}" - -if [ "$copy_keymap" == "yes" ]; then - echo "* Copy Keymap?: ✓" -else - echo "* Copy Keymap?: ❌" -fi - -if [ -n "$github_repo" ]; then - echo "* GitHub Repo To Push (please create this in GH first!): ${github_repo}" -fi - -echo "" -read -r -p "Continue? [Yn]: " do_it - -if [ -n "$do_it" ] && [ "$do_it" != "y" ] && [ "$do_it" != "Y" ]; then - echo "Aborting..." - exit 1 -fi - -git clone --single-branch $repo_path ${repo_name} -cd ${repo_name} - -pushd config - -$download_command "https://raw.githubusercontent.com/zmkfirmware/zmk/main/app/boards/shields/${shield}/${shield}.conf" - -if [ "$copy_keymap" == "yes" ]; then - $download_command "https://raw.githubusercontent.com/zmkfirmware/zmk/main/app/boards/shields/${shield}/${shield}.keymap" -fi - -popd - -sed -i'.orig' \ - -e "s/BOARD_NAME/$board/" \ - -e "s/SHIELD_NAME/$shield/" \ - -e "s/KEYBOARD_TITLE/$shield_title/" \ - .github/workflows/build.yml - -if [ "$board" == "proton_c" ]; then - # Proton-C board still fa - sed -i'.orig' -e "s/uf2/hex/g" .github/workflows/build.yml -fi - -rm .github/workflows/*.yml.orig - -rm -rf .git -git init . -git add . -git commit -m "Initial User Config." - -if [ -n "$github_repo" ]; then - git remote add origin "$github_repo" - git push --set-upstream origin "$(git symbolic-ref --short HEAD)" - push_return_code=$? - - # If push failed, assume that the origin was incorrect and give instructions on fixing. - if [ ${push_return_code} -ne 0 ]; then - echo "Remote repository $github_repo not found..." - echo "Check GitHub URL, and try adding again." - echo "Run the following: " - echo " git remote rm origin" - echo " git remote add origin FIXED_URL" - echo " git push --set-upstream origin $(git symbolic-ref --short HEAD)" - echo "Once pushed, your firmware should be availalbe from GitHub Actions at: ${github_repo%.git}/actions" - exit 1 - fi - - # TODO: Support determing the actions URL when non-https:// repo URL is used. - if [ "${github_repo}" != "${github_repo#https://}" ]; then - echo "Your firmware should be available from GitHub Actions shortly: ${github_repo%.git}/actions" - fi -fi