From c4b6f53a330286696b74da0bf6a0989828f03bab Mon Sep 17 00:00:00 2001 From: Nikola Date: Mon, 15 Apr 2024 02:35:50 +0300 Subject: [PATCH 01/22] squash! --- .github/CODEOWNERS | 3 - .github/PULL_REQUEST_TEMPLATE.md | 33 - .github/dependabot.yml | 20 + .github/workflows/Dependabot.yml | 45 + .github/workflows/GitHub.yml | 57 + .github/workflows/NPM.yml | 43 + .github/workflows/Node.yml | 100 + .github/workflows/ci.yml | 52 - .prettierrc.yaml | 5 - .vscode/extensions.json | 7 - .vscode/launch.json | 30 - .vscode/settings.json | 10 - .vscode/tasks.json | 25 - .../adafruit_circuitplayground/__init__.py | 0 .../adafruit_circuitplayground/constants.py | 0 .../adafruit_circuitplayground/express.py | 0 .../locale/en/LC_MESSAGES/express.po | 0 .../locale/express.pot | 0 .../adafruit_circuitplayground/pixel.py | 0 .../base_circuitpython/__init__.py | 16 +- .../base_circuitpython/base_cp_constants.py | 0 {src => Source}/base_circuitpython/board.py | 256 +- .../base_circuitpython/digitalio.py | 34 +- .../base_circuitpython/displayio/__init__.py | 22 +- .../base_circuitpython/displayio/bitmap.py | 210 +- .../displayio/color_type.py | 24 +- .../base_circuitpython/displayio/constants.py | 24 +- .../base_circuitpython/displayio/group.py | 708 +- .../base_circuitpython/displayio/palette.py | 162 +- .../base_circuitpython/displayio/tile_grid.py | 560 +- {src => Source}/base_circuitpython/fontio.py | 28 +- .../base_circuitpython/fonts/ter-u12n.bdf | 0 .../base_circuitpython/img/blinka.bmp | Bin .../base_circuitpython/neopixel_write.py | 110 +- {src => Source}/base_circuitpython/pulseio.py | 32 +- .../base_circuitpython/terminal_handler.py | 216 +- .../base_circuitpython/terminalio.py | 30 +- {src => Source}/check_if_venv.py | 22 +- {src => Source}/check_python_dependencies.py | 0 {src => Source}/clue/__init__.py | 2 +- {src => Source}/clue/adafruit_clue.py | 1704 +- .../clue/adafruit_display_text/label.py | 560 +- {src => Source}/clue/adafruit_slideshow.py | 814 +- .../test => Source/common}/__init__.py | 0 {src => Source}/common/constants.py | 24 +- .../common/debugger_communication_client.py | 0 {src => Source}/common/telemetry.py | 0 {src => Source}/common/telemetry_events.py | 130 +- {src => Source}/common/utils.py | 0 {src => Source}/constants.ts | 0 {src => Source}/cpxWorkspace.ts | 0 {src => Source}/debug_user_code.py | 0 {src => Source}/debugger/debugAdapter.ts | 0 .../debugger/debugAdapterFactory.ts | 0 .../debuggerCommunicationServer.ts | 0 {src => Source}/dev-requirements.txt | 0 {src => Source}/device.py | 0 {src => Source}/deviceContext.ts | 0 {src => Source}/extension.ts | 0 {src => Source}/extension_utils/utils.ts | 0 {src => Source}/install_dependencies.py | 18 +- {src => Source}/latest_release_note.ts | 0 .../test => Source/micropython}/__init__.py | 0 {src => Source}/micropython/audio.py | 0 .../micropython/microbit/__init__.py | 0 .../microbit/__model/accelerometer.py | 0 .../micropython/microbit/__model/button.py | 0 .../micropython/microbit/__model/compass.py | 0 .../micropython/microbit/__model/constants.py | 0 .../micropython/microbit/__model/display.py | 0 .../micropython/microbit/__model/i2c.py | 0 .../micropython/microbit/__model/image.py | 0 .../microbit/__model/microbit_model.py | 0 .../microbit/__model/producer_property.py | 0 .../micropython/microbit/__model/spi.py | 0 {src => Source}/micropython/music.py | 218 +- {src => Source}/micropython/radio.py | 360 +- {src => Source}/micropython/speech.py | 122 +- {src => Source}/micropython/utime.py | 264 +- {src => Source}/process_user_code.py | 0 {src => Source}/python_constants.py | 0 {src => Source}/requirements.txt | 0 {src => Source}/serialMonitor.ts | 0 {src => Source}/serialPortControl.ts | 0 {src => Source}/service/PopupService.ts | 32 +- .../service/debuggerCommunicationService.ts | 54 +- .../service/deviceSelectionService.ts | 24 +- .../service/fileSelectionService.ts | 190 +- {src => Source}/service/messagingService.ts | 0 {src => Source}/service/setupService.ts | 1152 +- .../service/telemetryHandlerService.ts | 0 {src => Source}/service/webviewService.ts | 0 .../simulatorDebugConfigurationProvider.ts | 0 {src => Source}/telemetry/getPackageInfo.ts | 0 {src => Source}/telemetry/telemetryAI.ts | 0 {src => Source}/templates/clue_template.py | 32 +- {src => Source}/templates/cpx_template.py | 32 +- .../templates/microbit_template.py | 22 +- {src => Source}/usbDetector.ts | 0 {src => Source}/view/App.css | 0 {src => Source}/view/App.tsx | 0 {src => Source}/view/components/Button.tsx | 0 {src => Source}/view/components/Dropdown.tsx | 0 {src => Source}/view/components/clue/Clue.tsx | 316 +- .../view/components/clue/ClueImage.tsx | 312 +- .../view/components/clue/ClueSimulator.tsx | 0 .../view/components/clue/Clue_svg.tsx | 2368 +- .../components/cpx/Accessibility_utils.ts | 0 {src => Source}/view/components/cpx/Cpx.tsx | 208 +- .../view/components/cpx/CpxImage.tsx | 0 .../view/components/cpx/CpxSimulator.tsx | 0 .../view/components/cpx/Cpx_svg.tsx | 0 .../view/components/cpx/Cpx_svg_style.tsx | 0 .../view/components/cpx/Svg_utils.tsx | 0 .../view/components/microbit/Microbit.tsx | 260 +- .../components/microbit/MicrobitImage.tsx | 332 +- .../components/microbit/MicrobitSimulator.tsx | 518 +- .../view/components/microbit/Microbit_svg.tsx | 3780 +- .../view/components/simulator/ActionBar.tsx | 0 .../toolbar/GenericSliderComponent.tsx | 82 +- .../view/components/toolbar/Gesture.tsx | 142 +- .../view/components/toolbar/InputSlider.tsx | 0 .../view/components/toolbar/SensorButton.tsx | 0 .../components/toolbar/SensorModalUtils.tsx | 0 .../view/components/toolbar/ToolBar.tsx | 0 .../toolbar/clue/ClueModalContent.tsx | 636 +- .../toolbar/clue/ClueSensorProperties.tsx | 432 +- .../toolbar/cpx/CpxModalContent.tsx | 0 .../toolbar/cpx/CpxSensorProperties.tsx | 0 .../toolbar/microbit/MicrobitModalContent.tsx | 374 +- .../microbit/MicrobitSensorProperties.tsx | 0 {src => Source}/view/constants.ts | 0 .../view/container/device/Device.tsx | 0 {src => Source}/view/context.ts | 0 {src => Source}/view/index.css | 0 {src => Source}/view/index.tsx | 0 {src => Source}/view/pages/gettingStarted.css | 112 +- {src => Source}/view/pages/gettingStarted.tsx | 562 +- .../debugger/debugger_vars.png | Bin .../debugger/debugging.gif | Bin .../debugger/start_debugging.jpg | Bin .../debugger/toolbar.png | Bin {src => Source}/view/react-app-env.d.ts | 0 {src => Source}/view/styles/Button.css | 0 {src => Source}/view/styles/Dropdown.css | 0 {src => Source}/view/styles/InputSlider.css | 0 .../view/styles/LightSensorBar.css | 0 .../view/styles/MotionSensorBar.css | 0 {src => Source}/view/styles/SensorButton.css | 0 {src => Source}/view/styles/Simulator.css | 0 {src => Source}/view/styles/SimulatorSvg.css | 580 +- .../view/styles/TemperatureSensorBar.css | 0 {src => Source}/view/styles/ToolBar.css | 0 {src => Source}/view/svgs/arrow_right_svg.tsx | 0 {src => Source}/view/svgs/close_svg.tsx | 0 {src => Source}/view/svgs/play_svg.tsx | 0 {src => Source}/view/svgs/refresh_svg.tsx | 0 {src => Source}/view/svgs/stop_svg.tsx | 0 {src => Source}/view/svgs/tag_input_svg.tsx | 0 {src => Source}/view/svgs/tag_output_svg.tsx | 0 {src => Source}/view/svgs/toolbar_svg.tsx | 0 {src => Source}/view/translations/en.json | 224 +- {src => Source}/view/tsconfig.json | 0 {src => Source}/view/utils/MessageUtils.tsx | 24 +- {src => Source}/view/viewUtils.tsx | 0 {src => Source}/vscode_import.ts | 0 package-lock.json | 32342 ---------------- package.json | 599 +- .../test/sample.mp4 | Bin 1055736 -> 0 bytes .../test/sample.wav | Bin 210158 -> 0 bytes .../test/test_express.py | 115 - .../test/test_pixel.py | 117 - .../displayio/test/img/group_test_result.bmp | Bin 172854 -> 0 bytes .../displayio/test/test_bitmap.py | 44 - .../displayio/test/test_group.py | 174 - .../displayio/test/test_palette.py | 31 - .../displayio/test/test_tile_grid.py | 173 - src/base_circuitpython/test/__init__.py | 0 .../test/test_terminal_handler.py | 61 - src/clue/test/__init__.py | 0 src/clue/test/img/test_clue_text_1.bmp | Bin 172854 -> 0 bytes src/clue/test/img/test_display_text_1.bmp | Bin 172854 -> 0 bytes src/clue/test/img/test_display_text_2.bmp | Bin 172854 -> 0 bytes src/clue/test/img/test_display_text_3.bmp | Bin 172854 -> 0 bytes src/clue/test/img/test_display_text_4.bmp | Bin 172854 -> 0 bytes src/clue/test/img/test_image_shapes_1.bmp | Bin 172854 -> 0 bytes src/clue/test/img/test_image_shapes_2.bmp | Bin 172854 -> 0 bytes src/clue/test/img/test_image_shapes_3.bmp | Bin 172854 -> 0 bytes src/clue/test/img/test_image_shapes_4.bmp | Bin 172854 -> 0 bytes src/clue/test/img/test_image_shapes_5.bmp | Bin 172854 -> 0 bytes src/clue/test/img/test_image_text_1.bmp | Bin 230454 -> 0 bytes src/clue/test/img/test_image_text_2.bmp | Bin 230454 -> 0 bytes src/clue/test/img/test_image_text_3.bmp | Bin 230454 -> 0 bytes src/clue/test/img/test_image_text_4.bmp | Bin 230454 -> 0 bytes src/clue/test/slideshow_pics/pic_1.bmp | Bin 113974 -> 0 bytes src/clue/test/slideshow_pics/pic_2.bmp | Bin 113974 -> 0 bytes src/clue/test/slideshow_pics/pic_3.bmp | Bin 330726 -> 0 bytes src/clue/test/slideshow_pics/pic_4.bmp | Bin 327414 -> 0 bytes src/clue/test/slideshow_pics/pic_5.bmp | Bin 225622 -> 0 bytes src/clue/test/slideshow_pics/pic_6.bmp | Bin 115818 -> 0 bytes src/clue/test/slideshow_pics/pic_7.bmp | Bin 93510 -> 0 bytes src/clue/test/slideshow_pics/pic_8.bmp | Bin 193734 -> 0 bytes src/clue/test/test_adafruit_clue.py | 193 - src/clue/test/test_adafruit_display_shapes.py | 81 - src/clue/test/test_adafruit_display_text.py | 65 - src/clue/test/test_adafruit_slideshow.py | 100 - src/clue/test/test_helpers.py | 32 - src/common/__init__.py | 0 src/common/test/__init__.py | 0 .../test_debugger_communication_client.py | 193 - src/common/test/test_utils.py | 32 - src/micropython/__init__.py | 0 src/micropython/microbit/test/__init__.py | 0 .../microbit/test/test_accelerometer.py | 104 - src/micropython/microbit/test/test_button.py | 46 - src/micropython/microbit/test/test_display.py | 185 - src/micropython/microbit/test/test_image.py | 283 - src/micropython/microbit/test/test_init.py | 45 - .../microbit/test/test_microbit_model.py | 48 - src/test/runTest.ts | 23 - src/test/suite/index.ts | 50 - src/view/App.spec.tsx | 28 - src/view/__snapshots__/App.spec.tsx.snap | 11 - src/view/components/clue/Clue.spec.tsx | 29 - .../clue/__snapshots__/Clue.spec.tsx.snap | 2202 -- src/view/components/cpx/Cpx.spec.tsx | 29 - .../cpx/__snapshots__/Cpx.spec.tsx.snap | 4666 --- .../components/microbit/Microbit.spec.tsx | 29 - .../__snapshots__/Microbit.spec.tsx.snap | 3238 -- src/view/components/toolbar/Toolbar.spec.tsx | 57 - .../__snapshots__/Toolbar.spec.tsx.snap | 143 - src/view/container/device/Device.spec.tsx | 30 - .../device/__snapshots__/Device.spec.tsx.snap | 3240 -- .../gettingStarted.spec.tsx.snap | 901 - src/view/pages/gettingStarted.spec.tsx | 29 - 235 files changed, 10274 insertions(+), 59394 deletions(-) delete mode 100644 .github/CODEOWNERS delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/Dependabot.yml create mode 100644 .github/workflows/GitHub.yml create mode 100644 .github/workflows/NPM.yml create mode 100644 .github/workflows/Node.yml delete mode 100644 .github/workflows/ci.yml delete mode 100644 .prettierrc.yaml delete mode 100644 .vscode/extensions.json delete mode 100644 .vscode/launch.json delete mode 100644 .vscode/settings.json delete mode 100644 .vscode/tasks.json rename {src => Source}/adafruit_circuitplayground/__init__.py (100%) rename {src => Source}/adafruit_circuitplayground/constants.py (100%) rename {src => Source}/adafruit_circuitplayground/express.py (100%) rename {src => Source}/adafruit_circuitplayground/locale/en/LC_MESSAGES/express.po (100%) rename {src => Source}/adafruit_circuitplayground/locale/express.pot (100%) rename {src => Source}/adafruit_circuitplayground/pixel.py (100%) rename {src => Source}/base_circuitpython/__init__.py (96%) rename {src => Source}/base_circuitpython/base_cp_constants.py (100%) rename {src => Source}/base_circuitpython/board.py (92%) rename {src => Source}/base_circuitpython/digitalio.py (95%) rename {src => Source}/base_circuitpython/displayio/__init__.py (96%) rename {src => Source}/base_circuitpython/displayio/bitmap.py (96%) rename {src => Source}/base_circuitpython/displayio/color_type.py (96%) rename {src => Source}/base_circuitpython/displayio/constants.py (97%) rename {src => Source}/base_circuitpython/displayio/group.py (96%) rename {src => Source}/base_circuitpython/displayio/palette.py (97%) rename {src => Source}/base_circuitpython/displayio/tile_grid.py (96%) rename {src => Source}/base_circuitpython/fontio.py (97%) rename {src => Source}/base_circuitpython/fonts/ter-u12n.bdf (100%) rename {src => Source}/base_circuitpython/img/blinka.bmp (100%) rename {src => Source}/base_circuitpython/neopixel_write.py (96%) rename {src => Source}/base_circuitpython/pulseio.py (96%) rename {src => Source}/base_circuitpython/terminal_handler.py (96%) rename {src => Source}/base_circuitpython/terminalio.py (97%) rename {src => Source}/check_if_venv.py (96%) rename {src => Source}/check_python_dependencies.py (100%) rename {src => Source}/clue/__init__.py (96%) rename {src => Source}/clue/adafruit_clue.py (97%) rename {src => Source}/clue/adafruit_display_text/label.py (97%) rename {src => Source}/clue/adafruit_slideshow.py (97%) rename {src/adafruit_circuitplayground/test => Source/common}/__init__.py (100%) rename {src => Source}/common/constants.py (95%) rename {src => Source}/common/debugger_communication_client.py (100%) rename {src => Source}/common/telemetry.py (100%) rename {src => Source}/common/telemetry_events.py (97%) rename {src => Source}/common/utils.py (100%) rename {src => Source}/constants.ts (100%) rename {src => Source}/cpxWorkspace.ts (100%) rename {src => Source}/debug_user_code.py (100%) rename {src => Source}/debugger/debugAdapter.ts (100%) rename {src => Source}/debugger/debugAdapterFactory.ts (100%) rename {src => Source}/debuggerCommunicationServer.ts (100%) rename {src => Source}/dev-requirements.txt (100%) rename {src => Source}/device.py (100%) rename {src => Source}/deviceContext.ts (100%) rename {src => Source}/extension.ts (100%) rename {src => Source}/extension_utils/utils.ts (100%) rename {src => Source}/install_dependencies.py (96%) rename {src => Source}/latest_release_note.ts (100%) rename {src/base_circuitpython/displayio/test => Source/micropython}/__init__.py (100%) rename {src => Source}/micropython/audio.py (100%) rename {src => Source}/micropython/microbit/__init__.py (100%) rename {src => Source}/micropython/microbit/__model/accelerometer.py (100%) rename {src => Source}/micropython/microbit/__model/button.py (100%) rename {src => Source}/micropython/microbit/__model/compass.py (100%) rename {src => Source}/micropython/microbit/__model/constants.py (100%) rename {src => Source}/micropython/microbit/__model/display.py (100%) rename {src => Source}/micropython/microbit/__model/i2c.py (100%) rename {src => Source}/micropython/microbit/__model/image.py (100%) rename {src => Source}/micropython/microbit/__model/microbit_model.py (100%) rename {src => Source}/micropython/microbit/__model/producer_property.py (100%) rename {src => Source}/micropython/microbit/__model/spi.py (100%) rename {src => Source}/micropython/music.py (97%) rename {src => Source}/micropython/radio.py (97%) rename {src => Source}/micropython/speech.py (97%) rename {src => Source}/micropython/utime.py (97%) rename {src => Source}/process_user_code.py (100%) rename {src => Source}/python_constants.py (100%) rename {src => Source}/requirements.txt (100%) rename {src => Source}/serialMonitor.ts (100%) rename {src => Source}/serialPortControl.ts (100%) rename {src => Source}/service/PopupService.ts (96%) rename {src => Source}/service/debuggerCommunicationService.ts (97%) rename {src => Source}/service/deviceSelectionService.ts (96%) rename {src => Source}/service/fileSelectionService.ts (97%) rename {src => Source}/service/messagingService.ts (100%) rename {src => Source}/service/setupService.ts (97%) rename {src => Source}/service/telemetryHandlerService.ts (100%) rename {src => Source}/service/webviewService.ts (100%) rename {src => Source}/simulatorDebugConfigurationProvider.ts (100%) rename {src => Source}/telemetry/getPackageInfo.ts (100%) rename {src => Source}/telemetry/telemetryAI.ts (100%) rename {src => Source}/templates/clue_template.py (97%) rename {src => Source}/templates/cpx_template.py (97%) rename {src => Source}/templates/microbit_template.py (97%) rename {src => Source}/usbDetector.ts (100%) rename {src => Source}/view/App.css (100%) rename {src => Source}/view/App.tsx (100%) rename {src => Source}/view/components/Button.tsx (100%) rename {src => Source}/view/components/Dropdown.tsx (100%) rename {src => Source}/view/components/clue/Clue.tsx (96%) rename {src => Source}/view/components/clue/ClueImage.tsx (97%) rename {src => Source}/view/components/clue/ClueSimulator.tsx (100%) rename {src => Source}/view/components/clue/Clue_svg.tsx (97%) rename {src => Source}/view/components/cpx/Accessibility_utils.ts (100%) rename {src => Source}/view/components/cpx/Cpx.tsx (96%) rename {src => Source}/view/components/cpx/CpxImage.tsx (100%) rename {src => Source}/view/components/cpx/CpxSimulator.tsx (100%) rename {src => Source}/view/components/cpx/Cpx_svg.tsx (100%) rename {src => Source}/view/components/cpx/Cpx_svg_style.tsx (100%) rename {src => Source}/view/components/cpx/Svg_utils.tsx (100%) rename {src => Source}/view/components/microbit/Microbit.tsx (96%) rename {src => Source}/view/components/microbit/MicrobitImage.tsx (97%) rename {src => Source}/view/components/microbit/MicrobitSimulator.tsx (97%) rename {src => Source}/view/components/microbit/Microbit_svg.tsx (97%) rename {src => Source}/view/components/simulator/ActionBar.tsx (100%) rename {src => Source}/view/components/toolbar/GenericSliderComponent.tsx (97%) rename {src => Source}/view/components/toolbar/Gesture.tsx (97%) rename {src => Source}/view/components/toolbar/InputSlider.tsx (100%) rename {src => Source}/view/components/toolbar/SensorButton.tsx (100%) rename {src => Source}/view/components/toolbar/SensorModalUtils.tsx (100%) rename {src => Source}/view/components/toolbar/ToolBar.tsx (100%) rename {src => Source}/view/components/toolbar/clue/ClueModalContent.tsx (97%) rename {src => Source}/view/components/toolbar/clue/ClueSensorProperties.tsx (95%) rename {src => Source}/view/components/toolbar/cpx/CpxModalContent.tsx (100%) rename {src => Source}/view/components/toolbar/cpx/CpxSensorProperties.tsx (100%) rename {src => Source}/view/components/toolbar/microbit/MicrobitModalContent.tsx (97%) rename {src => Source}/view/components/toolbar/microbit/MicrobitSensorProperties.tsx (100%) rename {src => Source}/view/constants.ts (100%) rename {src => Source}/view/container/device/Device.tsx (100%) rename {src => Source}/view/context.ts (100%) rename {src => Source}/view/index.css (100%) rename {src => Source}/view/index.tsx (100%) rename {src => Source}/view/pages/gettingStarted.css (95%) rename {src => Source}/view/pages/gettingStarted.tsx (98%) rename {src => Source}/view/pages/gettingStartedPictures/debugger/debugger_vars.png (100%) rename {src => Source}/view/pages/gettingStartedPictures/debugger/debugging.gif (100%) rename {src => Source}/view/pages/gettingStartedPictures/debugger/start_debugging.jpg (100%) rename {src => Source}/view/pages/gettingStartedPictures/debugger/toolbar.png (100%) rename {src => Source}/view/react-app-env.d.ts (100%) rename {src => Source}/view/styles/Button.css (100%) rename {src => Source}/view/styles/Dropdown.css (100%) rename {src => Source}/view/styles/InputSlider.css (100%) rename {src => Source}/view/styles/LightSensorBar.css (100%) rename {src => Source}/view/styles/MotionSensorBar.css (100%) rename {src => Source}/view/styles/SensorButton.css (100%) rename {src => Source}/view/styles/Simulator.css (100%) rename {src => Source}/view/styles/SimulatorSvg.css (93%) rename {src => Source}/view/styles/TemperatureSensorBar.css (100%) rename {src => Source}/view/styles/ToolBar.css (100%) rename {src => Source}/view/svgs/arrow_right_svg.tsx (100%) rename {src => Source}/view/svgs/close_svg.tsx (100%) rename {src => Source}/view/svgs/play_svg.tsx (100%) rename {src => Source}/view/svgs/refresh_svg.tsx (100%) rename {src => Source}/view/svgs/stop_svg.tsx (100%) rename {src => Source}/view/svgs/tag_input_svg.tsx (100%) rename {src => Source}/view/svgs/tag_output_svg.tsx (100%) rename {src => Source}/view/svgs/toolbar_svg.tsx (100%) rename {src => Source}/view/translations/en.json (99%) rename {src => Source}/view/tsconfig.json (100%) rename {src => Source}/view/utils/MessageUtils.tsx (95%) rename {src => Source}/view/viewUtils.tsx (100%) rename {src => Source}/vscode_import.ts (100%) delete mode 100644 package-lock.json delete mode 100644 src/adafruit_circuitplayground/test/sample.mp4 delete mode 100644 src/adafruit_circuitplayground/test/sample.wav delete mode 100644 src/adafruit_circuitplayground/test/test_express.py delete mode 100644 src/adafruit_circuitplayground/test/test_pixel.py delete mode 100644 src/base_circuitpython/displayio/test/img/group_test_result.bmp delete mode 100644 src/base_circuitpython/displayio/test/test_bitmap.py delete mode 100644 src/base_circuitpython/displayio/test/test_group.py delete mode 100644 src/base_circuitpython/displayio/test/test_palette.py delete mode 100644 src/base_circuitpython/displayio/test/test_tile_grid.py delete mode 100644 src/base_circuitpython/test/__init__.py delete mode 100644 src/base_circuitpython/test/test_terminal_handler.py delete mode 100644 src/clue/test/__init__.py delete mode 100644 src/clue/test/img/test_clue_text_1.bmp delete mode 100644 src/clue/test/img/test_display_text_1.bmp delete mode 100644 src/clue/test/img/test_display_text_2.bmp delete mode 100644 src/clue/test/img/test_display_text_3.bmp delete mode 100644 src/clue/test/img/test_display_text_4.bmp delete mode 100644 src/clue/test/img/test_image_shapes_1.bmp delete mode 100644 src/clue/test/img/test_image_shapes_2.bmp delete mode 100644 src/clue/test/img/test_image_shapes_3.bmp delete mode 100644 src/clue/test/img/test_image_shapes_4.bmp delete mode 100644 src/clue/test/img/test_image_shapes_5.bmp delete mode 100644 src/clue/test/img/test_image_text_1.bmp delete mode 100644 src/clue/test/img/test_image_text_2.bmp delete mode 100644 src/clue/test/img/test_image_text_3.bmp delete mode 100644 src/clue/test/img/test_image_text_4.bmp delete mode 100644 src/clue/test/slideshow_pics/pic_1.bmp delete mode 100644 src/clue/test/slideshow_pics/pic_2.bmp delete mode 100644 src/clue/test/slideshow_pics/pic_3.bmp delete mode 100644 src/clue/test/slideshow_pics/pic_4.bmp delete mode 100644 src/clue/test/slideshow_pics/pic_5.bmp delete mode 100644 src/clue/test/slideshow_pics/pic_6.bmp delete mode 100644 src/clue/test/slideshow_pics/pic_7.bmp delete mode 100644 src/clue/test/slideshow_pics/pic_8.bmp delete mode 100644 src/clue/test/test_adafruit_clue.py delete mode 100644 src/clue/test/test_adafruit_display_shapes.py delete mode 100644 src/clue/test/test_adafruit_display_text.py delete mode 100644 src/clue/test/test_adafruit_slideshow.py delete mode 100644 src/clue/test/test_helpers.py delete mode 100644 src/common/__init__.py delete mode 100644 src/common/test/__init__.py delete mode 100644 src/common/test/test_debugger_communication_client.py delete mode 100644 src/common/test/test_utils.py delete mode 100644 src/micropython/__init__.py delete mode 100644 src/micropython/microbit/test/__init__.py delete mode 100644 src/micropython/microbit/test/test_accelerometer.py delete mode 100644 src/micropython/microbit/test/test_button.py delete mode 100644 src/micropython/microbit/test/test_display.py delete mode 100644 src/micropython/microbit/test/test_image.py delete mode 100644 src/micropython/microbit/test/test_init.py delete mode 100644 src/micropython/microbit/test/test_microbit_model.py delete mode 100644 src/test/runTest.ts delete mode 100644 src/test/suite/index.ts delete mode 100644 src/view/App.spec.tsx delete mode 100644 src/view/__snapshots__/App.spec.tsx.snap delete mode 100644 src/view/components/clue/Clue.spec.tsx delete mode 100644 src/view/components/clue/__snapshots__/Clue.spec.tsx.snap delete mode 100644 src/view/components/cpx/Cpx.spec.tsx delete mode 100644 src/view/components/cpx/__snapshots__/Cpx.spec.tsx.snap delete mode 100644 src/view/components/microbit/Microbit.spec.tsx delete mode 100644 src/view/components/microbit/__snapshots__/Microbit.spec.tsx.snap delete mode 100644 src/view/components/toolbar/Toolbar.spec.tsx delete mode 100644 src/view/components/toolbar/__snapshots__/Toolbar.spec.tsx.snap delete mode 100644 src/view/container/device/Device.spec.tsx delete mode 100644 src/view/container/device/__snapshots__/Device.spec.tsx.snap delete mode 100644 src/view/pages/__snapshots__/gettingStarted.spec.tsx.snap delete mode 100644 src/view/pages/gettingStarted.spec.tsx diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index 7bd16fe97..000000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1,3 +0,0 @@ -# At least one of the code owners below will be required on each PR: - -* @markAtMicrosoft @smmatte @adclements @abmahdy @iennae @nasadigital @isadorasophia @sagarmanchanda diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ef9bbe450..000000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ -# Description: - -Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. - -## Type of change - -Please delete options that are not relevant. - -- [ ] Bug fix (non-breaking change which fixes an issue) -- [ ] New feature (non-breaking change which adds functionality) -- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) -- [ ] This change requires a documentation update - -# Limitations: - -Please describe limitations of this PR - -# Testing: - -Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration - -- [ ] Test A -- [ ] Test B - -# Checklist: - -- [ ] My code follows the style guidelines of this project -- [ ] My code has been formatted with `npm run format` and passes the checks in `npm run check` -- [ ] I have performed a self-review of my own code -- [ ] I have commented my code, particularly in hard-to-understand areas -- [ ] I have made corresponding changes to the documentation -- [ ] My changes generate no new warnings -- [ ] Any dependent changes have been merged and published in downstream modules diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..ee41acd38 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,20 @@ +version: 2 +enable-beta-ecosystems: true + +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + + - package-ecosystem: "pip" + directory: "/Source" + schedule: + interval: "daily" + versioning-strategy: increase + + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "daily" + versioning-strategy: increase diff --git a/.github/workflows/Dependabot.yml b/.github/workflows/Dependabot.yml new file mode 100644 index 000000000..cfa5b9675 --- /dev/null +++ b/.github/workflows/Dependabot.yml @@ -0,0 +1,45 @@ +name: Dependabot + +concurrency: + group: Dependabot-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + security-events: write + contents: write + pull-requests: write + +on: + workflow_dispatch: + pull_request: + +jobs: + Approve: + runs-on: ubuntu-latest + + if: ${{ github.actor == 'dependabot[bot]' }} + + steps: + - uses: dependabot/fetch-metadata@v2.0.0 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + + - run: gh pr review --approve "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + + Merge: + runs-on: ubuntu-latest + + if: ${{ github.actor == 'dependabot[bot]' }} + + steps: + - uses: dependabot/fetch-metadata@v2.0.0 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + + - run: gh pr merge --auto --merge "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/GitHub.yml b/.github/workflows/GitHub.yml new file mode 100644 index 000000000..0be30bac9 --- /dev/null +++ b/.github/workflows/GitHub.yml @@ -0,0 +1,57 @@ +name: GitHub + +concurrency: + group: GitHub-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + issues: write + pull-requests: write + +on: + issues: + types: [opened] + pull_request: + types: [opened] + +jobs: + Assign: + runs-on: ubuntu-latest + + env: + ADBLOCK: true + ASTRO_TELEMETRY_DISABLED: 1 + AUTOMATEDLAB_TELEMETRY_OPTOUT: 1 + AZURE_CORE_COLLECT_TELEMETRY: 0 + CHOOSENIM_NO_ANALYTICS: 1 + DIEZ_DO_NOT_TRACK: 1 + DOTNET_CLI_TELEMETRY_OPTOUT: 1 + DOTNET_INTERACTIVE_CLI_TELEMETRY_OPTOUT: 1 + DO_NOT_TRACK: 1 + ET_NO_TELEMETRY: 1 + GATSBY_TELEMETRY_DISABLED: 1 + GATSBY_TELEMETRY_OPTOUT: 1 + GATSBY_TELEMETRY_OPT_OUT: 1 + GRIT_TELEMETRY_DISABLED: 1 + HASURA_GRAPHQL_ENABLE_TELEMETRY: false + HINT_TELEMETRY: off + HOMEBREW_NO_ANALYTICS: 1 + INFLUXD_REPORTING_DISABLED: true + ITERATIVE_DO_NOT_TRACK: 1 + NEXT_TELEMETRY_DEBUG: 1 + NEXT_TELEMETRY_DISABLED: 1 + NG_CLI_ANALYTICS: false + NUXT_TELEMETRY_DISABLED: 1 + PIN_DO_NOT_TRACK: 1 + POWERSHELL_TELEMETRY_OPTOUT: 1 + SAM_CLI_TELEMETRY: 0 + STNOUPGRADE: 1 + STRIPE_CLI_TELEMETRY_OPTOUT: 1 + TELEMETRY_DISABLED: 1 + + steps: + - uses: pozil/auto-assign-issue@v1.14.0 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + assignees: NikolaRHristov + numOfAssignee: 1 diff --git a/.github/workflows/NPM.yml b/.github/workflows/NPM.yml new file mode 100644 index 000000000..b0332f1a0 --- /dev/null +++ b/.github/workflows/NPM.yml @@ -0,0 +1,43 @@ +name: NPM + +concurrency: + group: NPM-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + security-events: write + contents: write + pull-requests: write + +on: + workflow_dispatch: + release: + types: [created] + workflow_call: + +jobs: + Publish: + runs-on: ubuntu-latest + + permissions: + contents: read + id-token: write + + steps: + - uses: actions/checkout@v4.1.2 + + - uses: actions/setup-node@v4.0.2 + with: + node-version: "18" + registry-url: "https://registry.npmjs.org" + + - run: npm install -g npm + + - name: Publish . + continue-on-error: true + working-directory: . + run: | + npm install --legacy-peer-deps + npm publish --legacy-peer-deps --provenance + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/Node.yml b/.github/workflows/Node.yml new file mode 100644 index 000000000..cd8ec65cf --- /dev/null +++ b/.github/workflows/Node.yml @@ -0,0 +1,100 @@ +name: Node + +concurrency: + group: Node-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + security-events: write + contents: write + pull-requests: write + +on: + workflow_dispatch: + push: + branches: [Current] + pull_request: + branches: [Current] + workflow_call: + +jobs: + Pre-Publish: + runs-on: ubuntu-latest + + env: + ADBLOCK: true + ASTRO_TELEMETRY_DISABLED: 1 + AUTOMATEDLAB_TELEMETRY_OPTOUT: 1 + AZURE_CORE_COLLECT_TELEMETRY: 0 + CHOOSENIM_NO_ANALYTICS: 1 + DIEZ_DO_NOT_TRACK: 1 + DOTNET_CLI_TELEMETRY_OPTOUT: 1 + DOTNET_INTERACTIVE_CLI_TELEMETRY_OPTOUT: 1 + DO_NOT_TRACK: 1 + ET_NO_TELEMETRY: 1 + GATSBY_TELEMETRY_DISABLED: 1 + GATSBY_TELEMETRY_OPTOUT: 1 + GATSBY_TELEMETRY_OPT_OUT: 1 + GRIT_TELEMETRY_DISABLED: 1 + HASURA_GRAPHQL_ENABLE_TELEMETRY: false + HINT_TELEMETRY: off + HOMEBREW_NO_ANALYTICS: 1 + INFLUXD_REPORTING_DISABLED: true + ITERATIVE_DO_NOT_TRACK: 1 + NEXT_TELEMETRY_DEBUG: 1 + NEXT_TELEMETRY_DISABLED: 1 + NG_CLI_ANALYTICS: false + NUXT_TELEMETRY_DISABLED: 1 + PIN_DO_NOT_TRACK: 1 + POWERSHELL_TELEMETRY_OPTOUT: 1 + SAM_CLI_TELEMETRY: 0 + STNOUPGRADE: 1 + STRIPE_CLI_TELEMETRY_OPTOUT: 1 + TELEMETRY_DISABLED: 1 + + strategy: + matrix: + node-version: [18, 19, 20] + + steps: + - uses: actions/checkout@v4.1.2 + + - uses: pnpm/action-setup@v3.0.0 + with: + version: 8.15.5 + run_install: | + - recursive: true + args: [ + --link-workspace-packages=true, + --lockfile-only, + --prefer-frozen-lockfile=false, + --shamefully-hoist=false, + --shared-workspace-lockfile=true, + --strict-peer-dependencies=false, + --unsafe-perm=true + ] + + - uses: actions/setup-node@v4.0.2 + with: + node-version: ${{ matrix.node-version }} + cache: "pnpm" + cache-dependency-path: ./pnpm-lock.yaml + + - run: pnpm install + working-directory: . + + - run: pnpm run build + working-directory: . + + - uses: actions/upload-artifact@v4.3.1 + with: + name: .-Node-${{ matrix.node-version }}-Target + path: ./Target + + - run: pnpm run prepublishOnly + working-directory: . + + - uses: actions/upload-artifact@v4.3.1 + with: + name: .-Node-${{ matrix.node-version }}-Target + path: ./Target diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 93eb4fa78..000000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,52 +0,0 @@ -# This workflow will do a clean install of node dependencies, python dependencies, build the source code and run tests - -name: CI - -on: - push: - branches: [ dev, staging ] - pull_request: - branches: [ dev, staging ] - -jobs: - build-and-test: - - runs-on: ${{ matrix.os }} - - strategy: - fail-fast: false - matrix: - os: [macos-latest, windows-latest, ubuntu-18.04] - node-version: [10.x] - - steps: - - uses: actions/checkout@v2 - - name: Install Linux dependencies - if: matrix.os == 'ubuntu-18.04' - run: | - sudo apt-get update - sudo apt-get install g++-multilib - sudo apt-get install -y build-essential - sudo apt-get install libudev-dev - - name: Use Node.js ${{ matrix.node-version }} and install npm dependencies - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - - run: npm install - - name: Setup Python environment - uses: actions/setup-python@v2 - with: - python-version: 3.x - - run: | - python -m pip install --upgrade pip - pip install -r ./src/dev-requirements.txt - - name: Use npm to compile, format-check and test - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - run: npm run compile - - run: npm run check - - name: Run tests - uses: GabrielBB/xvfb-action@v1.0 - with: - run: npm run test diff --git a/.prettierrc.yaml b/.prettierrc.yaml deleted file mode 100644 index 5379f1e00..000000000 --- a/.prettierrc.yaml +++ /dev/null @@ -1,5 +0,0 @@ -trailingComma: "es5" -tabWidth: 4 -semi: true -endOfLine: auto -printWidth: 80 \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 0a18b9c4b..000000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - // See http://go.microsoft.com/fwlink/?LinkId=827846 - // for the documentation about the extensions.json format - "recommendations": [ - "ms-vscode.vscode-typescript-tslint-plugin" - ] -} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 36aa66946..000000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,30 +0,0 @@ -// A launch configuration that compiles the extension and then opens it inside a new window -// Use IntelliSense to learn about possible attributes. -// Hover to view descriptions of existing attributes. -// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 -{ - "version": "0.2.0", - "configurations": [ - { - "name": "Run Extension", - "type": "extensionHost", - "request": "launch", - "runtimeExecutable": "${execPath}", - "args": ["--extensionDevelopmentPath=${workspaceFolder}"], - "outFiles": ["${workspaceFolder}/out/**/*.js"], - "preLaunchTask": "npm: watch" - }, - { - "name": "Extension Tests", - "type": "extensionHost", - "request": "launch", - "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceFolder}", - "--extensionTestsPath=${workspaceFolder}/out/test/suite/index" - ], - "outFiles": ["${workspaceFolder}/out/test/**/*.js"], - "preLaunchTask": "npm: watch" - } - ] -} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 0b79e8a23..000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,10 +0,0 @@ -// Place your settings in this file to overwrite default and user settings. -{ - "files.exclude": { - "out": false // set this to true to hide the "out" folder with the compiled JS files - }, - "search.exclude": { - "out": true // set this to false to include "out" folder in search results - } - // Turn off tsc task auto detection since we have the necessary tasks as npm scripts -} diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index db16afdd4..000000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,25 +0,0 @@ -// See https://go.microsoft.com/fwlink/?LinkId=733558 -// for the documentation about the tasks.json format -{ - "version": "2.0.0", - "tasks": [ - { - "type": "npm", - "script": "watch", - "problemMatcher": "$tsc-watch", - "isBackground": true, - "presentation": { - "reveal": "never" - }, - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "gulp", - "task": "add-locales", - "problemMatcher": [] - } - ] -} diff --git a/src/adafruit_circuitplayground/__init__.py b/Source/adafruit_circuitplayground/__init__.py similarity index 100% rename from src/adafruit_circuitplayground/__init__.py rename to Source/adafruit_circuitplayground/__init__.py diff --git a/src/adafruit_circuitplayground/constants.py b/Source/adafruit_circuitplayground/constants.py similarity index 100% rename from src/adafruit_circuitplayground/constants.py rename to Source/adafruit_circuitplayground/constants.py diff --git a/src/adafruit_circuitplayground/express.py b/Source/adafruit_circuitplayground/express.py similarity index 100% rename from src/adafruit_circuitplayground/express.py rename to Source/adafruit_circuitplayground/express.py diff --git a/src/adafruit_circuitplayground/locale/en/LC_MESSAGES/express.po b/Source/adafruit_circuitplayground/locale/en/LC_MESSAGES/express.po similarity index 100% rename from src/adafruit_circuitplayground/locale/en/LC_MESSAGES/express.po rename to Source/adafruit_circuitplayground/locale/en/LC_MESSAGES/express.po diff --git a/src/adafruit_circuitplayground/locale/express.pot b/Source/adafruit_circuitplayground/locale/express.pot similarity index 100% rename from src/adafruit_circuitplayground/locale/express.pot rename to Source/adafruit_circuitplayground/locale/express.pot diff --git a/src/adafruit_circuitplayground/pixel.py b/Source/adafruit_circuitplayground/pixel.py similarity index 100% rename from src/adafruit_circuitplayground/pixel.py rename to Source/adafruit_circuitplayground/pixel.py diff --git a/src/base_circuitpython/__init__.py b/Source/base_circuitpython/__init__.py similarity index 96% rename from src/base_circuitpython/__init__.py rename to Source/base_circuitpython/__init__.py index 398a3936b..719319efe 100644 --- a/src/base_circuitpython/__init__.py +++ b/Source/base_circuitpython/__init__.py @@ -1,8 +1,8 @@ -import pathlib -import os -import sys - -abs_path = pathlib.Path(__file__).parent.absolute() -clue_path = os.path.join(abs_path, "../clue") -sys.path.insert(0, os.path.join(abs_path)) -sys.path.insert(0, os.path.join(clue_path)) +import pathlib +import os +import sys + +abs_path = pathlib.Path(__file__).parent.absolute() +clue_path = os.path.join(abs_path, "../clue") +sys.path.insert(0, os.path.join(abs_path)) +sys.path.insert(0, os.path.join(clue_path)) diff --git a/src/base_circuitpython/base_cp_constants.py b/Source/base_circuitpython/base_cp_constants.py similarity index 100% rename from src/base_circuitpython/base_cp_constants.py rename to Source/base_circuitpython/base_cp_constants.py diff --git a/src/base_circuitpython/board.py b/Source/base_circuitpython/board.py similarity index 92% rename from src/base_circuitpython/board.py rename to Source/base_circuitpython/board.py index 8bef9ed4f..5b01da9f6 100644 --- a/src/base_circuitpython/board.py +++ b/Source/base_circuitpython/board.py @@ -1,128 +1,128 @@ -# dummy class for references to board display to work -# https://learn.adafruit.com/arduino-to-circuitpython/the-board-module - - -import terminal_handler - - -class __Display: - def __init__(self): - self.active_group = None - self.terminal = terminal_handler.Terminal() - - def show(self, group=None): - if group != self.active_group: - self.active_group = group - - if group == None: - self.terminal._Terminal__draw() - return - - # if the group has no attribute called - # "draw", then it is liable for updating itself - # when it calls show - if hasattr(group, "_Group__draw"): - group._Group__draw() - - -DISPLAY = __Display() - -# default pin for neopixel, -# shows that this could -# refer to the CPX -# or CLUE neopixel pin -NEOPIXEL = "D00" - -# ETC PINS WITHIN THE CLUE THAT MAY BE REFERENCED -# found by runing print(dir(board)) on clue -A0 = 0 -A1 = 0 -A2 = 0 -A3 = 0 -A4 = 0 -A5 = 0 -A6 = 0 -A7 = 0 - -ACCELEROMETER_GYRO_INTERRUPT = 0 - -BUTTON_A = 0 -BUTTON_B = 0 - -D0 = 0 -D1 = 0 -D2 = 0 -D3 = 0 -D4 = 0 -D5 = 0 -D6 = 0 -D7 = 0 -D8 = 0 -D9 = 0 -D10 = 0 -D11 = 0 -D12 = 0 -D13 = 0 -D14 = 0 -D15 = 0 -D16 = 0 -D17 = 0 -D18 = 0 -D19 = 0 -D20 = 0 - -I2C = 0 - -L = 0 - -MICROPHONE_CLOCK = 0 -MICROPHONE_DATA = 0 - -MISO = 0 -MOSI = 0 - -P0 = 0 -P1 = 0 -P2 = 0 -P3 = 0 -P4 = 0 -P5 = 0 -P6 = 0 -P7 = 0 -P8 = 0 -P9 = 0 -P10 = 0 -P11 = 0 -P12 = 0 -P13 = 0 -P14 = 0 -P15 = 0 -P16 = 0 -P17 = 0 -P18 = 0 -P19 = 0 -P20 = 0 - -PROXIMITY_LIGHT_INTERRUPT = 0 - -RX = 0 -SCK = 0 -SCL = 0 -SDA = 0 - -SPEAKER = 0 - -SPI = 0 - -TFT_BACKLIGHT = 0 -TFT_CS = 0 -TFT_DC = 0 -TFT_MOSI = 0 -TFT_RESET = 0 -TFT_SCK = 0 - -TX = 0 - -UART = 0 - -WHITE_LEDS = 0 +# dummy class for references to board display to work +# https://learn.adafruit.com/arduino-to-circuitpython/the-board-module + + +import terminal_handler + + +class __Display: + def __init__(self): + self.active_group = None + self.terminal = terminal_handler.Terminal() + + def show(self, group=None): + if group != self.active_group: + self.active_group = group + + if group == None: + self.terminal._Terminal__draw() + return + + # if the group has no attribute called + # "draw", then it is liable for updating itself + # when it calls show + if hasattr(group, "_Group__draw"): + group._Group__draw() + + +DISPLAY = __Display() + +# default pin for neopixel, +# shows that this could +# refer to the CPX +# or CLUE neopixel pin +NEOPIXEL = "D00" + +# ETC PINS WITHIN THE CLUE THAT MAY BE REFERENCED +# found by runing print(dir(board)) on clue +A0 = 0 +A1 = 0 +A2 = 0 +A3 = 0 +A4 = 0 +A5 = 0 +A6 = 0 +A7 = 0 + +ACCELEROMETER_GYRO_INTERRUPT = 0 + +BUTTON_A = 0 +BUTTON_B = 0 + +D0 = 0 +D1 = 0 +D2 = 0 +D3 = 0 +D4 = 0 +D5 = 0 +D6 = 0 +D7 = 0 +D8 = 0 +D9 = 0 +D10 = 0 +D11 = 0 +D12 = 0 +D13 = 0 +D14 = 0 +D15 = 0 +D16 = 0 +D17 = 0 +D18 = 0 +D19 = 0 +D20 = 0 + +I2C = 0 + +L = 0 + +MICROPHONE_CLOCK = 0 +MICROPHONE_DATA = 0 + +MISO = 0 +MOSI = 0 + +P0 = 0 +P1 = 0 +P2 = 0 +P3 = 0 +P4 = 0 +P5 = 0 +P6 = 0 +P7 = 0 +P8 = 0 +P9 = 0 +P10 = 0 +P11 = 0 +P12 = 0 +P13 = 0 +P14 = 0 +P15 = 0 +P16 = 0 +P17 = 0 +P18 = 0 +P19 = 0 +P20 = 0 + +PROXIMITY_LIGHT_INTERRUPT = 0 + +RX = 0 +SCK = 0 +SCL = 0 +SDA = 0 + +SPEAKER = 0 + +SPI = 0 + +TFT_BACKLIGHT = 0 +TFT_CS = 0 +TFT_DC = 0 +TFT_MOSI = 0 +TFT_RESET = 0 +TFT_SCK = 0 + +TX = 0 + +UART = 0 + +WHITE_LEDS = 0 diff --git a/src/base_circuitpython/digitalio.py b/Source/base_circuitpython/digitalio.py similarity index 95% rename from src/base_circuitpython/digitalio.py rename to Source/base_circuitpython/digitalio.py index 604db72c3..8d755be82 100644 --- a/src/base_circuitpython/digitalio.py +++ b/Source/base_circuitpython/digitalio.py @@ -1,17 +1,17 @@ -# dummy class for neopixel library to work - -# original implementation docs for digitalio: -# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/digitalio/__init__.html - - -class DigitalInOut: - def __init__(self, pin): - self.pin = pin - pass - - def deinit(self): - pass - - -class Direction: - OUTPUT = 0 +# dummy class for neopixel library to work + +# original implementation docs for digitalio: +# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/digitalio/__init__.html + + +class DigitalInOut: + def __init__(self, pin): + self.pin = pin + pass + + def deinit(self): + pass + + +class Direction: + OUTPUT = 0 diff --git a/src/base_circuitpython/displayio/__init__.py b/Source/base_circuitpython/displayio/__init__.py similarity index 96% rename from src/base_circuitpython/displayio/__init__.py rename to Source/base_circuitpython/displayio/__init__.py index a926bf965..d3cce835b 100644 --- a/src/base_circuitpython/displayio/__init__.py +++ b/Source/base_circuitpython/displayio/__init__.py @@ -1,11 +1,11 @@ -# Displayio implementation loosely based on the -# displayio package in Adafruit CircuitPython - -# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/displayio/__init__.html - -from .bitmap import Bitmap -from .group import Group -from .palette import Palette - -# references to img and bmp_img are for testing purposes -from .tile_grid import TileGrid +# Displayio implementation loosely based on the +# displayio package in Adafruit CircuitPython + +# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/displayio/__init__.html + +from .bitmap import Bitmap +from .group import Group +from .palette import Palette + +# references to img and bmp_img are for testing purposes +from .tile_grid import TileGrid diff --git a/src/base_circuitpython/displayio/bitmap.py b/Source/base_circuitpython/displayio/bitmap.py similarity index 96% rename from src/base_circuitpython/displayio/bitmap.py rename to Source/base_circuitpython/displayio/bitmap.py index c913dff2b..b694b6172 100644 --- a/src/base_circuitpython/displayio/bitmap.py +++ b/Source/base_circuitpython/displayio/bitmap.py @@ -1,105 +1,105 @@ -from . import constants as CONSTANTS - -# Bitmap implementation loosely based on the -# displayio.Bitmap class in Adafruit CircuitPython - -# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/displayio/Bitmap.html - -# The colour of a certain pixel is interpreted -# within the TileGrid instance that the object -# lives within. Each pixel is an integer value -# that refers to the colours in the palette via index. - - -class Bitmap: - """ - .. currentmodule:: displayio - - `Bitmap` -- Stores values in a 2D array - ========================================================================== - - Stores values of a certain size in a 2D array - - .. class:: Bitmap(width, height, value_count) - - Create a Bitmap object with the given fixed size. Each pixel stores a value that is used to - index into a corresponding palette. This enables differently colored sprites to share the - underlying Bitmap. value_count is used to minimize the memory used to store the Bitmap. - - :param int width: The number of values wide - :param int height: The number of values high - :param int value_count: The number of possible pixel values. - - """ - - def __init__(self, width, height, value_count=255): - self.__width = width - self.__height = height - self.values = bytearray(width * height) - - @property - def width(self): - """ - .. attribute:: width - - Width of the bitmap. (read only) - - """ - return self.__width - - @property - def height(self): - """ - .. attribute:: height - - Height of the bitmap. (read only) - - """ - return self.__height - - def __setitem__(self, index, value): - """ - .. method:: __setitem__(index, value) - - Sets the value at the given index. The index can either be an x,y tuple or an int equal - to ``y * width + x``. - - This allows you to:: - - bitmap[0,1] = 3 - - """ - if isinstance(index, tuple): - if index[0] >= self.width or index[1] >= self.height: - raise IndexError(CONSTANTS.PIXEL_OUT_OF_BOUNDS) - - index = index[0] + index[1] * self.width - - try: - self.values[index] = value - except IndexError: - raise IndexError(CONSTANTS.PIXEL_OUT_OF_BOUNDS) - - def __getitem__(self, index): - """ - .. method:: __getitem__(index) - - Returns the value at the given index. The index can either be an x,y tuple or an int equal - to ``y * width + x``. - - This allows you to:: - - print(bitmap[0,1]) - - """ - - if isinstance(index, tuple): - if index[0] >= self.width or index[1] >= self.height: - raise IndexError(CONSTANTS.PIXEL_OUT_OF_BOUNDS) - - index = index[0] + index[1] * self.width - - try: - return self.values[index] - except IndexError: - raise IndexError(CONSTANTS.PIXEL_OUT_OF_BOUNDS) +from . import constants as CONSTANTS + +# Bitmap implementation loosely based on the +# displayio.Bitmap class in Adafruit CircuitPython + +# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/displayio/Bitmap.html + +# The colour of a certain pixel is interpreted +# within the TileGrid instance that the object +# lives within. Each pixel is an integer value +# that refers to the colours in the palette via index. + + +class Bitmap: + """ + .. currentmodule:: displayio + + `Bitmap` -- Stores values in a 2D array + ========================================================================== + + Stores values of a certain size in a 2D array + + .. class:: Bitmap(width, height, value_count) + + Create a Bitmap object with the given fixed size. Each pixel stores a value that is used to + index into a corresponding palette. This enables differently colored sprites to share the + underlying Bitmap. value_count is used to minimize the memory used to store the Bitmap. + + :param int width: The number of values wide + :param int height: The number of values high + :param int value_count: The number of possible pixel values. + + """ + + def __init__(self, width, height, value_count=255): + self.__width = width + self.__height = height + self.values = bytearray(width * height) + + @property + def width(self): + """ + .. attribute:: width + + Width of the bitmap. (read only) + + """ + return self.__width + + @property + def height(self): + """ + .. attribute:: height + + Height of the bitmap. (read only) + + """ + return self.__height + + def __setitem__(self, index, value): + """ + .. method:: __setitem__(index, value) + + Sets the value at the given index. The index can either be an x,y tuple or an int equal + to ``y * width + x``. + + This allows you to:: + + bitmap[0,1] = 3 + + """ + if isinstance(index, tuple): + if index[0] >= self.width or index[1] >= self.height: + raise IndexError(CONSTANTS.PIXEL_OUT_OF_BOUNDS) + + index = index[0] + index[1] * self.width + + try: + self.values[index] = value + except IndexError: + raise IndexError(CONSTANTS.PIXEL_OUT_OF_BOUNDS) + + def __getitem__(self, index): + """ + .. method:: __getitem__(index) + + Returns the value at the given index. The index can either be an x,y tuple or an int equal + to ``y * width + x``. + + This allows you to:: + + print(bitmap[0,1]) + + """ + + if isinstance(index, tuple): + if index[0] >= self.width or index[1] >= self.height: + raise IndexError(CONSTANTS.PIXEL_OUT_OF_BOUNDS) + + index = index[0] + index[1] * self.width + + try: + return self.values[index] + except IndexError: + raise IndexError(CONSTANTS.PIXEL_OUT_OF_BOUNDS) diff --git a/src/base_circuitpython/displayio/color_type.py b/Source/base_circuitpython/displayio/color_type.py similarity index 96% rename from src/base_circuitpython/displayio/color_type.py rename to Source/base_circuitpython/displayio/color_type.py index c56347315..9589028dd 100644 --- a/src/base_circuitpython/displayio/color_type.py +++ b/Source/base_circuitpython/displayio/color_type.py @@ -1,12 +1,12 @@ -# Datatype for the items within a palette -class _ColorType: - def __init__(self, rgb888): - self.rgb888 = rgb888 - self.transparent = False - - def __eq__(self, other): - return ( - isinstance(other, _ColorType) - and self.rgb888 == other.rgb888 - and self.transparent == other.transparent - ) +# Datatype for the items within a palette +class _ColorType: + def __init__(self, rgb888): + self.rgb888 = rgb888 + self.transparent = False + + def __eq__(self, other): + return ( + isinstance(other, _ColorType) + and self.rgb888 == other.rgb888 + and self.transparent == other.transparent + ) diff --git a/src/base_circuitpython/displayio/constants.py b/Source/base_circuitpython/displayio/constants.py similarity index 97% rename from src/base_circuitpython/displayio/constants.py rename to Source/base_circuitpython/displayio/constants.py index bca672472..0a2f180d4 100644 --- a/src/base_circuitpython/displayio/constants.py +++ b/Source/base_circuitpython/displayio/constants.py @@ -1,12 +1,12 @@ -PIXEL_OUT_OF_BOUNDS = "pixel coordinates out of bounds" -PALETTE_OUT_OF_RANGE = "Palette index out of range" -TILE_OUT_OF_BOUNDS = "Tile index out of bounds" -INCORR_SUBCLASS = "Layer must be a Group or TileGrid subclass." -LAYER_ALREADY_IN_GROUP = "Layer already in a group." -GROUP_FULL = "Group Full" -SCALE_TOO_SMALL = "scale must be >= 1" - -SCREEN_HEIGHT_WIDTH = 240 - -CLUE = "CLUE" -BASE_64 = "display_base64" +PIXEL_OUT_OF_BOUNDS = "pixel coordinates out of bounds" +PALETTE_OUT_OF_RANGE = "Palette index out of range" +TILE_OUT_OF_BOUNDS = "Tile index out of bounds" +INCORR_SUBCLASS = "Layer must be a Group or TileGrid subclass." +LAYER_ALREADY_IN_GROUP = "Layer already in a group." +GROUP_FULL = "Group Full" +SCALE_TOO_SMALL = "scale must be >= 1" + +SCREEN_HEIGHT_WIDTH = 240 + +CLUE = "CLUE" +BASE_64 = "display_base64" diff --git a/src/base_circuitpython/displayio/group.py b/Source/base_circuitpython/displayio/group.py similarity index 96% rename from src/base_circuitpython/displayio/group.py rename to Source/base_circuitpython/displayio/group.py index 5acc1f2a8..fa7c142a8 100644 --- a/src/base_circuitpython/displayio/group.py +++ b/Source/base_circuitpython/displayio/group.py @@ -1,354 +1,354 @@ -import base64 -from io import BytesIO -from PIL import Image -import adafruit_display_text - -from displayio.tile_grid import TileGrid -from . import constants as CONSTANTS - -import common -import board -import sys - -# Group implementation loosely based on the -# displayio.Group class in Adafruit CircuitPython -# (with only the functions needed for the CLUE) - -# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/displayio/Group.html - - -class Group: - """ - `Group` -- Group together sprites and subgroups - ========================================================================== - - Manage a group of sprites and groups and how they are inter-related. - - .. class:: Group(*, max_size=4, scale=1, x=0, y=0) - Create a Group of a given size and scale. Scale is in one dimension. For example, scale=2 - leads to a layer's pixel being 2x2 pixels when in the group. - :param int max_size: The maximum group size. - :param int scale: Scale of layer pixels in one dimension. - :param int x: Initial x position within the parent. - :param int y: Initial y position within the parent. - """ - - def __init__( - self, - max_size=sys.maxsize, - scale=1, - x=0, - y=0, - check_active_group_ref=True, - auto_write=True, - ): - self.__check_active_group_ref = check_active_group_ref - self.__auto_write = auto_write - self.__contents = [] - self.__max_size = max_size - - if scale < 1: - raise ValueError(CONSTANTS.SCALE_TOO_SMALL) - - self.__scale = scale - """ - .. attribute:: scale - - Scales each pixel within the Group in both directions. For example, when scale=2 each pixel - will be represented by 2x2 pixels. - - """ - self.__x = x - """ - .. attribute:: x - - X position of the Group in the parent. - - """ - self.__y = y - """ - .. attribute:: y - - Y position of the Group in the parent. - """ - self.__parent = None - self.__hidden = False - - @property - def x(self): - return self.__x - - @x.setter - def x(self, val): - if self.__x != val: - self.__x = val - self.__elem_changed() - - @property - def y(self): - return self.__y - - @y.setter - def y(self, val): - if self.__y != val: - self.__y = val - self.__elem_changed() - - @property - def scale(self): - return self.__scale - - @scale.setter - def scale(self, val): - if val < 1: - raise ValueError(CONSTANTS.SCALE_TOO_SMALL) - - if self.__scale != val: - self.__scale = val - self.__elem_changed() - - @property - def hidden(self): - """ - .. attribute:: hidden - - True when the Group and all of it's layers are not visible. When False, the Group's layers - are visible if they haven't been hidden. - """ - return self.__hidden - - @hidden.setter - def hidden(self, val): - changed = val != self.__hidden - self.__hidden = val - for elem in self.__contents: - elem.hidden = val - - if changed: - self.__elem_changed() - - def append(self, item): - """ - .. method:: append(layer) - - Append a layer to the group. It will be drawn above other layers. - """ - self.__prepare_for_add(item) - self.__contents.append(item) - self.__elem_changed() - - def insert(self, idx, item): - """ - .. method:: insert(index, layer) - - Insert a layer into the group. - """ - self.__prepare_for_add(item) - self.__contents.insert(idx, item) - self.__elem_changed() - - def index(self, layer): - """ - .. method:: index(layer) - - Returns the index of the first copy of layer. Raises ValueError if not found. - """ - for idx, elem in enumerate(self.__contents): - if elem == layer: - return idx - - return ValueError() - - def pop(self, i=-1): - """ - .. method:: pop(i=-1) - - Remove the ith item and return it. - """ - item = self.__contents.pop(i) - self.__set_parent(item, None) - self.__elem_changed() - return item - - def remove(self, layer): - """ - .. method:: remove(layer) - - Remove the first copy of layer. Raises ValueError if it is not present. - """ - idx = self.index(layer) - item = self.__contents[idx] - - self.__set_parent(item, None) - self.__contents.pop(idx) - self.__elem_changed() - - def __delitem__(self, index): - """ - .. method:: __delitem__(index) - - Deletes the value at the given index. - - This allows you to:: - - del group[0] - """ - item = self.__contents[index] - self.__set_parent(item, None) - del self.__contents[index] - self.__elem_changed() - - def __getitem__(self, index): - """ - .. method:: __getitem__(index) - - Returns the value at the given index. - - This allows you to:: - - print(group[0]) - - """ - return self.__contents[index] - - def __setitem__(self, index, val): - """ - .. method:: __setitem__(index, value) - - Sets the value at the given index. - - This allows you to:: - - group[0] = sprite - """ - old_val = self.__contents[index] - - self.__contents[index] = val - if old_val != val: - self.__elem_changed() - - def __len__(self): - """ - .. method:: __len__() - - Returns the number of layers in a Group - """ - if not self.__contents: - return 0 - else: - return len(self.__contents) - - @property - def __in_group(self): - return self.__parent != None - - def __prepare_for_add(self, item): - if len(self.__contents) == self.__max_size: - raise RuntimeError(CONSTANTS.GROUP_FULL) - elif not isinstance(item, TileGrid) and not isinstance(item, Group): - raise ValueError(CONSTANTS.INCORR_SUBCLASS) - elif (isinstance(item, Group) and item._Group__in_group) or ( - isinstance(item, TileGrid) and item._TileGrid__in_group - ): - raise ValueError(CONSTANTS.LAYER_ALREADY_IN_GROUP) - self.__set_parent(item, self) - - def __set_parent(self, item, val): - if isinstance(item, TileGrid): - item._TileGrid__parent = val - else: - item._Group__parent = val - - def __elem_changed(self): - # Ensure that this group is what the board is currently showing. - # Otherwise, don't bother to draw it. - if self.__auto_write: - self.__trigger_draw() - - def __trigger_draw(self): - # select the correct parent to draw from if necessary - if self.__check_active_group_ref and board.DISPLAY.active_group == self: - self.__draw() - - elif self.__in_group: - # If a sub-group is modified, propagate to top level to - # see if one of the parents are the current active group. - self.__parent._Group__elem_changed() - - def __draw(self, img=None, x=0, y=0, scale=None, show=True): - # this function is not a part of the orignal implementation - # it is what draws itself and its children and potentially shows it to the - # frontend - if img == None: - img = Image.new( - "RGBA", - (CONSTANTS.SCREEN_HEIGHT_WIDTH, CONSTANTS.SCREEN_HEIGHT_WIDTH), - (0, 0, 0, 0), - ) - if scale is None: - scale = self.scale - else: - scale *= self.scale - - try: - if isinstance(self, adafruit_display_text.label.Label): - # adafruit_display_text has some positioning considerations - # that need to be handled. - - # This was found manually, display must be positioned upwards - # 1 unit (1 unit * scale = scale) - y -= scale - - # Group is positioned against anchored_position (already incorporated into self.x and self.y), - # which is positioned against anchor_point - - x += self._anchor_point[0] - y += self._anchor_point[1] - except AttributeError: - pass - - for elem in self.__contents: - if not elem.hidden: - if isinstance(elem, Group): - img = elem._Group__draw( - img=img, x=x + self.x, y=y + self.y, scale=scale, show=False, - ) - else: - img = elem._TileGrid__draw( - img=img, x=x + self.x, y=y + self.y, scale=scale - ) - - # show should only be true to the highest parent group - if show: - self.__show(img) - - # return value only used if this is within another group - return img - - def __show(self, img): - # sends current img to the frontend - buffered = BytesIO() - img.save(buffered, format="BMP") - byte_base64 = base64.b64encode(buffered.getvalue()) - img_str = str(byte_base64)[2:-1] - - sendable_json = {CONSTANTS.BASE_64: img_str} - - if common.utils.debug_mode: - common.debugger_communication_client.debug_send_to_simulator( - sendable_json, CONSTANTS.CLUE - ) - else: - common.utils.send_to_simulator(sendable_json, CONSTANTS.CLUE) - - def __len__(self): - if not self.__contents: - return 0 - else: - return len(self.__contents) - - def pop(self, i=-1): - item = self.__contents.pop(i) - item.parent = None - self.__elem_changed() - return item +import base64 +from io import BytesIO +from PIL import Image +import adafruit_display_text + +from displayio.tile_grid import TileGrid +from . import constants as CONSTANTS + +import common +import board +import sys + +# Group implementation loosely based on the +# displayio.Group class in Adafruit CircuitPython +# (with only the functions needed for the CLUE) + +# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/displayio/Group.html + + +class Group: + """ + `Group` -- Group together sprites and subgroups + ========================================================================== + + Manage a group of sprites and groups and how they are inter-related. + + .. class:: Group(*, max_size=4, scale=1, x=0, y=0) + Create a Group of a given size and scale. Scale is in one dimension. For example, scale=2 + leads to a layer's pixel being 2x2 pixels when in the group. + :param int max_size: The maximum group size. + :param int scale: Scale of layer pixels in one dimension. + :param int x: Initial x position within the parent. + :param int y: Initial y position within the parent. + """ + + def __init__( + self, + max_size=sys.maxsize, + scale=1, + x=0, + y=0, + check_active_group_ref=True, + auto_write=True, + ): + self.__check_active_group_ref = check_active_group_ref + self.__auto_write = auto_write + self.__contents = [] + self.__max_size = max_size + + if scale < 1: + raise ValueError(CONSTANTS.SCALE_TOO_SMALL) + + self.__scale = scale + """ + .. attribute:: scale + + Scales each pixel within the Group in both directions. For example, when scale=2 each pixel + will be represented by 2x2 pixels. + + """ + self.__x = x + """ + .. attribute:: x + + X position of the Group in the parent. + + """ + self.__y = y + """ + .. attribute:: y + + Y position of the Group in the parent. + """ + self.__parent = None + self.__hidden = False + + @property + def x(self): + return self.__x + + @x.setter + def x(self, val): + if self.__x != val: + self.__x = val + self.__elem_changed() + + @property + def y(self): + return self.__y + + @y.setter + def y(self, val): + if self.__y != val: + self.__y = val + self.__elem_changed() + + @property + def scale(self): + return self.__scale + + @scale.setter + def scale(self, val): + if val < 1: + raise ValueError(CONSTANTS.SCALE_TOO_SMALL) + + if self.__scale != val: + self.__scale = val + self.__elem_changed() + + @property + def hidden(self): + """ + .. attribute:: hidden + + True when the Group and all of it's layers are not visible. When False, the Group's layers + are visible if they haven't been hidden. + """ + return self.__hidden + + @hidden.setter + def hidden(self, val): + changed = val != self.__hidden + self.__hidden = val + for elem in self.__contents: + elem.hidden = val + + if changed: + self.__elem_changed() + + def append(self, item): + """ + .. method:: append(layer) + + Append a layer to the group. It will be drawn above other layers. + """ + self.__prepare_for_add(item) + self.__contents.append(item) + self.__elem_changed() + + def insert(self, idx, item): + """ + .. method:: insert(index, layer) + + Insert a layer into the group. + """ + self.__prepare_for_add(item) + self.__contents.insert(idx, item) + self.__elem_changed() + + def index(self, layer): + """ + .. method:: index(layer) + + Returns the index of the first copy of layer. Raises ValueError if not found. + """ + for idx, elem in enumerate(self.__contents): + if elem == layer: + return idx + + return ValueError() + + def pop(self, i=-1): + """ + .. method:: pop(i=-1) + + Remove the ith item and return it. + """ + item = self.__contents.pop(i) + self.__set_parent(item, None) + self.__elem_changed() + return item + + def remove(self, layer): + """ + .. method:: remove(layer) + + Remove the first copy of layer. Raises ValueError if it is not present. + """ + idx = self.index(layer) + item = self.__contents[idx] + + self.__set_parent(item, None) + self.__contents.pop(idx) + self.__elem_changed() + + def __delitem__(self, index): + """ + .. method:: __delitem__(index) + + Deletes the value at the given index. + + This allows you to:: + + del group[0] + """ + item = self.__contents[index] + self.__set_parent(item, None) + del self.__contents[index] + self.__elem_changed() + + def __getitem__(self, index): + """ + .. method:: __getitem__(index) + + Returns the value at the given index. + + This allows you to:: + + print(group[0]) + + """ + return self.__contents[index] + + def __setitem__(self, index, val): + """ + .. method:: __setitem__(index, value) + + Sets the value at the given index. + + This allows you to:: + + group[0] = sprite + """ + old_val = self.__contents[index] + + self.__contents[index] = val + if old_val != val: + self.__elem_changed() + + def __len__(self): + """ + .. method:: __len__() + + Returns the number of layers in a Group + """ + if not self.__contents: + return 0 + else: + return len(self.__contents) + + @property + def __in_group(self): + return self.__parent != None + + def __prepare_for_add(self, item): + if len(self.__contents) == self.__max_size: + raise RuntimeError(CONSTANTS.GROUP_FULL) + elif not isinstance(item, TileGrid) and not isinstance(item, Group): + raise ValueError(CONSTANTS.INCORR_SUBCLASS) + elif (isinstance(item, Group) and item._Group__in_group) or ( + isinstance(item, TileGrid) and item._TileGrid__in_group + ): + raise ValueError(CONSTANTS.LAYER_ALREADY_IN_GROUP) + self.__set_parent(item, self) + + def __set_parent(self, item, val): + if isinstance(item, TileGrid): + item._TileGrid__parent = val + else: + item._Group__parent = val + + def __elem_changed(self): + # Ensure that this group is what the board is currently showing. + # Otherwise, don't bother to draw it. + if self.__auto_write: + self.__trigger_draw() + + def __trigger_draw(self): + # select the correct parent to draw from if necessary + if self.__check_active_group_ref and board.DISPLAY.active_group == self: + self.__draw() + + elif self.__in_group: + # If a sub-group is modified, propagate to top level to + # see if one of the parents are the current active group. + self.__parent._Group__elem_changed() + + def __draw(self, img=None, x=0, y=0, scale=None, show=True): + # this function is not a part of the orignal implementation + # it is what draws itself and its children and potentially shows it to the + # frontend + if img == None: + img = Image.new( + "RGBA", + (CONSTANTS.SCREEN_HEIGHT_WIDTH, CONSTANTS.SCREEN_HEIGHT_WIDTH), + (0, 0, 0, 0), + ) + if scale is None: + scale = self.scale + else: + scale *= self.scale + + try: + if isinstance(self, adafruit_display_text.label.Label): + # adafruit_display_text has some positioning considerations + # that need to be handled. + + # This was found manually, display must be positioned upwards + # 1 unit (1 unit * scale = scale) + y -= scale + + # Group is positioned against anchored_position (already incorporated into self.x and self.y), + # which is positioned against anchor_point + + x += self._anchor_point[0] + y += self._anchor_point[1] + except AttributeError: + pass + + for elem in self.__contents: + if not elem.hidden: + if isinstance(elem, Group): + img = elem._Group__draw( + img=img, x=x + self.x, y=y + self.y, scale=scale, show=False, + ) + else: + img = elem._TileGrid__draw( + img=img, x=x + self.x, y=y + self.y, scale=scale + ) + + # show should only be true to the highest parent group + if show: + self.__show(img) + + # return value only used if this is within another group + return img + + def __show(self, img): + # sends current img to the frontend + buffered = BytesIO() + img.save(buffered, format="BMP") + byte_base64 = base64.b64encode(buffered.getvalue()) + img_str = str(byte_base64)[2:-1] + + sendable_json = {CONSTANTS.BASE_64: img_str} + + if common.utils.debug_mode: + common.debugger_communication_client.debug_send_to_simulator( + sendable_json, CONSTANTS.CLUE + ) + else: + common.utils.send_to_simulator(sendable_json, CONSTANTS.CLUE) + + def __len__(self): + if not self.__contents: + return 0 + else: + return len(self.__contents) + + def pop(self, i=-1): + item = self.__contents.pop(i) + item.parent = None + self.__elem_changed() + return item diff --git a/src/base_circuitpython/displayio/palette.py b/Source/base_circuitpython/displayio/palette.py similarity index 97% rename from src/base_circuitpython/displayio/palette.py rename to Source/base_circuitpython/displayio/palette.py index b954d982b..486535d11 100644 --- a/src/base_circuitpython/displayio/palette.py +++ b/Source/base_circuitpython/displayio/palette.py @@ -1,81 +1,81 @@ -from .color_type import _ColorType -from . import constants as CONSTANTS - -# Palette implementation loosely based on the -# displayio.Palette class in Adafruit CircuitPython -# (with only the functions needed for the CLUE) - -# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/displayio/Palette.html - - -class Palette: - """ - `Palette` -- Stores a mapping from bitmap pixel palette_indexes to display colors - ========================================================================================= - - Map a pixel palette_index to a full color. Colors are transformed to the display's format internally to - save memory. - - .. class:: Palette(color_count) - - Create a Palette object to store a set number of colors. - - :param int color_count: The number of colors in the Palette - """ - - def __init__(self, color_count): - self.__color_count = color_count - self.__contents = [] - - # set all colours to black by default - for i in range(self.__color_count): - self.__contents.append(_ColorType((0, 0, 0))) - - def __setitem__(self, index, value): - """ - .. method:: __setitem__(index, value) - - Sets the pixel color at the given index. The index should be an integer in the range 0 to color_count-1. - - The value argument represents a color, and can be from 0x000000 to 0xFFFFFF (to represent an RGB value). - Value can be an int, bytes (3 bytes (RGB) or 4 bytes (RGB + pad byte)), bytearray, - or a tuple or list of 3 integers. - - This allows you to:: - - palette[0] = 0xFFFFFF # set using an integer - palette[1] = b'\xff\xff\x00' # set using 3 bytes - palette[2] = b'\xff\xff\x00\x00' # set using 4 bytes - palette[3] = bytearray(b'\x00\x00\xFF') # set using a bytearay of 3 or 4 bytes - palette[4] = (10, 20, 30) # set using a tuple of 3 integers - - """ - if index >= self.__color_count: - raise IndexError(CONSTANTS.PALETTE_OUT_OF_RANGE) - - self.__contents[index].rgb888 = value - - def __len__(self): - """ - .. method:: __len__() - - Returns the number of colors in a Palette - - """ - return self.__color_count - - def make_transparent(self, index): - """ - .. method:: make_transparent(palette_index) - """ - self.__toggle_transparency(index, True) - - def make_opaque(self, index): - """ - .. method:: make_opaque(palette_index) - """ - self.__toggle_transparency(index, False) - - def __toggle_transparency(self, index, transparency): - if self.__contents[index]: - self.__contents[index].transparent = transparency +from .color_type import _ColorType +from . import constants as CONSTANTS + +# Palette implementation loosely based on the +# displayio.Palette class in Adafruit CircuitPython +# (with only the functions needed for the CLUE) + +# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/displayio/Palette.html + + +class Palette: + """ + `Palette` -- Stores a mapping from bitmap pixel palette_indexes to display colors + ========================================================================================= + + Map a pixel palette_index to a full color. Colors are transformed to the display's format internally to + save memory. + + .. class:: Palette(color_count) + + Create a Palette object to store a set number of colors. + + :param int color_count: The number of colors in the Palette + """ + + def __init__(self, color_count): + self.__color_count = color_count + self.__contents = [] + + # set all colours to black by default + for i in range(self.__color_count): + self.__contents.append(_ColorType((0, 0, 0))) + + def __setitem__(self, index, value): + """ + .. method:: __setitem__(index, value) + + Sets the pixel color at the given index. The index should be an integer in the range 0 to color_count-1. + + The value argument represents a color, and can be from 0x000000 to 0xFFFFFF (to represent an RGB value). + Value can be an int, bytes (3 bytes (RGB) or 4 bytes (RGB + pad byte)), bytearray, + or a tuple or list of 3 integers. + + This allows you to:: + + palette[0] = 0xFFFFFF # set using an integer + palette[1] = b'\xff\xff\x00' # set using 3 bytes + palette[2] = b'\xff\xff\x00\x00' # set using 4 bytes + palette[3] = bytearray(b'\x00\x00\xFF') # set using a bytearay of 3 or 4 bytes + palette[4] = (10, 20, 30) # set using a tuple of 3 integers + + """ + if index >= self.__color_count: + raise IndexError(CONSTANTS.PALETTE_OUT_OF_RANGE) + + self.__contents[index].rgb888 = value + + def __len__(self): + """ + .. method:: __len__() + + Returns the number of colors in a Palette + + """ + return self.__color_count + + def make_transparent(self, index): + """ + .. method:: make_transparent(palette_index) + """ + self.__toggle_transparency(index, True) + + def make_opaque(self, index): + """ + .. method:: make_opaque(palette_index) + """ + self.__toggle_transparency(index, False) + + def __toggle_transparency(self, index, transparency): + if self.__contents[index]: + self.__contents[index].transparent = transparency diff --git a/src/base_circuitpython/displayio/tile_grid.py b/Source/base_circuitpython/displayio/tile_grid.py similarity index 96% rename from src/base_circuitpython/displayio/tile_grid.py rename to Source/base_circuitpython/displayio/tile_grid.py index ad948cfde..371ee38ee 100644 --- a/src/base_circuitpython/displayio/tile_grid.py +++ b/Source/base_circuitpython/displayio/tile_grid.py @@ -1,280 +1,280 @@ -from PIL import Image, ImageColor -from . import constants as CONSTANTS -import threading -import queue -from common import utils -from common.telemetry import telemetry_py -from common.telemetry_events import TelemetryEvent - -# TileGrid implementation loosely based on the -# displayio.TileGrid class in Adafruit CircuitPython -# (with only the functions needed for the CLUE) -# this version of the class only supports a single tile, -# therefore, get/set functionality is a bit different. - -# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/displayio/TileGrid.html - - -class TileGrid: - """ - `TileGrid` -- A grid of tiles sourced out of one bitmap - ========================================================================== - - Position a grid of tiles sourced from a bitmap and pixel_shader combination. Multiple grids - can share bitmaps and pixel shaders. - - A single tile grid is also known as a Sprite. - - .. class:: TileGrid(bitmap, *, pixel_shader, width=1, height=1, tile_width=None, tile_height=None, default_tile=0, x=0, y=0) - - Create a TileGrid object. The bitmap is source for 2d pixels. The pixel_shader is used to - convert the value and its location to a display native pixel color. This may be a simple color - palette lookup, a gradient, a pattern or a color transformer. - - tile_width and tile_height match the height of the bitmap by default. - - :param displayio.Bitmap bitmap: The bitmap storing one or more tiles. - :param displayio.Palette pixel_shader: The pixel shader that produces colors from values - :param int width: Width of the grid in tiles. - :param int height: Height of the grid in tiles. - :param int tile_width: Width of a single tile in pixels. Defaults to the full Bitmap and must evenly divide into the Bitmap's dimensions. - :param int tile_height: Height of a single tile in pixels. Defaults to the full Bitmap and must evenly divide into the Bitmap's dimensions. - :param int default_tile: Default tile index to show. - :param int x: Initial x position of the left edge within the parent. - :param int y: Initial y position of the top edge within the parent. - """ - - def __init__( - self, - bitmap, - pixel_shader, - default_tile=0, - tile_width=None, - tile_height=None, - x=0, - y=0, - position=None, - ): - self.x = None - """ - .. attribute:: x - - X position of the left edge in the parent. - """ - self.y = None - """ - .. attribute:: y - - Y position of the top edge in the parent. - """ - self.pixel_shader = pixel_shader - """ - .. attribute:: pixel_shader - - The pixel shader of the tilegrid. - """ - self.hidden = False - """ - .. attribute:: hidden - - True when the TileGrid is hidden. This may be False even when a part of a hidden Group. - """ - - self.__bitmap = bitmap - self.__tile_width = None - self.__tile_height = None - - if tile_width is None: - self.__tile_width = bitmap.width - else: - self.__tile_width = tile_width - - if tile_height is None: - self.__tile_height = bitmap.height - else: - self.__tile_height = tile_height - - if position and isinstance(position, tuple): - self.x = position[0] - self.y = position[1] - else: - self.x = x - self.y = y - - self.__parent = None - - # unimplemented features - self.__flip_x = False - self.__flip_y = False - self.__transpose_xy = False - - telemetry_py.send_telemetry(TelemetryEvent.CLUE_API_TILE_GRID) - - @property - def flip_x(self): - """ - .. attribute:: flip_x - - If true, the left edge rendered will be the right edge of the right-most tile. - """ - return self.__flip_x - - @flip_x.setter - def flip_x(self, val): - utils.print_for_unimplemented_functions(TileGrid.flip_x.__name_) - self.__flip_x = val - - @property - def flip_y(self): - - """ - .. attribute:: flip_y - - If true, the top edge rendered will be the bottom edge of the bottom-most tile. - """ - return self.__flip_y - - @flip_y.setter - def flip_y(self, val): - utils.print_for_unimplemented_functions(TileGrid.flip_y.__name_) - self.__flip_y = val - - @property - def transpose_xy(self): - - """ - .. attribute:: transpose_xy - - If true, the TileGrid's axis will be swapped. When combined with mirroring, any 90 degree - rotation can be achieved along with the corresponding mirrored version. - """ - return self.__transpose_xy - - @transpose_xy.setter - def transpose_xy(self, val): - utils.print_for_unimplemented_functions(TileGrid.transpose_xy.__name_) - self.__transpose_xy = val - - # setitem for an index simply gets the index of the bitmap - # rather than the tile index - def __setitem__(self, index, value): - """ - .. method:: __setitem__(index, tile_index) - Sets the tile index at the given index. The index can either be an x,y tuple or an int equal - to ``y * width + x``. - - This allows you to:: - - grid[0] = 10 - - or:: - - grid[0,0] = 10 - """ - if isinstance(index, tuple): - if index[0] >= self.__tile_width or index[1] >= self.__tile_height: - raise IndexError(CONSTANTS.TILE_OUT_OF_BOUNDS) - - self.__bitmap[index] = value - - # getitem for an index simply gets the index of the bitmap - # rather than the tile index - def __getitem__(self, index): - """ - .. method:: __getitem__(index) - Returns the tile index at the given index. The index can either be an x,y tuple or an int equal - to ``y * width + x``. - - This allows you to:: - - print(grid[0]) - """ - if isinstance(index, tuple): - if index[0] >= self.__tile_width or index[1] >= self.__tile_height: - raise IndexError(CONSTANTS.TILE_OUT_OF_BOUNDS) - - return self.__bitmap[index] - - @property - def __in_group(self): - return self.__parent != None - - # methods that are not in the origin class: - - def __draw(self, img, x, y, scale): - # draw the current bitmap with - # appropriate scale on the global bmp_img - x = self.x * scale + x - y = self.y * scale + y - - new_shape = self.__draw_group( - x, y, 0, self.__tile_height, 0, self.__tile_width, scale - ) - - img.paste(new_shape, (x, y), new_shape) - return img - - def __draw_group(self, x, y, y_start, y_end, x_start, x_end, scale): - height = y_end - y_start - width = x_end - x_start - - this_img = Image.new("RGBA", (width * scale, height * scale), (0, 0, 0, 0)) - this_img.putalpha(0) - this_bmp_img = this_img.load() - - for i in range(y_start, y_end): - for j in range(x_start, x_end): - x_offset = j * scale - y_offset = i * scale - - x_max = min(x_offset + scale, width * scale) - y_max = min(y_offset + scale, height * scale) - - curr_val = self.__bitmap[j, i] - palette_obj = self.pixel_shader._Palette__contents[curr_val] - - transparent = palette_obj.transparent - - if not transparent and x_offset >= 0 and y_offset >= 0: - - curr_colour = palette_obj.rgb888 - self.__fill_pixel( - curr_val, - curr_colour, - x_offset, - y_offset, - scale, - x_max, - y_max, - this_bmp_img, - ) - - return this_img - - # helper method for drawing pixels on bmp_img - # given the src, offset, and scale - def __fill_pixel( - self, - curr_val, - curr_colour, - x_offset, - y_offset, - scale, - x_max, - y_max, - this_bmp_img, - ): - - for new_y in range(y_offset, y_max): - for new_x in range(x_offset, x_max): - try: - if isinstance(curr_colour, tuple): - this_bmp_img[new_x, new_y] = curr_colour - else: - this_bmp_img[new_x, new_y] = ( - (curr_colour >> 16) & 255, - (curr_colour >> 8) & 255, - (curr_colour) & 255, - ) - except IndexError: - pass +from PIL import Image, ImageColor +from . import constants as CONSTANTS +import threading +import queue +from common import utils +from common.telemetry import telemetry_py +from common.telemetry_events import TelemetryEvent + +# TileGrid implementation loosely based on the +# displayio.TileGrid class in Adafruit CircuitPython +# (with only the functions needed for the CLUE) +# this version of the class only supports a single tile, +# therefore, get/set functionality is a bit different. + +# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/displayio/TileGrid.html + + +class TileGrid: + """ + `TileGrid` -- A grid of tiles sourced out of one bitmap + ========================================================================== + + Position a grid of tiles sourced from a bitmap and pixel_shader combination. Multiple grids + can share bitmaps and pixel shaders. + + A single tile grid is also known as a Sprite. + + .. class:: TileGrid(bitmap, *, pixel_shader, width=1, height=1, tile_width=None, tile_height=None, default_tile=0, x=0, y=0) + + Create a TileGrid object. The bitmap is source for 2d pixels. The pixel_shader is used to + convert the value and its location to a display native pixel color. This may be a simple color + palette lookup, a gradient, a pattern or a color transformer. + + tile_width and tile_height match the height of the bitmap by default. + + :param displayio.Bitmap bitmap: The bitmap storing one or more tiles. + :param displayio.Palette pixel_shader: The pixel shader that produces colors from values + :param int width: Width of the grid in tiles. + :param int height: Height of the grid in tiles. + :param int tile_width: Width of a single tile in pixels. Defaults to the full Bitmap and must evenly divide into the Bitmap's dimensions. + :param int tile_height: Height of a single tile in pixels. Defaults to the full Bitmap and must evenly divide into the Bitmap's dimensions. + :param int default_tile: Default tile index to show. + :param int x: Initial x position of the left edge within the parent. + :param int y: Initial y position of the top edge within the parent. + """ + + def __init__( + self, + bitmap, + pixel_shader, + default_tile=0, + tile_width=None, + tile_height=None, + x=0, + y=0, + position=None, + ): + self.x = None + """ + .. attribute:: x + + X position of the left edge in the parent. + """ + self.y = None + """ + .. attribute:: y + + Y position of the top edge in the parent. + """ + self.pixel_shader = pixel_shader + """ + .. attribute:: pixel_shader + + The pixel shader of the tilegrid. + """ + self.hidden = False + """ + .. attribute:: hidden + + True when the TileGrid is hidden. This may be False even when a part of a hidden Group. + """ + + self.__bitmap = bitmap + self.__tile_width = None + self.__tile_height = None + + if tile_width is None: + self.__tile_width = bitmap.width + else: + self.__tile_width = tile_width + + if tile_height is None: + self.__tile_height = bitmap.height + else: + self.__tile_height = tile_height + + if position and isinstance(position, tuple): + self.x = position[0] + self.y = position[1] + else: + self.x = x + self.y = y + + self.__parent = None + + # unimplemented features + self.__flip_x = False + self.__flip_y = False + self.__transpose_xy = False + + telemetry_py.send_telemetry(TelemetryEvent.CLUE_API_TILE_GRID) + + @property + def flip_x(self): + """ + .. attribute:: flip_x + + If true, the left edge rendered will be the right edge of the right-most tile. + """ + return self.__flip_x + + @flip_x.setter + def flip_x(self, val): + utils.print_for_unimplemented_functions(TileGrid.flip_x.__name_) + self.__flip_x = val + + @property + def flip_y(self): + + """ + .. attribute:: flip_y + + If true, the top edge rendered will be the bottom edge of the bottom-most tile. + """ + return self.__flip_y + + @flip_y.setter + def flip_y(self, val): + utils.print_for_unimplemented_functions(TileGrid.flip_y.__name_) + self.__flip_y = val + + @property + def transpose_xy(self): + + """ + .. attribute:: transpose_xy + + If true, the TileGrid's axis will be swapped. When combined with mirroring, any 90 degree + rotation can be achieved along with the corresponding mirrored version. + """ + return self.__transpose_xy + + @transpose_xy.setter + def transpose_xy(self, val): + utils.print_for_unimplemented_functions(TileGrid.transpose_xy.__name_) + self.__transpose_xy = val + + # setitem for an index simply gets the index of the bitmap + # rather than the tile index + def __setitem__(self, index, value): + """ + .. method:: __setitem__(index, tile_index) + Sets the tile index at the given index. The index can either be an x,y tuple or an int equal + to ``y * width + x``. + + This allows you to:: + + grid[0] = 10 + + or:: + + grid[0,0] = 10 + """ + if isinstance(index, tuple): + if index[0] >= self.__tile_width or index[1] >= self.__tile_height: + raise IndexError(CONSTANTS.TILE_OUT_OF_BOUNDS) + + self.__bitmap[index] = value + + # getitem for an index simply gets the index of the bitmap + # rather than the tile index + def __getitem__(self, index): + """ + .. method:: __getitem__(index) + Returns the tile index at the given index. The index can either be an x,y tuple or an int equal + to ``y * width + x``. + + This allows you to:: + + print(grid[0]) + """ + if isinstance(index, tuple): + if index[0] >= self.__tile_width or index[1] >= self.__tile_height: + raise IndexError(CONSTANTS.TILE_OUT_OF_BOUNDS) + + return self.__bitmap[index] + + @property + def __in_group(self): + return self.__parent != None + + # methods that are not in the origin class: + + def __draw(self, img, x, y, scale): + # draw the current bitmap with + # appropriate scale on the global bmp_img + x = self.x * scale + x + y = self.y * scale + y + + new_shape = self.__draw_group( + x, y, 0, self.__tile_height, 0, self.__tile_width, scale + ) + + img.paste(new_shape, (x, y), new_shape) + return img + + def __draw_group(self, x, y, y_start, y_end, x_start, x_end, scale): + height = y_end - y_start + width = x_end - x_start + + this_img = Image.new("RGBA", (width * scale, height * scale), (0, 0, 0, 0)) + this_img.putalpha(0) + this_bmp_img = this_img.load() + + for i in range(y_start, y_end): + for j in range(x_start, x_end): + x_offset = j * scale + y_offset = i * scale + + x_max = min(x_offset + scale, width * scale) + y_max = min(y_offset + scale, height * scale) + + curr_val = self.__bitmap[j, i] + palette_obj = self.pixel_shader._Palette__contents[curr_val] + + transparent = palette_obj.transparent + + if not transparent and x_offset >= 0 and y_offset >= 0: + + curr_colour = palette_obj.rgb888 + self.__fill_pixel( + curr_val, + curr_colour, + x_offset, + y_offset, + scale, + x_max, + y_max, + this_bmp_img, + ) + + return this_img + + # helper method for drawing pixels on bmp_img + # given the src, offset, and scale + def __fill_pixel( + self, + curr_val, + curr_colour, + x_offset, + y_offset, + scale, + x_max, + y_max, + this_bmp_img, + ): + + for new_y in range(y_offset, y_max): + for new_x in range(x_offset, x_max): + try: + if isinstance(curr_colour, tuple): + this_bmp_img[new_x, new_y] = curr_colour + else: + this_bmp_img[new_x, new_y] = ( + (curr_colour >> 16) & 255, + (curr_colour >> 8) & 255, + (curr_colour) & 255, + ) + except IndexError: + pass diff --git a/src/base_circuitpython/fontio.py b/Source/base_circuitpython/fontio.py similarity index 97% rename from src/base_circuitpython/fontio.py rename to Source/base_circuitpython/fontio.py index 3c7e567bd..95efb9690 100644 --- a/src/base_circuitpython/fontio.py +++ b/Source/base_circuitpython/fontio.py @@ -1,14 +1,14 @@ -# dummy library for adafruit_bitmap_font to work - -# original implementation docs for fontio: -# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/fontio/__init__.html - -# file taken from adafruit_bitmap_font's examples: -# https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font/blob/master/test/fontio.py -import collections -import displayio - -Glyph = collections.namedtuple( - "Glyph", - ["bitmap", "tile_index", "width", "height", "dx", "dy", "shift_x", "shift_y"], -) +# dummy library for adafruit_bitmap_font to work + +# original implementation docs for fontio: +# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/fontio/__init__.html + +# file taken from adafruit_bitmap_font's examples: +# https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font/blob/master/test/fontio.py +import collections +import displayio + +Glyph = collections.namedtuple( + "Glyph", + ["bitmap", "tile_index", "width", "height", "dx", "dy", "shift_x", "shift_y"], +) diff --git a/src/base_circuitpython/fonts/ter-u12n.bdf b/Source/base_circuitpython/fonts/ter-u12n.bdf similarity index 100% rename from src/base_circuitpython/fonts/ter-u12n.bdf rename to Source/base_circuitpython/fonts/ter-u12n.bdf diff --git a/src/base_circuitpython/img/blinka.bmp b/Source/base_circuitpython/img/blinka.bmp similarity index 100% rename from src/base_circuitpython/img/blinka.bmp rename to Source/base_circuitpython/img/blinka.bmp diff --git a/src/base_circuitpython/neopixel_write.py b/Source/base_circuitpython/neopixel_write.py similarity index 96% rename from src/base_circuitpython/neopixel_write.py rename to Source/base_circuitpython/neopixel_write.py index 341215f35..d30cda7c0 100644 --- a/src/base_circuitpython/neopixel_write.py +++ b/Source/base_circuitpython/neopixel_write.py @@ -1,55 +1,55 @@ -# overriden neopixel_write library to write to frontend - -# original implementation docs for neopixel_write: -# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/neopixel_write/__init__.html - - -import pathlib -import sys -import os - -import common -from adafruit_circuitplayground import cp -import base_cp_constants as CONSTANTS - - -def neopixel_write(gpio, buf): - """Write buf out on the given DigitalInOut.""" - - if len(tuple(buf)) > 0: - # if we are explicitly given - # the clue pin, that means that - # the clue is definitely the active device - # because the constructor for the - # clue is what calls neopixel - # with the clue pin argument - if gpio.pin != CONSTANTS.CLUE_PIN: - send_cpx(buf) - send_clue(buf) - - -def send_clue(buf): - sendable_json = {CONSTANTS.PIXELS: tuple(buf)} - if common.utils.debug_mode: - common.debugger_communication_client.debug_send_to_simulator( - sendable_json, CONSTANTS.CLUE - ) - else: - common.utils.send_to_simulator(sendable_json, CONSTANTS.CLUE) - - -def send_cpx(buf): - buf_list = list(buf) - ret_list = [] - temp_list = [] - for idx, elem in enumerate(buf_list): - if idx % 3 == 0 and idx != 0: - ret_list.append(tuple(temp_list)) - temp_list = [] - temp_list.append(elem) - - if len(temp_list) == 3: - ret_list.append(tuple(temp_list)) - - max_index = min(len(ret_list), 10) - cp.pixels[0:max_index] = ret_list[0:max_index] +# overriden neopixel_write library to write to frontend + +# original implementation docs for neopixel_write: +# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/neopixel_write/__init__.html + + +import pathlib +import sys +import os + +import common +from adafruit_circuitplayground import cp +import base_cp_constants as CONSTANTS + + +def neopixel_write(gpio, buf): + """Write buf out on the given DigitalInOut.""" + + if len(tuple(buf)) > 0: + # if we are explicitly given + # the clue pin, that means that + # the clue is definitely the active device + # because the constructor for the + # clue is what calls neopixel + # with the clue pin argument + if gpio.pin != CONSTANTS.CLUE_PIN: + send_cpx(buf) + send_clue(buf) + + +def send_clue(buf): + sendable_json = {CONSTANTS.PIXELS: tuple(buf)} + if common.utils.debug_mode: + common.debugger_communication_client.debug_send_to_simulator( + sendable_json, CONSTANTS.CLUE + ) + else: + common.utils.send_to_simulator(sendable_json, CONSTANTS.CLUE) + + +def send_cpx(buf): + buf_list = list(buf) + ret_list = [] + temp_list = [] + for idx, elem in enumerate(buf_list): + if idx % 3 == 0 and idx != 0: + ret_list.append(tuple(temp_list)) + temp_list = [] + temp_list.append(elem) + + if len(temp_list) == 3: + ret_list.append(tuple(temp_list)) + + max_index = min(len(ret_list), 10) + cp.pixels[0:max_index] = ret_list[0:max_index] diff --git a/src/base_circuitpython/pulseio.py b/Source/base_circuitpython/pulseio.py similarity index 96% rename from src/base_circuitpython/pulseio.py rename to Source/base_circuitpython/pulseio.py index f69a45836..2e29b699c 100644 --- a/src/base_circuitpython/pulseio.py +++ b/Source/base_circuitpython/pulseio.py @@ -1,16 +1,16 @@ -from common import utils - - -class PulseIn: - def __init__(self, pin, maxlen=2, *, idle_state=False): - utils.print_for_unimplemented_functions(PulseIn.__init__.__qualname__) - - -class PulseOut: - def __init__(self, carrier): - utils.print_for_unimplemented_functions(PulseOut.__init__.__qualname__) - - -class PWMOut: - def __init__(self, pin, *, duty_cycle=0, frequency=500, variable_frequency=False): - utils.print_for_unimplemented_functions(PWMOut.__init__.__qualname__) +from common import utils + + +class PulseIn: + def __init__(self, pin, maxlen=2, *, idle_state=False): + utils.print_for_unimplemented_functions(PulseIn.__init__.__qualname__) + + +class PulseOut: + def __init__(self, carrier): + utils.print_for_unimplemented_functions(PulseOut.__init__.__qualname__) + + +class PWMOut: + def __init__(self, pin, *, duty_cycle=0, frequency=500, variable_frequency=False): + utils.print_for_unimplemented_functions(PWMOut.__init__.__qualname__) diff --git a/src/base_circuitpython/terminal_handler.py b/Source/base_circuitpython/terminal_handler.py similarity index 96% rename from src/base_circuitpython/terminal_handler.py rename to Source/base_circuitpython/terminal_handler.py index 83130f0b0..d00b5c495 100644 --- a/src/base_circuitpython/terminal_handler.py +++ b/Source/base_circuitpython/terminal_handler.py @@ -1,108 +1,108 @@ -from PIL import Image -import threading -import os -import base64 -from io import BytesIO -import time -import collections -import pathlib - -from common import utils -import board -import base_cp_constants as CONSTANTS -import displayio -import terminalio - - -class Terminal: - def __init__(self): - self.__output_values = collections.deque() - self.__lock = threading.Lock() - self.__abs_path = pathlib.Path(__file__).parent.absolute() - self.__base_img = Image.open( - os.path.join(self.__abs_path, CONSTANTS.IMG_DIR_NAME, CONSTANTS.BLINKA_BMP) - ) - - def __create_newline(self, str_list): - self.__lock.acquire() - for string in str_list: - self.__output_values.appendleft(string) - - over = len(self.__output_values) - CONSTANTS.CLUE_TERMINAL_LINE_NUM_MAX - - # max CONSTANTS.CLUE_TERMINAL_LINE_NUM_MAX items in output_values - if over > 0: - for i in range(over): - self.__output_values.pop() - - self.__lock.release() - - def __draw(self, no_verif=False): - - import adafruit_display_text.label - - # no need to check the active group within the Group class - # since the caller of draw already did - splash = displayio.Group( - max_size=20, check_active_group_ref=False, auto_write=False - ) - - self.__lock.acquire() - - # since the text starts from the bottom, - # we need to find an offset if there are empty spots - - # handling of output_values already ensures that there are - # max CONSTANTS.CLUE_TERMINAL_LINE_NUM_MAX items in output_values deque - num_empty_slots = CONSTANTS.CLUE_TERMINAL_LINE_NUM_MAX - len( - self.__output_values - ) - curr_y = CONSTANTS.CLUE_TERMINAL_Y_OFFSET + ( - CONSTANTS.CLUE_TERMINAL_LINE_HEIGHT * num_empty_slots - ) - for output_val in reversed(self.__output_values): - if len(output_val): - text_area = adafruit_display_text.label.Label( - terminalio.FONT, text=output_val, line_spacing=1.25 - ) - - text_area.y = curr_y - text_area.x = CONSTANTS.CLUE_TERMINAL_X_OFFSET - splash.append(text_area) - - curr_y += CONSTANTS.CLUE_TERMINAL_LINE_HEIGHT - - self.__lock.release() - - splash._Group__draw(img=self.__base_img.copy()) - - def add_str_to_terminal(self, curr_display_string=""): - - line_break_amt = CONSTANTS.CLUE_TERMINAL_LINE_BREAK_AMT - - # characters until forced newline - newline_expected_val = line_break_amt - out_str = "" - new_strs = [] - for idx, d in enumerate(curr_display_string): - # handle custom or forced newline - if d == "\n" or newline_expected_val == 0: - new_strs.append(out_str) - out_str = "" - newline_expected_val = line_break_amt - - # if it was a custom newline, no longer need to - # process the character - if d == "\n": - continue - else: - newline_expected_val -= 1 - out_str += d - new_strs.append(out_str) - - self.__create_newline(new_strs) - - # only go ahead to draw the screen - # if the terminal is actively on the screen - if board.DISPLAY.active_group == None: - self.__draw() +from PIL import Image +import threading +import os +import base64 +from io import BytesIO +import time +import collections +import pathlib + +from common import utils +import board +import base_cp_constants as CONSTANTS +import displayio +import terminalio + + +class Terminal: + def __init__(self): + self.__output_values = collections.deque() + self.__lock = threading.Lock() + self.__abs_path = pathlib.Path(__file__).parent.absolute() + self.__base_img = Image.open( + os.path.join(self.__abs_path, CONSTANTS.IMG_DIR_NAME, CONSTANTS.BLINKA_BMP) + ) + + def __create_newline(self, str_list): + self.__lock.acquire() + for string in str_list: + self.__output_values.appendleft(string) + + over = len(self.__output_values) - CONSTANTS.CLUE_TERMINAL_LINE_NUM_MAX + + # max CONSTANTS.CLUE_TERMINAL_LINE_NUM_MAX items in output_values + if over > 0: + for i in range(over): + self.__output_values.pop() + + self.__lock.release() + + def __draw(self, no_verif=False): + + import adafruit_display_text.label + + # no need to check the active group within the Group class + # since the caller of draw already did + splash = displayio.Group( + max_size=20, check_active_group_ref=False, auto_write=False + ) + + self.__lock.acquire() + + # since the text starts from the bottom, + # we need to find an offset if there are empty spots + + # handling of output_values already ensures that there are + # max CONSTANTS.CLUE_TERMINAL_LINE_NUM_MAX items in output_values deque + num_empty_slots = CONSTANTS.CLUE_TERMINAL_LINE_NUM_MAX - len( + self.__output_values + ) + curr_y = CONSTANTS.CLUE_TERMINAL_Y_OFFSET + ( + CONSTANTS.CLUE_TERMINAL_LINE_HEIGHT * num_empty_slots + ) + for output_val in reversed(self.__output_values): + if len(output_val): + text_area = adafruit_display_text.label.Label( + terminalio.FONT, text=output_val, line_spacing=1.25 + ) + + text_area.y = curr_y + text_area.x = CONSTANTS.CLUE_TERMINAL_X_OFFSET + splash.append(text_area) + + curr_y += CONSTANTS.CLUE_TERMINAL_LINE_HEIGHT + + self.__lock.release() + + splash._Group__draw(img=self.__base_img.copy()) + + def add_str_to_terminal(self, curr_display_string=""): + + line_break_amt = CONSTANTS.CLUE_TERMINAL_LINE_BREAK_AMT + + # characters until forced newline + newline_expected_val = line_break_amt + out_str = "" + new_strs = [] + for idx, d in enumerate(curr_display_string): + # handle custom or forced newline + if d == "\n" or newline_expected_val == 0: + new_strs.append(out_str) + out_str = "" + newline_expected_val = line_break_amt + + # if it was a custom newline, no longer need to + # process the character + if d == "\n": + continue + else: + newline_expected_val -= 1 + out_str += d + new_strs.append(out_str) + + self.__create_newline(new_strs) + + # only go ahead to draw the screen + # if the terminal is actively on the screen + if board.DISPLAY.active_group == None: + self.__draw() diff --git a/src/base_circuitpython/terminalio.py b/Source/base_circuitpython/terminalio.py similarity index 97% rename from src/base_circuitpython/terminalio.py rename to Source/base_circuitpython/terminalio.py index 58abb7fc4..ba6ca6159 100644 --- a/src/base_circuitpython/terminalio.py +++ b/Source/base_circuitpython/terminalio.py @@ -1,15 +1,15 @@ -# overriden terminalio library, which uses -# adafruit_bitmap_font to load the default font - -# original implementation docs for terminalio: -# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/terminalio/__init__.html - -from adafruit_bitmap_font import bitmap_font # pylint: disable=wrong-import-position - -import os -import pathlib - -abs_path = pathlib.Path(__file__).parent.absolute() - -# load default font -FONT = bitmap_font.load_font(os.path.join(abs_path, "fonts", "ter-u12n.bdf")) +# overriden terminalio library, which uses +# adafruit_bitmap_font to load the default font + +# original implementation docs for terminalio: +# https://circuitpython.readthedocs.io/en/5.0.x/shared-bindings/terminalio/__init__.html + +from adafruit_bitmap_font import bitmap_font # pylint: disable=wrong-import-position + +import os +import pathlib + +abs_path = pathlib.Path(__file__).parent.absolute() + +# load default font +FONT = bitmap_font.load_font(os.path.join(abs_path, "fonts", "ter-u12n.bdf")) diff --git a/src/check_if_venv.py b/Source/check_if_venv.py similarity index 96% rename from src/check_if_venv.py rename to Source/check_if_venv.py index 45fd3dd2b..6055fa258 100644 --- a/src/check_if_venv.py +++ b/Source/check_if_venv.py @@ -1,11 +1,11 @@ -# from https://stackoverflow.com/questions/1871549/determine-if-python-is-running-inside-virtualenv -import sys - -isVenv = hasattr(sys, "real_prefix") or ( - hasattr(sys, "base_prefix") and sys.base_prefix != sys.prefix -) - -# prints result for frontend to read -# 1 -> is a venv -# 0 -> is NOT a venv -print(int(isVenv)) +# from https://stackoverflow.com/questions/1871549/determine-if-python-is-running-inside-virtualenv +import sys + +isVenv = hasattr(sys, "real_prefix") or ( + hasattr(sys, "base_prefix") and sys.base_prefix != sys.prefix +) + +# prints result for frontend to read +# 1 -> is a venv +# 0 -> is NOT a venv +print(int(isVenv)) diff --git a/src/check_python_dependencies.py b/Source/check_python_dependencies.py similarity index 100% rename from src/check_python_dependencies.py rename to Source/check_python_dependencies.py diff --git a/src/clue/__init__.py b/Source/clue/__init__.py similarity index 96% rename from src/clue/__init__.py rename to Source/clue/__init__.py index c34e9688b..43f8ed82b 100644 --- a/src/clue/__init__.py +++ b/Source/clue/__init__.py @@ -1 +1 @@ -import base_circuitpython +import base_circuitpython diff --git a/src/clue/adafruit_clue.py b/Source/clue/adafruit_clue.py similarity index 97% rename from src/clue/adafruit_clue.py rename to Source/clue/adafruit_clue.py index 059573021..e7a578d11 100644 --- a/src/clue/adafruit_clue.py +++ b/Source/clue/adafruit_clue.py @@ -1,852 +1,852 @@ -# The MIT License (MIT) -# -# Copyright (c) 2020 Kattni Rembor for Adafruit Industries -# -# 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. -""" -`adafruit_clue` -================================================================================ - -A high level library representing all the features of the Adafruit CLUE. - - -* Author(s): Kattni Rembor - -Implementation Notes --------------------- - -**Hardware:** - -.. "* `Adafruit CLUE - nRF52840 Express with Bluetooth LE `_" - -**Software and Dependencies:** - -* Adafruit CircuitPython firmware for the supported boards: - https://github.com/adafruit/circuitpython/releases - - * Adafruit's Bus Device library: https://github.com/adafruit/Adafruit_CircuitPython_BusDevice - * Adafruit's Register library: https://github.com/adafruit/Adafruit_CircuitPython_Register - * Adafruit's LSM6DS CircuitPython Library: - https://github.com/adafruit/Adafruit_CircuitPython_LSM6DS - * Adafruit's LIS3MDL CircuitPython Library: - https://github.com/adafruit/Adafruit_CircuitPython_LIS3MDL - * Adafruit's APDS9960 CircuitPython Library: - https://github.com/adafruit/Adafruit_CircuitPython_APDS9960 - * Adafruit's BMP280 CircuitPython Library: - https://github.com/adafruit/Adafruit_CircuitPython_BMP280 - * Adafruit's SHT31D CircuitPython Library: - https://github.com/adafruit/Adafruit_CircuitPython_SHT31D - * Adafruit's NeoPixel CircuitPython Library: - https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel -""" - -import common -from base_circuitpython import base_cp_constants as CONSTANTS -import neopixel -import time -import array -import math -from PIL import Image -import pathlib -import sys -import os -import board - -abs_path = pathlib.Path(__file__).parent.absolute() -sys.path.insert(0, os.path.join(abs_path)) - -# REVISED VERSION OF THE ADAFRUIT CLUE LIBRARY FOR DSX - -__version__ = "0.0.0-auto.0" -__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_CLUE.git" - - -class _ClueSimpleTextDisplay: - """Easily display lines of text on CLUE display.""" - - def __init__( - self, - title=None, - title_color=0xFFFFFF, - title_scale=1, # pylint: disable=too-many-arguments - text_scale=1, - font=None, - colors=None, - ): - import displayio - import terminalio - from adafruit_display_text import label - - if not colors: - colors = ( - Clue.VIOLET, - Clue.GREEN, - Clue.RED, - Clue.CYAN, - Clue.ORANGE, - Clue.BLUE, - Clue.MAGENTA, - Clue.SKY, - Clue.YELLOW, - Clue.PURPLE, - ) - - self._display = board.DISPLAY - self._colors = colors - self._label = label - self._font = terminalio.FONT - if font: - self._font = font - self.text_scale = text_scale - self.text_group = displayio.Group(max_size=20, scale=self.text_scale) - if title: - # Fail gracefully if title is longer than 60 characters. - if len(title) > 60: - raise ValueError("Title must be 60 characters or less.") - - title = label.Label( - self._font, - text=title, - max_glyphs=60, - color=title_color, - scale=title_scale, - ) - title.x = 0 - title.y = 8 * self.text_scale - self._y = title.y + 18 * self.text_scale - - self.text_group.append(title) - else: - self._y = 3 * self.text_scale - - self._lines = [] - for num in range(1): - self._lines.append(self.add_text_line(color=colors[num % len(colors)])) - - def __getitem__(self, item): - """Fetch the Nth text line Group""" - if len(self._lines) - 1 < item: - for _ in range(item - (len(self._lines) - 1)): - self._lines.append( - self.add_text_line(color=self._colors[item % len(self._colors)]) - ) - return self._lines[item] - - def add_text_line(self, color=0xFFFFFF): - """Adds a line on the display of the specified color and returns the label object.""" - text_label = self._label.Label(self._font, text="", max_glyphs=45, color=color) - text_label.x = 0 - text_label.y = self._y - self._y = text_label.y + 13 * self.text_scale - self.text_group.append(text_label) - - return text_label - - def show(self): - """Call show() to display the data list.""" - self._display.show(self.text_group) - - def show_terminal(self): - """Revert to terminalio screen.""" - self._display.show(None) - - -class Clue: # pylint: disable=too-many-instance-attributes, too-many-public-methods - """Represents a single CLUE.""" - - # Color variables available for import. - RED = (255, 0, 0) - YELLOW = (255, 255, 0) - ORANGE = (255, 150, 0) - GREEN = (0, 255, 0) - TEAL = (0, 255, 120) - CYAN = (0, 255, 255) - BLUE = (0, 0, 255) - PURPLE = (180, 0, 255) - MAGENTA = (255, 0, 150) - WHITE = (255, 255, 255) - BLACK = (0, 0, 0) - - GOLD = (255, 222, 30) - PINK = (242, 90, 255) - AQUA = (50, 255, 255) - JADE = (0, 255, 40) - AMBER = (255, 100, 0) - VIOLET = (255, 0, 255) - SKY = (0, 180, 255) - - RAINBOW = (RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) - - def __init__(self): - self.__state = {} - self.__state[CONSTANTS.CLUE_STATE.BUTTON_A] = False - self.__state[CONSTANTS.CLUE_STATE.BUTTON_B] = False - self.__state[CONSTANTS.CLUE_STATE.PRESSED_BUTTONS] = set() - self.__state[CONSTANTS.CLUE_STATE.SEA_LEVEL_PRESSURE] = 1013.25 - self.__state[CONSTANTS.CLUE_STATE.TEMPERATURE] = 0 - self.__state[CONSTANTS.CLUE_STATE.PROXIMITY] = 0 - self.__state[CONSTANTS.CLUE_STATE.GESTURE] = "" - self.__state[CONSTANTS.CLUE_STATE.HUMIDITY] = 0 - self.__state[CONSTANTS.CLUE_STATE.PRESSURE] = 1013 - self.__state[CONSTANTS.CLUE_STATE.PIXEL] = neopixel.NeoPixel( - pin=CONSTANTS.CLUE_PIN, n=1, pixel_order=neopixel.RGB - ) - # Accelerometer - self.__state[CONSTANTS.CLUE_STATE.MOTION_X] = 0 - self.__state[CONSTANTS.CLUE_STATE.MOTION_Y] = 0 - self.__state[CONSTANTS.CLUE_STATE.MOTION_Z] = 0 - # Light/color sensor - self.__state[CONSTANTS.CLUE_STATE.LIGHT_R] = 0 - self.__state[CONSTANTS.CLUE_STATE.LIGHT_G] = 0 - self.__state[CONSTANTS.CLUE_STATE.LIGHT_B] = 0 - self.__state[CONSTANTS.CLUE_STATE.LIGHT_C] = 0 - # Magnetometer - self.__state[CONSTANTS.CLUE_STATE.MAGNET_X] = 0 - self.__state[CONSTANTS.CLUE_STATE.MAGNET_Y] = 0 - self.__state[CONSTANTS.CLUE_STATE.MAGNET_Z] = 0 - # Gyroscope - self.__state[CONSTANTS.CLUE_STATE.GYRO_X] = 0 - self.__state[CONSTANTS.CLUE_STATE.GYRO_Y] = 0 - self.__state[CONSTANTS.CLUE_STATE.GYRO_Z] = 0 - # LEDs - self.__state[CONSTANTS.CLUE_STATE.RED_LED] = False - self.__state[CONSTANTS.CLUE_STATE.WHITE_LEDS] = False - - self.button_mapping = { - CONSTANTS.CLUE_STATE.BUTTON_A: "A", - CONSTANTS.CLUE_STATE.BUTTON_B: "B", - } - self.display = board.DISPLAY - - @property - def button_a(self): - """``True`` when Button A is pressed. ``False`` if not. - This example prints when button A is pressed. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - while True: - if clue.button_a: - print("Button A pressed") - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_BUTTON_A - ) - return self.__state[CONSTANTS.CLUE_STATE.BUTTON_A] - - @property - def button_b(self): - """``True`` when Button B is pressed. ``False`` if not. - This example prints when button B is pressed. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - while True: - if clue.button_b: - print("Button B pressed") - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_BUTTON_B - ) - return self.__state[CONSTANTS.CLUE_STATE.BUTTON_B] - - @property - def were_pressed(self): - """Returns a set of the buttons that have been pressed. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - while True: - print(clue.were_pressed) - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_WERE_PRESSED - ) - ret = self.__state[CONSTANTS.CLUE_STATE.PRESSED_BUTTONS].copy() - self.__state[CONSTANTS.CLUE_STATE.PRESSED_BUTTONS].clear() - return ret - - @property - def acceleration(self): - """Obtain acceleration data from the x, y and z axes. - This example prints the values. Try moving the board to see how the printed values change. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - while True: - print("Accel: {:.2f} {:.2f} {:.2f}".format(*clue.acceleration)) - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_ACCELERATION - ) - return ( - self.__state[CONSTANTS.CLUE_STATE.MOTION_X], - self.__state[CONSTANTS.CLUE_STATE.MOTION_Y], - self.__state[CONSTANTS.CLUE_STATE.MOTION_Z], - ) - - def shake(self, shake_threshold=30, avg_count=10, total_delay=0.1): - """Detect when the accelerometer is shaken. Optional parameters: - :param shake_threshold: Increase or decrease to change shake sensitivity. This - requires a minimum value of 10. 10 is the total - acceleration if the board is not moving, therefore - anything less than 10 will erroneously report a constant - shake detected. (Default 30) - :param avg_count: The number of readings taken and used for the average - acceleration. (Default 10) - :param total_delay: The total time in seconds it takes to obtain avg_count - readings from acceleration. (Default 0.1) - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_SHAKE - ) - is_shaken = self.__state[CONSTANTS.CLUE_STATE.GESTURE] == CONSTANTS.SHAKE - return is_shaken - - @property - def color(self): - """The red, green, blue, and clear light values. (r, g, b, c) - This example prints the values. Try holding something up to the sensor to see the values - change. Works best with white LEDs enabled. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - while True: - print("Color: R: {} G: {} B: {} C: {}".format(*clue.color)) - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_COLOR - ) - return ( - self.__state[CONSTANTS.CLUE_STATE.LIGHT_R], - self.__state[CONSTANTS.CLUE_STATE.LIGHT_G], - self.__state[CONSTANTS.CLUE_STATE.LIGHT_B], - self.__state[CONSTANTS.CLUE_STATE.LIGHT_C], - ) - - @property - def temperature(self): - """The temperature in degrees Celsius. - This example prints the value. Try touching the sensor to see the value change. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - print("Temperature: {:.1f}C".format(clue.temperature)) - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_TEMPERATURE - ) - return self.__state[CONSTANTS.CLUE_STATE.TEMPERATURE] - - @property - def magnetic(self): - """Obtain x, y, z magnetic values in microteslas. - This example prints the values. Try moving the board to see how the printed values change. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - while True: - print("Magnetic: {:.3f} {:.3f} {:.3f}".format(*clue.magnetic)) - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_MAGNETIC - ) - return ( - self.__state[CONSTANTS.CLUE_STATE.MAGNET_X], - self.__state[CONSTANTS.CLUE_STATE.MAGNET_Y], - self.__state[CONSTANTS.CLUE_STATE.MAGNET_Z], - ) - - @property - def proximity(self): - """A relative proximity to the sensor in values from 0 - 255. - This example prints the value. Try moving your hand towards and away from the front of the - board to see how the printed values change. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - while True: - print("Proximity: {}".format(clue.proximity)) - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_PROXIMITY - ) - return self.__state[CONSTANTS.CLUE_STATE.PROXIMITY] - - @property - def gyro(self): - """Obtain x, y, z angular velocity values in degrees/second. - This example prints the values. Try moving the board to see how the printed values change. - print("Gyro: {:.2f} {:.2f} {:.2f}".format(*clue.gyro)) - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_GYRO - ) - return ( - self.__state[CONSTANTS.CLUE_STATE.GYRO_X], - self.__state[CONSTANTS.CLUE_STATE.GYRO_Y], - self.__state[CONSTANTS.CLUE_STATE.GYRO_Z], - ) - - @property - def gesture(self): - """A gesture code if gesture is detected. Shows ``0`` if no gesture detected. - ``1`` if an UP gesture is detected, ``2`` if DOWN, ``3`` if LEFT, and ``4`` if RIGHT. - This example prints the gesture values. Try moving your hand up, down, left or right over - the sensor to see the value change. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - while True: - print("Gesture: {}".format(clue.gesture)) - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_GESTURE - ) - gesture_mapping = {"": 0, "up": 1, "down": 2, "left": 3, "right": 4} - return gesture_mapping.get(self.__state[CONSTANTS.CLUE_STATE.GESTURE], 0) - - @property - def humidity(self): - """The measured relative humidity in percent. - This example prints the value. Try breathing on the sensor to see the values change. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - while True: - print("Humidity: {:.1f}%".format(clue.humidity)) - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_HUMIDITY - ) - return self.__state[CONSTANTS.CLUE_STATE.HUMIDITY] - - @property - def pressure(self): - """The barometric pressure in hectoPascals. - This example prints the value. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - print("Pressure: {:.3f}hPa".format(clue.pressure)) - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_PRESSURE - ) - return self.__state[CONSTANTS.CLUE_STATE.PRESSURE] - - @property - def altitude(self): - """The altitude in meters based on the sea level pressure at your location. You must set - ``sea_level_pressure`` to receive an accurate reading. - This example prints the value. Try moving the board vertically to see the value change. - .. code-block:: python - from adafruit_clue import clue - clue.sea_level_pressure = 1015 - print("Altitude: {:.1f}m".format(clue.altitude)) - """ - # National Oceanic and Atmospheric Administration (NOAA) formula for converting atmospheric pressure to pressure altitude. - OUTSIDE_MULTIPLER_CONSTANT = 44330 - POWER_CONSTANT = 0.1903 - WHOLE_CONSTANT = 1 - - altitude = OUTSIDE_MULTIPLER_CONSTANT * ( - WHOLE_CONSTANT - - math.pow( - self.__state[CONSTANTS.CLUE_STATE.PRESSURE] - / self.__state[CONSTANTS.CLUE_STATE.SEA_LEVEL_PRESSURE], - POWER_CONSTANT, - ) - ) - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_ALTITUDE - ) - return altitude - - @property - def sea_level_pressure(self): - """Set to the pressure at sea level at your location, before reading altitude for - the most accurate altitude measurement. - This example prints the value. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - clue.sea_level_pressure = 1015 - print("Pressure: {:.3f}hPa".format(clue.pressure)) - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_SEA_LEVEL_PRESSURE - ) - return self.__state[CONSTANTS.CLUE_STATE.SEA_LEVEL_PRESSURE] - - @sea_level_pressure.setter - def sea_level_pressure(self, value): - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_SEA_LEVEL_PRESSURE - ) - self.__state[CONSTANTS.CLUE_STATE.SEA_LEVEL_PRESSURE] = value - - @property - def pixel(self): - """The NeoPixel RGB LED. - This example turns the NeoPixel purple. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - while True: - clue.pixel.fill((255, 0, 255)) - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_PIXEL - ) - return self.__state[CONSTANTS.CLUE_STATE.PIXEL] - - @property - def touch_0(self): - """Not Implemented! - - Detect touch on capacitive touch pad 0. - .. image :: ../docs/_static/pad_0.jpg - :alt: Pad 0 - This example prints when pad 0 is touched. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - while True: - if clue.touch_0: - print("Touched pad 0") - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_TOUCH - ) - common.utils.print_for_unimplemented_functions("touch_0") - - @property - def touch_1(self): - """Not Implemented! - - Detect touch on capacitive touch pad 1. - .. image :: ../docs/_static/pad_1.jpg - :alt: Pad 1 - This example prints when pad 1 is touched. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - while True: - if clue.touch_1: - print("Touched pad 1") - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_TOUCH - ) - common.utils.print_for_unimplemented_functions("touch_1") - - @property - def touch_2(self): - """Not Implemented! - - Detect touch on capacitive touch pad 2. - .. image :: ../docs/_static/pad_2.jpg - :alt: Pad 2 - This example prints when pad 2 is touched. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - while True: - if clue.touch_2: - print("Touched pad 2") - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_TOUCH - ) - common.utils.print_for_unimplemented_functions("touch_2") - - @property - def white_leds(self): - """The red led next to the USB plug labeled LED. - .. image :: ../docs/_static/white_leds.jpg - :alt: White LEDs - This example turns on the white LEDs. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - clue.white_leds = True - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_WHITE_LEDS - ) - return self.__state[CONSTANTS.CLUE_STATE.WHITE_LEDS] - - @white_leds.setter - def white_leds(self, value): - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_WHITE_LEDS - ) - self.__set_leds(CONSTANTS.CLUE_STATE.WHITE_LEDS, value) - - @property - def red_led(self): - """The red led next to the USB plug labeled LED. - .. image :: ../docs/_static/red_led.jpg - :alt: Red LED - This example turns on the red LED. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - clue.red_led = True - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_RED_LED - ) - return self.__state[CONSTANTS.CLUE_STATE.RED_LED] - - @red_led.setter - def red_led(self, value): - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_RED_LED - ) - self.__set_leds(CONSTANTS.CLUE_STATE.RED_LED, value) - - def play_tone(self, frequency, duration): - """ Not Implemented! - Produce a tone using the speaker. Try changing frequency to change - the pitch of the tone. - :param int frequency: The frequency of the tone in Hz - :param float duration: The duration of the tone in seconds - .. image :: ../docs/_static/speaker.jpg - :alt: Speaker - This example plays a 880 Hz tone for a duration of 1 second. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - clue.play_tone(880, 1) - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_SOUND - ) - common.utils.print_for_unimplemented_functions(Clue.play_tone.__name__) - - def start_tone(self, frequency): - """ Not Implemented! - Produce a tone using the speaker. Try changing frequency to change - the pitch of the tone. - :param int frequency: The frequency of the tone in Hz - .. image :: ../docs/_static/speaker.jpg - :alt: Speaker - This example plays a 523Hz tone when button A is pressed and a 587Hz tone when button B is - pressed, only while the buttons are being pressed. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - while True: - if clue.button_a: - clue.start_tone(523) - elif clue.button_b: - clue.start_tone(587) - else: - clue.stop_tone() - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_SOUND - ) - common.utils.print_for_unimplemented_functions(Clue.start_tone.__name__) - - def stop_tone(self): - """ Not Implemented! - Use with start_tone to stop the tone produced. - .. image :: ../docs/_static/speaker.jpg - :alt: Speaker - This example plays a 523Hz tone when button A is pressed and a 587Hz tone when button B is - pressed, only while the buttons are being pressed. - To use with the CLUE: - .. code-block:: python - from adafruit_clue import clue - while True: - if clue.button_a: - clue.start_tone(523) - elif clue.button_b: - clue.start_tone(587) - else: - clue.stop_tone() - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_SOUND - ) - common.utils.print_for_unimplemented_functions(Clue.stop_tone.__name__) - - @property - def sound_level(self): - """Not Implemented! - Obtain the sound level from the microphone (sound sensor). - .. image :: ../docs/_static/microphone.jpg - :alt: Microphone (sound sensor) - This example prints the sound levels. Try clapping or blowing on - the microphone to see the levels change. - .. code-block:: python - from adafruit_clue import clue - while True: - print(clue.sound_level) - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_SOUND - ) - common.utils.print_for_unimplemented_functions("sound_level") - - def loud_sound(self, sound_threshold=200): - """Not Implemented! - Utilise a loud sound as an input. - :param int sound_threshold: Threshold sound level must exceed to return true (Default: 200) - .. image :: ../docs/_static/microphone.jpg - :alt: Microphone (sound sensor) - This example turns the NeoPixel LED blue each time you make a loud sound. - Try clapping or blowing onto the microphone to trigger it. - .. code-block:: python - from adafruit_clue import clue - while True: - if clue.loud_sound(): - clue.pixel.fill((0, 50, 0)) - else: - clue.pixel.fill(0) - You may find that the code is not responding how you would like. - If this is the case, you can change the loud sound threshold to - make it more or less responsive. Setting it to a higher number - means it will take a louder sound to trigger. Setting it to a - lower number will take a quieter sound to trigger. The following - example shows the threshold being set to a higher number than - the default. - .. code-block:: python - from adafruit_clue import clue - while True: - if clue.loud_sound(sound_threshold=300): - clue.pixel.fill((0, 50, 0)) - else: - clue.pixel.fill(0) - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_SOUND - ) - common.utils.print_for_unimplemented_functions(Clue.loud_sound.__name__) - - @staticmethod - def simple_text_display( - title=None, - title_color=(255, 255, 255), - title_scale=1, # pylint: disable=too-many-arguments - text_scale=1, - font=None, - colors=None, - ): - """Display lines of text on the CLUE display. Lines of text are created in order as shown - in the example below. If you skip a number, the line will be shown blank on the display, - e.g. if you include ``[0]`` and ``[2]``, the second line on the display will be empty, and - the text specified for lines 0 and 2 will be displayed on the first and third line. - Remember, Python begins counting at 0, so the first line on the display is 0 in the code. - - Setup occurs before the loop. For data to be dynamically updated on the display, you must - include the data call in the loop by using ``.text =``. For example, if setup is saved as - ``clue_data = display_clue_data()`` then ``clue_data[0].text = clue.proximity`` must be - inside the ``while True:`` loop for the proximity data displayed to update as the - values change. You must call ``show()`` at the end of the list for anything to display. - See example below for usage. - - :param str title: The title displayed above the data. Set ``title="Title text"`` to provide - a title. Defaults to None. - :param title_color: The color of the title. Not necessary if no title is provided. Defaults - to white (255, 255, 255). - :param int title_scale: Scale the size of the title. Not necessary if no title is provided. - Defaults to 1. - :param int text_scale: Scale the size of the data lines. Scales the title as well. - Defaults to 1. - :param str font: The font to use to display the title and data. Defaults to built in - ``terminalio.FONT``. - :param colors: A list of colors for the lines of data on the display. If you provide a - single color, all lines will be that color. Otherwise it will cycle through - the list you provide if the list is less than the number of lines displayed. - Default colors are used if ``colors`` is not set. For example, if creating - two lines of data, ``colors=((255, 255, 255), (255, 0, 0))`` would set the - first line white and the second line red, and if you created four lines of - data with the same setup, it would alternate white and red. - - .. image :: ../docs/_static/display_clue_data.jpg - :alt: Display Clue Data demo - - This example displays three lines with acceleration, gyro and magnetic data on the display. - Remember to call ``show()`` after the list to update the display. - - .. code-block:: python - - from adafruit_clue import clue - - clue_data = clue.simple_text_display(title="CLUE Sensor Data!", title_scale=2) - - while True: - clue_data[0].text = "Acceleration: {:.2f} {:.2f} {:.2f}".format(*clue.acceleration) - clue_data[1].text = "Gyro: {:.2f} {:.2f} {:.2f}".format(*clue.gyro) - clue_data[2].text = "Magnetic: {:.3f} {:.3f} {:.3f}".format(*clue.magnetic) - clue_data.show() - """ - common.telemetry.telemetry_py.send_telemetry( - common.telemetry_events.TelemetryEvent.CLUE_API_TEXT_DISPLAY - ) - return _ClueSimpleTextDisplay( - title=title, - title_color=title_color, - title_scale=title_scale, - text_scale=text_scale, - font=font, - colors=colors, - ) - - def update_state(self, new_state): - for event in new_state.keys(): - if event in CONSTANTS.EXPECTED_INPUT_BUTTONS: - self.__update_button(event, new_state.get(event)) - elif event in CONSTANTS.ALL_EXPECTED_INPUT_EVENTS: - if self.__state[event] != new_state[event]: - self.__state[event] = new_state.get(event) - - # helpers - def __update_button(self, button, value): - if value: - self.__state[CONSTANTS.CLUE_STATE.PRESSED_BUTTONS].add( - self.button_mapping[button] - ) - self.__state[button] = value - - def __set_leds(self, led, value): - value = bool(value) - self.__state[led] = value - sendable_json = {led: value} - if common.utils.debug_mode: - common.debugger_communication_client.debug_send_to_simulator( - sendable_json, CONSTANTS.CLUE - ) - else: - common.utils.send_to_simulator(sendable_json, CONSTANTS.CLUE) - - -clue = Clue() # pylint: disable=invalid-name -"""Object that is automatically created on import. - - To use, simply import it from the module: - - .. code-block:: python - - from adafruit_clue import clue -""" +# The MIT License (MIT) +# +# Copyright (c) 2020 Kattni Rembor for Adafruit Industries +# +# 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. +""" +`adafruit_clue` +================================================================================ + +A high level library representing all the features of the Adafruit CLUE. + + +* Author(s): Kattni Rembor + +Implementation Notes +-------------------- + +**Hardware:** + +.. "* `Adafruit CLUE - nRF52840 Express with Bluetooth LE `_" + +**Software and Dependencies:** + +* Adafruit CircuitPython firmware for the supported boards: + https://github.com/adafruit/circuitpython/releases + + * Adafruit's Bus Device library: https://github.com/adafruit/Adafruit_CircuitPython_BusDevice + * Adafruit's Register library: https://github.com/adafruit/Adafruit_CircuitPython_Register + * Adafruit's LSM6DS CircuitPython Library: + https://github.com/adafruit/Adafruit_CircuitPython_LSM6DS + * Adafruit's LIS3MDL CircuitPython Library: + https://github.com/adafruit/Adafruit_CircuitPython_LIS3MDL + * Adafruit's APDS9960 CircuitPython Library: + https://github.com/adafruit/Adafruit_CircuitPython_APDS9960 + * Adafruit's BMP280 CircuitPython Library: + https://github.com/adafruit/Adafruit_CircuitPython_BMP280 + * Adafruit's SHT31D CircuitPython Library: + https://github.com/adafruit/Adafruit_CircuitPython_SHT31D + * Adafruit's NeoPixel CircuitPython Library: + https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel +""" + +import common +from base_circuitpython import base_cp_constants as CONSTANTS +import neopixel +import time +import array +import math +from PIL import Image +import pathlib +import sys +import os +import board + +abs_path = pathlib.Path(__file__).parent.absolute() +sys.path.insert(0, os.path.join(abs_path)) + +# REVISED VERSION OF THE ADAFRUIT CLUE LIBRARY FOR DSX + +__version__ = "0.0.0-auto.0" +__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_CLUE.git" + + +class _ClueSimpleTextDisplay: + """Easily display lines of text on CLUE display.""" + + def __init__( + self, + title=None, + title_color=0xFFFFFF, + title_scale=1, # pylint: disable=too-many-arguments + text_scale=1, + font=None, + colors=None, + ): + import displayio + import terminalio + from adafruit_display_text import label + + if not colors: + colors = ( + Clue.VIOLET, + Clue.GREEN, + Clue.RED, + Clue.CYAN, + Clue.ORANGE, + Clue.BLUE, + Clue.MAGENTA, + Clue.SKY, + Clue.YELLOW, + Clue.PURPLE, + ) + + self._display = board.DISPLAY + self._colors = colors + self._label = label + self._font = terminalio.FONT + if font: + self._font = font + self.text_scale = text_scale + self.text_group = displayio.Group(max_size=20, scale=self.text_scale) + if title: + # Fail gracefully if title is longer than 60 characters. + if len(title) > 60: + raise ValueError("Title must be 60 characters or less.") + + title = label.Label( + self._font, + text=title, + max_glyphs=60, + color=title_color, + scale=title_scale, + ) + title.x = 0 + title.y = 8 * self.text_scale + self._y = title.y + 18 * self.text_scale + + self.text_group.append(title) + else: + self._y = 3 * self.text_scale + + self._lines = [] + for num in range(1): + self._lines.append(self.add_text_line(color=colors[num % len(colors)])) + + def __getitem__(self, item): + """Fetch the Nth text line Group""" + if len(self._lines) - 1 < item: + for _ in range(item - (len(self._lines) - 1)): + self._lines.append( + self.add_text_line(color=self._colors[item % len(self._colors)]) + ) + return self._lines[item] + + def add_text_line(self, color=0xFFFFFF): + """Adds a line on the display of the specified color and returns the label object.""" + text_label = self._label.Label(self._font, text="", max_glyphs=45, color=color) + text_label.x = 0 + text_label.y = self._y + self._y = text_label.y + 13 * self.text_scale + self.text_group.append(text_label) + + return text_label + + def show(self): + """Call show() to display the data list.""" + self._display.show(self.text_group) + + def show_terminal(self): + """Revert to terminalio screen.""" + self._display.show(None) + + +class Clue: # pylint: disable=too-many-instance-attributes, too-many-public-methods + """Represents a single CLUE.""" + + # Color variables available for import. + RED = (255, 0, 0) + YELLOW = (255, 255, 0) + ORANGE = (255, 150, 0) + GREEN = (0, 255, 0) + TEAL = (0, 255, 120) + CYAN = (0, 255, 255) + BLUE = (0, 0, 255) + PURPLE = (180, 0, 255) + MAGENTA = (255, 0, 150) + WHITE = (255, 255, 255) + BLACK = (0, 0, 0) + + GOLD = (255, 222, 30) + PINK = (242, 90, 255) + AQUA = (50, 255, 255) + JADE = (0, 255, 40) + AMBER = (255, 100, 0) + VIOLET = (255, 0, 255) + SKY = (0, 180, 255) + + RAINBOW = (RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + + def __init__(self): + self.__state = {} + self.__state[CONSTANTS.CLUE_STATE.BUTTON_A] = False + self.__state[CONSTANTS.CLUE_STATE.BUTTON_B] = False + self.__state[CONSTANTS.CLUE_STATE.PRESSED_BUTTONS] = set() + self.__state[CONSTANTS.CLUE_STATE.SEA_LEVEL_PRESSURE] = 1013.25 + self.__state[CONSTANTS.CLUE_STATE.TEMPERATURE] = 0 + self.__state[CONSTANTS.CLUE_STATE.PROXIMITY] = 0 + self.__state[CONSTANTS.CLUE_STATE.GESTURE] = "" + self.__state[CONSTANTS.CLUE_STATE.HUMIDITY] = 0 + self.__state[CONSTANTS.CLUE_STATE.PRESSURE] = 1013 + self.__state[CONSTANTS.CLUE_STATE.PIXEL] = neopixel.NeoPixel( + pin=CONSTANTS.CLUE_PIN, n=1, pixel_order=neopixel.RGB + ) + # Accelerometer + self.__state[CONSTANTS.CLUE_STATE.MOTION_X] = 0 + self.__state[CONSTANTS.CLUE_STATE.MOTION_Y] = 0 + self.__state[CONSTANTS.CLUE_STATE.MOTION_Z] = 0 + # Light/color sensor + self.__state[CONSTANTS.CLUE_STATE.LIGHT_R] = 0 + self.__state[CONSTANTS.CLUE_STATE.LIGHT_G] = 0 + self.__state[CONSTANTS.CLUE_STATE.LIGHT_B] = 0 + self.__state[CONSTANTS.CLUE_STATE.LIGHT_C] = 0 + # Magnetometer + self.__state[CONSTANTS.CLUE_STATE.MAGNET_X] = 0 + self.__state[CONSTANTS.CLUE_STATE.MAGNET_Y] = 0 + self.__state[CONSTANTS.CLUE_STATE.MAGNET_Z] = 0 + # Gyroscope + self.__state[CONSTANTS.CLUE_STATE.GYRO_X] = 0 + self.__state[CONSTANTS.CLUE_STATE.GYRO_Y] = 0 + self.__state[CONSTANTS.CLUE_STATE.GYRO_Z] = 0 + # LEDs + self.__state[CONSTANTS.CLUE_STATE.RED_LED] = False + self.__state[CONSTANTS.CLUE_STATE.WHITE_LEDS] = False + + self.button_mapping = { + CONSTANTS.CLUE_STATE.BUTTON_A: "A", + CONSTANTS.CLUE_STATE.BUTTON_B: "B", + } + self.display = board.DISPLAY + + @property + def button_a(self): + """``True`` when Button A is pressed. ``False`` if not. + This example prints when button A is pressed. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + while True: + if clue.button_a: + print("Button A pressed") + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_BUTTON_A + ) + return self.__state[CONSTANTS.CLUE_STATE.BUTTON_A] + + @property + def button_b(self): + """``True`` when Button B is pressed. ``False`` if not. + This example prints when button B is pressed. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + while True: + if clue.button_b: + print("Button B pressed") + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_BUTTON_B + ) + return self.__state[CONSTANTS.CLUE_STATE.BUTTON_B] + + @property + def were_pressed(self): + """Returns a set of the buttons that have been pressed. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + while True: + print(clue.were_pressed) + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_WERE_PRESSED + ) + ret = self.__state[CONSTANTS.CLUE_STATE.PRESSED_BUTTONS].copy() + self.__state[CONSTANTS.CLUE_STATE.PRESSED_BUTTONS].clear() + return ret + + @property + def acceleration(self): + """Obtain acceleration data from the x, y and z axes. + This example prints the values. Try moving the board to see how the printed values change. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + while True: + print("Accel: {:.2f} {:.2f} {:.2f}".format(*clue.acceleration)) + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_ACCELERATION + ) + return ( + self.__state[CONSTANTS.CLUE_STATE.MOTION_X], + self.__state[CONSTANTS.CLUE_STATE.MOTION_Y], + self.__state[CONSTANTS.CLUE_STATE.MOTION_Z], + ) + + def shake(self, shake_threshold=30, avg_count=10, total_delay=0.1): + """Detect when the accelerometer is shaken. Optional parameters: + :param shake_threshold: Increase or decrease to change shake sensitivity. This + requires a minimum value of 10. 10 is the total + acceleration if the board is not moving, therefore + anything less than 10 will erroneously report a constant + shake detected. (Default 30) + :param avg_count: The number of readings taken and used for the average + acceleration. (Default 10) + :param total_delay: The total time in seconds it takes to obtain avg_count + readings from acceleration. (Default 0.1) + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_SHAKE + ) + is_shaken = self.__state[CONSTANTS.CLUE_STATE.GESTURE] == CONSTANTS.SHAKE + return is_shaken + + @property + def color(self): + """The red, green, blue, and clear light values. (r, g, b, c) + This example prints the values. Try holding something up to the sensor to see the values + change. Works best with white LEDs enabled. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + while True: + print("Color: R: {} G: {} B: {} C: {}".format(*clue.color)) + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_COLOR + ) + return ( + self.__state[CONSTANTS.CLUE_STATE.LIGHT_R], + self.__state[CONSTANTS.CLUE_STATE.LIGHT_G], + self.__state[CONSTANTS.CLUE_STATE.LIGHT_B], + self.__state[CONSTANTS.CLUE_STATE.LIGHT_C], + ) + + @property + def temperature(self): + """The temperature in degrees Celsius. + This example prints the value. Try touching the sensor to see the value change. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + print("Temperature: {:.1f}C".format(clue.temperature)) + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_TEMPERATURE + ) + return self.__state[CONSTANTS.CLUE_STATE.TEMPERATURE] + + @property + def magnetic(self): + """Obtain x, y, z magnetic values in microteslas. + This example prints the values. Try moving the board to see how the printed values change. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + while True: + print("Magnetic: {:.3f} {:.3f} {:.3f}".format(*clue.magnetic)) + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_MAGNETIC + ) + return ( + self.__state[CONSTANTS.CLUE_STATE.MAGNET_X], + self.__state[CONSTANTS.CLUE_STATE.MAGNET_Y], + self.__state[CONSTANTS.CLUE_STATE.MAGNET_Z], + ) + + @property + def proximity(self): + """A relative proximity to the sensor in values from 0 - 255. + This example prints the value. Try moving your hand towards and away from the front of the + board to see how the printed values change. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + while True: + print("Proximity: {}".format(clue.proximity)) + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_PROXIMITY + ) + return self.__state[CONSTANTS.CLUE_STATE.PROXIMITY] + + @property + def gyro(self): + """Obtain x, y, z angular velocity values in degrees/second. + This example prints the values. Try moving the board to see how the printed values change. + print("Gyro: {:.2f} {:.2f} {:.2f}".format(*clue.gyro)) + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_GYRO + ) + return ( + self.__state[CONSTANTS.CLUE_STATE.GYRO_X], + self.__state[CONSTANTS.CLUE_STATE.GYRO_Y], + self.__state[CONSTANTS.CLUE_STATE.GYRO_Z], + ) + + @property + def gesture(self): + """A gesture code if gesture is detected. Shows ``0`` if no gesture detected. + ``1`` if an UP gesture is detected, ``2`` if DOWN, ``3`` if LEFT, and ``4`` if RIGHT. + This example prints the gesture values. Try moving your hand up, down, left or right over + the sensor to see the value change. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + while True: + print("Gesture: {}".format(clue.gesture)) + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_GESTURE + ) + gesture_mapping = {"": 0, "up": 1, "down": 2, "left": 3, "right": 4} + return gesture_mapping.get(self.__state[CONSTANTS.CLUE_STATE.GESTURE], 0) + + @property + def humidity(self): + """The measured relative humidity in percent. + This example prints the value. Try breathing on the sensor to see the values change. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + while True: + print("Humidity: {:.1f}%".format(clue.humidity)) + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_HUMIDITY + ) + return self.__state[CONSTANTS.CLUE_STATE.HUMIDITY] + + @property + def pressure(self): + """The barometric pressure in hectoPascals. + This example prints the value. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + print("Pressure: {:.3f}hPa".format(clue.pressure)) + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_PRESSURE + ) + return self.__state[CONSTANTS.CLUE_STATE.PRESSURE] + + @property + def altitude(self): + """The altitude in meters based on the sea level pressure at your location. You must set + ``sea_level_pressure`` to receive an accurate reading. + This example prints the value. Try moving the board vertically to see the value change. + .. code-block:: python + from adafruit_clue import clue + clue.sea_level_pressure = 1015 + print("Altitude: {:.1f}m".format(clue.altitude)) + """ + # National Oceanic and Atmospheric Administration (NOAA) formula for converting atmospheric pressure to pressure altitude. + OUTSIDE_MULTIPLER_CONSTANT = 44330 + POWER_CONSTANT = 0.1903 + WHOLE_CONSTANT = 1 + + altitude = OUTSIDE_MULTIPLER_CONSTANT * ( + WHOLE_CONSTANT + - math.pow( + self.__state[CONSTANTS.CLUE_STATE.PRESSURE] + / self.__state[CONSTANTS.CLUE_STATE.SEA_LEVEL_PRESSURE], + POWER_CONSTANT, + ) + ) + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_ALTITUDE + ) + return altitude + + @property + def sea_level_pressure(self): + """Set to the pressure at sea level at your location, before reading altitude for + the most accurate altitude measurement. + This example prints the value. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + clue.sea_level_pressure = 1015 + print("Pressure: {:.3f}hPa".format(clue.pressure)) + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_SEA_LEVEL_PRESSURE + ) + return self.__state[CONSTANTS.CLUE_STATE.SEA_LEVEL_PRESSURE] + + @sea_level_pressure.setter + def sea_level_pressure(self, value): + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_SEA_LEVEL_PRESSURE + ) + self.__state[CONSTANTS.CLUE_STATE.SEA_LEVEL_PRESSURE] = value + + @property + def pixel(self): + """The NeoPixel RGB LED. + This example turns the NeoPixel purple. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + while True: + clue.pixel.fill((255, 0, 255)) + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_PIXEL + ) + return self.__state[CONSTANTS.CLUE_STATE.PIXEL] + + @property + def touch_0(self): + """Not Implemented! + + Detect touch on capacitive touch pad 0. + .. image :: ../docs/_static/pad_0.jpg + :alt: Pad 0 + This example prints when pad 0 is touched. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + while True: + if clue.touch_0: + print("Touched pad 0") + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_TOUCH + ) + common.utils.print_for_unimplemented_functions("touch_0") + + @property + def touch_1(self): + """Not Implemented! + + Detect touch on capacitive touch pad 1. + .. image :: ../docs/_static/pad_1.jpg + :alt: Pad 1 + This example prints when pad 1 is touched. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + while True: + if clue.touch_1: + print("Touched pad 1") + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_TOUCH + ) + common.utils.print_for_unimplemented_functions("touch_1") + + @property + def touch_2(self): + """Not Implemented! + + Detect touch on capacitive touch pad 2. + .. image :: ../docs/_static/pad_2.jpg + :alt: Pad 2 + This example prints when pad 2 is touched. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + while True: + if clue.touch_2: + print("Touched pad 2") + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_TOUCH + ) + common.utils.print_for_unimplemented_functions("touch_2") + + @property + def white_leds(self): + """The red led next to the USB plug labeled LED. + .. image :: ../docs/_static/white_leds.jpg + :alt: White LEDs + This example turns on the white LEDs. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + clue.white_leds = True + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_WHITE_LEDS + ) + return self.__state[CONSTANTS.CLUE_STATE.WHITE_LEDS] + + @white_leds.setter + def white_leds(self, value): + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_WHITE_LEDS + ) + self.__set_leds(CONSTANTS.CLUE_STATE.WHITE_LEDS, value) + + @property + def red_led(self): + """The red led next to the USB plug labeled LED. + .. image :: ../docs/_static/red_led.jpg + :alt: Red LED + This example turns on the red LED. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + clue.red_led = True + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_RED_LED + ) + return self.__state[CONSTANTS.CLUE_STATE.RED_LED] + + @red_led.setter + def red_led(self, value): + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_RED_LED + ) + self.__set_leds(CONSTANTS.CLUE_STATE.RED_LED, value) + + def play_tone(self, frequency, duration): + """ Not Implemented! + Produce a tone using the speaker. Try changing frequency to change + the pitch of the tone. + :param int frequency: The frequency of the tone in Hz + :param float duration: The duration of the tone in seconds + .. image :: ../docs/_static/speaker.jpg + :alt: Speaker + This example plays a 880 Hz tone for a duration of 1 second. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + clue.play_tone(880, 1) + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_SOUND + ) + common.utils.print_for_unimplemented_functions(Clue.play_tone.__name__) + + def start_tone(self, frequency): + """ Not Implemented! + Produce a tone using the speaker. Try changing frequency to change + the pitch of the tone. + :param int frequency: The frequency of the tone in Hz + .. image :: ../docs/_static/speaker.jpg + :alt: Speaker + This example plays a 523Hz tone when button A is pressed and a 587Hz tone when button B is + pressed, only while the buttons are being pressed. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + while True: + if clue.button_a: + clue.start_tone(523) + elif clue.button_b: + clue.start_tone(587) + else: + clue.stop_tone() + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_SOUND + ) + common.utils.print_for_unimplemented_functions(Clue.start_tone.__name__) + + def stop_tone(self): + """ Not Implemented! + Use with start_tone to stop the tone produced. + .. image :: ../docs/_static/speaker.jpg + :alt: Speaker + This example plays a 523Hz tone when button A is pressed and a 587Hz tone when button B is + pressed, only while the buttons are being pressed. + To use with the CLUE: + .. code-block:: python + from adafruit_clue import clue + while True: + if clue.button_a: + clue.start_tone(523) + elif clue.button_b: + clue.start_tone(587) + else: + clue.stop_tone() + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_SOUND + ) + common.utils.print_for_unimplemented_functions(Clue.stop_tone.__name__) + + @property + def sound_level(self): + """Not Implemented! + Obtain the sound level from the microphone (sound sensor). + .. image :: ../docs/_static/microphone.jpg + :alt: Microphone (sound sensor) + This example prints the sound levels. Try clapping or blowing on + the microphone to see the levels change. + .. code-block:: python + from adafruit_clue import clue + while True: + print(clue.sound_level) + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_SOUND + ) + common.utils.print_for_unimplemented_functions("sound_level") + + def loud_sound(self, sound_threshold=200): + """Not Implemented! + Utilise a loud sound as an input. + :param int sound_threshold: Threshold sound level must exceed to return true (Default: 200) + .. image :: ../docs/_static/microphone.jpg + :alt: Microphone (sound sensor) + This example turns the NeoPixel LED blue each time you make a loud sound. + Try clapping or blowing onto the microphone to trigger it. + .. code-block:: python + from adafruit_clue import clue + while True: + if clue.loud_sound(): + clue.pixel.fill((0, 50, 0)) + else: + clue.pixel.fill(0) + You may find that the code is not responding how you would like. + If this is the case, you can change the loud sound threshold to + make it more or less responsive. Setting it to a higher number + means it will take a louder sound to trigger. Setting it to a + lower number will take a quieter sound to trigger. The following + example shows the threshold being set to a higher number than + the default. + .. code-block:: python + from adafruit_clue import clue + while True: + if clue.loud_sound(sound_threshold=300): + clue.pixel.fill((0, 50, 0)) + else: + clue.pixel.fill(0) + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_SOUND + ) + common.utils.print_for_unimplemented_functions(Clue.loud_sound.__name__) + + @staticmethod + def simple_text_display( + title=None, + title_color=(255, 255, 255), + title_scale=1, # pylint: disable=too-many-arguments + text_scale=1, + font=None, + colors=None, + ): + """Display lines of text on the CLUE display. Lines of text are created in order as shown + in the example below. If you skip a number, the line will be shown blank on the display, + e.g. if you include ``[0]`` and ``[2]``, the second line on the display will be empty, and + the text specified for lines 0 and 2 will be displayed on the first and third line. + Remember, Python begins counting at 0, so the first line on the display is 0 in the code. + + Setup occurs before the loop. For data to be dynamically updated on the display, you must + include the data call in the loop by using ``.text =``. For example, if setup is saved as + ``clue_data = display_clue_data()`` then ``clue_data[0].text = clue.proximity`` must be + inside the ``while True:`` loop for the proximity data displayed to update as the + values change. You must call ``show()`` at the end of the list for anything to display. + See example below for usage. + + :param str title: The title displayed above the data. Set ``title="Title text"`` to provide + a title. Defaults to None. + :param title_color: The color of the title. Not necessary if no title is provided. Defaults + to white (255, 255, 255). + :param int title_scale: Scale the size of the title. Not necessary if no title is provided. + Defaults to 1. + :param int text_scale: Scale the size of the data lines. Scales the title as well. + Defaults to 1. + :param str font: The font to use to display the title and data. Defaults to built in + ``terminalio.FONT``. + :param colors: A list of colors for the lines of data on the display. If you provide a + single color, all lines will be that color. Otherwise it will cycle through + the list you provide if the list is less than the number of lines displayed. + Default colors are used if ``colors`` is not set. For example, if creating + two lines of data, ``colors=((255, 255, 255), (255, 0, 0))`` would set the + first line white and the second line red, and if you created four lines of + data with the same setup, it would alternate white and red. + + .. image :: ../docs/_static/display_clue_data.jpg + :alt: Display Clue Data demo + + This example displays three lines with acceleration, gyro and magnetic data on the display. + Remember to call ``show()`` after the list to update the display. + + .. code-block:: python + + from adafruit_clue import clue + + clue_data = clue.simple_text_display(title="CLUE Sensor Data!", title_scale=2) + + while True: + clue_data[0].text = "Acceleration: {:.2f} {:.2f} {:.2f}".format(*clue.acceleration) + clue_data[1].text = "Gyro: {:.2f} {:.2f} {:.2f}".format(*clue.gyro) + clue_data[2].text = "Magnetic: {:.3f} {:.3f} {:.3f}".format(*clue.magnetic) + clue_data.show() + """ + common.telemetry.telemetry_py.send_telemetry( + common.telemetry_events.TelemetryEvent.CLUE_API_TEXT_DISPLAY + ) + return _ClueSimpleTextDisplay( + title=title, + title_color=title_color, + title_scale=title_scale, + text_scale=text_scale, + font=font, + colors=colors, + ) + + def update_state(self, new_state): + for event in new_state.keys(): + if event in CONSTANTS.EXPECTED_INPUT_BUTTONS: + self.__update_button(event, new_state.get(event)) + elif event in CONSTANTS.ALL_EXPECTED_INPUT_EVENTS: + if self.__state[event] != new_state[event]: + self.__state[event] = new_state.get(event) + + # helpers + def __update_button(self, button, value): + if value: + self.__state[CONSTANTS.CLUE_STATE.PRESSED_BUTTONS].add( + self.button_mapping[button] + ) + self.__state[button] = value + + def __set_leds(self, led, value): + value = bool(value) + self.__state[led] = value + sendable_json = {led: value} + if common.utils.debug_mode: + common.debugger_communication_client.debug_send_to_simulator( + sendable_json, CONSTANTS.CLUE + ) + else: + common.utils.send_to_simulator(sendable_json, CONSTANTS.CLUE) + + +clue = Clue() # pylint: disable=invalid-name +"""Object that is automatically created on import. + + To use, simply import it from the module: + + .. code-block:: python + + from adafruit_clue import clue +""" diff --git a/src/clue/adafruit_display_text/label.py b/Source/clue/adafruit_display_text/label.py similarity index 97% rename from src/clue/adafruit_display_text/label.py rename to Source/clue/adafruit_display_text/label.py index f7bab0b7f..9cfff6842 100644 --- a/src/clue/adafruit_display_text/label.py +++ b/Source/clue/adafruit_display_text/label.py @@ -1,280 +1,280 @@ -# The MIT License (MIT) -# -# Copyright (c) 2019 Scott Shawcroft for Adafruit Industries LLC -# -# 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. -""" -`adafruit_display_text.label` -==================================================== - -Displays text labels using CircuitPython's displayio. - -* Author(s): Scott Shawcroft - -Implementation Notes --------------------- - -**Hardware:** - -**Software and Dependencies:** - -* Adafruit CircuitPython firmware for the supported boards: - https://github.com/adafruit/circuitpython/releases - -""" - -import displayio - -__version__ = "0.0.0-auto.0" -__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_Display_Text.git" - - -class Label(displayio.Group): - """A label displaying a string of text. The origin point set by ``x`` and ``y`` - properties will be the left edge of the bounding box, and in the center of a M - glyph (if its one line), or the (number of lines * linespacing + M)/2. That is, - it will try to have it be center-left as close as possible. - - :param Font font: A font class that has ``get_bounding_box`` and ``get_glyph``. - Must include a capital M for measuring character size. - :param str text: Text to display - :param int max_glyphs: The largest quantity of glyphs we will display - :param int color: Color of all text in RGB hex - :param double line_spacing: Line spacing of text to display""" - - def __init__( - self, - font, - *, - x=0, - y=0, - text=None, - max_glyphs=None, - color=0xFFFFFF, - background_color=None, - line_spacing=1.25, - **kwargs - ): - if not max_glyphs and not text: - raise RuntimeError("Please provide a max size, or initial text") - if not max_glyphs: - max_glyphs = len(text) - super().__init__(max_size=max_glyphs, auto_write=False, **kwargs) - self.width = max_glyphs - self.font = font - self._text = None - self._anchor_point = (0, 0) - self.x = x - self.y = y - - self.palette = displayio.Palette(2) - if background_color is not None: - self.palette[0] = background_color - self.palette.make_opaque(0) - self._transparent_background = False - else: - self.palette[0] = 0 - self.palette.make_transparent(0) - self._transparent_background = True - self.palette[1] = color - - bounds = self.font.get_bounding_box() - self.height = bounds[1] - self._line_spacing = line_spacing - self._boundingbox = None - - if text is not None: - self._update_text(str(text)) - - def _update_text(self, new_text): # pylint: disable=too-many-locals - x = 0 - y = 0 - i = 0 - old_c = 0 - y_offset = int( - ( - self.font.get_glyph(ord("M")).height - - new_text.count("\n") * self.height * self.line_spacing - ) - / 2 - ) - # print("y offset from baseline", y_offset) - left = right = top = bottom = 0 - for character in new_text: - if character == "\n": - y += int(self.height * self._line_spacing) - x = 0 - continue - glyph = self.font.get_glyph(ord(character)) - if not glyph: - continue - right = max(right, x + glyph.width) - if y == 0: # first line, find the Ascender height - top = min(top, -glyph.height + y_offset) - bottom = max(bottom, y - glyph.dy + y_offset) - position_y = y - glyph.height - glyph.dy + y_offset - position_x = x + glyph.dx - if ( - not self._text - or old_c >= len(self._text) - or character != self._text[old_c] - ): - try: - face = displayio.TileGrid( - glyph.bitmap, - pixel_shader=self.palette, - default_tile=glyph.tile_index, - tile_width=glyph.width, - tile_height=glyph.height, - position=(position_x, position_y), - ) - except TypeError: - face = displayio.TileGrid( - glyph.bitmap, - pixel_shader=self.palette, - default_tile=glyph.tile_index, - tile_width=glyph.width, - tile_height=glyph.height, - x=position_x, - y=position_y, - ) - if i < len(self): - self[i] = face - else: - self.append(face) - elif self._text and character == self._text[old_c]: - try: - self[i].position = (position_x, position_y) - except AttributeError: - self[i].x = position_x - self[i].y = position_y - - x += glyph.shift_x - - # TODO skip this for control sequences or non-printables. - i += 1 - old_c += 1 - # skip all non-prinables in the old string - while ( - self._text - and old_c < len(self._text) - and ( - self._text[old_c] == "\n" - or not self.font.get_glyph(ord(self._text[old_c])) - ) - ): - old_c += 1 - # Remove the rest - while len(self) > i: - self.pop() - self._text = new_text - self._boundingbox = (left, top, left + right, bottom - top) - - @property - def bounding_box(self): - """An (x, y, w, h) tuple that completely covers all glyphs. The - first two numbers are offset from the x, y origin of this group""" - return tuple(self._boundingbox) - - @property - def line_spacing(self): - """The amount of space between lines of text, in multiples of the font's - bounding-box height. (E.g. 1.0 is the bounding-box height)""" - return self._line_spacing - - @line_spacing.setter - def line_spacing(self, spacing): - if self._line_spacing != spacing: - self._line_spacing = spacing - self._Group__trigger_draw() - - @property - def color(self): - """Color of the text as an RGB hex number.""" - return self.palette[1] - - @color.setter - def color(self, new_color): - self.palette[1] = new_color - self._Group__trigger_draw() - - @property - def background_color(self): - """Color of the background as an RGB hex number.""" - if not self._transparent_background: - return self.palette[0] - return None - - @background_color.setter - def background_color(self, new_color): - if new_color is not None: - self.palette[0] = new_color - self.palette.make_opaque(0) - self._transparent_background = False - else: - self.palette[0] = 0 - self.palette.make_transparent(0) - self._transparent_background = True - - self._Group__trigger_draw() - - @property - def text(self): - """Text to display.""" - return self._text - - @text.setter - def text(self, new_text): - # APR 2, 2O2O -> - # Added manual trigger to update text since - # on-screen text updating is a lot faster this way. - - # Previously, the group was set to auto_write=True - # and each letter in the group was individually - # drawn and sent to the front-end display. - if new_text != self._text: - self._update_text(str(new_text)) - self._Group__trigger_draw() - - @property - def anchor_point(self): - """Point that anchored_position moves relative to. - Tuple with decimal percentage of width and height. - (E.g. (0,0) is top left, (1.0, 0.5): is middle right.)""" - return self._anchor_point - - @anchor_point.setter - def anchor_point(self, new_anchor_point): - if self._anchor_point != new_anchor_point: - self._Group__trigger_draw() - - @property - def anchored_position(self): - """Position relative to the anchor_point. Tuple containing x,y - pixel coordinates.""" - return ( - self.x - self._boundingbox[2] * self._anchor_point[0], - self.y - self._boundingbox[3] * self._anchor_point[1], - ) - - @anchored_position.setter - def anchored_position(self, new_position): - self.x = int(new_position[0] - (self._boundingbox[2] * self._anchor_point[0])) - self.y = int(new_position[1] - (self._boundingbox[3] * self._anchor_point[1])) - self._Group__trigger_draw() +# The MIT License (MIT) +# +# Copyright (c) 2019 Scott Shawcroft for Adafruit Industries LLC +# +# 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. +""" +`adafruit_display_text.label` +==================================================== + +Displays text labels using CircuitPython's displayio. + +* Author(s): Scott Shawcroft + +Implementation Notes +-------------------- + +**Hardware:** + +**Software and Dependencies:** + +* Adafruit CircuitPython firmware for the supported boards: + https://github.com/adafruit/circuitpython/releases + +""" + +import displayio + +__version__ = "0.0.0-auto.0" +__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_Display_Text.git" + + +class Label(displayio.Group): + """A label displaying a string of text. The origin point set by ``x`` and ``y`` + properties will be the left edge of the bounding box, and in the center of a M + glyph (if its one line), or the (number of lines * linespacing + M)/2. That is, + it will try to have it be center-left as close as possible. + + :param Font font: A font class that has ``get_bounding_box`` and ``get_glyph``. + Must include a capital M for measuring character size. + :param str text: Text to display + :param int max_glyphs: The largest quantity of glyphs we will display + :param int color: Color of all text in RGB hex + :param double line_spacing: Line spacing of text to display""" + + def __init__( + self, + font, + *, + x=0, + y=0, + text=None, + max_glyphs=None, + color=0xFFFFFF, + background_color=None, + line_spacing=1.25, + **kwargs + ): + if not max_glyphs and not text: + raise RuntimeError("Please provide a max size, or initial text") + if not max_glyphs: + max_glyphs = len(text) + super().__init__(max_size=max_glyphs, auto_write=False, **kwargs) + self.width = max_glyphs + self.font = font + self._text = None + self._anchor_point = (0, 0) + self.x = x + self.y = y + + self.palette = displayio.Palette(2) + if background_color is not None: + self.palette[0] = background_color + self.palette.make_opaque(0) + self._transparent_background = False + else: + self.palette[0] = 0 + self.palette.make_transparent(0) + self._transparent_background = True + self.palette[1] = color + + bounds = self.font.get_bounding_box() + self.height = bounds[1] + self._line_spacing = line_spacing + self._boundingbox = None + + if text is not None: + self._update_text(str(text)) + + def _update_text(self, new_text): # pylint: disable=too-many-locals + x = 0 + y = 0 + i = 0 + old_c = 0 + y_offset = int( + ( + self.font.get_glyph(ord("M")).height + - new_text.count("\n") * self.height * self.line_spacing + ) + / 2 + ) + # print("y offset from baseline", y_offset) + left = right = top = bottom = 0 + for character in new_text: + if character == "\n": + y += int(self.height * self._line_spacing) + x = 0 + continue + glyph = self.font.get_glyph(ord(character)) + if not glyph: + continue + right = max(right, x + glyph.width) + if y == 0: # first line, find the Ascender height + top = min(top, -glyph.height + y_offset) + bottom = max(bottom, y - glyph.dy + y_offset) + position_y = y - glyph.height - glyph.dy + y_offset + position_x = x + glyph.dx + if ( + not self._text + or old_c >= len(self._text) + or character != self._text[old_c] + ): + try: + face = displayio.TileGrid( + glyph.bitmap, + pixel_shader=self.palette, + default_tile=glyph.tile_index, + tile_width=glyph.width, + tile_height=glyph.height, + position=(position_x, position_y), + ) + except TypeError: + face = displayio.TileGrid( + glyph.bitmap, + pixel_shader=self.palette, + default_tile=glyph.tile_index, + tile_width=glyph.width, + tile_height=glyph.height, + x=position_x, + y=position_y, + ) + if i < len(self): + self[i] = face + else: + self.append(face) + elif self._text and character == self._text[old_c]: + try: + self[i].position = (position_x, position_y) + except AttributeError: + self[i].x = position_x + self[i].y = position_y + + x += glyph.shift_x + + # TODO skip this for control sequences or non-printables. + i += 1 + old_c += 1 + # skip all non-prinables in the old string + while ( + self._text + and old_c < len(self._text) + and ( + self._text[old_c] == "\n" + or not self.font.get_glyph(ord(self._text[old_c])) + ) + ): + old_c += 1 + # Remove the rest + while len(self) > i: + self.pop() + self._text = new_text + self._boundingbox = (left, top, left + right, bottom - top) + + @property + def bounding_box(self): + """An (x, y, w, h) tuple that completely covers all glyphs. The + first two numbers are offset from the x, y origin of this group""" + return tuple(self._boundingbox) + + @property + def line_spacing(self): + """The amount of space between lines of text, in multiples of the font's + bounding-box height. (E.g. 1.0 is the bounding-box height)""" + return self._line_spacing + + @line_spacing.setter + def line_spacing(self, spacing): + if self._line_spacing != spacing: + self._line_spacing = spacing + self._Group__trigger_draw() + + @property + def color(self): + """Color of the text as an RGB hex number.""" + return self.palette[1] + + @color.setter + def color(self, new_color): + self.palette[1] = new_color + self._Group__trigger_draw() + + @property + def background_color(self): + """Color of the background as an RGB hex number.""" + if not self._transparent_background: + return self.palette[0] + return None + + @background_color.setter + def background_color(self, new_color): + if new_color is not None: + self.palette[0] = new_color + self.palette.make_opaque(0) + self._transparent_background = False + else: + self.palette[0] = 0 + self.palette.make_transparent(0) + self._transparent_background = True + + self._Group__trigger_draw() + + @property + def text(self): + """Text to display.""" + return self._text + + @text.setter + def text(self, new_text): + # APR 2, 2O2O -> + # Added manual trigger to update text since + # on-screen text updating is a lot faster this way. + + # Previously, the group was set to auto_write=True + # and each letter in the group was individually + # drawn and sent to the front-end display. + if new_text != self._text: + self._update_text(str(new_text)) + self._Group__trigger_draw() + + @property + def anchor_point(self): + """Point that anchored_position moves relative to. + Tuple with decimal percentage of width and height. + (E.g. (0,0) is top left, (1.0, 0.5): is middle right.)""" + return self._anchor_point + + @anchor_point.setter + def anchor_point(self, new_anchor_point): + if self._anchor_point != new_anchor_point: + self._Group__trigger_draw() + + @property + def anchored_position(self): + """Position relative to the anchor_point. Tuple containing x,y + pixel coordinates.""" + return ( + self.x - self._boundingbox[2] * self._anchor_point[0], + self.y - self._boundingbox[3] * self._anchor_point[1], + ) + + @anchored_position.setter + def anchored_position(self, new_position): + self.x = int(new_position[0] - (self._boundingbox[2] * self._anchor_point[0])) + self.y = int(new_position[1] - (self._boundingbox[3] * self._anchor_point[1])) + self._Group__trigger_draw() diff --git a/src/clue/adafruit_slideshow.py b/Source/clue/adafruit_slideshow.py similarity index 97% rename from src/clue/adafruit_slideshow.py rename to Source/clue/adafruit_slideshow.py index aa1fb6b65..1e2662a92 100644 --- a/src/clue/adafruit_slideshow.py +++ b/Source/clue/adafruit_slideshow.py @@ -1,407 +1,407 @@ -from PIL import Image - -import os -import base64 -from io import BytesIO -from base_circuitpython import base_cp_constants as CONSTANTS -import time -from random import shuffle -import common -import board - -# taken from adafruit -# https://github.com/adafruit/Adafruit_CircuitPython_Slideshow/blob/master/adafruit_slideshow.py - - -class PlayBackOrder: - """Defines possible slideshow playback orders.""" - - # pylint: disable=too-few-public-methods - ALPHABETICAL = 0 - """Orders by alphabetical sort of filenames""" - - RANDOM = 1 - """Randomly shuffles the images""" - # pylint: enable=too-few-public-methods - - -class PlayBackDirection: - """Defines possible slideshow playback directions.""" - - # pylint: disable=too-few-public-methods - BACKWARD = -1 - """The next image is before the current image. When alphabetically sorted, this is towards A.""" - - FORWARD = 1 - """The next image is after the current image. When alphabetically sorted, this is towards Z.""" - # pylint: enable=too-few-public-methods - - -# custom -class SlideShow: - """ - Class for displaying a slideshow of .bmp images on displays. - :param str folder: Specify the folder containing the image files, in quotes. Default is - the root directory, ``"/"``. - :param PlayBackOrder order: The order in which the images display. You can choose random - (``RANDOM``) or alphabetical (``ALPHABETICAL``). Default is - ``ALPHABETICAL``. - :param bool loop: Specify whether to loop the images or play through the list once. `True` - if slideshow will continue to loop, ``False`` if it will play only once. - Default is ``True``. - :param int dwell: The number of seconds each image displays, in seconds. Default is 3. - :param bool fade_effect: Specify whether to include the fade effect between images. ``True`` - tells the code to fade the backlight up and down between image display - transitions. ``False`` maintains max brightness on the backlight between - image transitions. Default is ``True``. - :param bool auto_advance: Specify whether to automatically advance after dwell seconds. ``True`` - if slideshow should auto play, ``False`` if you want to control advancement - manually. Default is ``True``. - :param PlayBackDirection direction: The playback direction. - Example code for Hallowing Express. With this example, the slideshow will play through once - in alphabetical order: - .. code-block:: python - from adafruit_slideshow import PlayBackOrder, SlideShow - import board - import pulseio - slideshow = SlideShow(board.DISPLAY, pulseio.PWMOut(board.TFT_BACKLIGHT), folder="/", - loop=False, order=PlayBackOrder.ALPHABETICAL) - while slideshow.update(): - pass - Example code for Hallowing Express. Sets ``dwell`` to 0 seconds, turns ``auto_advance`` off, - and uses capacitive touch to advance backwards and forwards through the images and to control - the brightness level of the backlight: - .. code-block:: python - from adafruit_slideshow import PlayBackOrder, SlideShow, PlayBackDirection - import touchio - import board - import pulseio - forward_button = touchio.TouchIn(board.TOUCH4) - back_button = touchio.TouchIn(board.TOUCH1) - brightness_up = touchio.TouchIn(board.TOUCH3) - brightness_down = touchio.TouchIn(board.TOUCH2) - slideshow = SlideShow(board.DISPLAY, pulseio.PWMOut(board.TFT_BACKLIGHT), folder="/", - auto_advance=False, dwell=0) - while True: - if forward_button.value: - slideshow.direction = PlayBackDirection.FORWARD - slideshow.advance() - if back_button.value: - slideshow.direction = PlayBackDirection.BACKWARD - slideshow.advance() - if brightness_up.value: - slideshow.brightness += 0.001 - elif brightness_down.value: - slideshow.brightness -= 0.001 - """ - - def __init__( - self, - display, - backlight_pwm=None, - *, - folder=".", - order=PlayBackOrder.ALPHABETICAL, - loop=True, - dwell=3, - fade_effect=True, - auto_advance=True, - direction=PlayBackDirection.FORWARD, - ): - self._BASE_DWELL = 0.3 - self._BASE_DWELL_DARK = 0.7 - self._NO_FADE_TRANSITION_INCREMENTS = 18 - - self.auto_advance = auto_advance - """Enable auto-advance based on dwell time. Set to ``False`` to manually control.""" - - self.loop = loop - """Specifies whether to loop through the images continuously or play through the list once. - ``True`` will continue to loop, ``False`` will play only once.""" - - self.fade_effect = fade_effect - """Whether to include the fade effect between images. ``True`` tells the code to fade the - backlight up and down between image display transitions. ``False`` maintains max - brightness on the backlight between image transitions.""" - - self.dwell = self._BASE_DWELL + dwell - """The number of seconds each image displays, in seconds.""" - - self.direction = direction - """Specify the playback direction. Default is ``PlayBackDirection.FORWARD``. Can also be - ``PlayBackDirection.BACKWARD``.""" - - self.advance = self.__advance_with_fade - """Displays the next image. Returns True when a new image was displayed, False otherwise. - """ - - self.fade_frames = 8 - - # assign new advance method if fade is disabled - if not fade_effect: - self.advance = self.__advance_no_fade - - self._img_start = None - - self.brightness = 1.0 - - # blank screen for start - self._curr_img_handle = Image.new( - "RGBA", (CONSTANTS.SCREEN_HEIGHT_WIDTH, CONSTANTS.SCREEN_HEIGHT_WIDTH) - ) - - # if path is relative, this makes sure that - # it's relative to the users's code file - abs_path_parent_dir = os.path.abspath( - os.path.join(common.utils.abs_path_to_user_file, os.pardir) - ) - abs_path_folder = os.path.normpath(os.path.join(abs_path_parent_dir, folder)) - - self.folder = abs_path_folder - - # get files within specified directory - self.dirs = os.listdir(self.folder) - - self._order = order - self._curr_img = "" - self._current_image_index = None - - # load images into main queue - self.__load_images() - - display.show(self) - # show the first working image - self.advance() - - common.telemetry.telemetry_py.send_telemetry( - common.telemetry.TelemetryEvent.CLUE_API_SLIDESHOW - ) - - @property - def current_image_name(self): - """Returns the current image name.""" - return self._curr_img - - @property - def order(self): - """Specifies the order in which the images are displayed. Options are random (``RANDOM``) or - alphabetical (``ALPHABETICAL``). Default is ``RANDOM``.""" - return self._order - - @order.setter - def order(self, order): - if order not in [PlayBackOrder.ALPHABETICAL, PlayBackOrder.RANDOM]: - raise ValueError("Order must be either 'RANDOM' or 'ALPHABETICAL'") - - self._order = order - self.__load_images() - - @property - def brightness(self): - """Brightness of the backlight when an image is displaying. Clamps to 0 to 1.0""" - return self._brightness - - @brightness.setter - def brightness(self, brightness): - if brightness < 0: - brightness = 0 - elif brightness > 1.0: - brightness = 1.0 - self._brightness = brightness - - def update(self): - """Updates the slideshow to the next image.""" - now = time.monotonic() - if not self.auto_advance or now - self._img_start < self.dwell: - return True - - return self.advance() - - def __get_next_img(self): - - if self.direction == PlayBackDirection.FORWARD: - if self._current_image_index == None: - self._current_image_index = 0 - else: - self._current_image_index += 1 - - if self._current_image_index >= len(self.dir_imgs): - - if self.loop: - self._current_image_index = 0 - self.__load_images() - else: - self._current_image_index = len(self.dir_imgs) - 10 - return "" - - else: - if self._current_image_index == None: - self._current_image_index = len(self.dir_imgs) - 1 - else: - self._current_image_index -= 1 - - if self._current_image_index < 0: - if self.loop: - self._current_image_index = len(self.dir_imgs) - 1 - self.__load_images() - else: - self._current_image_index = 0 - return "" - - img = self.dir_imgs[self._current_image_index] - return img - - def __load_images(self): - self.dir_imgs = [] - for d in self.dirs: - try: - new_path = os.path.join(self.folder, d) - - # only add bmp imgs - if os.path.splitext(new_path)[-1] == CONSTANTS.BMP_IMG_ENDING: - self.dir_imgs.append(new_path) - except Image.UnidentifiedImageError as e: - continue - - if not len(self.dir_imgs): - raise RuntimeError(CONSTANTS.NO_VALID_IMGS_ERR) - - if self._order == PlayBackOrder.RANDOM: - shuffle(self.dir_imgs) - else: - self.dir_imgs.sort() - - def __advance_with_fade(self): - if board.DISPLAY.active_group != self: - return - - old_img = self._curr_img_handle - advance_sucessful = False - - while not advance_sucessful: - new_path = self.__get_next_img() - if new_path == "": - self._img_start = time.monotonic() - return False - - try: - new_img = Image.open(new_path) - - new_img = new_img.convert("RGBA") - new_img.putalpha(255) - - new_img = new_img.crop( - (0, 0, CONSTANTS.SCREEN_HEIGHT_WIDTH, CONSTANTS.SCREEN_HEIGHT_WIDTH) - ) - - if new_img.size[0] < 240 or new_img.size[1] < 240: - black_overlay = Image.new( - "RGBA", - CONSTANTS.SCREEN_HEIGHT_WIDTH, - CONSTANTS.SCREEN_HEIGHT_WIDTH, - ) - black_overlay.paste(new_img) - new_img = black_overlay - - black_overlay = Image.new("RGBA", new_img.size) - advance_sucessful = True - except Image.UnidentifiedImageError as e: - pass - - # fade out old photo - for i in range(self.fade_frames, -1, -1): - sendable_img = Image.blend( - black_overlay, old_img, i * self.brightness / self.fade_frames - ) - self.__send(sendable_img) - - time.sleep(self._BASE_DWELL_DARK) - - # fade in new photo - for i in range(self.fade_frames + 1): - sendable_img = Image.blend( - black_overlay, new_img, i * self.brightness / self.fade_frames - ) - self.__send(sendable_img) - - self._curr_img_handle = new_img - self._curr_img = new_path - self._img_start = time.monotonic() - return True - - def __advance_no_fade(self): - if board.DISPLAY.active_group != self: - return - - old_img = self._curr_img_handle - - advance_sucessful = False - - while not advance_sucessful: - new_path = self.__get_next_img() - if new_path == "": - self._img_start = time.monotonic() - return False - - try: - new_img = Image.open(new_path) - - new_img = new_img.crop( - (0, 0, CONSTANTS.SCREEN_HEIGHT_WIDTH, CONSTANTS.SCREEN_HEIGHT_WIDTH) - ) - - if ( - new_img.size[0] < CONSTANTS.SCREEN_HEIGHT_WIDTH - or new_img.size[1] < CONSTANTS.SCREEN_HEIGHT_WIDTH - ): - black_overlay = Image.new( - "RGBA", - CONSTANTS.SCREEN_HEIGHT_WIDTH, - CONSTANTS.SCREEN_HEIGHT_WIDTH, - ) - black_overlay.paste(new_img) - new_img = black_overlay - - self._curr_img = new_path - - new_img = new_img.convert("RGBA") - new_img.putalpha(255) - advance_sucessful = True - except Image.UnidentifiedImageError as e: - pass - - if self.brightness < 1.0: - black_overlay = Image.new("RGBA", new_img.size) - new_img = Image.blend(black_overlay, new_img, self.brightness) - - # gradually scroll new img over old img - for i in range(self._NO_FADE_TRANSITION_INCREMENTS + 1): - curr_y = ( - i * CONSTANTS.SCREEN_HEIGHT_WIDTH / self._NO_FADE_TRANSITION_INCREMENTS - ) - img_piece = new_img.crop((0, 0, CONSTANTS.SCREEN_HEIGHT_WIDTH, curr_y)) - old_img.paste(img_piece) - self.__send(old_img) - - self._curr_img_handle = new_img - self._curr_img = new_path - self._img_start = time.monotonic() - return True - - def __send(self, img): - # sends current bmp_img to the frontend - buffered = BytesIO() - img.save(buffered, format=CONSTANTS.BMP_IMG) - byte_base64 = base64.b64encode(buffered.getvalue()) - - # only send the base_64 string contents - img_str = str(byte_base64)[2:-1] - - sendable_json = {CONSTANTS.BASE_64: img_str} - - if common.utils.debug_mode: - common.debugger_communication_client.debug_send_to_simulator( - sendable_json, CONSTANTS.CLUE - ) - else: - common.utils.send_to_simulator(sendable_json, CONSTANTS.CLUE) +from PIL import Image + +import os +import base64 +from io import BytesIO +from base_circuitpython import base_cp_constants as CONSTANTS +import time +from random import shuffle +import common +import board + +# taken from adafruit +# https://github.com/adafruit/Adafruit_CircuitPython_Slideshow/blob/master/adafruit_slideshow.py + + +class PlayBackOrder: + """Defines possible slideshow playback orders.""" + + # pylint: disable=too-few-public-methods + ALPHABETICAL = 0 + """Orders by alphabetical sort of filenames""" + + RANDOM = 1 + """Randomly shuffles the images""" + # pylint: enable=too-few-public-methods + + +class PlayBackDirection: + """Defines possible slideshow playback directions.""" + + # pylint: disable=too-few-public-methods + BACKWARD = -1 + """The next image is before the current image. When alphabetically sorted, this is towards A.""" + + FORWARD = 1 + """The next image is after the current image. When alphabetically sorted, this is towards Z.""" + # pylint: enable=too-few-public-methods + + +# custom +class SlideShow: + """ + Class for displaying a slideshow of .bmp images on displays. + :param str folder: Specify the folder containing the image files, in quotes. Default is + the root directory, ``"/"``. + :param PlayBackOrder order: The order in which the images display. You can choose random + (``RANDOM``) or alphabetical (``ALPHABETICAL``). Default is + ``ALPHABETICAL``. + :param bool loop: Specify whether to loop the images or play through the list once. `True` + if slideshow will continue to loop, ``False`` if it will play only once. + Default is ``True``. + :param int dwell: The number of seconds each image displays, in seconds. Default is 3. + :param bool fade_effect: Specify whether to include the fade effect between images. ``True`` + tells the code to fade the backlight up and down between image display + transitions. ``False`` maintains max brightness on the backlight between + image transitions. Default is ``True``. + :param bool auto_advance: Specify whether to automatically advance after dwell seconds. ``True`` + if slideshow should auto play, ``False`` if you want to control advancement + manually. Default is ``True``. + :param PlayBackDirection direction: The playback direction. + Example code for Hallowing Express. With this example, the slideshow will play through once + in alphabetical order: + .. code-block:: python + from adafruit_slideshow import PlayBackOrder, SlideShow + import board + import pulseio + slideshow = SlideShow(board.DISPLAY, pulseio.PWMOut(board.TFT_BACKLIGHT), folder="/", + loop=False, order=PlayBackOrder.ALPHABETICAL) + while slideshow.update(): + pass + Example code for Hallowing Express. Sets ``dwell`` to 0 seconds, turns ``auto_advance`` off, + and uses capacitive touch to advance backwards and forwards through the images and to control + the brightness level of the backlight: + .. code-block:: python + from adafruit_slideshow import PlayBackOrder, SlideShow, PlayBackDirection + import touchio + import board + import pulseio + forward_button = touchio.TouchIn(board.TOUCH4) + back_button = touchio.TouchIn(board.TOUCH1) + brightness_up = touchio.TouchIn(board.TOUCH3) + brightness_down = touchio.TouchIn(board.TOUCH2) + slideshow = SlideShow(board.DISPLAY, pulseio.PWMOut(board.TFT_BACKLIGHT), folder="/", + auto_advance=False, dwell=0) + while True: + if forward_button.value: + slideshow.direction = PlayBackDirection.FORWARD + slideshow.advance() + if back_button.value: + slideshow.direction = PlayBackDirection.BACKWARD + slideshow.advance() + if brightness_up.value: + slideshow.brightness += 0.001 + elif brightness_down.value: + slideshow.brightness -= 0.001 + """ + + def __init__( + self, + display, + backlight_pwm=None, + *, + folder=".", + order=PlayBackOrder.ALPHABETICAL, + loop=True, + dwell=3, + fade_effect=True, + auto_advance=True, + direction=PlayBackDirection.FORWARD, + ): + self._BASE_DWELL = 0.3 + self._BASE_DWELL_DARK = 0.7 + self._NO_FADE_TRANSITION_INCREMENTS = 18 + + self.auto_advance = auto_advance + """Enable auto-advance based on dwell time. Set to ``False`` to manually control.""" + + self.loop = loop + """Specifies whether to loop through the images continuously or play through the list once. + ``True`` will continue to loop, ``False`` will play only once.""" + + self.fade_effect = fade_effect + """Whether to include the fade effect between images. ``True`` tells the code to fade the + backlight up and down between image display transitions. ``False`` maintains max + brightness on the backlight between image transitions.""" + + self.dwell = self._BASE_DWELL + dwell + """The number of seconds each image displays, in seconds.""" + + self.direction = direction + """Specify the playback direction. Default is ``PlayBackDirection.FORWARD``. Can also be + ``PlayBackDirection.BACKWARD``.""" + + self.advance = self.__advance_with_fade + """Displays the next image. Returns True when a new image was displayed, False otherwise. + """ + + self.fade_frames = 8 + + # assign new advance method if fade is disabled + if not fade_effect: + self.advance = self.__advance_no_fade + + self._img_start = None + + self.brightness = 1.0 + + # blank screen for start + self._curr_img_handle = Image.new( + "RGBA", (CONSTANTS.SCREEN_HEIGHT_WIDTH, CONSTANTS.SCREEN_HEIGHT_WIDTH) + ) + + # if path is relative, this makes sure that + # it's relative to the users's code file + abs_path_parent_dir = os.path.abspath( + os.path.join(common.utils.abs_path_to_user_file, os.pardir) + ) + abs_path_folder = os.path.normpath(os.path.join(abs_path_parent_dir, folder)) + + self.folder = abs_path_folder + + # get files within specified directory + self.dirs = os.listdir(self.folder) + + self._order = order + self._curr_img = "" + self._current_image_index = None + + # load images into main queue + self.__load_images() + + display.show(self) + # show the first working image + self.advance() + + common.telemetry.telemetry_py.send_telemetry( + common.telemetry.TelemetryEvent.CLUE_API_SLIDESHOW + ) + + @property + def current_image_name(self): + """Returns the current image name.""" + return self._curr_img + + @property + def order(self): + """Specifies the order in which the images are displayed. Options are random (``RANDOM``) or + alphabetical (``ALPHABETICAL``). Default is ``RANDOM``.""" + return self._order + + @order.setter + def order(self, order): + if order not in [PlayBackOrder.ALPHABETICAL, PlayBackOrder.RANDOM]: + raise ValueError("Order must be either 'RANDOM' or 'ALPHABETICAL'") + + self._order = order + self.__load_images() + + @property + def brightness(self): + """Brightness of the backlight when an image is displaying. Clamps to 0 to 1.0""" + return self._brightness + + @brightness.setter + def brightness(self, brightness): + if brightness < 0: + brightness = 0 + elif brightness > 1.0: + brightness = 1.0 + self._brightness = brightness + + def update(self): + """Updates the slideshow to the next image.""" + now = time.monotonic() + if not self.auto_advance or now - self._img_start < self.dwell: + return True + + return self.advance() + + def __get_next_img(self): + + if self.direction == PlayBackDirection.FORWARD: + if self._current_image_index == None: + self._current_image_index = 0 + else: + self._current_image_index += 1 + + if self._current_image_index >= len(self.dir_imgs): + + if self.loop: + self._current_image_index = 0 + self.__load_images() + else: + self._current_image_index = len(self.dir_imgs) - 10 + return "" + + else: + if self._current_image_index == None: + self._current_image_index = len(self.dir_imgs) - 1 + else: + self._current_image_index -= 1 + + if self._current_image_index < 0: + if self.loop: + self._current_image_index = len(self.dir_imgs) - 1 + self.__load_images() + else: + self._current_image_index = 0 + return "" + + img = self.dir_imgs[self._current_image_index] + return img + + def __load_images(self): + self.dir_imgs = [] + for d in self.dirs: + try: + new_path = os.path.join(self.folder, d) + + # only add bmp imgs + if os.path.splitext(new_path)[-1] == CONSTANTS.BMP_IMG_ENDING: + self.dir_imgs.append(new_path) + except Image.UnidentifiedImageError as e: + continue + + if not len(self.dir_imgs): + raise RuntimeError(CONSTANTS.NO_VALID_IMGS_ERR) + + if self._order == PlayBackOrder.RANDOM: + shuffle(self.dir_imgs) + else: + self.dir_imgs.sort() + + def __advance_with_fade(self): + if board.DISPLAY.active_group != self: + return + + old_img = self._curr_img_handle + advance_sucessful = False + + while not advance_sucessful: + new_path = self.__get_next_img() + if new_path == "": + self._img_start = time.monotonic() + return False + + try: + new_img = Image.open(new_path) + + new_img = new_img.convert("RGBA") + new_img.putalpha(255) + + new_img = new_img.crop( + (0, 0, CONSTANTS.SCREEN_HEIGHT_WIDTH, CONSTANTS.SCREEN_HEIGHT_WIDTH) + ) + + if new_img.size[0] < 240 or new_img.size[1] < 240: + black_overlay = Image.new( + "RGBA", + CONSTANTS.SCREEN_HEIGHT_WIDTH, + CONSTANTS.SCREEN_HEIGHT_WIDTH, + ) + black_overlay.paste(new_img) + new_img = black_overlay + + black_overlay = Image.new("RGBA", new_img.size) + advance_sucessful = True + except Image.UnidentifiedImageError as e: + pass + + # fade out old photo + for i in range(self.fade_frames, -1, -1): + sendable_img = Image.blend( + black_overlay, old_img, i * self.brightness / self.fade_frames + ) + self.__send(sendable_img) + + time.sleep(self._BASE_DWELL_DARK) + + # fade in new photo + for i in range(self.fade_frames + 1): + sendable_img = Image.blend( + black_overlay, new_img, i * self.brightness / self.fade_frames + ) + self.__send(sendable_img) + + self._curr_img_handle = new_img + self._curr_img = new_path + self._img_start = time.monotonic() + return True + + def __advance_no_fade(self): + if board.DISPLAY.active_group != self: + return + + old_img = self._curr_img_handle + + advance_sucessful = False + + while not advance_sucessful: + new_path = self.__get_next_img() + if new_path == "": + self._img_start = time.monotonic() + return False + + try: + new_img = Image.open(new_path) + + new_img = new_img.crop( + (0, 0, CONSTANTS.SCREEN_HEIGHT_WIDTH, CONSTANTS.SCREEN_HEIGHT_WIDTH) + ) + + if ( + new_img.size[0] < CONSTANTS.SCREEN_HEIGHT_WIDTH + or new_img.size[1] < CONSTANTS.SCREEN_HEIGHT_WIDTH + ): + black_overlay = Image.new( + "RGBA", + CONSTANTS.SCREEN_HEIGHT_WIDTH, + CONSTANTS.SCREEN_HEIGHT_WIDTH, + ) + black_overlay.paste(new_img) + new_img = black_overlay + + self._curr_img = new_path + + new_img = new_img.convert("RGBA") + new_img.putalpha(255) + advance_sucessful = True + except Image.UnidentifiedImageError as e: + pass + + if self.brightness < 1.0: + black_overlay = Image.new("RGBA", new_img.size) + new_img = Image.blend(black_overlay, new_img, self.brightness) + + # gradually scroll new img over old img + for i in range(self._NO_FADE_TRANSITION_INCREMENTS + 1): + curr_y = ( + i * CONSTANTS.SCREEN_HEIGHT_WIDTH / self._NO_FADE_TRANSITION_INCREMENTS + ) + img_piece = new_img.crop((0, 0, CONSTANTS.SCREEN_HEIGHT_WIDTH, curr_y)) + old_img.paste(img_piece) + self.__send(old_img) + + self._curr_img_handle = new_img + self._curr_img = new_path + self._img_start = time.monotonic() + return True + + def __send(self, img): + # sends current bmp_img to the frontend + buffered = BytesIO() + img.save(buffered, format=CONSTANTS.BMP_IMG) + byte_base64 = base64.b64encode(buffered.getvalue()) + + # only send the base_64 string contents + img_str = str(byte_base64)[2:-1] + + sendable_json = {CONSTANTS.BASE_64: img_str} + + if common.utils.debug_mode: + common.debugger_communication_client.debug_send_to_simulator( + sendable_json, CONSTANTS.CLUE + ) + else: + common.utils.send_to_simulator(sendable_json, CONSTANTS.CLUE) diff --git a/src/adafruit_circuitplayground/test/__init__.py b/Source/common/__init__.py similarity index 100% rename from src/adafruit_circuitplayground/test/__init__.py rename to Source/common/__init__.py diff --git a/src/common/constants.py b/Source/common/constants.py similarity index 95% rename from src/common/constants.py rename to Source/common/constants.py index c0592c7db..8495f421d 100644 --- a/src/common/constants.py +++ b/Source/common/constants.py @@ -1,12 +1,12 @@ -MAC_OS = "darwin" - -ERROR_SENDING_EVENT = "Error trying to send event to the process : " - -ACTIVE_DEVICE_FIELD = "active_device" -STATE_FIELD = "state" - -CONNECTION_ATTEMPTS = 10 -TIME_DELAY = 0.03 -DEFAULT_PORT = "5577" - -MICROPYTHON_LIBRARY_NAME = "micropython" +MAC_OS = "darwin" + +ERROR_SENDING_EVENT = "Error trying to send event to the process : " + +ACTIVE_DEVICE_FIELD = "active_device" +STATE_FIELD = "state" + +CONNECTION_ATTEMPTS = 10 +TIME_DELAY = 0.03 +DEFAULT_PORT = "5577" + +MICROPYTHON_LIBRARY_NAME = "micropython" diff --git a/src/common/debugger_communication_client.py b/Source/common/debugger_communication_client.py similarity index 100% rename from src/common/debugger_communication_client.py rename to Source/common/debugger_communication_client.py diff --git a/src/common/telemetry.py b/Source/common/telemetry.py similarity index 100% rename from src/common/telemetry.py rename to Source/common/telemetry.py diff --git a/src/common/telemetry_events.py b/Source/common/telemetry_events.py similarity index 97% rename from src/common/telemetry_events.py rename to Source/common/telemetry_events.py index a140c823b..a0155529e 100644 --- a/src/common/telemetry_events.py +++ b/Source/common/telemetry_events.py @@ -1,65 +1,65 @@ -import enum - - -class TelemetryEvent(enum.Enum): - CPX_API_ACCELERATION = "CPX.API.ACCELERATION" - CPX_API_BUTTON_A = "CPX.API.BUTTON.A" - CPX_API_BUTTON_B = "CPX.API.BUTTON.B" - CPX_API_SWITCH = "CPX.API.SWITCH" - CPX_API_TEMPERATURE = "CPX.API.TEMPERATURE" - CPX_API_BRIGHTNESS = "CPX.API.BRIGHTNESS" - CPX_API_LIGHT = "CPX.API.LIGHT" - CPX_API_TOUCH = "CPX.API.TOUCH" - CPX_API_SHAKE = "CPX.API.SHAKE" - CPX_API_TAPPED = "CPX.API.TAPPED" - CPX_API_PLAY_FILE = "CPX.API.PLAY.FILE" - CPX_API_PLAY_TONE = "CPX.API.PLAY.TONE" - CPX_API_START_TONE = "CPX.API.START.TONE" - CPX_API_STOP_TONE = "CPX.API.STOP.TONE" - CPX_API_DETECT_TAPS = "CPX.API.DETECT.TAPS" - CPX_API_ADJUST_THRESHOLD = "CPX.API.ADJUST.THRESHOLD" - CPX_API_RED_LED = "CPX.API.RED.LED" - CPX_API_PIXELS = "CPX.API.PIXELS" - MICROBIT_API_TEMPERATURE = "MICROBIT.API.TEMPERATURE" - MICROBIT_API_ACCELEROMETER = "MICROBIT.API.ACCELEROMETER" - MICROBIT_API_GESTURE = "MICROBIT.API.GESTURE" - MICROBIT_API_DISPLAY_SCROLL = "MICROBIT.API.DISPLAY.SCROLL" - MICROBIT_API_DISPLAY_SHOW = "MICROBIT.API.DISPLAY.SHOW" - MICROBIT_API_DISPLAY_OTHER = "MICROBIT.API.DISPLAY_OTHER" - MICROBIT_API_LIGHT_LEVEL = "MICROBIT.API.LIGHT.LEVEL" - MICROBIT_API_IMAGE_CREATION = "MICROBIT.API.IMAGE.CREATION" - MICROBIT_API_IMAGE_OTHER = "MICROBIT.API.IMAGE.OTHER" - MICROBIT_API_IMAGE_STATIC = "MICROBIT.API.IMAGE.STATIC" - MICROBIT_API_BUTTON = "MICROBIT.API.BUTTON" - MICROBIT_API_COMPASS = "MICROBIT.API.COMPASS" - MICROBIT_API_I2C = "MICROBIT.API.I2C" - MICROBIT_API_SPI = "MICROBIT.API.SPI" - MICROBIT_API_AUDIO = "MICROBIT.API.AUDIO" - MICROBIT_API_MUSIC = "MICROBIT.API.MUSIC" - MICROBIT_API_NEOPIXEL = "MICROBIT.API.NEOPIXEL" - MICROBIT_API_RADIO = "MICROBIT.API.RADIO" - MICROBIT_API_SPEECH = "MICROBIT.API.SPEECH" - MICROBIT_API_UTIME = "MICROBIT.API.UTIME" - CLUE_API_ACCELERATION = "CLUE.API.ACCELERATION" - CLUE_API_BUTTON_A = "CLUE.API.BUTTON.A" - CLUE_API_BUTTON_B = "CLUE.API.BUTTON.B" - CLUE_API_WERE_PRESSED = "CLUE.API.WERE.PRESSED" - CLUE_API_SHAKE = "CLUE.API.SHAKE" - CLUE_API_COLOR = "CLUE.API.COLOR" - CLUE_API_TEMPERATURE = "CLUE.API.TEMPERATURE" - CLUE_API_MAGNETIC = "CLUE.API.MAGNETIC" - CLUE_API_PROXIMITY = "CLUE.API.PROXIMITY" - CLUE_API_GYRO = "CLUE.API.GYRO" - CLUE_API_GESTURE = "CLUE.API.GESTURE" - CLUE_API_HUMIDITY = "CLUE.API.HUMIDITY" - CLUE_API_PRESSURE = "CLUE.API.PRESSURE" - CLUE_API_ALTITUDE = "CLUE.API.ALTITUDE" - CLUE_API_SEA_LEVEL_PRESSURE = "CLUE.API.SEA.LEVEL.PRESSURE" - CLUE_API_PIXEL = "CLUE.API.PIXEL" - CLUE_API_TOUCH = "CLUE.API.TOUCH" - CLUE_API_WHITE_LEDS = "CLUE.API.WHITE.LEDS" - CLUE_API_RED_LED = "CLUE.API.RED.LED" - CLUE_API_SOUND = "CLUE.API.SOUND" - CLUE_API_TEXT_DISPLAY = "CLUE.API.TEXT.DISPLAY" - CLUE_API_SLIDESHOW = "CLUE.API.SLIDESHOW" - CLUE_API_TILE_GRID = "CLUE.API.TILE.GRID" +import enum + + +class TelemetryEvent(enum.Enum): + CPX_API_ACCELERATION = "CPX.API.ACCELERATION" + CPX_API_BUTTON_A = "CPX.API.BUTTON.A" + CPX_API_BUTTON_B = "CPX.API.BUTTON.B" + CPX_API_SWITCH = "CPX.API.SWITCH" + CPX_API_TEMPERATURE = "CPX.API.TEMPERATURE" + CPX_API_BRIGHTNESS = "CPX.API.BRIGHTNESS" + CPX_API_LIGHT = "CPX.API.LIGHT" + CPX_API_TOUCH = "CPX.API.TOUCH" + CPX_API_SHAKE = "CPX.API.SHAKE" + CPX_API_TAPPED = "CPX.API.TAPPED" + CPX_API_PLAY_FILE = "CPX.API.PLAY.FILE" + CPX_API_PLAY_TONE = "CPX.API.PLAY.TONE" + CPX_API_START_TONE = "CPX.API.START.TONE" + CPX_API_STOP_TONE = "CPX.API.STOP.TONE" + CPX_API_DETECT_TAPS = "CPX.API.DETECT.TAPS" + CPX_API_ADJUST_THRESHOLD = "CPX.API.ADJUST.THRESHOLD" + CPX_API_RED_LED = "CPX.API.RED.LED" + CPX_API_PIXELS = "CPX.API.PIXELS" + MICROBIT_API_TEMPERATURE = "MICROBIT.API.TEMPERATURE" + MICROBIT_API_ACCELEROMETER = "MICROBIT.API.ACCELEROMETER" + MICROBIT_API_GESTURE = "MICROBIT.API.GESTURE" + MICROBIT_API_DISPLAY_SCROLL = "MICROBIT.API.DISPLAY.SCROLL" + MICROBIT_API_DISPLAY_SHOW = "MICROBIT.API.DISPLAY.SHOW" + MICROBIT_API_DISPLAY_OTHER = "MICROBIT.API.DISPLAY_OTHER" + MICROBIT_API_LIGHT_LEVEL = "MICROBIT.API.LIGHT.LEVEL" + MICROBIT_API_IMAGE_CREATION = "MICROBIT.API.IMAGE.CREATION" + MICROBIT_API_IMAGE_OTHER = "MICROBIT.API.IMAGE.OTHER" + MICROBIT_API_IMAGE_STATIC = "MICROBIT.API.IMAGE.STATIC" + MICROBIT_API_BUTTON = "MICROBIT.API.BUTTON" + MICROBIT_API_COMPASS = "MICROBIT.API.COMPASS" + MICROBIT_API_I2C = "MICROBIT.API.I2C" + MICROBIT_API_SPI = "MICROBIT.API.SPI" + MICROBIT_API_AUDIO = "MICROBIT.API.AUDIO" + MICROBIT_API_MUSIC = "MICROBIT.API.MUSIC" + MICROBIT_API_NEOPIXEL = "MICROBIT.API.NEOPIXEL" + MICROBIT_API_RADIO = "MICROBIT.API.RADIO" + MICROBIT_API_SPEECH = "MICROBIT.API.SPEECH" + MICROBIT_API_UTIME = "MICROBIT.API.UTIME" + CLUE_API_ACCELERATION = "CLUE.API.ACCELERATION" + CLUE_API_BUTTON_A = "CLUE.API.BUTTON.A" + CLUE_API_BUTTON_B = "CLUE.API.BUTTON.B" + CLUE_API_WERE_PRESSED = "CLUE.API.WERE.PRESSED" + CLUE_API_SHAKE = "CLUE.API.SHAKE" + CLUE_API_COLOR = "CLUE.API.COLOR" + CLUE_API_TEMPERATURE = "CLUE.API.TEMPERATURE" + CLUE_API_MAGNETIC = "CLUE.API.MAGNETIC" + CLUE_API_PROXIMITY = "CLUE.API.PROXIMITY" + CLUE_API_GYRO = "CLUE.API.GYRO" + CLUE_API_GESTURE = "CLUE.API.GESTURE" + CLUE_API_HUMIDITY = "CLUE.API.HUMIDITY" + CLUE_API_PRESSURE = "CLUE.API.PRESSURE" + CLUE_API_ALTITUDE = "CLUE.API.ALTITUDE" + CLUE_API_SEA_LEVEL_PRESSURE = "CLUE.API.SEA.LEVEL.PRESSURE" + CLUE_API_PIXEL = "CLUE.API.PIXEL" + CLUE_API_TOUCH = "CLUE.API.TOUCH" + CLUE_API_WHITE_LEDS = "CLUE.API.WHITE.LEDS" + CLUE_API_RED_LED = "CLUE.API.RED.LED" + CLUE_API_SOUND = "CLUE.API.SOUND" + CLUE_API_TEXT_DISPLAY = "CLUE.API.TEXT.DISPLAY" + CLUE_API_SLIDESHOW = "CLUE.API.SLIDESHOW" + CLUE_API_TILE_GRID = "CLUE.API.TILE.GRID" diff --git a/src/common/utils.py b/Source/common/utils.py similarity index 100% rename from src/common/utils.py rename to Source/common/utils.py diff --git a/src/constants.ts b/Source/constants.ts similarity index 100% rename from src/constants.ts rename to Source/constants.ts diff --git a/src/cpxWorkspace.ts b/Source/cpxWorkspace.ts similarity index 100% rename from src/cpxWorkspace.ts rename to Source/cpxWorkspace.ts diff --git a/src/debug_user_code.py b/Source/debug_user_code.py similarity index 100% rename from src/debug_user_code.py rename to Source/debug_user_code.py diff --git a/src/debugger/debugAdapter.ts b/Source/debugger/debugAdapter.ts similarity index 100% rename from src/debugger/debugAdapter.ts rename to Source/debugger/debugAdapter.ts diff --git a/src/debugger/debugAdapterFactory.ts b/Source/debugger/debugAdapterFactory.ts similarity index 100% rename from src/debugger/debugAdapterFactory.ts rename to Source/debugger/debugAdapterFactory.ts diff --git a/src/debuggerCommunicationServer.ts b/Source/debuggerCommunicationServer.ts similarity index 100% rename from src/debuggerCommunicationServer.ts rename to Source/debuggerCommunicationServer.ts diff --git a/src/dev-requirements.txt b/Source/dev-requirements.txt similarity index 100% rename from src/dev-requirements.txt rename to Source/dev-requirements.txt diff --git a/src/device.py b/Source/device.py similarity index 100% rename from src/device.py rename to Source/device.py diff --git a/src/deviceContext.ts b/Source/deviceContext.ts similarity index 100% rename from src/deviceContext.ts rename to Source/deviceContext.ts diff --git a/src/extension.ts b/Source/extension.ts similarity index 100% rename from src/extension.ts rename to Source/extension.ts diff --git a/src/extension_utils/utils.ts b/Source/extension_utils/utils.ts similarity index 100% rename from src/extension_utils/utils.ts rename to Source/extension_utils/utils.ts diff --git a/src/install_dependencies.py b/Source/install_dependencies.py similarity index 96% rename from src/install_dependencies.py rename to Source/install_dependencies.py index 00fe81d37..84aeb1d32 100644 --- a/src/install_dependencies.py +++ b/Source/install_dependencies.py @@ -1,9 +1,9 @@ -import subprocess -import sys -import pathlib -import os - -os.chdir(str(pathlib.Path(__file__).parent.parent.absolute())) -subprocess.check_call( - [sys.executable, "-m", "pip", "install", "-r", "./out/requirements.txt"] -) +import subprocess +import sys +import pathlib +import os + +os.chdir(str(pathlib.Path(__file__).parent.parent.absolute())) +subprocess.check_call( + [sys.executable, "-m", "pip", "install", "-r", "./out/requirements.txt"] +) diff --git a/src/latest_release_note.ts b/Source/latest_release_note.ts similarity index 100% rename from src/latest_release_note.ts rename to Source/latest_release_note.ts diff --git a/src/base_circuitpython/displayio/test/__init__.py b/Source/micropython/__init__.py similarity index 100% rename from src/base_circuitpython/displayio/test/__init__.py rename to Source/micropython/__init__.py diff --git a/src/micropython/audio.py b/Source/micropython/audio.py similarity index 100% rename from src/micropython/audio.py rename to Source/micropython/audio.py diff --git a/src/micropython/microbit/__init__.py b/Source/micropython/microbit/__init__.py similarity index 100% rename from src/micropython/microbit/__init__.py rename to Source/micropython/microbit/__init__.py diff --git a/src/micropython/microbit/__model/accelerometer.py b/Source/micropython/microbit/__model/accelerometer.py similarity index 100% rename from src/micropython/microbit/__model/accelerometer.py rename to Source/micropython/microbit/__model/accelerometer.py diff --git a/src/micropython/microbit/__model/button.py b/Source/micropython/microbit/__model/button.py similarity index 100% rename from src/micropython/microbit/__model/button.py rename to Source/micropython/microbit/__model/button.py diff --git a/src/micropython/microbit/__model/compass.py b/Source/micropython/microbit/__model/compass.py similarity index 100% rename from src/micropython/microbit/__model/compass.py rename to Source/micropython/microbit/__model/compass.py diff --git a/src/micropython/microbit/__model/constants.py b/Source/micropython/microbit/__model/constants.py similarity index 100% rename from src/micropython/microbit/__model/constants.py rename to Source/micropython/microbit/__model/constants.py diff --git a/src/micropython/microbit/__model/display.py b/Source/micropython/microbit/__model/display.py similarity index 100% rename from src/micropython/microbit/__model/display.py rename to Source/micropython/microbit/__model/display.py diff --git a/src/micropython/microbit/__model/i2c.py b/Source/micropython/microbit/__model/i2c.py similarity index 100% rename from src/micropython/microbit/__model/i2c.py rename to Source/micropython/microbit/__model/i2c.py diff --git a/src/micropython/microbit/__model/image.py b/Source/micropython/microbit/__model/image.py similarity index 100% rename from src/micropython/microbit/__model/image.py rename to Source/micropython/microbit/__model/image.py diff --git a/src/micropython/microbit/__model/microbit_model.py b/Source/micropython/microbit/__model/microbit_model.py similarity index 100% rename from src/micropython/microbit/__model/microbit_model.py rename to Source/micropython/microbit/__model/microbit_model.py diff --git a/src/micropython/microbit/__model/producer_property.py b/Source/micropython/microbit/__model/producer_property.py similarity index 100% rename from src/micropython/microbit/__model/producer_property.py rename to Source/micropython/microbit/__model/producer_property.py diff --git a/src/micropython/microbit/__model/spi.py b/Source/micropython/microbit/__model/spi.py similarity index 100% rename from src/micropython/microbit/__model/spi.py rename to Source/micropython/microbit/__model/spi.py diff --git a/src/micropython/music.py b/Source/micropython/music.py similarity index 97% rename from src/micropython/music.py rename to Source/micropython/music.py index ad25816a6..cff300710 100644 --- a/src/micropython/music.py +++ b/Source/micropython/music.py @@ -1,109 +1,109 @@ -from common import utils -from common.telemetry import telemetry_py -from common.telemetry_events import TelemetryEvent - -# The implementation is based off of https://microbit-micropython.readthedocs.io/en/v1.0.1/music.html. - - -def set_tempo(ticks=4, bpm=120): - """ - This function is not implemented in the simulator. - - Sets the approximate tempo for playback. - - A number of ticks (expressed as an integer) constitute a beat. Each beat is to be played at a certain frequency per minute (expressed as the more familiar BPM - beats per minute - also as an integer). - - Suggested default values allow the following useful behaviour: - - * ``music.set_tempo()`` - reset the tempo to default of ticks = 4, bpm = 120 - * ``music.set_tempo(ticks=8)`` - change the "definition" of a beat - * ``music.set_tempo(bpm=180)`` - just change the tempo - - To work out the length of a tick in milliseconds is very simple arithmetic: ``60000/bpm/ticks_per_beat`` . For the default values that's ``60000/120/4 = 125 milliseconds`` or ``1 beat = 500 milliseconds``. - """ - utils.print_for_unimplemented_functions(set_tempo.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_MUSIC) - - -def get_tempo(): - """ - This function is not implemented in the simulator. - - Gets the current tempo as a tuple of integers: ``(ticks, bpm)``. - """ - utils.print_for_unimplemented_functions(get_tempo.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_MUSIC) - - -def play(music, pin="microbit.pin0", wait=True, loop=False): - """ - This function is not implemented in the simulator. - - Plays ``music`` containing the musical DSL defined above. - - If ``music`` is a string it is expected to be a single note such as, - ``'c1:4'``. - - If ``music`` is specified as a list of notes (as defined in the section on - the musical DSL, above) then they are played one after the other to perform - a melody. - - In both cases, the ``duration`` and ``octave`` values are reset to - their defaults before the music (whatever it may be) is played. - - An optional argument to specify the output pin can be used to override the - default of ``microbit.pin0``. - - If ``wait`` is set to ``True``, this function is blocking. - - If ``loop`` is set to ``True``, the tune repeats until ``stop`` is called - (see below) or the blocking call is interrupted. - """ - utils.print_for_unimplemented_functions(play.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_MUSIC) - - -def pitch(frequency, duration=-1, pin="microbit.pin0", wait=True): - """ - This function is not implemented in the simulator. - - Plays a pitch at the integer frequency given for the specified number of - milliseconds. For example, if the frequency is set to 440 and the length to - 1000 then we hear a standard concert A for one second. - - Note that you can only play one pitch on one pin at any one time. - - If ``wait`` is set to ``True``, this function is blocking. - - If ``duration`` is negative the pitch is played continuously until either the - blocking call is interrupted or, in the case of a background call, a new - frequency is set or ``stop`` is called (see below). - """ - utils.print_for_unimplemented_functions(pitch.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_MUSIC) - - -def stop(pin="microbit.pin0"): - """ - This function is not implemented in the simulator. - - Stops all music playback on a given pin, eg. ``music.stop(pin1)``. - If no pin is given, eg. ``music.stop()`` pin0 is assumed. - """ - utils.print_for_unimplemented_functions(stop.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_MUSIC) - - -def reset(): - """ - This function is not implemented in the simulator. - - Resets the state of the following attributes in the following way: - - * ``ticks = 4`` - * ``bpm = 120`` - * ``duration = 4`` - * ``octave = 4`` - """ - utils.print_for_unimplemented_functions(reset.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_MUSIC) +from common import utils +from common.telemetry import telemetry_py +from common.telemetry_events import TelemetryEvent + +# The implementation is based off of https://microbit-micropython.readthedocs.io/en/v1.0.1/music.html. + + +def set_tempo(ticks=4, bpm=120): + """ + This function is not implemented in the simulator. + + Sets the approximate tempo for playback. + + A number of ticks (expressed as an integer) constitute a beat. Each beat is to be played at a certain frequency per minute (expressed as the more familiar BPM - beats per minute - also as an integer). + + Suggested default values allow the following useful behaviour: + + * ``music.set_tempo()`` - reset the tempo to default of ticks = 4, bpm = 120 + * ``music.set_tempo(ticks=8)`` - change the "definition" of a beat + * ``music.set_tempo(bpm=180)`` - just change the tempo + + To work out the length of a tick in milliseconds is very simple arithmetic: ``60000/bpm/ticks_per_beat`` . For the default values that's ``60000/120/4 = 125 milliseconds`` or ``1 beat = 500 milliseconds``. + """ + utils.print_for_unimplemented_functions(set_tempo.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_MUSIC) + + +def get_tempo(): + """ + This function is not implemented in the simulator. + + Gets the current tempo as a tuple of integers: ``(ticks, bpm)``. + """ + utils.print_for_unimplemented_functions(get_tempo.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_MUSIC) + + +def play(music, pin="microbit.pin0", wait=True, loop=False): + """ + This function is not implemented in the simulator. + + Plays ``music`` containing the musical DSL defined above. + + If ``music`` is a string it is expected to be a single note such as, + ``'c1:4'``. + + If ``music`` is specified as a list of notes (as defined in the section on + the musical DSL, above) then they are played one after the other to perform + a melody. + + In both cases, the ``duration`` and ``octave`` values are reset to + their defaults before the music (whatever it may be) is played. + + An optional argument to specify the output pin can be used to override the + default of ``microbit.pin0``. + + If ``wait`` is set to ``True``, this function is blocking. + + If ``loop`` is set to ``True``, the tune repeats until ``stop`` is called + (see below) or the blocking call is interrupted. + """ + utils.print_for_unimplemented_functions(play.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_MUSIC) + + +def pitch(frequency, duration=-1, pin="microbit.pin0", wait=True): + """ + This function is not implemented in the simulator. + + Plays a pitch at the integer frequency given for the specified number of + milliseconds. For example, if the frequency is set to 440 and the length to + 1000 then we hear a standard concert A for one second. + + Note that you can only play one pitch on one pin at any one time. + + If ``wait`` is set to ``True``, this function is blocking. + + If ``duration`` is negative the pitch is played continuously until either the + blocking call is interrupted or, in the case of a background call, a new + frequency is set or ``stop`` is called (see below). + """ + utils.print_for_unimplemented_functions(pitch.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_MUSIC) + + +def stop(pin="microbit.pin0"): + """ + This function is not implemented in the simulator. + + Stops all music playback on a given pin, eg. ``music.stop(pin1)``. + If no pin is given, eg. ``music.stop()`` pin0 is assumed. + """ + utils.print_for_unimplemented_functions(stop.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_MUSIC) + + +def reset(): + """ + This function is not implemented in the simulator. + + Resets the state of the following attributes in the following way: + + * ``ticks = 4`` + * ``bpm = 120`` + * ``duration = 4`` + * ``octave = 4`` + """ + utils.print_for_unimplemented_functions(reset.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_MUSIC) diff --git a/src/micropython/radio.py b/Source/micropython/radio.py similarity index 97% rename from src/micropython/radio.py rename to Source/micropython/radio.py index ac6d24fe3..971f13720 100644 --- a/src/micropython/radio.py +++ b/Source/micropython/radio.py @@ -1,180 +1,180 @@ -from common import utils -from common.telemetry import telemetry_py -from common.telemetry_events import TelemetryEvent - -# The implementation is based off of https://microbit-micropython.readthedocs.io/en/v1.0.1/radio.html. - -RATE_250KBIT = "" - -RATE_1MBIT = "" - -RATE_2MBIT = "" - - -def on(): - """ - This function is not implemented in the simulator. - - Turns the radio on. This needs to be explicitly called since the radio - draws power and takes up memory that you may otherwise need. - """ - utils.print_for_unimplemented_functions(on.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) - - -def off(): - """ - This function is not implemented in the simulator. - - Turns off the radio, thus saving power and memory - """ - utils.print_for_unimplemented_functions(off.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) - - -def config(**kwargs): - """ - This function is not implemented in the simulator. - - Configures various keyword based settings relating to the radio. The - available settings and their sensible default values are listed below. - - The ``length`` (default=32) defines the maximum length, in bytes, of a - message sent via the radio. It can be up to 251 bytes long (254 - 3 bytes - for S0, LENGTH and S1 preamble). - - The ``queue`` (default=3) specifies the number of messages that can be - stored on the incoming message queue. If there are no spaces left on the - queue for incoming messages, then the incoming message is dropped. - - The ``channel`` (default=7) can be an integer value from 0 to 83 - (inclusive) that defines an arbitrary "channel" to which the radio is - tuned. Messages will be sent via this channel and only messages received - via this channel will be put onto the incoming message queue. Each step is - 1MHz wide, based at 2400MHz. - - The ``power`` (default=6) is an integer value from 0 to 7 (inclusive) to - indicate the strength of signal used when broadcasting a message. The - higher the value the stronger the signal, but the more power is consumed - by the device. The numbering translates to positions in the following list - of dBm (decibel milliwatt) values: -30, -20, -16, -12, -8, -4, 0, 4. - - The ``address`` (default=0x75626974) is an arbitrary name, expressed as a - 32-bit address, that's used to filter incoming packets at the hardware - level, keeping only those that match the address you set. The default used - by other micro:bit related platforms is the default setting used here. - - The ``group`` (default=0) is an 8-bit value (0-255) used with the - ``address`` when filtering messages. Conceptually, "address" is like a - house/office address and "group" is like the person at that address to - which you want to send your message. - - The ``data_rate`` (default=radio.RATE_1MBIT) indicates the speed at which - data throughput takes place. Can be one of the following contants defined - in the ``radio`` module : ``RATE_250KBIT``, ``RATE_1MBIT`` or - ``RATE_2MBIT``. - - If ``config`` is not called then the defaults described above are assumed. - """ - utils.print_for_unimplemented_functions(config.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) - - -def reset(): - """ - This function is not implemented in the simulator. - - Reset the settings to their default values (as listed in the documentation - for the ``config`` function above). - """ - utils.print_for_unimplemented_functions(reset.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) - - -def send_bytes(message): - """ - This function is not implemented in the simulator. - - Sends a message containing bytes. - """ - utils.print_for_unimplemented_functions(send_bytes.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) - - -def receive_bytes(): - """ - This function is not implemented in the simulator. - - Receive the next incoming message on the message queue. Returns ``None`` if - there are no pending messages. Messages are returned as bytes. - """ - utils.print_for_unimplemented_functions(receive_bytes.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) - - -def receive_bytes_into(buffer): - """ - This function is not implemented in the simulator. - - Receive the next incoming message on the message queue. Copies the message - into ``buffer``, trimming the end of the message if necessary. - Returns ``None`` if there are no pending messages, otherwise it returns the length - of the message (which might be more than the length of the buffer). - """ - utils.print_for_unimplemented_functions(receive_bytes_into.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) - - -def send(message): - """ - This function is not implemented in the simulator. - - Sends a message containing bytes. - """ - utils.print_for_unimplemented_functions(send.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) - - -def receive(): - """ - This function is not implemented in the simulator. - - Works in exactly the same way as ``receive_bytes`` but returns - whatever was sent. - - Currently, it's equivalent to ``str(receive_bytes(), 'utf8')`` but with a - check that the the first three bytes are ``b'\x01\x00\x01'`` (to make it - compatible with other platforms that may target the micro:bit). It strips - the prepended bytes before converting to a string. - - A ``ValueError`` exception is raised if conversion to string fails. - """ - utils.print_for_unimplemented_functions(receive.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) - - -def receive_full(): - """ - This function is not implemented in the simulator. - - Returns a tuple containing three values representing the next incoming - message on the message queue. If there are no pending messages then - ``None`` is returned. - - The three values in the tuple represent: - - * the next incoming message on the message queue as bytes. - * the RSSI (signal strength): a value between 0 (strongest) and -255 (weakest) as measured in dBm. - * a microsecond timestamp: the value returned by ``time.ticks_us()`` when the message was received. - - For example:: - - details = radio.receive_full() - if details: - msg, rssi, timestamp = details - - This function is useful for providing information needed for triangulation - and/or triliteration with other micro:bit devices. - """ - utils.print_for_unimplemented_functions(receive_full.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) +from common import utils +from common.telemetry import telemetry_py +from common.telemetry_events import TelemetryEvent + +# The implementation is based off of https://microbit-micropython.readthedocs.io/en/v1.0.1/radio.html. + +RATE_250KBIT = "" + +RATE_1MBIT = "" + +RATE_2MBIT = "" + + +def on(): + """ + This function is not implemented in the simulator. + + Turns the radio on. This needs to be explicitly called since the radio + draws power and takes up memory that you may otherwise need. + """ + utils.print_for_unimplemented_functions(on.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) + + +def off(): + """ + This function is not implemented in the simulator. + + Turns off the radio, thus saving power and memory + """ + utils.print_for_unimplemented_functions(off.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) + + +def config(**kwargs): + """ + This function is not implemented in the simulator. + + Configures various keyword based settings relating to the radio. The + available settings and their sensible default values are listed below. + + The ``length`` (default=32) defines the maximum length, in bytes, of a + message sent via the radio. It can be up to 251 bytes long (254 - 3 bytes + for S0, LENGTH and S1 preamble). + + The ``queue`` (default=3) specifies the number of messages that can be + stored on the incoming message queue. If there are no spaces left on the + queue for incoming messages, then the incoming message is dropped. + + The ``channel`` (default=7) can be an integer value from 0 to 83 + (inclusive) that defines an arbitrary "channel" to which the radio is + tuned. Messages will be sent via this channel and only messages received + via this channel will be put onto the incoming message queue. Each step is + 1MHz wide, based at 2400MHz. + + The ``power`` (default=6) is an integer value from 0 to 7 (inclusive) to + indicate the strength of signal used when broadcasting a message. The + higher the value the stronger the signal, but the more power is consumed + by the device. The numbering translates to positions in the following list + of dBm (decibel milliwatt) values: -30, -20, -16, -12, -8, -4, 0, 4. + + The ``address`` (default=0x75626974) is an arbitrary name, expressed as a + 32-bit address, that's used to filter incoming packets at the hardware + level, keeping only those that match the address you set. The default used + by other micro:bit related platforms is the default setting used here. + + The ``group`` (default=0) is an 8-bit value (0-255) used with the + ``address`` when filtering messages. Conceptually, "address" is like a + house/office address and "group" is like the person at that address to + which you want to send your message. + + The ``data_rate`` (default=radio.RATE_1MBIT) indicates the speed at which + data throughput takes place. Can be one of the following contants defined + in the ``radio`` module : ``RATE_250KBIT``, ``RATE_1MBIT`` or + ``RATE_2MBIT``. + + If ``config`` is not called then the defaults described above are assumed. + """ + utils.print_for_unimplemented_functions(config.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) + + +def reset(): + """ + This function is not implemented in the simulator. + + Reset the settings to their default values (as listed in the documentation + for the ``config`` function above). + """ + utils.print_for_unimplemented_functions(reset.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) + + +def send_bytes(message): + """ + This function is not implemented in the simulator. + + Sends a message containing bytes. + """ + utils.print_for_unimplemented_functions(send_bytes.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) + + +def receive_bytes(): + """ + This function is not implemented in the simulator. + + Receive the next incoming message on the message queue. Returns ``None`` if + there are no pending messages. Messages are returned as bytes. + """ + utils.print_for_unimplemented_functions(receive_bytes.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) + + +def receive_bytes_into(buffer): + """ + This function is not implemented in the simulator. + + Receive the next incoming message on the message queue. Copies the message + into ``buffer``, trimming the end of the message if necessary. + Returns ``None`` if there are no pending messages, otherwise it returns the length + of the message (which might be more than the length of the buffer). + """ + utils.print_for_unimplemented_functions(receive_bytes_into.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) + + +def send(message): + """ + This function is not implemented in the simulator. + + Sends a message containing bytes. + """ + utils.print_for_unimplemented_functions(send.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) + + +def receive(): + """ + This function is not implemented in the simulator. + + Works in exactly the same way as ``receive_bytes`` but returns + whatever was sent. + + Currently, it's equivalent to ``str(receive_bytes(), 'utf8')`` but with a + check that the the first three bytes are ``b'\x01\x00\x01'`` (to make it + compatible with other platforms that may target the micro:bit). It strips + the prepended bytes before converting to a string. + + A ``ValueError`` exception is raised if conversion to string fails. + """ + utils.print_for_unimplemented_functions(receive.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) + + +def receive_full(): + """ + This function is not implemented in the simulator. + + Returns a tuple containing three values representing the next incoming + message on the message queue. If there are no pending messages then + ``None`` is returned. + + The three values in the tuple represent: + + * the next incoming message on the message queue as bytes. + * the RSSI (signal strength): a value between 0 (strongest) and -255 (weakest) as measured in dBm. + * a microsecond timestamp: the value returned by ``time.ticks_us()`` when the message was received. + + For example:: + + details = radio.receive_full() + if details: + msg, rssi, timestamp = details + + This function is useful for providing information needed for triangulation + and/or triliteration with other micro:bit devices. + """ + utils.print_for_unimplemented_functions(receive_full.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_RADIO) diff --git a/src/micropython/speech.py b/Source/micropython/speech.py similarity index 97% rename from src/micropython/speech.py rename to Source/micropython/speech.py index e92458a96..0fef5c6fb 100644 --- a/src/micropython/speech.py +++ b/Source/micropython/speech.py @@ -1,61 +1,61 @@ -from common import utils -from common.telemetry import telemetry_py -from common.telemetry_events import TelemetryEvent - -# The implementation is based off of https://microbit-micropython.readthedocs.io/en/v1.0.1/speech.html. - - -def translate(words): - """ - This function is not implemented in the simulator. - - Given English words in the string ``words``, return a string containing - a best guess at the appropriate phonemes to pronounce. The output is - generated from this - `text to phoneme translation table `_. - - This function should be used to generate a first approximation of phonemes - that can be further hand-edited to improve accuracy, inflection and - emphasis. - """ - utils.print_for_unimplemented_functions(translate.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_SPEECH) - - -def pronounce(phonemes, pitch=64, speed=72, mouth=128, throat=128): - """ - This function is not implemented in the simulator. - - Pronounce the phonemes in the string ``phonemes``. See below for details of - how to use phonemes to finely control the output of the speech synthesiser. - Override the optional pitch, speed, mouth and throat settings to change the - timbre (quality) of the voice. - """ - utils.print_for_unimplemented_functions(pronounce.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_SPEECH) - - -def say(words, pitch=64, speed=72, mouth=128, throat=128): - """ - This function is not implemented in the simulator. - - Say the English words in the string ``words``. The result is semi-accurate - for English. Override the optional pitch, speed, mouth and throat - settings to change the timbre (quality) of the voice. This is a short-hand - equivalent of: ``speech.pronounce(speech.translate(words))`` - """ - utils.print_for_unimplemented_functions(say.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_SPEECH) - - -def sing(phonemes, pitch=64, speed=72, mouth=128, throat=128): - """ - This function is not implemented in the simulator. - - Sing the phonemes contained in the string ``phonemes``. Changing the pitch - and duration of the note is described below. Override the optional pitch, - speed, mouth and throat settings to change the timbre (quality) of the - voice. - """ - utils.print_for_unimplemented_functions(sing.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_SPEECH) +from common import utils +from common.telemetry import telemetry_py +from common.telemetry_events import TelemetryEvent + +# The implementation is based off of https://microbit-micropython.readthedocs.io/en/v1.0.1/speech.html. + + +def translate(words): + """ + This function is not implemented in the simulator. + + Given English words in the string ``words``, return a string containing + a best guess at the appropriate phonemes to pronounce. The output is + generated from this + `text to phoneme translation table `_. + + This function should be used to generate a first approximation of phonemes + that can be further hand-edited to improve accuracy, inflection and + emphasis. + """ + utils.print_for_unimplemented_functions(translate.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_SPEECH) + + +def pronounce(phonemes, pitch=64, speed=72, mouth=128, throat=128): + """ + This function is not implemented in the simulator. + + Pronounce the phonemes in the string ``phonemes``. See below for details of + how to use phonemes to finely control the output of the speech synthesiser. + Override the optional pitch, speed, mouth and throat settings to change the + timbre (quality) of the voice. + """ + utils.print_for_unimplemented_functions(pronounce.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_SPEECH) + + +def say(words, pitch=64, speed=72, mouth=128, throat=128): + """ + This function is not implemented in the simulator. + + Say the English words in the string ``words``. The result is semi-accurate + for English. Override the optional pitch, speed, mouth and throat + settings to change the timbre (quality) of the voice. This is a short-hand + equivalent of: ``speech.pronounce(speech.translate(words))`` + """ + utils.print_for_unimplemented_functions(say.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_SPEECH) + + +def sing(phonemes, pitch=64, speed=72, mouth=128, throat=128): + """ + This function is not implemented in the simulator. + + Sing the phonemes contained in the string ``phonemes``. Changing the pitch + and duration of the note is described below. Override the optional pitch, + speed, mouth and throat settings to change the timbre (quality) of the + voice. + """ + utils.print_for_unimplemented_functions(sing.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_SPEECH) diff --git a/src/micropython/utime.py b/Source/micropython/utime.py similarity index 97% rename from src/micropython/utime.py rename to Source/micropython/utime.py index 9ae5ee4df..4caee2d9b 100644 --- a/src/micropython/utime.py +++ b/Source/micropython/utime.py @@ -1,132 +1,132 @@ -import time - -from common import utils -from common.telemetry import telemetry_py -from common.telemetry_events import TelemetryEvent - -# The implementation is based off of https://microbit-micropython.readthedocs.io/en/v1.0.1/utime.html. - - -def sleep(seconds): - """ - Sleep for the given number of seconds. You can use a floating-point number - to sleep for a fractional number of seconds, or use the - :func:`utime.sleep_ms()` and :func:`utime.sleep_us()` functions. - """ - time.sleep(seconds) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_UTIME) - - -def sleep_ms(ms): - """ - Delay for given number of milliseconds, should be positive or 0. - """ - time.sleep(ms / 1000) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_UTIME) - - -def sleep_us(us): - """ - Delay for given number of microseconds, should be positive or 0. - """ - time.sleep(us / 1000000) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_UTIME) - - -def ticks_ms(): - """ - This function is not implemented in the simulator. - - Returns an increasing millisecond counter with an arbitrary reference point, - that wraps around after some value. - """ - utils.print_for_unimplemented_functions(ticks_ms.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_UTIME) - - -def ticks_us(): - """ - This function is not implemented in the simulator. - - Just like :func:`utime.ticks_ms()` above, but in microseconds. - """ - utils.print_for_unimplemented_functions(ticks_us.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_UTIME) - - -def ticks_add(ticks, delta): - """ - This function is not implemented in the simulator. - - Offset ticks value by a given number, which can be either positive or - negative. Given a ticks value, this function allows to calculate ticks - value delta ticks before or after it, following modular-arithmetic - definition of tick values. - - Example: - - .. code-block:: python - - # Find out what ticks value there was 100ms ago - print(ticks_add(time.ticks_ms(), -100)) - - # Calculate deadline for operation and test for it - deadline = ticks_add(time.ticks_ms(), 200) - while ticks_diff(deadline, time.ticks_ms()) > 0: - do_a_little_of_something() - - # Find out TICKS_MAX used by this port - print(ticks_add(0, -1)) - """ - utils.print_for_unimplemented_functions(ticks_add.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_UTIME) - - -def ticks_diff(ticks1, ticks2): - """ - This function is not implemented in the simulator. - - Measure ticks difference between values returned from - :func:`utime.ticks_ms()` or :func:`ticks_us()` functions, as a signed value - which may wrap around. - - The argument order is the same as for subtraction operator, - ``ticks_diff(ticks1, ticks2)`` has the same meaning as ``ticks1 - ticks2``. - - :func:`utime.ticks_diff()` is designed to accommodate various usage - patterns, among them: - - Polling with timeout. In this case, the order of events is known, and you - will deal only with positive results of :func:`utime.ticks_diff()`: - - .. code-block:: python - - # Wait for GPIO pin to be asserted, but at most 500us - start = time.ticks_us() - while pin.value() == 0: - if time.ticks_diff(time.ticks_us(), start) > 500: - raise TimeoutError - - - Scheduling events. In this case, :func:`utime.ticks_diff()` result may be - negative if an event is overdue: - - - .. code-block:: python - - # This code snippet is not optimized - now = time.ticks_ms() - scheduled_time = task.scheduled_time() - if ticks_diff(scheduled_time, now) > 0: - print("Too early, let's nap") - sleep_ms(ticks_diff(scheduled_time, now)) - task.run() - elif ticks_diff(scheduled_time, now) == 0: - print("Right at time!") - task.run() - elif ticks_diff(scheduled_time, now) < 0: - print("Oops, running late, tell task to run faster!") - task.run(run_faster=true) - """ - utils.print_for_unimplemented_functions(ticks_diff.__name__) - telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_UTIME) +import time + +from common import utils +from common.telemetry import telemetry_py +from common.telemetry_events import TelemetryEvent + +# The implementation is based off of https://microbit-micropython.readthedocs.io/en/v1.0.1/utime.html. + + +def sleep(seconds): + """ + Sleep for the given number of seconds. You can use a floating-point number + to sleep for a fractional number of seconds, or use the + :func:`utime.sleep_ms()` and :func:`utime.sleep_us()` functions. + """ + time.sleep(seconds) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_UTIME) + + +def sleep_ms(ms): + """ + Delay for given number of milliseconds, should be positive or 0. + """ + time.sleep(ms / 1000) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_UTIME) + + +def sleep_us(us): + """ + Delay for given number of microseconds, should be positive or 0. + """ + time.sleep(us / 1000000) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_UTIME) + + +def ticks_ms(): + """ + This function is not implemented in the simulator. + + Returns an increasing millisecond counter with an arbitrary reference point, + that wraps around after some value. + """ + utils.print_for_unimplemented_functions(ticks_ms.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_UTIME) + + +def ticks_us(): + """ + This function is not implemented in the simulator. + + Just like :func:`utime.ticks_ms()` above, but in microseconds. + """ + utils.print_for_unimplemented_functions(ticks_us.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_UTIME) + + +def ticks_add(ticks, delta): + """ + This function is not implemented in the simulator. + + Offset ticks value by a given number, which can be either positive or + negative. Given a ticks value, this function allows to calculate ticks + value delta ticks before or after it, following modular-arithmetic + definition of tick values. + + Example: + + .. code-block:: python + + # Find out what ticks value there was 100ms ago + print(ticks_add(time.ticks_ms(), -100)) + + # Calculate deadline for operation and test for it + deadline = ticks_add(time.ticks_ms(), 200) + while ticks_diff(deadline, time.ticks_ms()) > 0: + do_a_little_of_something() + + # Find out TICKS_MAX used by this port + print(ticks_add(0, -1)) + """ + utils.print_for_unimplemented_functions(ticks_add.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_UTIME) + + +def ticks_diff(ticks1, ticks2): + """ + This function is not implemented in the simulator. + + Measure ticks difference between values returned from + :func:`utime.ticks_ms()` or :func:`ticks_us()` functions, as a signed value + which may wrap around. + + The argument order is the same as for subtraction operator, + ``ticks_diff(ticks1, ticks2)`` has the same meaning as ``ticks1 - ticks2``. + + :func:`utime.ticks_diff()` is designed to accommodate various usage + patterns, among them: + + Polling with timeout. In this case, the order of events is known, and you + will deal only with positive results of :func:`utime.ticks_diff()`: + + .. code-block:: python + + # Wait for GPIO pin to be asserted, but at most 500us + start = time.ticks_us() + while pin.value() == 0: + if time.ticks_diff(time.ticks_us(), start) > 500: + raise TimeoutError + + + Scheduling events. In this case, :func:`utime.ticks_diff()` result may be + negative if an event is overdue: + + + .. code-block:: python + + # This code snippet is not optimized + now = time.ticks_ms() + scheduled_time = task.scheduled_time() + if ticks_diff(scheduled_time, now) > 0: + print("Too early, let's nap") + sleep_ms(ticks_diff(scheduled_time, now)) + task.run() + elif ticks_diff(scheduled_time, now) == 0: + print("Right at time!") + task.run() + elif ticks_diff(scheduled_time, now) < 0: + print("Oops, running late, tell task to run faster!") + task.run(run_faster=true) + """ + utils.print_for_unimplemented_functions(ticks_diff.__name__) + telemetry_py.send_telemetry(TelemetryEvent.MICROBIT_API_UTIME) diff --git a/src/process_user_code.py b/Source/process_user_code.py similarity index 100% rename from src/process_user_code.py rename to Source/process_user_code.py diff --git a/src/python_constants.py b/Source/python_constants.py similarity index 100% rename from src/python_constants.py rename to Source/python_constants.py diff --git a/src/requirements.txt b/Source/requirements.txt similarity index 100% rename from src/requirements.txt rename to Source/requirements.txt diff --git a/src/serialMonitor.ts b/Source/serialMonitor.ts similarity index 100% rename from src/serialMonitor.ts rename to Source/serialMonitor.ts diff --git a/src/serialPortControl.ts b/Source/serialPortControl.ts similarity index 100% rename from src/serialPortControl.ts rename to Source/serialPortControl.ts diff --git a/src/service/PopupService.ts b/Source/service/PopupService.ts similarity index 96% rename from src/service/PopupService.ts rename to Source/service/PopupService.ts index 9bff8ba5b..d5aadbff4 100644 --- a/src/service/PopupService.ts +++ b/Source/service/PopupService.ts @@ -1,16 +1,16 @@ -// import { Webview } from "vscode"; -import * as vscode from "vscode"; -import { LATEST_RELEASE_NOTE } from "../latest_release_note"; - -export class PopupService { - public static openReleaseNote() { - const panel = vscode.window.createWebviewPanel( - "releaseNote", - "Release Note", - vscode.ViewColumn.One, - {} - ); - - panel.webview.html = LATEST_RELEASE_NOTE; - } -} +// import { Webview } from "vscode"; +import * as vscode from "vscode"; +import { LATEST_RELEASE_NOTE } from "../latest_release_note"; + +export class PopupService { + public static openReleaseNote() { + const panel = vscode.window.createWebviewPanel( + "releaseNote", + "Release Note", + vscode.ViewColumn.One, + {} + ); + + panel.webview.html = LATEST_RELEASE_NOTE; + } +} diff --git a/src/service/debuggerCommunicationService.ts b/Source/service/debuggerCommunicationService.ts similarity index 97% rename from src/service/debuggerCommunicationService.ts rename to Source/service/debuggerCommunicationService.ts index 9a8c1d6f0..b37b1c2ed 100644 --- a/src/service/debuggerCommunicationService.ts +++ b/Source/service/debuggerCommunicationService.ts @@ -1,27 +1,27 @@ -import { DebuggerCommunicationServer } from "../debuggerCommunicationServer"; - -export class DebuggerCommunicationService { - private currentDebuggerServer?: DebuggerCommunicationServer; - private previousDebuggerServerToDisconnect?: DebuggerCommunicationServer; - - public setCurrentDebuggerServer(debugServer: DebuggerCommunicationServer) { - this.currentDebuggerServer = debugServer; - } - // Used for restart and stop event - public resetCurrentDebuggerServer() { - if (this.currentDebuggerServer) { - this.currentDebuggerServer.closeConnection(); - } - this.previousDebuggerServerToDisconnect = this.currentDebuggerServer; - this.currentDebuggerServer = undefined; - } - public getCurrentDebuggerServer() { - return this.currentDebuggerServer; - } - // Only used for stop event - public handleStopEvent() { - if (this.previousDebuggerServerToDisconnect) { - this.previousDebuggerServerToDisconnect.disconnectFromPort(); - } - } -} +import { DebuggerCommunicationServer } from "../debuggerCommunicationServer"; + +export class DebuggerCommunicationService { + private currentDebuggerServer?: DebuggerCommunicationServer; + private previousDebuggerServerToDisconnect?: DebuggerCommunicationServer; + + public setCurrentDebuggerServer(debugServer: DebuggerCommunicationServer) { + this.currentDebuggerServer = debugServer; + } + // Used for restart and stop event + public resetCurrentDebuggerServer() { + if (this.currentDebuggerServer) { + this.currentDebuggerServer.closeConnection(); + } + this.previousDebuggerServerToDisconnect = this.currentDebuggerServer; + this.currentDebuggerServer = undefined; + } + public getCurrentDebuggerServer() { + return this.currentDebuggerServer; + } + // Only used for stop event + public handleStopEvent() { + if (this.previousDebuggerServerToDisconnect) { + this.previousDebuggerServerToDisconnect.disconnectFromPort(); + } + } +} diff --git a/src/service/deviceSelectionService.ts b/Source/service/deviceSelectionService.ts similarity index 96% rename from src/service/deviceSelectionService.ts rename to Source/service/deviceSelectionService.ts index fd37ab6ed..39a8b5988 100644 --- a/src/service/deviceSelectionService.ts +++ b/Source/service/deviceSelectionService.ts @@ -1,12 +1,12 @@ -import { DEFAULT_DEVICE } from "../constants"; - -export class DeviceSelectionService { - private currentActiveDevice: string = DEFAULT_DEVICE; - - public getCurrentActiveDevice(): string { - return this.currentActiveDevice; - } - public setCurrentActiveDevice(newActiveDevice: string) { - this.currentActiveDevice = newActiveDevice; - } -} +import { DEFAULT_DEVICE } from "../constants"; + +export class DeviceSelectionService { + private currentActiveDevice: string = DEFAULT_DEVICE; + + public getCurrentActiveDevice(): string { + return this.currentActiveDevice; + } + public setCurrentActiveDevice(newActiveDevice: string) { + this.currentActiveDevice = newActiveDevice; + } +} diff --git a/src/service/fileSelectionService.ts b/Source/service/fileSelectionService.ts similarity index 97% rename from src/service/fileSelectionService.ts rename to Source/service/fileSelectionService.ts index 11f901ed9..d5b0eea11 100644 --- a/src/service/fileSelectionService.ts +++ b/Source/service/fileSelectionService.ts @@ -1,95 +1,95 @@ -import * as vscode from "vscode"; -import { LANGUAGE_VARS } from "../constants"; -import { VSCODE_MESSAGES_TO_WEBVIEW } from "../view/constants"; -import { DeviceSelectionService } from "./deviceSelectionService"; -import { MessagingService } from "./messagingService"; - -export class FileSelectionService { - private currentFileAbsPath: string = ""; - private currentTextDocument: vscode.TextDocument; - private messagingService: MessagingService; - - constructor(messagingService: MessagingService) { - this.messagingService = messagingService; - } - - public getCurrentFileAbsPath() { - return this.currentFileAbsPath; - } - public getCurrentTextDocument() { - return this.currentTextDocument; - } - public updateCurrentFileFromTextFile = async ( - activeTextDocument: vscode.TextDocument | undefined - ) => { - if (activeTextDocument) { - await this.updateCurrentFileFromEditor({ - document: activeTextDocument, - } as vscode.TextEditor); - } else { - return; - } - }; - public updateCurrentFileFromEditor = async ( - activeTextDocument: vscode.TextEditor | undefined - ) => { - if ( - activeTextDocument && - activeTextDocument.document && - activeTextDocument.document.languageId === "python" - ) { - this.setPathAndSendMessage(activeTextDocument.document.fileName); - this.currentTextDocument = activeTextDocument.document; - } else if (this.currentFileAbsPath === "") { - this.setPathAndSendMessage(this.getActivePythonFile() || ""); - } - if ( - this.currentTextDocument && - this.getActiveEditorFromPath(this.currentTextDocument.fileName) === - undefined - ) { - await vscode.window.showTextDocument( - this.currentTextDocument, - vscode.ViewColumn.One - ); - } - }; - public findCurrentTextDocument() { - if (this.currentFileAbsPath) { - const foundDocument = this.getActiveEditorFromPath( - this.currentFileAbsPath - ); - if (foundDocument !== undefined) { - this.currentTextDocument = foundDocument; - } - } - } - - public setPathAndSendMessage = (newFilePath: string) => { - this.currentFileAbsPath = newFilePath; - this.messagingService.sendMessageToWebview( - VSCODE_MESSAGES_TO_WEBVIEW.CURRENT_FILE, - { - running_file: newFilePath, - } - ); - }; - private getActiveEditorFromPath = ( - filePath: string - ): vscode.TextDocument => { - const activeEditor = vscode.window.visibleTextEditors.find( - (editor: vscode.TextEditor) => editor.document.fileName === filePath - ); - return activeEditor ? activeEditor.document : undefined; - }; - private getActivePythonFile = () => { - const editors: vscode.TextEditor[] = vscode.window.visibleTextEditors; - const activeEditor = editors.find( - editor => editor.document.languageId === LANGUAGE_VARS.PYTHON.ID - ); - if (activeEditor) { - this.currentTextDocument = activeEditor.document; - } - return activeEditor ? activeEditor.document.fileName : ""; - }; -} +import * as vscode from "vscode"; +import { LANGUAGE_VARS } from "../constants"; +import { VSCODE_MESSAGES_TO_WEBVIEW } from "../view/constants"; +import { DeviceSelectionService } from "./deviceSelectionService"; +import { MessagingService } from "./messagingService"; + +export class FileSelectionService { + private currentFileAbsPath: string = ""; + private currentTextDocument: vscode.TextDocument; + private messagingService: MessagingService; + + constructor(messagingService: MessagingService) { + this.messagingService = messagingService; + } + + public getCurrentFileAbsPath() { + return this.currentFileAbsPath; + } + public getCurrentTextDocument() { + return this.currentTextDocument; + } + public updateCurrentFileFromTextFile = async ( + activeTextDocument: vscode.TextDocument | undefined + ) => { + if (activeTextDocument) { + await this.updateCurrentFileFromEditor({ + document: activeTextDocument, + } as vscode.TextEditor); + } else { + return; + } + }; + public updateCurrentFileFromEditor = async ( + activeTextDocument: vscode.TextEditor | undefined + ) => { + if ( + activeTextDocument && + activeTextDocument.document && + activeTextDocument.document.languageId === "python" + ) { + this.setPathAndSendMessage(activeTextDocument.document.fileName); + this.currentTextDocument = activeTextDocument.document; + } else if (this.currentFileAbsPath === "") { + this.setPathAndSendMessage(this.getActivePythonFile() || ""); + } + if ( + this.currentTextDocument && + this.getActiveEditorFromPath(this.currentTextDocument.fileName) === + undefined + ) { + await vscode.window.showTextDocument( + this.currentTextDocument, + vscode.ViewColumn.One + ); + } + }; + public findCurrentTextDocument() { + if (this.currentFileAbsPath) { + const foundDocument = this.getActiveEditorFromPath( + this.currentFileAbsPath + ); + if (foundDocument !== undefined) { + this.currentTextDocument = foundDocument; + } + } + } + + public setPathAndSendMessage = (newFilePath: string) => { + this.currentFileAbsPath = newFilePath; + this.messagingService.sendMessageToWebview( + VSCODE_MESSAGES_TO_WEBVIEW.CURRENT_FILE, + { + running_file: newFilePath, + } + ); + }; + private getActiveEditorFromPath = ( + filePath: string + ): vscode.TextDocument => { + const activeEditor = vscode.window.visibleTextEditors.find( + (editor: vscode.TextEditor) => editor.document.fileName === filePath + ); + return activeEditor ? activeEditor.document : undefined; + }; + private getActivePythonFile = () => { + const editors: vscode.TextEditor[] = vscode.window.visibleTextEditors; + const activeEditor = editors.find( + editor => editor.document.languageId === LANGUAGE_VARS.PYTHON.ID + ); + if (activeEditor) { + this.currentTextDocument = activeEditor.document; + } + return activeEditor ? activeEditor.document.fileName : ""; + }; +} diff --git a/src/service/messagingService.ts b/Source/service/messagingService.ts similarity index 100% rename from src/service/messagingService.ts rename to Source/service/messagingService.ts diff --git a/src/service/setupService.ts b/Source/service/setupService.ts similarity index 97% rename from src/service/setupService.ts rename to Source/service/setupService.ts index 04c757a72..f5c80e037 100644 --- a/src/service/setupService.ts +++ b/Source/service/setupService.ts @@ -1,576 +1,576 @@ -import * as fs from "fs"; -import * as os from "os"; -import * as path from "path"; -import * as vscode from "vscode"; -import { - CONFIG, - CONSTANTS, - DialogResponses, - GLOBAL_ENV_VARS, - HELPER_FILES, - TelemetryEventName, - VERSIONS, -} from "../constants"; -import { - checkConfig, - createEscapedPath, - exec, - getConfig, - getPathToScript, - showPrivacyModal, -} from "../extension_utils/utils"; -import TelemetryAI from "../telemetry/telemetryAI"; - -export class SetupService { - private telemetryAI: TelemetryAI; - - constructor(telemetryAI: TelemetryAI) { - this.telemetryAI = telemetryAI; - } - - public setupEnv = async ( - context: vscode.ExtensionContext, - needsResponse: boolean = false - ) => { - const originalPythonExecutablePath = await this.getCurrentPythonExecutablePath(); - if (originalPythonExecutablePath === "") { - return; - } - let pythonExecutablePath = originalPythonExecutablePath; - const pythonExecutableName: string = - os.platform() === "win32" - ? HELPER_FILES.PYTHON_EXE - : HELPER_FILES.PYTHON; - - if ( - !(await this.areDependenciesInstalled( - context, - pythonExecutablePath - )) - ) { - // environment needs to install dependencies - if (!(await this.checkIfVenv(context, pythonExecutablePath))) { - const pythonExecutablePathVenv = await this.getPythonVenv( - context, - pythonExecutableName - ); - if (await this.hasVenv(context)) { - // venv in extention exists with wrong dependencies - - if ( - !(await this.areDependenciesInstalled( - context, - pythonExecutablePathVenv - )) - ) { - pythonExecutablePath = await this.installDependenciesWrapper( - context, - pythonExecutablePathVenv, - pythonExecutablePath - ); - } else { - pythonExecutablePath = pythonExecutablePathVenv; - } - } else { - pythonExecutablePath = await this.promptInstallVenv( - context, - originalPythonExecutablePath, - pythonExecutableName - ); - this.telemetryAI.trackFeatureUsage( - TelemetryEventName.SETUP_INSTALL_VENV - ); - } - - if (pythonExecutablePath === pythonExecutablePathVenv) { - vscode.window.showInformationMessage( - CONSTANTS.INFO.UPDATED_TO_EXTENSION_VENV - ); - vscode.workspace - .getConfiguration() - .update(CONFIG.PYTHON_PATH, pythonExecutablePath); - } - } else { - this.telemetryAI.trackFeatureUsage( - TelemetryEventName.SETUP_HAS_VENV - ); - } - if (pythonExecutablePath === originalPythonExecutablePath) { - // going with original interpreter, either because - // already in venv or error in creating custom venv - if (checkConfig(CONFIG.SHOW_DEPENDENCY_INSTALL)) { - await vscode.window - .showInformationMessage( - CONSTANTS.INFO.INSTALL_PYTHON_DEPS, - DialogResponses.INSTALL_NOW, - DialogResponses.DONT_INSTALL - ) - .then( - async ( - installChoice: vscode.MessageItem | undefined - ) => { - if ( - installChoice === - DialogResponses.INSTALL_NOW - ) { - this.telemetryAI.trackFeatureUsage( - TelemetryEventName.SETUP_ORIGINAL_INTERPRETER_DEP_INSTALL - ); - await this.installDependenciesWrapper( - context, - pythonExecutablePath - ); - } else { - await vscode.window - .showInformationMessage( - CONSTANTS.INFO.ARE_YOU_SURE, - DialogResponses.INSTALL_NOW, - DialogResponses.DONT_INSTALL - ) - .then( - async ( - installChoice2: - | vscode.MessageItem - | undefined - ) => { - if ( - installChoice2 === - DialogResponses.INSTALL_NOW - ) { - await this.installDependenciesWrapper( - context, - pythonExecutablePath - ); - } else { - this.telemetryAI.trackFeatureUsage( - TelemetryEventName.SETUP_NO_DEPS_INSTALLED - ); - } - } - ); - } - } - ); - } - } - } else if (needsResponse) { - vscode.window.showInformationMessage( - CONSTANTS.INFO.ALREADY_SUCCESSFUL_INSTALL - ); - } - - return pythonExecutablePath; - }; - - public getCurrentPythonExecutablePath = async ( - isTryingPython3: boolean = false - ) => { - let originalPythonExecutablePath = ""; - const systemPythonVar = isTryingPython3 - ? GLOBAL_ENV_VARS.PYTHON3 - : GLOBAL_ENV_VARS.PYTHON; - // try to get name from interpreter - try { - originalPythonExecutablePath = getConfig(CONFIG.PYTHON_PATH); - } catch (err) { - originalPythonExecutablePath = systemPythonVar; - } - - if ( - originalPythonExecutablePath === GLOBAL_ENV_VARS.PYTHON3 || - originalPythonExecutablePath === GLOBAL_ENV_VARS.PYTHON || - originalPythonExecutablePath === "" - ) { - // catching any instance where the python path needs to be resolved - // from an system variable - this.telemetryAI.trackFeatureUsage( - TelemetryEventName.SETUP_AUTO_RESOLVE_PYTHON_PATH - ); - try { - const { stdout } = await this.executePythonCommand( - systemPythonVar, - `-c "import sys; print(sys.executable)"` - ); - originalPythonExecutablePath = stdout.trim(); - } catch (err) { - this.telemetryAI.trackFeatureUsage( - TelemetryEventName.SETUP_NO_PYTHON_PATH - ); - if (isTryingPython3) { - // if trying python3 failed, that means that BOTH - // python and python3 failed as system variables - // so that means that there is no python - vscode.window - .showErrorMessage( - CONSTANTS.ERROR.NO_PYTHON_PATH, - DialogResponses.INSTALL_PYTHON - ) - .then((selection: vscode.MessageItem | undefined) => { - if (selection === DialogResponses.INSTALL_PYTHON) { - const okAction = () => { - this.telemetryAI.trackFeatureUsage( - TelemetryEventName.SETUP_DOWNLOAD_PYTHON - ); - open(CONSTANTS.LINKS.DOWNLOAD_PYTHON); - }; - showPrivacyModal( - okAction, - CONSTANTS.INFO.THIRD_PARTY_WEBSITE_PYTHON - ); - } - }); - // no python installed, cannot get path - return ""; - } else { - // "python" didn't resolve to anything, trying "python3" - return this.getCurrentPythonExecutablePath(true); - } - } - if ( - !(await this.validatePythonVersion( - originalPythonExecutablePath - )) - ) { - this.telemetryAI.trackFeatureUsage( - TelemetryEventName.SETUP_INVALID_PYTHON_VER - ); - if (isTryingPython3) { - // if we're trying python3, it means we already tried python and it - // all doesn't seem to work, but it got this far, so it means that - // their system python3 version is still not above 3.7, but they - // don't have a path selected. - vscode.window - .showInformationMessage( - CONSTANTS.ERROR.INVALID_PYTHON_PATH, - DialogResponses.INSTALL_PYTHON - ) - .then( - (installChoice: vscode.MessageItem | undefined) => { - if ( - installChoice === - DialogResponses.INSTALL_PYTHON - ) { - const okAction = () => { - this.telemetryAI.trackFeatureUsage( - TelemetryEventName.SETUP_DOWNLOAD_PYTHON - ); - open(CONSTANTS.LINKS.DOWNLOAD_PYTHON); - }; - showPrivacyModal( - okAction, - CONSTANTS.INFO - .THIRD_PARTY_WEBSITE_PYTHON - ); - } - } - ); - return ""; - } else { - // otherwise, we ran the "python" system variable - // and we can try python3 - return this.getCurrentPythonExecutablePath(true); - } - } - } else { - // should only be applicable if the user defined their own path - - // fix path to be absolute - if (!path.isAbsolute(originalPythonExecutablePath)) { - originalPythonExecutablePath = path.join( - vscode.workspace.rootPath, - originalPythonExecutablePath - ); - } - - if (!fs.existsSync(originalPythonExecutablePath)) { - await vscode.window.showErrorMessage( - CONSTANTS.ERROR.BAD_PYTHON_PATH - ); - this.telemetryAI.trackFeatureUsage( - TelemetryEventName.SETUP_INVALID_PYTHON_INTERPRETER_PATH - ); - return ""; - } - - if ( - !(await this.validatePythonVersion( - originalPythonExecutablePath - )) - ) { - this.telemetryAI.trackFeatureUsage( - TelemetryEventName.SETUP_INVALID_PYTHON_VER - ); - vscode.window - .showInformationMessage( - CONSTANTS.ERROR.INVALID_PYTHON_PATH, - DialogResponses.INSTALL_PYTHON - ) - .then((installChoice: vscode.MessageItem | undefined) => { - if (installChoice === DialogResponses.INSTALL_PYTHON) { - const okAction = () => { - this.telemetryAI.trackFeatureUsage( - TelemetryEventName.SETUP_DOWNLOAD_PYTHON - ); - open(CONSTANTS.LINKS.DOWNLOAD_PYTHON); - }; - showPrivacyModal( - okAction, - CONSTANTS.INFO.THIRD_PARTY_WEBSITE_PYTHON - ); - } - }); - return ""; - } - } - - return originalPythonExecutablePath; - }; - - public isPipInstalled = async (pythonExecutablePath: string) => { - try { - await this.executePythonCommand(pythonExecutablePath, " -m pip"); - return true; - } catch (err) { - vscode.window - .showErrorMessage( - `We found that you may not have Pip installed on your interpreter at ${pythonExecutablePath}, please install it and try again.`, - DialogResponses.INSTALL_PIP - ) - .then((selection: vscode.MessageItem | undefined) => { - if (selection === DialogResponses.INSTALL_PIP) { - const okAction = () => { - open(CONSTANTS.LINKS.DOWNLOAD_PIP); - }; - showPrivacyModal( - okAction, - CONSTANTS.INFO.THIRD_PARTY_WEBSITE_PIP - ); - } - }); - return false; - } - }; - - public checkIfVenv = async ( - context: vscode.ExtensionContext, - pythonExecutablePath: string - ) => { - const venvCheckerPath: string = getPathToScript( - context, - CONSTANTS.FILESYSTEM.OUTPUT_DIRECTORY, - HELPER_FILES.CHECK_IF_VENV_PY - ); - const { stdout } = await this.executePythonCommand( - pythonExecutablePath, - `"${venvCheckerPath}"` - ); - return stdout.trim() === "1"; - }; - - public executePythonCommand = async ( - pythonExecutablePath: string, - command: string - ) => { - return exec(`${createEscapedPath(pythonExecutablePath)} ${command}`); - }; - - public validatePythonVersion = async (pythonExecutablePath: string) => { - const { stdout } = await this.executePythonCommand( - pythonExecutablePath, - "--version" - ); - if (stdout < VERSIONS.MIN_PY_VERSION) { - return false; - } else { - return true; - } - }; - - public hasVenv = async (context: vscode.ExtensionContext) => { - const pathToEnv: string = getPathToScript( - context, - CONSTANTS.FILESYSTEM.PYTHON_VENV_DIR - ); - - return fs.existsSync(pathToEnv); - }; - - public promptInstallVenv = ( - context: vscode.ExtensionContext, - pythonExecutable: string, - pythonExecutableName: string - ) => { - return vscode.window - .showInformationMessage( - CONSTANTS.INFO.INSTALL_PYTHON_VENV, - DialogResponses.YES, - DialogResponses.NO - ) - .then((selection: vscode.MessageItem | undefined) => { - if (selection === DialogResponses.YES) { - return this.installPythonVenv( - context, - pythonExecutable, - pythonExecutableName - ); - } else { - // return pythonExecutable, notifying the caller - // that the user was unwilling to create venv - // and by default, this will trigger the extension to - // try using pythonExecutable - return pythonExecutable; - } - }); - }; - - public getPythonVenv = async ( - context: vscode.ExtensionContext, - pythonExecutableName: string - ) => { - const subFolder = os.platform() === "win32" ? "Scripts" : "bin"; - - return getPathToScript( - context, - path.join(CONSTANTS.FILESYSTEM.PYTHON_VENV_DIR, subFolder), - pythonExecutableName - ); - }; - - public installPythonVenv = async ( - context: vscode.ExtensionContext, - pythonExecutable: string, - pythonExecutableName: string - ) => { - const pathToEnv: string = getPathToScript( - context, - CONSTANTS.FILESYSTEM.PYTHON_VENV_DIR - ); - - vscode.window.showInformationMessage( - CONSTANTS.INFO.INSTALLING_PYTHON_VENV - ); - - const pythonPath: string = await this.getPythonVenv( - context, - pythonExecutableName - ); - - try { - // make venv - // run command to download dependencies to out/python_libs - await this.executePythonCommand( - pythonExecutable, - `-m venv "${pathToEnv}"` - ); - } catch (err) { - this.telemetryAI.trackFeatureUsage( - TelemetryEventName.SETUP_VENV_CREATION_ERR - ); - vscode.window - .showErrorMessage( - `Virtual environment for download could not be completed. Using original interpreter at: ${pythonExecutable}. If you're on Linux, try running "sudo apt-get install python3-venv".`, - DialogResponses.READ_INSTALL_MD - ) - .then((selection: vscode.MessageItem | undefined) => { - if (selection === DialogResponses.READ_INSTALL_MD) { - open(CONSTANTS.LINKS.INSTALL); - } - }); - - console.error(err); - - return pythonExecutable; - } - - return this.installDependenciesWrapper( - context, - pythonPath, - pythonExecutable - ); - }; - - public areDependenciesInstalled = async ( - context: vscode.ExtensionContext, - pythonPath: string - ) => { - const dependencyCheckerPath: string = getPathToScript( - context, - CONSTANTS.FILESYSTEM.OUTPUT_DIRECTORY, - HELPER_FILES.CHECK_PYTHON_DEPENDENCIES - ); - try { - // python script will throw exception - // if not all dependencies are downloaded - const { stdout } = await this.executePythonCommand( - pythonPath, - `"${dependencyCheckerPath}"` - ); - - // output for debugging purposes - console.info(stdout); - return true; - } catch (err) { - return false; - } - }; - - public installDependencies = async ( - context: vscode.ExtensionContext, - pythonPath: string - ) => { - const requirementsPyInstallPath: string = getPathToScript( - context, - CONSTANTS.FILESYSTEM.OUTPUT_DIRECTORY, - "install_dependencies.py" - ); - - if (!this.isPipInstalled(pythonPath)) { - this.telemetryAI.trackFeatureUsage(TelemetryEventName.SETUP_NO_PIP); - return false; - } - - try { - const { stdout } = await this.executePythonCommand( - pythonPath, - `"${requirementsPyInstallPath}"` - ); - console.log(`DSE ${stdout}`); - vscode.window.showInformationMessage( - CONSTANTS.INFO.SUCCESSFUL_INSTALL - ); - return true; - } catch (err) { - console.log(`DSE ${err}`); - return false; - } - }; - - public installDependenciesWrapper = async ( - context: vscode.ExtensionContext, - pythonPath: string, - backupPythonPath: string = "" - ) => { - let errMessage = CONSTANTS.ERROR.DEPENDENCY_DOWNLOAD_ERROR; - if (backupPythonPath !== "") { - errMessage = `${errMessage} Using original interpreter at: ${backupPythonPath}.`; - } - if (!(await this.installDependencies(context, pythonPath))) { - vscode.window - .showErrorMessage( - CONSTANTS.ERROR.DEPENDENCY_DOWNLOAD_ERROR, - DialogResponses.READ_INSTALL_MD - ) - .then((selection: vscode.MessageItem | undefined) => { - if (selection === DialogResponses.READ_INSTALL_MD) { - open(CONSTANTS.LINKS.INSTALL); - } - }); - - this.telemetryAI.trackFeatureUsage( - TelemetryEventName.SETUP_DEP_INSTALL_FAIL - ); - return backupPythonPath; - } - return pythonPath; - }; -} +import * as fs from "fs"; +import * as os from "os"; +import * as path from "path"; +import * as vscode from "vscode"; +import { + CONFIG, + CONSTANTS, + DialogResponses, + GLOBAL_ENV_VARS, + HELPER_FILES, + TelemetryEventName, + VERSIONS, +} from "../constants"; +import { + checkConfig, + createEscapedPath, + exec, + getConfig, + getPathToScript, + showPrivacyModal, +} from "../extension_utils/utils"; +import TelemetryAI from "../telemetry/telemetryAI"; + +export class SetupService { + private telemetryAI: TelemetryAI; + + constructor(telemetryAI: TelemetryAI) { + this.telemetryAI = telemetryAI; + } + + public setupEnv = async ( + context: vscode.ExtensionContext, + needsResponse: boolean = false + ) => { + const originalPythonExecutablePath = await this.getCurrentPythonExecutablePath(); + if (originalPythonExecutablePath === "") { + return; + } + let pythonExecutablePath = originalPythonExecutablePath; + const pythonExecutableName: string = + os.platform() === "win32" + ? HELPER_FILES.PYTHON_EXE + : HELPER_FILES.PYTHON; + + if ( + !(await this.areDependenciesInstalled( + context, + pythonExecutablePath + )) + ) { + // environment needs to install dependencies + if (!(await this.checkIfVenv(context, pythonExecutablePath))) { + const pythonExecutablePathVenv = await this.getPythonVenv( + context, + pythonExecutableName + ); + if (await this.hasVenv(context)) { + // venv in extention exists with wrong dependencies + + if ( + !(await this.areDependenciesInstalled( + context, + pythonExecutablePathVenv + )) + ) { + pythonExecutablePath = await this.installDependenciesWrapper( + context, + pythonExecutablePathVenv, + pythonExecutablePath + ); + } else { + pythonExecutablePath = pythonExecutablePathVenv; + } + } else { + pythonExecutablePath = await this.promptInstallVenv( + context, + originalPythonExecutablePath, + pythonExecutableName + ); + this.telemetryAI.trackFeatureUsage( + TelemetryEventName.SETUP_INSTALL_VENV + ); + } + + if (pythonExecutablePath === pythonExecutablePathVenv) { + vscode.window.showInformationMessage( + CONSTANTS.INFO.UPDATED_TO_EXTENSION_VENV + ); + vscode.workspace + .getConfiguration() + .update(CONFIG.PYTHON_PATH, pythonExecutablePath); + } + } else { + this.telemetryAI.trackFeatureUsage( + TelemetryEventName.SETUP_HAS_VENV + ); + } + if (pythonExecutablePath === originalPythonExecutablePath) { + // going with original interpreter, either because + // already in venv or error in creating custom venv + if (checkConfig(CONFIG.SHOW_DEPENDENCY_INSTALL)) { + await vscode.window + .showInformationMessage( + CONSTANTS.INFO.INSTALL_PYTHON_DEPS, + DialogResponses.INSTALL_NOW, + DialogResponses.DONT_INSTALL + ) + .then( + async ( + installChoice: vscode.MessageItem | undefined + ) => { + if ( + installChoice === + DialogResponses.INSTALL_NOW + ) { + this.telemetryAI.trackFeatureUsage( + TelemetryEventName.SETUP_ORIGINAL_INTERPRETER_DEP_INSTALL + ); + await this.installDependenciesWrapper( + context, + pythonExecutablePath + ); + } else { + await vscode.window + .showInformationMessage( + CONSTANTS.INFO.ARE_YOU_SURE, + DialogResponses.INSTALL_NOW, + DialogResponses.DONT_INSTALL + ) + .then( + async ( + installChoice2: + | vscode.MessageItem + | undefined + ) => { + if ( + installChoice2 === + DialogResponses.INSTALL_NOW + ) { + await this.installDependenciesWrapper( + context, + pythonExecutablePath + ); + } else { + this.telemetryAI.trackFeatureUsage( + TelemetryEventName.SETUP_NO_DEPS_INSTALLED + ); + } + } + ); + } + } + ); + } + } + } else if (needsResponse) { + vscode.window.showInformationMessage( + CONSTANTS.INFO.ALREADY_SUCCESSFUL_INSTALL + ); + } + + return pythonExecutablePath; + }; + + public getCurrentPythonExecutablePath = async ( + isTryingPython3: boolean = false + ) => { + let originalPythonExecutablePath = ""; + const systemPythonVar = isTryingPython3 + ? GLOBAL_ENV_VARS.PYTHON3 + : GLOBAL_ENV_VARS.PYTHON; + // try to get name from interpreter + try { + originalPythonExecutablePath = getConfig(CONFIG.PYTHON_PATH); + } catch (err) { + originalPythonExecutablePath = systemPythonVar; + } + + if ( + originalPythonExecutablePath === GLOBAL_ENV_VARS.PYTHON3 || + originalPythonExecutablePath === GLOBAL_ENV_VARS.PYTHON || + originalPythonExecutablePath === "" + ) { + // catching any instance where the python path needs to be resolved + // from an system variable + this.telemetryAI.trackFeatureUsage( + TelemetryEventName.SETUP_AUTO_RESOLVE_PYTHON_PATH + ); + try { + const { stdout } = await this.executePythonCommand( + systemPythonVar, + `-c "import sys; print(sys.executable)"` + ); + originalPythonExecutablePath = stdout.trim(); + } catch (err) { + this.telemetryAI.trackFeatureUsage( + TelemetryEventName.SETUP_NO_PYTHON_PATH + ); + if (isTryingPython3) { + // if trying python3 failed, that means that BOTH + // python and python3 failed as system variables + // so that means that there is no python + vscode.window + .showErrorMessage( + CONSTANTS.ERROR.NO_PYTHON_PATH, + DialogResponses.INSTALL_PYTHON + ) + .then((selection: vscode.MessageItem | undefined) => { + if (selection === DialogResponses.INSTALL_PYTHON) { + const okAction = () => { + this.telemetryAI.trackFeatureUsage( + TelemetryEventName.SETUP_DOWNLOAD_PYTHON + ); + open(CONSTANTS.LINKS.DOWNLOAD_PYTHON); + }; + showPrivacyModal( + okAction, + CONSTANTS.INFO.THIRD_PARTY_WEBSITE_PYTHON + ); + } + }); + // no python installed, cannot get path + return ""; + } else { + // "python" didn't resolve to anything, trying "python3" + return this.getCurrentPythonExecutablePath(true); + } + } + if ( + !(await this.validatePythonVersion( + originalPythonExecutablePath + )) + ) { + this.telemetryAI.trackFeatureUsage( + TelemetryEventName.SETUP_INVALID_PYTHON_VER + ); + if (isTryingPython3) { + // if we're trying python3, it means we already tried python and it + // all doesn't seem to work, but it got this far, so it means that + // their system python3 version is still not above 3.7, but they + // don't have a path selected. + vscode.window + .showInformationMessage( + CONSTANTS.ERROR.INVALID_PYTHON_PATH, + DialogResponses.INSTALL_PYTHON + ) + .then( + (installChoice: vscode.MessageItem | undefined) => { + if ( + installChoice === + DialogResponses.INSTALL_PYTHON + ) { + const okAction = () => { + this.telemetryAI.trackFeatureUsage( + TelemetryEventName.SETUP_DOWNLOAD_PYTHON + ); + open(CONSTANTS.LINKS.DOWNLOAD_PYTHON); + }; + showPrivacyModal( + okAction, + CONSTANTS.INFO + .THIRD_PARTY_WEBSITE_PYTHON + ); + } + } + ); + return ""; + } else { + // otherwise, we ran the "python" system variable + // and we can try python3 + return this.getCurrentPythonExecutablePath(true); + } + } + } else { + // should only be applicable if the user defined their own path + + // fix path to be absolute + if (!path.isAbsolute(originalPythonExecutablePath)) { + originalPythonExecutablePath = path.join( + vscode.workspace.rootPath, + originalPythonExecutablePath + ); + } + + if (!fs.existsSync(originalPythonExecutablePath)) { + await vscode.window.showErrorMessage( + CONSTANTS.ERROR.BAD_PYTHON_PATH + ); + this.telemetryAI.trackFeatureUsage( + TelemetryEventName.SETUP_INVALID_PYTHON_INTERPRETER_PATH + ); + return ""; + } + + if ( + !(await this.validatePythonVersion( + originalPythonExecutablePath + )) + ) { + this.telemetryAI.trackFeatureUsage( + TelemetryEventName.SETUP_INVALID_PYTHON_VER + ); + vscode.window + .showInformationMessage( + CONSTANTS.ERROR.INVALID_PYTHON_PATH, + DialogResponses.INSTALL_PYTHON + ) + .then((installChoice: vscode.MessageItem | undefined) => { + if (installChoice === DialogResponses.INSTALL_PYTHON) { + const okAction = () => { + this.telemetryAI.trackFeatureUsage( + TelemetryEventName.SETUP_DOWNLOAD_PYTHON + ); + open(CONSTANTS.LINKS.DOWNLOAD_PYTHON); + }; + showPrivacyModal( + okAction, + CONSTANTS.INFO.THIRD_PARTY_WEBSITE_PYTHON + ); + } + }); + return ""; + } + } + + return originalPythonExecutablePath; + }; + + public isPipInstalled = async (pythonExecutablePath: string) => { + try { + await this.executePythonCommand(pythonExecutablePath, " -m pip"); + return true; + } catch (err) { + vscode.window + .showErrorMessage( + `We found that you may not have Pip installed on your interpreter at ${pythonExecutablePath}, please install it and try again.`, + DialogResponses.INSTALL_PIP + ) + .then((selection: vscode.MessageItem | undefined) => { + if (selection === DialogResponses.INSTALL_PIP) { + const okAction = () => { + open(CONSTANTS.LINKS.DOWNLOAD_PIP); + }; + showPrivacyModal( + okAction, + CONSTANTS.INFO.THIRD_PARTY_WEBSITE_PIP + ); + } + }); + return false; + } + }; + + public checkIfVenv = async ( + context: vscode.ExtensionContext, + pythonExecutablePath: string + ) => { + const venvCheckerPath: string = getPathToScript( + context, + CONSTANTS.FILESYSTEM.OUTPUT_DIRECTORY, + HELPER_FILES.CHECK_IF_VENV_PY + ); + const { stdout } = await this.executePythonCommand( + pythonExecutablePath, + `"${venvCheckerPath}"` + ); + return stdout.trim() === "1"; + }; + + public executePythonCommand = async ( + pythonExecutablePath: string, + command: string + ) => { + return exec(`${createEscapedPath(pythonExecutablePath)} ${command}`); + }; + + public validatePythonVersion = async (pythonExecutablePath: string) => { + const { stdout } = await this.executePythonCommand( + pythonExecutablePath, + "--version" + ); + if (stdout < VERSIONS.MIN_PY_VERSION) { + return false; + } else { + return true; + } + }; + + public hasVenv = async (context: vscode.ExtensionContext) => { + const pathToEnv: string = getPathToScript( + context, + CONSTANTS.FILESYSTEM.PYTHON_VENV_DIR + ); + + return fs.existsSync(pathToEnv); + }; + + public promptInstallVenv = ( + context: vscode.ExtensionContext, + pythonExecutable: string, + pythonExecutableName: string + ) => { + return vscode.window + .showInformationMessage( + CONSTANTS.INFO.INSTALL_PYTHON_VENV, + DialogResponses.YES, + DialogResponses.NO + ) + .then((selection: vscode.MessageItem | undefined) => { + if (selection === DialogResponses.YES) { + return this.installPythonVenv( + context, + pythonExecutable, + pythonExecutableName + ); + } else { + // return pythonExecutable, notifying the caller + // that the user was unwilling to create venv + // and by default, this will trigger the extension to + // try using pythonExecutable + return pythonExecutable; + } + }); + }; + + public getPythonVenv = async ( + context: vscode.ExtensionContext, + pythonExecutableName: string + ) => { + const subFolder = os.platform() === "win32" ? "Scripts" : "bin"; + + return getPathToScript( + context, + path.join(CONSTANTS.FILESYSTEM.PYTHON_VENV_DIR, subFolder), + pythonExecutableName + ); + }; + + public installPythonVenv = async ( + context: vscode.ExtensionContext, + pythonExecutable: string, + pythonExecutableName: string + ) => { + const pathToEnv: string = getPathToScript( + context, + CONSTANTS.FILESYSTEM.PYTHON_VENV_DIR + ); + + vscode.window.showInformationMessage( + CONSTANTS.INFO.INSTALLING_PYTHON_VENV + ); + + const pythonPath: string = await this.getPythonVenv( + context, + pythonExecutableName + ); + + try { + // make venv + // run command to download dependencies to out/python_libs + await this.executePythonCommand( + pythonExecutable, + `-m venv "${pathToEnv}"` + ); + } catch (err) { + this.telemetryAI.trackFeatureUsage( + TelemetryEventName.SETUP_VENV_CREATION_ERR + ); + vscode.window + .showErrorMessage( + `Virtual environment for download could not be completed. Using original interpreter at: ${pythonExecutable}. If you're on Linux, try running "sudo apt-get install python3-venv".`, + DialogResponses.READ_INSTALL_MD + ) + .then((selection: vscode.MessageItem | undefined) => { + if (selection === DialogResponses.READ_INSTALL_MD) { + open(CONSTANTS.LINKS.INSTALL); + } + }); + + console.error(err); + + return pythonExecutable; + } + + return this.installDependenciesWrapper( + context, + pythonPath, + pythonExecutable + ); + }; + + public areDependenciesInstalled = async ( + context: vscode.ExtensionContext, + pythonPath: string + ) => { + const dependencyCheckerPath: string = getPathToScript( + context, + CONSTANTS.FILESYSTEM.OUTPUT_DIRECTORY, + HELPER_FILES.CHECK_PYTHON_DEPENDENCIES + ); + try { + // python script will throw exception + // if not all dependencies are downloaded + const { stdout } = await this.executePythonCommand( + pythonPath, + `"${dependencyCheckerPath}"` + ); + + // output for debugging purposes + console.info(stdout); + return true; + } catch (err) { + return false; + } + }; + + public installDependencies = async ( + context: vscode.ExtensionContext, + pythonPath: string + ) => { + const requirementsPyInstallPath: string = getPathToScript( + context, + CONSTANTS.FILESYSTEM.OUTPUT_DIRECTORY, + "install_dependencies.py" + ); + + if (!this.isPipInstalled(pythonPath)) { + this.telemetryAI.trackFeatureUsage(TelemetryEventName.SETUP_NO_PIP); + return false; + } + + try { + const { stdout } = await this.executePythonCommand( + pythonPath, + `"${requirementsPyInstallPath}"` + ); + console.log(`DSE ${stdout}`); + vscode.window.showInformationMessage( + CONSTANTS.INFO.SUCCESSFUL_INSTALL + ); + return true; + } catch (err) { + console.log(`DSE ${err}`); + return false; + } + }; + + public installDependenciesWrapper = async ( + context: vscode.ExtensionContext, + pythonPath: string, + backupPythonPath: string = "" + ) => { + let errMessage = CONSTANTS.ERROR.DEPENDENCY_DOWNLOAD_ERROR; + if (backupPythonPath !== "") { + errMessage = `${errMessage} Using original interpreter at: ${backupPythonPath}.`; + } + if (!(await this.installDependencies(context, pythonPath))) { + vscode.window + .showErrorMessage( + CONSTANTS.ERROR.DEPENDENCY_DOWNLOAD_ERROR, + DialogResponses.READ_INSTALL_MD + ) + .then((selection: vscode.MessageItem | undefined) => { + if (selection === DialogResponses.READ_INSTALL_MD) { + open(CONSTANTS.LINKS.INSTALL); + } + }); + + this.telemetryAI.trackFeatureUsage( + TelemetryEventName.SETUP_DEP_INSTALL_FAIL + ); + return backupPythonPath; + } + return pythonPath; + }; +} diff --git a/src/service/telemetryHandlerService.ts b/Source/service/telemetryHandlerService.ts similarity index 100% rename from src/service/telemetryHandlerService.ts rename to Source/service/telemetryHandlerService.ts diff --git a/src/service/webviewService.ts b/Source/service/webviewService.ts similarity index 100% rename from src/service/webviewService.ts rename to Source/service/webviewService.ts diff --git a/src/simulatorDebugConfigurationProvider.ts b/Source/simulatorDebugConfigurationProvider.ts similarity index 100% rename from src/simulatorDebugConfigurationProvider.ts rename to Source/simulatorDebugConfigurationProvider.ts diff --git a/src/telemetry/getPackageInfo.ts b/Source/telemetry/getPackageInfo.ts similarity index 100% rename from src/telemetry/getPackageInfo.ts rename to Source/telemetry/getPackageInfo.ts diff --git a/src/telemetry/telemetryAI.ts b/Source/telemetry/telemetryAI.ts similarity index 100% rename from src/telemetry/telemetryAI.ts rename to Source/telemetry/telemetryAI.ts diff --git a/src/templates/clue_template.py b/Source/templates/clue_template.py similarity index 97% rename from src/templates/clue_template.py rename to Source/templates/clue_template.py index 40719f439..489f21666 100644 --- a/src/templates/clue_template.py +++ b/Source/templates/clue_template.py @@ -1,16 +1,16 @@ -""" -To get started, check out the "Device Simulator Express: Getting Started" command in the command pallete, which you can access with `CMD + SHIFT + P` For Mac and `CTRL + SHIFT + P` for Windows and Linux. - -To learn more about the CLUE and CircuitPython, check this link out: -https://learn.adafruit.com/adafruit-clue/circuitpython - -Find example code for CPX on: -https://blog.adafruit.com/2020/02/12/three-fun-sensor-packed-projects-to-try-on-your-clue-adafruitlearningsystem-adafruit-circuitpython-adafruit/ -""" - -from adafruit_clue import clue - -clue_data = clue.simple_text_display(title="Hello World", title_scale=3) - -while True: - clue_data.show() +""" +To get started, check out the "Device Simulator Express: Getting Started" command in the command pallete, which you can access with `CMD + SHIFT + P` For Mac and `CTRL + SHIFT + P` for Windows and Linux. + +To learn more about the CLUE and CircuitPython, check this link out: +https://learn.adafruit.com/adafruit-clue/circuitpython + +Find example code for CPX on: +https://blog.adafruit.com/2020/02/12/three-fun-sensor-packed-projects-to-try-on-your-clue-adafruitlearningsystem-adafruit-circuitpython-adafruit/ +""" + +from adafruit_clue import clue + +clue_data = clue.simple_text_display(title="Hello World", title_scale=3) + +while True: + clue_data.show() diff --git a/src/templates/cpx_template.py b/Source/templates/cpx_template.py similarity index 97% rename from src/templates/cpx_template.py rename to Source/templates/cpx_template.py index 830b9a8e1..2efc6ba41 100644 --- a/src/templates/cpx_template.py +++ b/Source/templates/cpx_template.py @@ -1,16 +1,16 @@ -""" -To get started, check out the "Device Simulator Express: Getting Started" command in the command pallete, which you can access with `CMD + SHIFT + P` For Mac and `CTRL + SHIFT + P` for Windows and Linux. - -Getting started with CPX and CircuitPython intro on: -https://learn.adafruit.com/circuitpython-made-easy-on-circuit-playground-express/circuit-playground-express-library - -Find example code for CPX on: -https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/tree/master/examples -""" - -# import CPX library -from adafruit_circuitplayground import cp - -while True: - # start your code here - pass +""" +To get started, check out the "Device Simulator Express: Getting Started" command in the command pallete, which you can access with `CMD + SHIFT + P` For Mac and `CTRL + SHIFT + P` for Windows and Linux. + +Getting started with CPX and CircuitPython intro on: +https://learn.adafruit.com/circuitpython-made-easy-on-circuit-playground-express/circuit-playground-express-library + +Find example code for CPX on: +https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/tree/master/examples +""" + +# import CPX library +from adafruit_circuitplayground import cp + +while True: + # start your code here + pass diff --git a/src/templates/microbit_template.py b/Source/templates/microbit_template.py similarity index 97% rename from src/templates/microbit_template.py rename to Source/templates/microbit_template.py index 3c1cfbb8e..35751174d 100644 --- a/src/templates/microbit_template.py +++ b/Source/templates/microbit_template.py @@ -1,11 +1,11 @@ -""" -To get started, check out the "Device Simulator Express: Getting Started" command in the command pallete, which you can access with `CMD + SHIFT + P` For Mac and `CTRL + SHIFT + P` for Windows and Linux. - -Get started with micro:bit and MicroPython on: -https://microbit-micropython.readthedocs.io/en/latest/. -""" - -from microbit import * - -while True: - display.scroll("Hello World!") +""" +To get started, check out the "Device Simulator Express: Getting Started" command in the command pallete, which you can access with `CMD + SHIFT + P` For Mac and `CTRL + SHIFT + P` for Windows and Linux. + +Get started with micro:bit and MicroPython on: +https://microbit-micropython.readthedocs.io/en/latest/. +""" + +from microbit import * + +while True: + display.scroll("Hello World!") diff --git a/src/usbDetector.ts b/Source/usbDetector.ts similarity index 100% rename from src/usbDetector.ts rename to Source/usbDetector.ts diff --git a/src/view/App.css b/Source/view/App.css similarity index 100% rename from src/view/App.css rename to Source/view/App.css diff --git a/src/view/App.tsx b/Source/view/App.tsx similarity index 100% rename from src/view/App.tsx rename to Source/view/App.tsx diff --git a/src/view/components/Button.tsx b/Source/view/components/Button.tsx similarity index 100% rename from src/view/components/Button.tsx rename to Source/view/components/Button.tsx diff --git a/src/view/components/Dropdown.tsx b/Source/view/components/Dropdown.tsx similarity index 100% rename from src/view/components/Dropdown.tsx rename to Source/view/components/Dropdown.tsx diff --git a/src/view/components/clue/Clue.tsx b/Source/view/components/clue/Clue.tsx similarity index 96% rename from src/view/components/clue/Clue.tsx rename to Source/view/components/clue/Clue.tsx index 546f136ee..552ff54c3 100644 --- a/src/view/components/clue/Clue.tsx +++ b/Source/view/components/clue/Clue.tsx @@ -1,158 +1,158 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. - -import * as React from "react"; -import { - GESTURES_CLUE, - SENSOR_LIST, - VSCODE_MESSAGES_TO_WEBVIEW, - WEBVIEW_MESSAGES, -} from "../../constants"; -import "../../styles/Simulator.css"; -import * as TOOLBAR_SVG from "../../svgs/toolbar_svg"; -import { sendMessage } from "../../utils/MessageUtils"; -import { CLUE_TOOLBAR_ICON_ID } from "../toolbar/SensorModalUtils"; -import ToolBar from "../toolbar/ToolBar"; -import { ClueSimulator } from "./ClueSimulator"; - -// Component grouping the functionality for micro:bit functionalities -interface IState { - sensors: { [key: string]: number }; - currentSelectedGesture: string; -} -const DEFAULT_STATE = { - sensors: { - [SENSOR_LIST.TEMPERATURE]: 0, - [SENSOR_LIST.LIGHT_R]: 0, - [SENSOR_LIST.LIGHT_G]: 0, - [SENSOR_LIST.LIGHT_B]: 0, - [SENSOR_LIST.LIGHT_C]: 0, - [SENSOR_LIST.MOTION_X]: 0, - [SENSOR_LIST.MOTION_Y]: 0, - [SENSOR_LIST.MOTION_Z]: 0, - [SENSOR_LIST.HUMIDITY]: 0, - [SENSOR_LIST.PRESSURE]: 1013, - [SENSOR_LIST.PROXIMITY]: 0, - [SENSOR_LIST.GYRO_X]: 0, - [SENSOR_LIST.GYRO_Y]: 0, - [SENSOR_LIST.GYRO_Z]: 0, - [SENSOR_LIST.MAGNET_X]: 0, - [SENSOR_LIST.MAGNET_Y]: 0, - [SENSOR_LIST.MAGNET_Z]: 0, - }, - currentSelectedGesture: GESTURES_CLUE[0], -}; - -export class Clue extends React.Component<{}, IState> { - state = DEFAULT_STATE; - - componentDidMount() { - window.addEventListener("message", this.handleMessage); - } - - componentWillUnmount() { - // Make sure to remove the DOM listener when the component is unmounted. - window.removeEventListener("message", this.handleMessage); - } - handleMessage = (event: any): void => { - const message = event.data; - - switch (message.command) { - case VSCODE_MESSAGES_TO_WEBVIEW.RESET: - this.setState({ ...DEFAULT_STATE }); - break; - } - }; - render() { - return ( - - - - - ); - } - updateSensor = (sensor: SENSOR_LIST, value: number) => { - this.setState({ sensors: { ...this.state.sensors, [sensor]: value } }); - }; - updateGesture = (event: React.ChangeEvent) => { - this.setState({ currentSelectedGesture: event.target.value }); - }; - sendGesture = (isActive: boolean) => { - if (this.state.currentSelectedGesture) { - if (isActive) { - sendMessage(WEBVIEW_MESSAGES.GESTURE, { - gesture: this.state.currentSelectedGesture, - }); - } else { - sendMessage(WEBVIEW_MESSAGES.GESTURE, { - gesture: "", - }); - } - } - }; -} - -const CLUE_TOOLBAR_BUTTONS: Array<{ label: string; image: JSX.Element }> = [ - { - label: CLUE_TOOLBAR_ICON_ID.PUSH_BUTTON, - image: TOOLBAR_SVG.PUSH_BUTTON_SVG, - }, - { - label: CLUE_TOOLBAR_ICON_ID.LEDS, - image: TOOLBAR_SVG.NEO_PIXEL_SVG, - }, - { - label: CLUE_TOOLBAR_ICON_ID.TEMPERATURE, - image: TOOLBAR_SVG.TEMPERATURE_SVG, - }, - { - label: CLUE_TOOLBAR_ICON_ID.LIGHT, - image: TOOLBAR_SVG.LIGHT_SVG, - }, - { - label: CLUE_TOOLBAR_ICON_ID.ACCELEROMETER, - image: TOOLBAR_SVG.MOTION_SVG, - }, - { - label: CLUE_TOOLBAR_ICON_ID.HUMIDITY, - image: TOOLBAR_SVG.HUMIDITY_SVG, - }, - { - label: CLUE_TOOLBAR_ICON_ID.PRESSURE, - image: TOOLBAR_SVG.PRESSURE_SVG, - }, - { - label: CLUE_TOOLBAR_ICON_ID.PROXIMITY, - image: TOOLBAR_SVG.PROXIMITY_SVG, - }, - { - label: CLUE_TOOLBAR_ICON_ID.GESTURE, - image: TOOLBAR_SVG.GESTURE_SVG, - }, - { - label: CLUE_TOOLBAR_ICON_ID.GYROSCOPE, - image: TOOLBAR_SVG.GYROSCOPE_SVG, - }, - { - label: CLUE_TOOLBAR_ICON_ID.MAGNETOSCOPE, - image: TOOLBAR_SVG.MAGNET_SVG, - }, - { - label: CLUE_TOOLBAR_ICON_ID.GPIO, - image: TOOLBAR_SVG.GPIO_SVG, - }, - { - label: CLUE_TOOLBAR_ICON_ID.SOUND, - image: TOOLBAR_SVG.SOUND_SVG, - }, - { - label: CLUE_TOOLBAR_ICON_ID.SPEAKER, - image: TOOLBAR_SVG.SPEAKER_SVG, - }, -]; +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import * as React from "react"; +import { + GESTURES_CLUE, + SENSOR_LIST, + VSCODE_MESSAGES_TO_WEBVIEW, + WEBVIEW_MESSAGES, +} from "../../constants"; +import "../../styles/Simulator.css"; +import * as TOOLBAR_SVG from "../../svgs/toolbar_svg"; +import { sendMessage } from "../../utils/MessageUtils"; +import { CLUE_TOOLBAR_ICON_ID } from "../toolbar/SensorModalUtils"; +import ToolBar from "../toolbar/ToolBar"; +import { ClueSimulator } from "./ClueSimulator"; + +// Component grouping the functionality for micro:bit functionalities +interface IState { + sensors: { [key: string]: number }; + currentSelectedGesture: string; +} +const DEFAULT_STATE = { + sensors: { + [SENSOR_LIST.TEMPERATURE]: 0, + [SENSOR_LIST.LIGHT_R]: 0, + [SENSOR_LIST.LIGHT_G]: 0, + [SENSOR_LIST.LIGHT_B]: 0, + [SENSOR_LIST.LIGHT_C]: 0, + [SENSOR_LIST.MOTION_X]: 0, + [SENSOR_LIST.MOTION_Y]: 0, + [SENSOR_LIST.MOTION_Z]: 0, + [SENSOR_LIST.HUMIDITY]: 0, + [SENSOR_LIST.PRESSURE]: 1013, + [SENSOR_LIST.PROXIMITY]: 0, + [SENSOR_LIST.GYRO_X]: 0, + [SENSOR_LIST.GYRO_Y]: 0, + [SENSOR_LIST.GYRO_Z]: 0, + [SENSOR_LIST.MAGNET_X]: 0, + [SENSOR_LIST.MAGNET_Y]: 0, + [SENSOR_LIST.MAGNET_Z]: 0, + }, + currentSelectedGesture: GESTURES_CLUE[0], +}; + +export class Clue extends React.Component<{}, IState> { + state = DEFAULT_STATE; + + componentDidMount() { + window.addEventListener("message", this.handleMessage); + } + + componentWillUnmount() { + // Make sure to remove the DOM listener when the component is unmounted. + window.removeEventListener("message", this.handleMessage); + } + handleMessage = (event: any): void => { + const message = event.data; + + switch (message.command) { + case VSCODE_MESSAGES_TO_WEBVIEW.RESET: + this.setState({ ...DEFAULT_STATE }); + break; + } + }; + render() { + return ( + + + + + ); + } + updateSensor = (sensor: SENSOR_LIST, value: number) => { + this.setState({ sensors: { ...this.state.sensors, [sensor]: value } }); + }; + updateGesture = (event: React.ChangeEvent) => { + this.setState({ currentSelectedGesture: event.target.value }); + }; + sendGesture = (isActive: boolean) => { + if (this.state.currentSelectedGesture) { + if (isActive) { + sendMessage(WEBVIEW_MESSAGES.GESTURE, { + gesture: this.state.currentSelectedGesture, + }); + } else { + sendMessage(WEBVIEW_MESSAGES.GESTURE, { + gesture: "", + }); + } + } + }; +} + +const CLUE_TOOLBAR_BUTTONS: Array<{ label: string; image: JSX.Element }> = [ + { + label: CLUE_TOOLBAR_ICON_ID.PUSH_BUTTON, + image: TOOLBAR_SVG.PUSH_BUTTON_SVG, + }, + { + label: CLUE_TOOLBAR_ICON_ID.LEDS, + image: TOOLBAR_SVG.NEO_PIXEL_SVG, + }, + { + label: CLUE_TOOLBAR_ICON_ID.TEMPERATURE, + image: TOOLBAR_SVG.TEMPERATURE_SVG, + }, + { + label: CLUE_TOOLBAR_ICON_ID.LIGHT, + image: TOOLBAR_SVG.LIGHT_SVG, + }, + { + label: CLUE_TOOLBAR_ICON_ID.ACCELEROMETER, + image: TOOLBAR_SVG.MOTION_SVG, + }, + { + label: CLUE_TOOLBAR_ICON_ID.HUMIDITY, + image: TOOLBAR_SVG.HUMIDITY_SVG, + }, + { + label: CLUE_TOOLBAR_ICON_ID.PRESSURE, + image: TOOLBAR_SVG.PRESSURE_SVG, + }, + { + label: CLUE_TOOLBAR_ICON_ID.PROXIMITY, + image: TOOLBAR_SVG.PROXIMITY_SVG, + }, + { + label: CLUE_TOOLBAR_ICON_ID.GESTURE, + image: TOOLBAR_SVG.GESTURE_SVG, + }, + { + label: CLUE_TOOLBAR_ICON_ID.GYROSCOPE, + image: TOOLBAR_SVG.GYROSCOPE_SVG, + }, + { + label: CLUE_TOOLBAR_ICON_ID.MAGNETOSCOPE, + image: TOOLBAR_SVG.MAGNET_SVG, + }, + { + label: CLUE_TOOLBAR_ICON_ID.GPIO, + image: TOOLBAR_SVG.GPIO_SVG, + }, + { + label: CLUE_TOOLBAR_ICON_ID.SOUND, + image: TOOLBAR_SVG.SOUND_SVG, + }, + { + label: CLUE_TOOLBAR_ICON_ID.SPEAKER, + image: TOOLBAR_SVG.SPEAKER_SVG, + }, +]; diff --git a/src/view/components/clue/ClueImage.tsx b/Source/view/components/clue/ClueImage.tsx similarity index 97% rename from src/view/components/clue/ClueImage.tsx rename to Source/view/components/clue/ClueImage.tsx index 85694d4e0..b3c3edcf2 100644 --- a/src/view/components/clue/ClueImage.tsx +++ b/Source/view/components/clue/ClueImage.tsx @@ -1,156 +1,156 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. - -import * as React from "react"; -import { BUTTON_CLASSNAME, VIEW_STATE } from "../../constants"; -import CONSTANTS, { BUTTON_STYLING_CLASSES } from "../../constants"; -import { ViewStateContext } from "../../context"; -import { ClueSvg, IRefObject } from "./Clue_svg"; - -interface EventTriggers { - onMouseUp: (event: Event, buttonKey: string) => void; - onMouseDown: (event: Event, buttonKey: string) => void; - onKeyEvent: (event: KeyboardEvent, active: boolean, key: string) => void; -} -interface IProps { - eventTriggers: EventTriggers; - displayMessage: string; - leds: { - neopixel: number[]; - isRedLedOn: boolean; - isWhiteLedOn: boolean; - }; -} - -export enum BUTTONS_KEYS { - BTN_A = "BTN_A", - BTN_B = "BTN_B", - BTN_AB = "BTN_AB", -} -// Displays the SVG and call necessary svg modification. -export class ClueImage extends React.Component { - private svgRef: React.RefObject = React.createRef(); - constructor(props: IProps) { - super(props); - } - componentDidMount() { - const svgElement = this.svgRef.current; - if (svgElement) { - setupAllButtons(this.props.eventTriggers, svgElement.getButtons()); - this.setupKeyPresses(this.props.eventTriggers.onKeyEvent); - } - } - componentDidUpdate() { - if (this.context === VIEW_STATE.PAUSE && this.svgRef.current) { - disableAllButtons(this.svgRef.current.getButtons()); - } else if (this.context === VIEW_STATE.RUNNING && this.svgRef.current) { - setupAllButtons( - this.props.eventTriggers, - this.svgRef.current.getButtons() - ); - } - } - componentWillUnmount() { - window.document.removeEventListener("keydown", this.handleKeyDown); - window.document.removeEventListener("keyup", this.handleKeyUp); - } - setupKeyPresses = ( - onKeyEvent: (event: KeyboardEvent, active: boolean, key: string) => void - ) => { - window.document.addEventListener("keydown", this.handleKeyDown); - window.document.addEventListener("keyup", this.handleKeyUp); - }; - handleKeyDown = (event: KeyboardEvent) => { - const keyEvents = [event.key, event.code]; - // Don't listen to keydown events for the run button, restart button and enter key - if ( - !( - keyEvents.includes(CONSTANTS.KEYBOARD_KEYS.CAPITAL_F) || - keyEvents.includes(CONSTANTS.KEYBOARD_KEYS.CAPITAL_R) || - keyEvents.includes(CONSTANTS.KEYBOARD_KEYS.ENTER) - ) - ) { - this.props.eventTriggers.onKeyEvent(event, true, event.key); - } - }; - handleKeyUp = (event: KeyboardEvent) => { - this.props.eventTriggers.onKeyEvent(event, false, event.key); - }; - render() { - return ( - - ); - } - public updateButtonAttributes(key: BUTTONS_KEYS, isActive: boolean) { - const button = this.svgRef.current?.getButtons()[key].current; - if (button) { - button.focus(); - if (isActive) { - button.children[0].setAttribute( - "class", - BUTTON_STYLING_CLASSES.KEYPRESSED - ); - } else { - button.children[0].setAttribute( - "class", - BUTTON_STYLING_CLASSES.DEFAULT - ); - } - button.setAttribute("pressed", `${isActive}`); - button.setAttribute("aria-pressed", `${isActive}`); - } - } -} - -ClueImage.contextType = ViewStateContext; -const setupButton = ( - buttonElement: SVGRectElement, - eventTriggers: EventTriggers, - key: string -) => { - buttonElement.setAttribute("class", BUTTON_CLASSNAME.ACTIVE); - buttonElement.onmousedown = e => { - buttonElement.focus(); - eventTriggers.onMouseDown(e, key); - }; - buttonElement.onmouseup = e => { - eventTriggers.onMouseUp(e, key); - }; - - buttonElement.onkeydown = e => { - // ensure that the keydown is enter, - // or else it may register shortcuts twice - if (e.key === CONSTANTS.KEYBOARD_KEYS.ENTER) { - eventTriggers.onKeyEvent(e, true, key); - } - }; - buttonElement.onkeyup = e => { - eventTriggers.onKeyEvent(e, false, key); - }; -}; -const setupAllButtons = ( - eventTriggers: EventTriggers, - buttonRefs: IRefObject -) => { - for (const [key, ref] of Object.entries(buttonRefs)) { - if (ref.current) { - setupButton(ref.current, eventTriggers, key); - } - } -}; -const disableAllButtons = (buttonRefs: IRefObject) => { - for (const [, ref] of Object.entries(buttonRefs)) { - if (ref.current) { - // to implement - ref.current.onmousedown = null; - ref.current.onmouseup = null; - ref.current.onkeydown = null; - ref.current.onkeyup = null; - ref.current.setAttribute("class", BUTTON_CLASSNAME.DEACTIVATED); - } - } -}; +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import * as React from "react"; +import { BUTTON_CLASSNAME, VIEW_STATE } from "../../constants"; +import CONSTANTS, { BUTTON_STYLING_CLASSES } from "../../constants"; +import { ViewStateContext } from "../../context"; +import { ClueSvg, IRefObject } from "./Clue_svg"; + +interface EventTriggers { + onMouseUp: (event: Event, buttonKey: string) => void; + onMouseDown: (event: Event, buttonKey: string) => void; + onKeyEvent: (event: KeyboardEvent, active: boolean, key: string) => void; +} +interface IProps { + eventTriggers: EventTriggers; + displayMessage: string; + leds: { + neopixel: number[]; + isRedLedOn: boolean; + isWhiteLedOn: boolean; + }; +} + +export enum BUTTONS_KEYS { + BTN_A = "BTN_A", + BTN_B = "BTN_B", + BTN_AB = "BTN_AB", +} +// Displays the SVG and call necessary svg modification. +export class ClueImage extends React.Component { + private svgRef: React.RefObject = React.createRef(); + constructor(props: IProps) { + super(props); + } + componentDidMount() { + const svgElement = this.svgRef.current; + if (svgElement) { + setupAllButtons(this.props.eventTriggers, svgElement.getButtons()); + this.setupKeyPresses(this.props.eventTriggers.onKeyEvent); + } + } + componentDidUpdate() { + if (this.context === VIEW_STATE.PAUSE && this.svgRef.current) { + disableAllButtons(this.svgRef.current.getButtons()); + } else if (this.context === VIEW_STATE.RUNNING && this.svgRef.current) { + setupAllButtons( + this.props.eventTriggers, + this.svgRef.current.getButtons() + ); + } + } + componentWillUnmount() { + window.document.removeEventListener("keydown", this.handleKeyDown); + window.document.removeEventListener("keyup", this.handleKeyUp); + } + setupKeyPresses = ( + onKeyEvent: (event: KeyboardEvent, active: boolean, key: string) => void + ) => { + window.document.addEventListener("keydown", this.handleKeyDown); + window.document.addEventListener("keyup", this.handleKeyUp); + }; + handleKeyDown = (event: KeyboardEvent) => { + const keyEvents = [event.key, event.code]; + // Don't listen to keydown events for the run button, restart button and enter key + if ( + !( + keyEvents.includes(CONSTANTS.KEYBOARD_KEYS.CAPITAL_F) || + keyEvents.includes(CONSTANTS.KEYBOARD_KEYS.CAPITAL_R) || + keyEvents.includes(CONSTANTS.KEYBOARD_KEYS.ENTER) + ) + ) { + this.props.eventTriggers.onKeyEvent(event, true, event.key); + } + }; + handleKeyUp = (event: KeyboardEvent) => { + this.props.eventTriggers.onKeyEvent(event, false, event.key); + }; + render() { + return ( + + ); + } + public updateButtonAttributes(key: BUTTONS_KEYS, isActive: boolean) { + const button = this.svgRef.current?.getButtons()[key].current; + if (button) { + button.focus(); + if (isActive) { + button.children[0].setAttribute( + "class", + BUTTON_STYLING_CLASSES.KEYPRESSED + ); + } else { + button.children[0].setAttribute( + "class", + BUTTON_STYLING_CLASSES.DEFAULT + ); + } + button.setAttribute("pressed", `${isActive}`); + button.setAttribute("aria-pressed", `${isActive}`); + } + } +} + +ClueImage.contextType = ViewStateContext; +const setupButton = ( + buttonElement: SVGRectElement, + eventTriggers: EventTriggers, + key: string +) => { + buttonElement.setAttribute("class", BUTTON_CLASSNAME.ACTIVE); + buttonElement.onmousedown = e => { + buttonElement.focus(); + eventTriggers.onMouseDown(e, key); + }; + buttonElement.onmouseup = e => { + eventTriggers.onMouseUp(e, key); + }; + + buttonElement.onkeydown = e => { + // ensure that the keydown is enter, + // or else it may register shortcuts twice + if (e.key === CONSTANTS.KEYBOARD_KEYS.ENTER) { + eventTriggers.onKeyEvent(e, true, key); + } + }; + buttonElement.onkeyup = e => { + eventTriggers.onKeyEvent(e, false, key); + }; +}; +const setupAllButtons = ( + eventTriggers: EventTriggers, + buttonRefs: IRefObject +) => { + for (const [key, ref] of Object.entries(buttonRefs)) { + if (ref.current) { + setupButton(ref.current, eventTriggers, key); + } + } +}; +const disableAllButtons = (buttonRefs: IRefObject) => { + for (const [, ref] of Object.entries(buttonRefs)) { + if (ref.current) { + // to implement + ref.current.onmousedown = null; + ref.current.onmouseup = null; + ref.current.onkeydown = null; + ref.current.onkeyup = null; + ref.current.setAttribute("class", BUTTON_CLASSNAME.DEACTIVATED); + } + } +}; diff --git a/src/view/components/clue/ClueSimulator.tsx b/Source/view/components/clue/ClueSimulator.tsx similarity index 100% rename from src/view/components/clue/ClueSimulator.tsx rename to Source/view/components/clue/ClueSimulator.tsx diff --git a/src/view/components/clue/Clue_svg.tsx b/Source/view/components/clue/Clue_svg.tsx similarity index 97% rename from src/view/components/clue/Clue_svg.tsx rename to Source/view/components/clue/Clue_svg.tsx index bcbf4e6d2..b67b1f0f9 100644 --- a/src/view/components/clue/Clue_svg.tsx +++ b/Source/view/components/clue/Clue_svg.tsx @@ -1,1184 +1,1184 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. - -import * as React from "react"; -import { CLUE_LEDS_COLORS, CONSTANTS } from "../../constants"; -import "../../styles/SimulatorSvg.css"; -import svg from "../cpx/Svg_utils"; -import { DEFAULT_CLUE_STATE } from "./ClueSimulator"; -export interface IRefObject { - [key: string]: React.RefObject; -} -interface IProps { - displayImage: string; - leds: { - neopixel: number[]; - isRedLedOn: boolean; - isWhiteLedOn: boolean; - }; -} -export class ClueSvg extends React.Component { - private svgRef: React.RefObject = React.createRef(); - private ledsRefs = { - neopixel: React.createRef(), - redLed: React.createRef(), - whiteLeds: [ - React.createRef(), - React.createRef(), - ], - }; - private gradientRefs = { - neopixel: React.createRef(), - whiteLed: React.createRef(), - redLed: React.createRef(), - }; - - private buttonRefs: IRefObject = { - BTN_A: React.createRef(), - BTN_B: React.createRef(), - BTN_AB: React.createRef(), - }; - - private displayRef: React.RefObject = React.createRef(); - - public getSvgRef(): React.RefObject { - return this.svgRef; - } - public getButtons(): IRefObject { - return this.buttonRefs; - } - public getDisplayRef(): React.RefObject { - return this.displayRef; - } - componentDidMount() { - this.updateSvg(); - } - componentDidUpdate() { - this.updateSvg(); - } - - render() { - return ( -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A+B - - - - - - - - - - - LIGHT - - - GESTURE - - - P - - R - - - O - - - XIMI - - - T - - - Y - - - - - - - - - - - - - - Red LED - - - - - Neopixel - - - - -
- ); - } - private updateSvg() { - this.updateDisplay(); - this.updateNeopixel(); - this.updateLeds(); - } - - private updateDisplay() { - if (this.props.displayImage) { - this.displayRef.current?.setAttribute( - "href", - `data:image/png;base64,${this.props.displayImage}` - ); - } - } - - private updateNeopixel() { - const { neopixel } = this.props.leds; - const rgbColor = `rgb(${neopixel[0] + - (255 - neopixel[0]) * CONSTANTS.LED_TINT_FACTOR}, - ${neopixel[1] + - (255 - neopixel[1]) * CONSTANTS.LED_TINT_FACTOR},${neopixel[2] + - (255 - neopixel[2]) * CONSTANTS.LED_TINT_FACTOR})`; - - this.ledsRefs.neopixel.current?.setAttribute("fill", rgbColor); - - if (neopixel === DEFAULT_CLUE_STATE.leds.neopixel) { - this.gradientRefs.neopixel.current?.setAttribute( - "stop-opacity", - "0" - ); - } else { - this.gradientRefs.neopixel.current?.setAttribute( - "stop-opacity", - "1" - ); - } - this.gradientRefs.neopixel.current?.setAttribute( - "stop-color", - rgbColor - ); - } - private updateLeds() { - // update white led - const { isWhiteLedOn, isRedLedOn } = this.props.leds; - - this.ledsRefs.whiteLeds.map( - (ledRef: React.RefObject) => { - svg.setLed( - isWhiteLedOn, - CLUE_LEDS_COLORS.WHITE_LEDS_OFF, - CLUE_LEDS_COLORS.WHITE_LEDS_ON, - ledRef.current, - this.gradientRefs.whiteLed.current - ); - } - ); - svg.setLed( - isRedLedOn, - CLUE_LEDS_COLORS.RED_LED_OFF, - CLUE_LEDS_COLORS.RED_LED_ON, - this.ledsRefs.redLed.current, - this.gradientRefs.redLed.current - ); - } -} +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import * as React from "react"; +import { CLUE_LEDS_COLORS, CONSTANTS } from "../../constants"; +import "../../styles/SimulatorSvg.css"; +import svg from "../cpx/Svg_utils"; +import { DEFAULT_CLUE_STATE } from "./ClueSimulator"; +export interface IRefObject { + [key: string]: React.RefObject; +} +interface IProps { + displayImage: string; + leds: { + neopixel: number[]; + isRedLedOn: boolean; + isWhiteLedOn: boolean; + }; +} +export class ClueSvg extends React.Component { + private svgRef: React.RefObject = React.createRef(); + private ledsRefs = { + neopixel: React.createRef(), + redLed: React.createRef(), + whiteLeds: [ + React.createRef(), + React.createRef(), + ], + }; + private gradientRefs = { + neopixel: React.createRef(), + whiteLed: React.createRef(), + redLed: React.createRef(), + }; + + private buttonRefs: IRefObject = { + BTN_A: React.createRef(), + BTN_B: React.createRef(), + BTN_AB: React.createRef(), + }; + + private displayRef: React.RefObject = React.createRef(); + + public getSvgRef(): React.RefObject { + return this.svgRef; + } + public getButtons(): IRefObject { + return this.buttonRefs; + } + public getDisplayRef(): React.RefObject { + return this.displayRef; + } + componentDidMount() { + this.updateSvg(); + } + componentDidUpdate() { + this.updateSvg(); + } + + render() { + return ( +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A+B + + + + + + + + + + + LIGHT + + + GESTURE + + + P + + R + + + O + + + XIMI + + + T + + + Y + + + + + + + + + + + + + + Red LED + + + + + Neopixel + + + + +
+ ); + } + private updateSvg() { + this.updateDisplay(); + this.updateNeopixel(); + this.updateLeds(); + } + + private updateDisplay() { + if (this.props.displayImage) { + this.displayRef.current?.setAttribute( + "href", + `data:image/png;base64,${this.props.displayImage}` + ); + } + } + + private updateNeopixel() { + const { neopixel } = this.props.leds; + const rgbColor = `rgb(${neopixel[0] + + (255 - neopixel[0]) * CONSTANTS.LED_TINT_FACTOR}, + ${neopixel[1] + + (255 - neopixel[1]) * CONSTANTS.LED_TINT_FACTOR},${neopixel[2] + + (255 - neopixel[2]) * CONSTANTS.LED_TINT_FACTOR})`; + + this.ledsRefs.neopixel.current?.setAttribute("fill", rgbColor); + + if (neopixel === DEFAULT_CLUE_STATE.leds.neopixel) { + this.gradientRefs.neopixel.current?.setAttribute( + "stop-opacity", + "0" + ); + } else { + this.gradientRefs.neopixel.current?.setAttribute( + "stop-opacity", + "1" + ); + } + this.gradientRefs.neopixel.current?.setAttribute( + "stop-color", + rgbColor + ); + } + private updateLeds() { + // update white led + const { isWhiteLedOn, isRedLedOn } = this.props.leds; + + this.ledsRefs.whiteLeds.map( + (ledRef: React.RefObject) => { + svg.setLed( + isWhiteLedOn, + CLUE_LEDS_COLORS.WHITE_LEDS_OFF, + CLUE_LEDS_COLORS.WHITE_LEDS_ON, + ledRef.current, + this.gradientRefs.whiteLed.current + ); + } + ); + svg.setLed( + isRedLedOn, + CLUE_LEDS_COLORS.RED_LED_OFF, + CLUE_LEDS_COLORS.RED_LED_ON, + this.ledsRefs.redLed.current, + this.gradientRefs.redLed.current + ); + } +} diff --git a/src/view/components/cpx/Accessibility_utils.ts b/Source/view/components/cpx/Accessibility_utils.ts similarity index 100% rename from src/view/components/cpx/Accessibility_utils.ts rename to Source/view/components/cpx/Accessibility_utils.ts diff --git a/src/view/components/cpx/Cpx.tsx b/Source/view/components/cpx/Cpx.tsx similarity index 96% rename from src/view/components/cpx/Cpx.tsx rename to Source/view/components/cpx/Cpx.tsx index d91728fba..02560623a 100644 --- a/src/view/components/cpx/Cpx.tsx +++ b/Source/view/components/cpx/Cpx.tsx @@ -1,104 +1,104 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. - -import * as React from "react"; -import { CPX_TOOLBAR_ICON_ID } from "../../components/toolbar/SensorModalUtils"; -import ToolBar from "../../components/toolbar/ToolBar"; -import { SENSOR_LIST, VSCODE_MESSAGES_TO_WEBVIEW } from "../../constants"; -import * as TOOLBAR_SVG from "../../svgs/toolbar_svg"; -import Simulator from "./CpxSimulator"; - -// Component grouping the functionality for circuit playground express -const DEFAULT_STATE = { - sensors: { - [SENSOR_LIST.TEMPERATURE]: 0, - [SENSOR_LIST.LIGHT]: 0, - [SENSOR_LIST.MOTION_X]: 0, - [SENSOR_LIST.MOTION_Y]: 0, - [SENSOR_LIST.MOTION_Z]: 0, - }, -}; - -export class Cpx extends React.Component { - state = DEFAULT_STATE; - componentDidMount() { - window.addEventListener("message", this.handleMessage); - } - - componentWillUnmount() { - // Make sure to remove the DOM listener when the component is unmounted. - window.removeEventListener("message", this.handleMessage); - } - handleMessage = (event: any): void => { - const message = event.data; - - switch (message.command) { - case VSCODE_MESSAGES_TO_WEBVIEW.RESET: - this.setState({ ...DEFAULT_STATE }); - break; - } - }; - - render() { - return ( - - - - - ); - } - updateSensor = (sensor: SENSOR_LIST, value: number) => { - this.setState({ sensors: { ...this.state.sensors, [sensor]: value } }); - }; -} - -const CPX_TOOLBAR_BUTTONS: Array<{ label: any; image: any }> = [ - { - image: TOOLBAR_SVG.SLIDER_SWITCH_SVG, - label: CPX_TOOLBAR_ICON_ID.SWITCH, - }, - { - image: TOOLBAR_SVG.PUSH_BUTTON_SVG, - label: CPX_TOOLBAR_ICON_ID.PUSH_BUTTON, - }, - { - image: TOOLBAR_SVG.RED_LED_SVG, - label: CPX_TOOLBAR_ICON_ID.RED_LED, - }, - { - image: TOOLBAR_SVG.SOUND_SVG, - label: CPX_TOOLBAR_ICON_ID.SOUND, - }, - { - image: TOOLBAR_SVG.TEMPERATURE_SVG, - label: CPX_TOOLBAR_ICON_ID.TEMPERATURE, - }, - { - image: TOOLBAR_SVG.LIGHT_SVG, - label: CPX_TOOLBAR_ICON_ID.LIGHT, - }, - { - image: TOOLBAR_SVG.NEO_PIXEL_SVG, - label: CPX_TOOLBAR_ICON_ID.NEO_PIXEL, - }, - { - image: TOOLBAR_SVG.SPEAKER_SVG, - label: CPX_TOOLBAR_ICON_ID.SPEAKER, - }, - { - image: TOOLBAR_SVG.MOTION_SVG, - label: CPX_TOOLBAR_ICON_ID.MOTION, - }, - { - image: TOOLBAR_SVG.IR_SVG, - label: CPX_TOOLBAR_ICON_ID.IR, - }, - { - image: TOOLBAR_SVG.GPIO_SVG, - label: CPX_TOOLBAR_ICON_ID.GPIO, - }, -]; +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import * as React from "react"; +import { CPX_TOOLBAR_ICON_ID } from "../../components/toolbar/SensorModalUtils"; +import ToolBar from "../../components/toolbar/ToolBar"; +import { SENSOR_LIST, VSCODE_MESSAGES_TO_WEBVIEW } from "../../constants"; +import * as TOOLBAR_SVG from "../../svgs/toolbar_svg"; +import Simulator from "./CpxSimulator"; + +// Component grouping the functionality for circuit playground express +const DEFAULT_STATE = { + sensors: { + [SENSOR_LIST.TEMPERATURE]: 0, + [SENSOR_LIST.LIGHT]: 0, + [SENSOR_LIST.MOTION_X]: 0, + [SENSOR_LIST.MOTION_Y]: 0, + [SENSOR_LIST.MOTION_Z]: 0, + }, +}; + +export class Cpx extends React.Component { + state = DEFAULT_STATE; + componentDidMount() { + window.addEventListener("message", this.handleMessage); + } + + componentWillUnmount() { + // Make sure to remove the DOM listener when the component is unmounted. + window.removeEventListener("message", this.handleMessage); + } + handleMessage = (event: any): void => { + const message = event.data; + + switch (message.command) { + case VSCODE_MESSAGES_TO_WEBVIEW.RESET: + this.setState({ ...DEFAULT_STATE }); + break; + } + }; + + render() { + return ( + + + + + ); + } + updateSensor = (sensor: SENSOR_LIST, value: number) => { + this.setState({ sensors: { ...this.state.sensors, [sensor]: value } }); + }; +} + +const CPX_TOOLBAR_BUTTONS: Array<{ label: any; image: any }> = [ + { + image: TOOLBAR_SVG.SLIDER_SWITCH_SVG, + label: CPX_TOOLBAR_ICON_ID.SWITCH, + }, + { + image: TOOLBAR_SVG.PUSH_BUTTON_SVG, + label: CPX_TOOLBAR_ICON_ID.PUSH_BUTTON, + }, + { + image: TOOLBAR_SVG.RED_LED_SVG, + label: CPX_TOOLBAR_ICON_ID.RED_LED, + }, + { + image: TOOLBAR_SVG.SOUND_SVG, + label: CPX_TOOLBAR_ICON_ID.SOUND, + }, + { + image: TOOLBAR_SVG.TEMPERATURE_SVG, + label: CPX_TOOLBAR_ICON_ID.TEMPERATURE, + }, + { + image: TOOLBAR_SVG.LIGHT_SVG, + label: CPX_TOOLBAR_ICON_ID.LIGHT, + }, + { + image: TOOLBAR_SVG.NEO_PIXEL_SVG, + label: CPX_TOOLBAR_ICON_ID.NEO_PIXEL, + }, + { + image: TOOLBAR_SVG.SPEAKER_SVG, + label: CPX_TOOLBAR_ICON_ID.SPEAKER, + }, + { + image: TOOLBAR_SVG.MOTION_SVG, + label: CPX_TOOLBAR_ICON_ID.MOTION, + }, + { + image: TOOLBAR_SVG.IR_SVG, + label: CPX_TOOLBAR_ICON_ID.IR, + }, + { + image: TOOLBAR_SVG.GPIO_SVG, + label: CPX_TOOLBAR_ICON_ID.GPIO, + }, +]; diff --git a/src/view/components/cpx/CpxImage.tsx b/Source/view/components/cpx/CpxImage.tsx similarity index 100% rename from src/view/components/cpx/CpxImage.tsx rename to Source/view/components/cpx/CpxImage.tsx diff --git a/src/view/components/cpx/CpxSimulator.tsx b/Source/view/components/cpx/CpxSimulator.tsx similarity index 100% rename from src/view/components/cpx/CpxSimulator.tsx rename to Source/view/components/cpx/CpxSimulator.tsx diff --git a/src/view/components/cpx/Cpx_svg.tsx b/Source/view/components/cpx/Cpx_svg.tsx similarity index 100% rename from src/view/components/cpx/Cpx_svg.tsx rename to Source/view/components/cpx/Cpx_svg.tsx diff --git a/src/view/components/cpx/Cpx_svg_style.tsx b/Source/view/components/cpx/Cpx_svg_style.tsx similarity index 100% rename from src/view/components/cpx/Cpx_svg_style.tsx rename to Source/view/components/cpx/Cpx_svg_style.tsx diff --git a/src/view/components/cpx/Svg_utils.tsx b/Source/view/components/cpx/Svg_utils.tsx similarity index 100% rename from src/view/components/cpx/Svg_utils.tsx rename to Source/view/components/cpx/Svg_utils.tsx diff --git a/src/view/components/microbit/Microbit.tsx b/Source/view/components/microbit/Microbit.tsx similarity index 96% rename from src/view/components/microbit/Microbit.tsx rename to Source/view/components/microbit/Microbit.tsx index b85565e67..e10c0bfb9 100644 --- a/src/view/components/microbit/Microbit.tsx +++ b/Source/view/components/microbit/Microbit.tsx @@ -1,130 +1,130 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. - -import * as React from "react"; -import { MICROBIT_TOOLBAR_ICON_ID } from "../../components/toolbar/SensorModalUtils"; -import { - GESTURES_MICROBIT, - SENSOR_LIST, - VSCODE_MESSAGES_TO_WEBVIEW, - WEBVIEW_MESSAGES, -} from "../../constants"; -import "../../styles/Simulator.css"; -import * as TOOLBAR_SVG from "../../svgs/toolbar_svg"; -import { sendMessage } from "../../utils/MessageUtils"; -import ToolBar from "../toolbar/ToolBar"; -import { MicrobitSimulator } from "./MicrobitSimulator"; - -// Component grouping the functionality for micro:bit functionalities -interface IState { - sensors: { [key: string]: number }; - currentSelectedGesture?: string; -} -const DEFAULT_STATE = { - sensors: { - [SENSOR_LIST.TEMPERATURE]: 0, - [SENSOR_LIST.LIGHT]: 0, - [SENSOR_LIST.MOTION_X]: 0, - [SENSOR_LIST.MOTION_Y]: 0, - [SENSOR_LIST.MOTION_Z]: 0, - }, - currentSelectedGesture: GESTURES_MICROBIT[0], -}; - -export class Microbit extends React.Component<{}, IState> { - state = DEFAULT_STATE; - - componentDidMount() { - window.addEventListener("message", this.handleMessage); - } - - componentWillUnmount() { - // Make sure to remove the DOM listener when the component is unmounted. - window.removeEventListener("message", this.handleMessage); - } - handleMessage = (event: any): void => { - const message = event.data; - - switch (message.command) { - case VSCODE_MESSAGES_TO_WEBVIEW.RESET: - this.setState({ ...DEFAULT_STATE }); - break; - } - }; - render() { - return ( - - - - - ); - } - updateSensor = (sensor: SENSOR_LIST, value: number) => { - this.setState({ sensors: { ...this.state.sensors, [sensor]: value } }); - }; - updateGesture = (event: React.ChangeEvent) => { - this.setState({ currentSelectedGesture: event.target.value }); - }; - sendGesture = (isActive: boolean) => { - if (this.state.currentSelectedGesture) { - if (isActive) { - sendMessage(WEBVIEW_MESSAGES.GESTURE, { - gesture: this.state.currentSelectedGesture, - }); - } else { - sendMessage(WEBVIEW_MESSAGES.GESTURE, { - gesture: "", - }); - } - } - }; -} - -const MICROBIT_TOOLBAR_BUTTONS: Array<{ label: string; image: JSX.Element }> = [ - { - image: TOOLBAR_SVG.PUSH_BUTTON_SVG, - label: MICROBIT_TOOLBAR_ICON_ID.PUSH_BUTTON, - }, - { - image: TOOLBAR_SVG.RED_LED_SVG, - label: MICROBIT_TOOLBAR_ICON_ID.LEDS, - }, - { - image: TOOLBAR_SVG.TEMPERATURE_SVG, - label: MICROBIT_TOOLBAR_ICON_ID.TEMPERATURE, - }, - { - image: TOOLBAR_SVG.LIGHT_SVG, - label: MICROBIT_TOOLBAR_ICON_ID.LIGHT, - }, - { - image: TOOLBAR_SVG.MOTION_SVG, - label: MICROBIT_TOOLBAR_ICON_ID.ACCELEROMETER, - }, - { - image: TOOLBAR_SVG.GESTURE_SVG, - label: MICROBIT_TOOLBAR_ICON_ID.GESTURE, - }, - { - image: TOOLBAR_SVG.GPIO_SVG, - label: MICROBIT_TOOLBAR_ICON_ID.GPIO, - }, - { - image: TOOLBAR_SVG.COMPASS_SVG, - label: MICROBIT_TOOLBAR_ICON_ID.COMPASS, - }, - { - image: TOOLBAR_SVG.SPEAKER_SVG, - label: MICROBIT_TOOLBAR_ICON_ID.SOUND, - }, - { - image: TOOLBAR_SVG.WIRELESS_SVG, - label: MICROBIT_TOOLBAR_ICON_ID.WIRELESS, - }, -]; +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import * as React from "react"; +import { MICROBIT_TOOLBAR_ICON_ID } from "../../components/toolbar/SensorModalUtils"; +import { + GESTURES_MICROBIT, + SENSOR_LIST, + VSCODE_MESSAGES_TO_WEBVIEW, + WEBVIEW_MESSAGES, +} from "../../constants"; +import "../../styles/Simulator.css"; +import * as TOOLBAR_SVG from "../../svgs/toolbar_svg"; +import { sendMessage } from "../../utils/MessageUtils"; +import ToolBar from "../toolbar/ToolBar"; +import { MicrobitSimulator } from "./MicrobitSimulator"; + +// Component grouping the functionality for micro:bit functionalities +interface IState { + sensors: { [key: string]: number }; + currentSelectedGesture?: string; +} +const DEFAULT_STATE = { + sensors: { + [SENSOR_LIST.TEMPERATURE]: 0, + [SENSOR_LIST.LIGHT]: 0, + [SENSOR_LIST.MOTION_X]: 0, + [SENSOR_LIST.MOTION_Y]: 0, + [SENSOR_LIST.MOTION_Z]: 0, + }, + currentSelectedGesture: GESTURES_MICROBIT[0], +}; + +export class Microbit extends React.Component<{}, IState> { + state = DEFAULT_STATE; + + componentDidMount() { + window.addEventListener("message", this.handleMessage); + } + + componentWillUnmount() { + // Make sure to remove the DOM listener when the component is unmounted. + window.removeEventListener("message", this.handleMessage); + } + handleMessage = (event: any): void => { + const message = event.data; + + switch (message.command) { + case VSCODE_MESSAGES_TO_WEBVIEW.RESET: + this.setState({ ...DEFAULT_STATE }); + break; + } + }; + render() { + return ( + + + + + ); + } + updateSensor = (sensor: SENSOR_LIST, value: number) => { + this.setState({ sensors: { ...this.state.sensors, [sensor]: value } }); + }; + updateGesture = (event: React.ChangeEvent) => { + this.setState({ currentSelectedGesture: event.target.value }); + }; + sendGesture = (isActive: boolean) => { + if (this.state.currentSelectedGesture) { + if (isActive) { + sendMessage(WEBVIEW_MESSAGES.GESTURE, { + gesture: this.state.currentSelectedGesture, + }); + } else { + sendMessage(WEBVIEW_MESSAGES.GESTURE, { + gesture: "", + }); + } + } + }; +} + +const MICROBIT_TOOLBAR_BUTTONS: Array<{ label: string; image: JSX.Element }> = [ + { + image: TOOLBAR_SVG.PUSH_BUTTON_SVG, + label: MICROBIT_TOOLBAR_ICON_ID.PUSH_BUTTON, + }, + { + image: TOOLBAR_SVG.RED_LED_SVG, + label: MICROBIT_TOOLBAR_ICON_ID.LEDS, + }, + { + image: TOOLBAR_SVG.TEMPERATURE_SVG, + label: MICROBIT_TOOLBAR_ICON_ID.TEMPERATURE, + }, + { + image: TOOLBAR_SVG.LIGHT_SVG, + label: MICROBIT_TOOLBAR_ICON_ID.LIGHT, + }, + { + image: TOOLBAR_SVG.MOTION_SVG, + label: MICROBIT_TOOLBAR_ICON_ID.ACCELEROMETER, + }, + { + image: TOOLBAR_SVG.GESTURE_SVG, + label: MICROBIT_TOOLBAR_ICON_ID.GESTURE, + }, + { + image: TOOLBAR_SVG.GPIO_SVG, + label: MICROBIT_TOOLBAR_ICON_ID.GPIO, + }, + { + image: TOOLBAR_SVG.COMPASS_SVG, + label: MICROBIT_TOOLBAR_ICON_ID.COMPASS, + }, + { + image: TOOLBAR_SVG.SPEAKER_SVG, + label: MICROBIT_TOOLBAR_ICON_ID.SOUND, + }, + { + image: TOOLBAR_SVG.WIRELESS_SVG, + label: MICROBIT_TOOLBAR_ICON_ID.WIRELESS, + }, +]; diff --git a/src/view/components/microbit/MicrobitImage.tsx b/Source/view/components/microbit/MicrobitImage.tsx similarity index 97% rename from src/view/components/microbit/MicrobitImage.tsx rename to Source/view/components/microbit/MicrobitImage.tsx index a216dceef..c9e95216a 100644 --- a/src/view/components/microbit/MicrobitImage.tsx +++ b/Source/view/components/microbit/MicrobitImage.tsx @@ -1,166 +1,166 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. - -import * as React from "react"; -import { BUTTON_CLASSNAME, VIEW_STATE } from "../../constants"; -import CONSTANTS, { BUTTON_STYLING_CLASSES } from "../../constants"; -import { ViewStateContext } from "../../context"; -import { IRefObject, MicrobitSvg } from "./Microbit_svg"; - -interface EventTriggers { - onMouseUp: (event: Event, buttonKey: string) => void; - onMouseDown: (event: Event, buttonKey: string) => void; - onKeyEvent: (event: KeyboardEvent, active: boolean, key: string) => void; -} -interface IProps { - eventTriggers: EventTriggers; - leds: number[][]; -} - -export enum BUTTONS_KEYS { - BTN_A = "BTN_A", - BTN_B = "BTN_B", - BTN_AB = "BTN_AB", -} -// Displays the SVG and call necessary svg modification. -export class MicrobitImage extends React.Component { - private svgRef: React.RefObject = React.createRef(); - constructor(props: IProps) { - super(props); - } - componentDidMount() { - const svgElement = this.svgRef.current; - if (svgElement) { - updateAllLeds(this.props.leds, svgElement.getLeds()); - setupAllButtons(this.props.eventTriggers, svgElement.getButtons()); - this.setupKeyPresses(this.props.eventTriggers.onKeyEvent); - } - } - componentDidUpdate() { - if (this.svgRef.current) { - updateAllLeds(this.props.leds, this.svgRef.current.getLeds()); - if (this.context === VIEW_STATE.PAUSE) { - disableAllButtons(this.svgRef.current.getButtons()); - } else if (this.context === VIEW_STATE.RUNNING) { - setupAllButtons( - this.props.eventTriggers, - this.svgRef.current.getButtons() - ); - } - } - } - componentWillUnmount() { - window.document.removeEventListener("keydown", this.handleKeyDown); - window.document.removeEventListener("keyup", this.handleKeyUp); - } - setupKeyPresses = ( - onKeyEvent: (event: KeyboardEvent, active: boolean, key: string) => void - ) => { - window.document.addEventListener("keydown", this.handleKeyDown); - window.document.addEventListener("keyup", this.handleKeyUp); - }; - handleKeyDown = (event: KeyboardEvent) => { - const keyEvents = [event.key, event.code]; - // Don't listen to keydown events for the run button, restart button and enter key - if ( - !( - keyEvents.includes(CONSTANTS.KEYBOARD_KEYS.CAPITAL_F) || - keyEvents.includes(CONSTANTS.KEYBOARD_KEYS.CAPITAL_R) || - keyEvents.includes(CONSTANTS.KEYBOARD_KEYS.ENTER) - ) - ) { - this.props.eventTriggers.onKeyEvent(event, true, event.key); - } - }; - handleKeyUp = (event: KeyboardEvent) => { - this.props.eventTriggers.onKeyEvent(event, false, event.key); - }; - render() { - return ; - } - public updateButtonAttributes(key: BUTTONS_KEYS, isActive: boolean) { - const button = this.svgRef.current?.getButtons()[key].current; - if (button) { - button.focus(); - if (isActive) { - button.children[0].setAttribute( - "class", - BUTTON_STYLING_CLASSES.KEYPRESSED - ); - } else { - button.children[0].setAttribute( - "class", - BUTTON_STYLING_CLASSES.DEFAULT - ); - } - button.setAttribute("pressed", `${isActive}`); - button.setAttribute("aria-pressed", `${isActive}`); - } - } -} - -MicrobitImage.contextType = ViewStateContext; -const setupButton = ( - buttonElement: SVGRectElement, - eventTriggers: EventTriggers, - key: string -) => { - buttonElement.setAttribute("class", BUTTON_CLASSNAME.ACTIVE); - - buttonElement.onmousedown = e => { - buttonElement.focus(); - eventTriggers.onMouseDown(e, key); - }; - buttonElement.onmouseup = e => { - eventTriggers.onMouseUp(e, key); - }; - - buttonElement.onkeydown = e => { - // ensure that the keydown is enter, - // or else it may register shortcuts twice - if (e.key === CONSTANTS.KEYBOARD_KEYS.ENTER) { - eventTriggers.onKeyEvent(e, true, key); - } - }; - buttonElement.onkeyup = e => { - eventTriggers.onKeyEvent(e, false, key); - }; -}; -const setupAllButtons = ( - eventTriggers: EventTriggers, - buttonRefs: IRefObject -) => { - for (const [key, ref] of Object.entries(buttonRefs)) { - if (ref.current) { - setupButton(ref.current, eventTriggers, key); - } - } -}; -const disableAllButtons = (buttonRefs: IRefObject) => { - for (const [, ref] of Object.entries(buttonRefs)) { - if (ref.current) { - // to implement - ref.current.onmousedown = null; - ref.current.onmouseup = null; - ref.current.onkeydown = null; - ref.current.onkeyup = null; - ref.current.setAttribute("class", BUTTON_CLASSNAME.DEACTIVATED); - } - } -}; -const updateAllLeds = ( - leds: number[][], - ledRefs: Array>> -) => { - for (let j = 0; j < leds.length; j++) { - for (let i = 0; i < leds[0].length; i++) { - const ledElement = ledRefs[j][i].current; - if (ledElement) { - setupLed(ledElement, leds[i][j]); - } - } - } -}; -const setupLed = (ledElement: SVGRectElement, brightness: number) => { - ledElement.style.opacity = (brightness / 10).toString(); -}; +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import * as React from "react"; +import { BUTTON_CLASSNAME, VIEW_STATE } from "../../constants"; +import CONSTANTS, { BUTTON_STYLING_CLASSES } from "../../constants"; +import { ViewStateContext } from "../../context"; +import { IRefObject, MicrobitSvg } from "./Microbit_svg"; + +interface EventTriggers { + onMouseUp: (event: Event, buttonKey: string) => void; + onMouseDown: (event: Event, buttonKey: string) => void; + onKeyEvent: (event: KeyboardEvent, active: boolean, key: string) => void; +} +interface IProps { + eventTriggers: EventTriggers; + leds: number[][]; +} + +export enum BUTTONS_KEYS { + BTN_A = "BTN_A", + BTN_B = "BTN_B", + BTN_AB = "BTN_AB", +} +// Displays the SVG and call necessary svg modification. +export class MicrobitImage extends React.Component { + private svgRef: React.RefObject = React.createRef(); + constructor(props: IProps) { + super(props); + } + componentDidMount() { + const svgElement = this.svgRef.current; + if (svgElement) { + updateAllLeds(this.props.leds, svgElement.getLeds()); + setupAllButtons(this.props.eventTriggers, svgElement.getButtons()); + this.setupKeyPresses(this.props.eventTriggers.onKeyEvent); + } + } + componentDidUpdate() { + if (this.svgRef.current) { + updateAllLeds(this.props.leds, this.svgRef.current.getLeds()); + if (this.context === VIEW_STATE.PAUSE) { + disableAllButtons(this.svgRef.current.getButtons()); + } else if (this.context === VIEW_STATE.RUNNING) { + setupAllButtons( + this.props.eventTriggers, + this.svgRef.current.getButtons() + ); + } + } + } + componentWillUnmount() { + window.document.removeEventListener("keydown", this.handleKeyDown); + window.document.removeEventListener("keyup", this.handleKeyUp); + } + setupKeyPresses = ( + onKeyEvent: (event: KeyboardEvent, active: boolean, key: string) => void + ) => { + window.document.addEventListener("keydown", this.handleKeyDown); + window.document.addEventListener("keyup", this.handleKeyUp); + }; + handleKeyDown = (event: KeyboardEvent) => { + const keyEvents = [event.key, event.code]; + // Don't listen to keydown events for the run button, restart button and enter key + if ( + !( + keyEvents.includes(CONSTANTS.KEYBOARD_KEYS.CAPITAL_F) || + keyEvents.includes(CONSTANTS.KEYBOARD_KEYS.CAPITAL_R) || + keyEvents.includes(CONSTANTS.KEYBOARD_KEYS.ENTER) + ) + ) { + this.props.eventTriggers.onKeyEvent(event, true, event.key); + } + }; + handleKeyUp = (event: KeyboardEvent) => { + this.props.eventTriggers.onKeyEvent(event, false, event.key); + }; + render() { + return ; + } + public updateButtonAttributes(key: BUTTONS_KEYS, isActive: boolean) { + const button = this.svgRef.current?.getButtons()[key].current; + if (button) { + button.focus(); + if (isActive) { + button.children[0].setAttribute( + "class", + BUTTON_STYLING_CLASSES.KEYPRESSED + ); + } else { + button.children[0].setAttribute( + "class", + BUTTON_STYLING_CLASSES.DEFAULT + ); + } + button.setAttribute("pressed", `${isActive}`); + button.setAttribute("aria-pressed", `${isActive}`); + } + } +} + +MicrobitImage.contextType = ViewStateContext; +const setupButton = ( + buttonElement: SVGRectElement, + eventTriggers: EventTriggers, + key: string +) => { + buttonElement.setAttribute("class", BUTTON_CLASSNAME.ACTIVE); + + buttonElement.onmousedown = e => { + buttonElement.focus(); + eventTriggers.onMouseDown(e, key); + }; + buttonElement.onmouseup = e => { + eventTriggers.onMouseUp(e, key); + }; + + buttonElement.onkeydown = e => { + // ensure that the keydown is enter, + // or else it may register shortcuts twice + if (e.key === CONSTANTS.KEYBOARD_KEYS.ENTER) { + eventTriggers.onKeyEvent(e, true, key); + } + }; + buttonElement.onkeyup = e => { + eventTriggers.onKeyEvent(e, false, key); + }; +}; +const setupAllButtons = ( + eventTriggers: EventTriggers, + buttonRefs: IRefObject +) => { + for (const [key, ref] of Object.entries(buttonRefs)) { + if (ref.current) { + setupButton(ref.current, eventTriggers, key); + } + } +}; +const disableAllButtons = (buttonRefs: IRefObject) => { + for (const [, ref] of Object.entries(buttonRefs)) { + if (ref.current) { + // to implement + ref.current.onmousedown = null; + ref.current.onmouseup = null; + ref.current.onkeydown = null; + ref.current.onkeyup = null; + ref.current.setAttribute("class", BUTTON_CLASSNAME.DEACTIVATED); + } + } +}; +const updateAllLeds = ( + leds: number[][], + ledRefs: Array>> +) => { + for (let j = 0; j < leds.length; j++) { + for (let i = 0; i < leds[0].length; i++) { + const ledElement = ledRefs[j][i].current; + if (ledElement) { + setupLed(ledElement, leds[i][j]); + } + } + } +}; +const setupLed = (ledElement: SVGRectElement, brightness: number) => { + ledElement.style.opacity = (brightness / 10).toString(); +}; diff --git a/src/view/components/microbit/MicrobitSimulator.tsx b/Source/view/components/microbit/MicrobitSimulator.tsx similarity index 97% rename from src/view/components/microbit/MicrobitSimulator.tsx rename to Source/view/components/microbit/MicrobitSimulator.tsx index d3507710c..467efcaaa 100644 --- a/src/view/components/microbit/MicrobitSimulator.tsx +++ b/Source/view/components/microbit/MicrobitSimulator.tsx @@ -1,259 +1,259 @@ -import * as React from "react"; -import { - AB_BUTTONS_KEYS, - CONSTANTS, - DEVICE_LIST_KEY, - VIEW_STATE, - WEBVIEW_MESSAGES, -} from "../../constants"; -import { ViewStateContext } from "../../context"; -import PlayLogo from "../../svgs/play_svg"; -import StopLogo from "../../svgs/stop_svg"; -import { sendMessage } from "../../utils/MessageUtils"; -import ActionBar from "../simulator/ActionBar"; -import { BUTTONS_KEYS, MicrobitImage } from "./MicrobitImage"; - -const DEFAULT_MICROBIT_STATE: IMicrobitState = { - leds: [ - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - ], - buttons: { button_a: false, button_b: false }, -}; - -interface IState { - active_editors: string[]; - running_file?: string; - currently_selected_file: string; - play_button: boolean; - selected_file: string; - microbit: IMicrobitState; - sendGesture?: (isActive: boolean) => void; -} - -interface IMicrobitState { - leds: number[][]; - buttons: { button_a: boolean; button_b: boolean }; -} -export class MicrobitSimulator extends React.Component { - private imageRef: React.RefObject = React.createRef(); - constructor() { - super({}); - this.state = { - microbit: DEFAULT_MICROBIT_STATE, - play_button: false, - selected_file: "", - active_editors: [], - running_file: undefined, - currently_selected_file: "", - }; - this.onKeyEvent = this.onKeyEvent.bind(this); - } - handleMessage = (event: any): void => { - const message = event.data; - - if (message.active_device !== DEVICE_LIST_KEY.MICROBIT) { - return; - } - - switch (message.command) { - case "reset-state": - this.setState({ - microbit: DEFAULT_MICROBIT_STATE, - play_button: false, - }); - break; - case "set-state": - this.setState({ - microbit: { - ...this.state.microbit, - leds: message.state.leds, - }, - }); - break; - case "activate-play": - const newRunningFile = this.state.currently_selected_file; - this.setState({ - play_button: !this.state.play_button, - running_file: newRunningFile, - }); - break; - case "visible-editors": - this.setState({ - active_editors: message.state.activePythonEditors, - }); - break; - case "current-file": - if (this.state.play_button) { - this.setState({ - currently_selected_file: message.state.running_file, - }); - } else { - this.setState({ - running_file: message.state.running_file, - currently_selected_file: message.state.running_file, - }); - } - - break; - } - }; - componentDidMount() { - window.addEventListener("message", this.handleMessage); - } - componentWillUnmount() { - window.removeEventListener("message", this.handleMessage); - } - - render() { - const playStopImage = this.state.play_button ? StopLogo : PlayLogo; - const playStopLabel = this.state.play_button ? "stop" : "play"; - return ( -
-
- {this.state.running_file && this.state.play_button - ? CONSTANTS.CURRENTLY_RUNNING(this.state.running_file) - : CONSTANTS.FILES_PLACEHOLDER} -
-
- -
- -
- ); - } - - protected togglePlayClick = () => { - const button = - window.document.getElementById(CONSTANTS.ID_NAME.PLAY_BUTTON) || - window.document.getElementById(CONSTANTS.ID_NAME.STOP_BUTTON); - if (button) { - button.focus(); - } - sendMessage(WEBVIEW_MESSAGES.TOGGLE_PLAY_STOP, { - selected_file: this.state.selected_file, - state: !this.state.play_button, - }); - }; - - protected refreshSimulatorClick = () => { - const button = window.document.getElementById( - CONSTANTS.ID_NAME.REFRESH_BUTTON - ); - if (button) { - button.focus(); - } - sendMessage(WEBVIEW_MESSAGES.REFRESH_SIMULATOR, true); - }; - protected handleButtonClick = (key: string, isActive: boolean) => { - let newButtonState = this.state.microbit.buttons; - switch (key) { - case AB_BUTTONS_KEYS.BTN_A: - newButtonState.button_a = isActive; - break; - case AB_BUTTONS_KEYS.BTN_B: - newButtonState.button_b = isActive; - break; - case AB_BUTTONS_KEYS.BTN_AB: - newButtonState = { - button_a: isActive, - button_b: isActive, - }; - break; - } - sendMessage(WEBVIEW_MESSAGES.BUTTON_PRESS, newButtonState); - this.setState({ - microbit: { - ...this.state.microbit, - buttons: newButtonState, - }, - }); - }; - - protected onMouseUp = (event: Event, key: string) => { - event.preventDefault(); - this.handleButtonClick(key, false); - }; - - protected onMouseDown = (event: Event, key: string) => { - event.preventDefault(); - this.handleButtonClick(key, true); - }; - - protected onKeyEvent(event: KeyboardEvent, active: boolean, key: string) { - event.stopPropagation(); - if ( - [event.code, event.key].includes(CONSTANTS.KEYBOARD_KEYS.ENTER) && - this.context === VIEW_STATE.RUNNING - ) { - this.handleButtonClick(key, active); - if (key === BUTTONS_KEYS.BTN_A) { - this.imageRef.current?.updateButtonAttributes( - BUTTONS_KEYS.BTN_A, - active - ); - } else if (key === BUTTONS_KEYS.BTN_B) { - this.imageRef.current?.updateButtonAttributes( - BUTTONS_KEYS.BTN_B, - active - ); - } else if (key === BUTTONS_KEYS.BTN_AB) { - this.imageRef.current?.updateButtonAttributes( - BUTTONS_KEYS.BTN_AB, - active - ); - } - } else if ( - [event.code, event.key].includes(CONSTANTS.KEYBOARD_KEYS.A) && - this.context === VIEW_STATE.RUNNING - ) { - this.handleButtonClick(BUTTONS_KEYS.BTN_A, active); - - this.imageRef.current?.updateButtonAttributes( - BUTTONS_KEYS.BTN_A, - active - ); - } else if ( - [event.code, event.key].includes(CONSTANTS.KEYBOARD_KEYS.B) && - this.context === VIEW_STATE.RUNNING - ) { - this.handleButtonClick(BUTTONS_KEYS.BTN_B, active); - - this.imageRef.current?.updateButtonAttributes( - BUTTONS_KEYS.BTN_B, - active - ); - } else if ( - [event.code, event.key].includes(CONSTANTS.KEYBOARD_KEYS.C) && - this.context === VIEW_STATE.RUNNING - ) { - this.handleButtonClick(BUTTONS_KEYS.BTN_AB, active); - - this.imageRef.current?.updateButtonAttributes( - BUTTONS_KEYS.BTN_AB, - active - ); - } else if (event.key === CONSTANTS.KEYBOARD_KEYS.CAPITAL_F) { - this.togglePlayClick(); - } else if (event.key === CONSTANTS.KEYBOARD_KEYS.CAPITAL_R) { - this.refreshSimulatorClick(); - } - } -} -MicrobitSimulator.contextType = ViewStateContext; +import * as React from "react"; +import { + AB_BUTTONS_KEYS, + CONSTANTS, + DEVICE_LIST_KEY, + VIEW_STATE, + WEBVIEW_MESSAGES, +} from "../../constants"; +import { ViewStateContext } from "../../context"; +import PlayLogo from "../../svgs/play_svg"; +import StopLogo from "../../svgs/stop_svg"; +import { sendMessage } from "../../utils/MessageUtils"; +import ActionBar from "../simulator/ActionBar"; +import { BUTTONS_KEYS, MicrobitImage } from "./MicrobitImage"; + +const DEFAULT_MICROBIT_STATE: IMicrobitState = { + leds: [ + [0, 0, 0, 0, 0], + [0, 0, 0, 0, 0], + [0, 0, 0, 0, 0], + [0, 0, 0, 0, 0], + [0, 0, 0, 0, 0], + ], + buttons: { button_a: false, button_b: false }, +}; + +interface IState { + active_editors: string[]; + running_file?: string; + currently_selected_file: string; + play_button: boolean; + selected_file: string; + microbit: IMicrobitState; + sendGesture?: (isActive: boolean) => void; +} + +interface IMicrobitState { + leds: number[][]; + buttons: { button_a: boolean; button_b: boolean }; +} +export class MicrobitSimulator extends React.Component { + private imageRef: React.RefObject = React.createRef(); + constructor() { + super({}); + this.state = { + microbit: DEFAULT_MICROBIT_STATE, + play_button: false, + selected_file: "", + active_editors: [], + running_file: undefined, + currently_selected_file: "", + }; + this.onKeyEvent = this.onKeyEvent.bind(this); + } + handleMessage = (event: any): void => { + const message = event.data; + + if (message.active_device !== DEVICE_LIST_KEY.MICROBIT) { + return; + } + + switch (message.command) { + case "reset-state": + this.setState({ + microbit: DEFAULT_MICROBIT_STATE, + play_button: false, + }); + break; + case "set-state": + this.setState({ + microbit: { + ...this.state.microbit, + leds: message.state.leds, + }, + }); + break; + case "activate-play": + const newRunningFile = this.state.currently_selected_file; + this.setState({ + play_button: !this.state.play_button, + running_file: newRunningFile, + }); + break; + case "visible-editors": + this.setState({ + active_editors: message.state.activePythonEditors, + }); + break; + case "current-file": + if (this.state.play_button) { + this.setState({ + currently_selected_file: message.state.running_file, + }); + } else { + this.setState({ + running_file: message.state.running_file, + currently_selected_file: message.state.running_file, + }); + } + + break; + } + }; + componentDidMount() { + window.addEventListener("message", this.handleMessage); + } + componentWillUnmount() { + window.removeEventListener("message", this.handleMessage); + } + + render() { + const playStopImage = this.state.play_button ? StopLogo : PlayLogo; + const playStopLabel = this.state.play_button ? "stop" : "play"; + return ( +
+
+ {this.state.running_file && this.state.play_button + ? CONSTANTS.CURRENTLY_RUNNING(this.state.running_file) + : CONSTANTS.FILES_PLACEHOLDER} +
+
+ +
+ +
+ ); + } + + protected togglePlayClick = () => { + const button = + window.document.getElementById(CONSTANTS.ID_NAME.PLAY_BUTTON) || + window.document.getElementById(CONSTANTS.ID_NAME.STOP_BUTTON); + if (button) { + button.focus(); + } + sendMessage(WEBVIEW_MESSAGES.TOGGLE_PLAY_STOP, { + selected_file: this.state.selected_file, + state: !this.state.play_button, + }); + }; + + protected refreshSimulatorClick = () => { + const button = window.document.getElementById( + CONSTANTS.ID_NAME.REFRESH_BUTTON + ); + if (button) { + button.focus(); + } + sendMessage(WEBVIEW_MESSAGES.REFRESH_SIMULATOR, true); + }; + protected handleButtonClick = (key: string, isActive: boolean) => { + let newButtonState = this.state.microbit.buttons; + switch (key) { + case AB_BUTTONS_KEYS.BTN_A: + newButtonState.button_a = isActive; + break; + case AB_BUTTONS_KEYS.BTN_B: + newButtonState.button_b = isActive; + break; + case AB_BUTTONS_KEYS.BTN_AB: + newButtonState = { + button_a: isActive, + button_b: isActive, + }; + break; + } + sendMessage(WEBVIEW_MESSAGES.BUTTON_PRESS, newButtonState); + this.setState({ + microbit: { + ...this.state.microbit, + buttons: newButtonState, + }, + }); + }; + + protected onMouseUp = (event: Event, key: string) => { + event.preventDefault(); + this.handleButtonClick(key, false); + }; + + protected onMouseDown = (event: Event, key: string) => { + event.preventDefault(); + this.handleButtonClick(key, true); + }; + + protected onKeyEvent(event: KeyboardEvent, active: boolean, key: string) { + event.stopPropagation(); + if ( + [event.code, event.key].includes(CONSTANTS.KEYBOARD_KEYS.ENTER) && + this.context === VIEW_STATE.RUNNING + ) { + this.handleButtonClick(key, active); + if (key === BUTTONS_KEYS.BTN_A) { + this.imageRef.current?.updateButtonAttributes( + BUTTONS_KEYS.BTN_A, + active + ); + } else if (key === BUTTONS_KEYS.BTN_B) { + this.imageRef.current?.updateButtonAttributes( + BUTTONS_KEYS.BTN_B, + active + ); + } else if (key === BUTTONS_KEYS.BTN_AB) { + this.imageRef.current?.updateButtonAttributes( + BUTTONS_KEYS.BTN_AB, + active + ); + } + } else if ( + [event.code, event.key].includes(CONSTANTS.KEYBOARD_KEYS.A) && + this.context === VIEW_STATE.RUNNING + ) { + this.handleButtonClick(BUTTONS_KEYS.BTN_A, active); + + this.imageRef.current?.updateButtonAttributes( + BUTTONS_KEYS.BTN_A, + active + ); + } else if ( + [event.code, event.key].includes(CONSTANTS.KEYBOARD_KEYS.B) && + this.context === VIEW_STATE.RUNNING + ) { + this.handleButtonClick(BUTTONS_KEYS.BTN_B, active); + + this.imageRef.current?.updateButtonAttributes( + BUTTONS_KEYS.BTN_B, + active + ); + } else if ( + [event.code, event.key].includes(CONSTANTS.KEYBOARD_KEYS.C) && + this.context === VIEW_STATE.RUNNING + ) { + this.handleButtonClick(BUTTONS_KEYS.BTN_AB, active); + + this.imageRef.current?.updateButtonAttributes( + BUTTONS_KEYS.BTN_AB, + active + ); + } else if (event.key === CONSTANTS.KEYBOARD_KEYS.CAPITAL_F) { + this.togglePlayClick(); + } else if (event.key === CONSTANTS.KEYBOARD_KEYS.CAPITAL_R) { + this.refreshSimulatorClick(); + } + } +} +MicrobitSimulator.contextType = ViewStateContext; diff --git a/src/view/components/microbit/Microbit_svg.tsx b/Source/view/components/microbit/Microbit_svg.tsx similarity index 97% rename from src/view/components/microbit/Microbit_svg.tsx rename to Source/view/components/microbit/Microbit_svg.tsx index c3d95fdbb..22854c38f 100644 --- a/src/view/components/microbit/Microbit_svg.tsx +++ b/Source/view/components/microbit/Microbit_svg.tsx @@ -1,1890 +1,1890 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT license. - -// Adapted from : https://makecode.microbit.org/#editor - -import * as React from "react"; -import "../../styles/SimulatorSvg.css"; - -export interface IRefObject { - [key: string]: React.RefObject; -} -/* tslint:disable */ - -const N_LED_COLUMN = 5; -const N_LED_ROW = 5; -export class MicrobitSvg extends React.Component { - constructor(props: Readonly<{}>) { - super(props); - for (let j = 0; j < N_LED_ROW; j++) { - const led_row: React.RefObject[] = []; - for (let i = 0; i < N_LED_COLUMN; i++) { - led_row.push(React.createRef()); - } - this.ledRefs.push(led_row); - } - } - private svgRef: React.RefObject = React.createRef(); - - private buttonRefs: IRefObject = { - BTN_A: React.createRef(), - BTN_B: React.createRef(), - BTN_AB: React.createRef(), - }; - - private ledRefs: React.RefObject[][] = []; - public getSvgRef(): React.RefObject { - return this.svgRef; - } - public getButtons(): IRefObject { - return this.buttonRefs; - } - public getLeds(): React.RefObject[][] { - return this.ledRefs; - } - - render() { - return ( -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (0,0) - - - - (1,0) - - - - (2,0) - - - - (3,0) - - - - (4,0) - - - - (0,1) - - - - (1,1) - - - - (2,1) - - - - (3,1) - - - - (4,1) - - - - (0,2) - - - - (1,2) - - - - (2,2) - - - - (3,2) - - - - (4,2) - - - - (0,3) - - - - (1,3) - - - - (2,3) - - - - (3,3) - - - - (4,3) - - - - (0,4) - - - - (1,4) - - - - (2,4) - - - - (3,4) - - - - (4,4) - - - - - - - - - - P0, ANALOG IN - - - P1, ANALOG IN - - - P2, ANALOG IN - - - P3, ANALOG IN, LED Col 1 - - - P4, ANALOG IN, LED Col 2 - - - P5, BUTTON A - - - P6, LED Col 9 - - - P7, LED Col 8 - - - P8 - - - P9, LED Col 7 - - - P10, ANALOG IN, LED Col 3 - - - P11, BUTTON B - - - P12, RESERVED ACCESSIBILITY - - - P13, SPI - SCK - - - P14, SPI - MISO - - - P15, SPI - MOSI - - - P16, SPI - Chip Select - - - P17, +3v3 - - - P18, +3v3 - - - P19, I2C - SCL - - - P20, I2C - SDA - - - GND - - - GND - - - +3v3 - - - GND - - - - - - - - - - - - - - - - - - - - - - A+B - - - - - - - - - - - - - - - - - - - - - - - -
- ); - } -} +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +// Adapted from : https://makecode.microbit.org/#editor + +import * as React from "react"; +import "../../styles/SimulatorSvg.css"; + +export interface IRefObject { + [key: string]: React.RefObject; +} +/* tslint:disable */ + +const N_LED_COLUMN = 5; +const N_LED_ROW = 5; +export class MicrobitSvg extends React.Component { + constructor(props: Readonly<{}>) { + super(props); + for (let j = 0; j < N_LED_ROW; j++) { + const led_row: React.RefObject[] = []; + for (let i = 0; i < N_LED_COLUMN; i++) { + led_row.push(React.createRef()); + } + this.ledRefs.push(led_row); + } + } + private svgRef: React.RefObject = React.createRef(); + + private buttonRefs: IRefObject = { + BTN_A: React.createRef(), + BTN_B: React.createRef(), + BTN_AB: React.createRef(), + }; + + private ledRefs: React.RefObject[][] = []; + public getSvgRef(): React.RefObject { + return this.svgRef; + } + public getButtons(): IRefObject { + return this.buttonRefs; + } + public getLeds(): React.RefObject[][] { + return this.ledRefs; + } + + render() { + return ( +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (0,0) + + + + (1,0) + + + + (2,0) + + + + (3,0) + + + + (4,0) + + + + (0,1) + + + + (1,1) + + + + (2,1) + + + + (3,1) + + + + (4,1) + + + + (0,2) + + + + (1,2) + + + + (2,2) + + + + (3,2) + + + + (4,2) + + + + (0,3) + + + + (1,3) + + + + (2,3) + + + + (3,3) + + + + (4,3) + + + + (0,4) + + + + (1,4) + + + + (2,4) + + + + (3,4) + + + + (4,4) + + + + + + + + + + P0, ANALOG IN + + + P1, ANALOG IN + + + P2, ANALOG IN + + + P3, ANALOG IN, LED Col 1 + + + P4, ANALOG IN, LED Col 2 + + + P5, BUTTON A + + + P6, LED Col 9 + + + P7, LED Col 8 + + + P8 + + + P9, LED Col 7 + + + P10, ANALOG IN, LED Col 3 + + + P11, BUTTON B + + + P12, RESERVED ACCESSIBILITY + + + P13, SPI - SCK + + + P14, SPI - MISO + + + P15, SPI - MOSI + + + P16, SPI - Chip Select + + + P17, +3v3 + + + P18, +3v3 + + + P19, I2C - SCL + + + P20, I2C - SDA + + + GND + + + GND + + + +3v3 + + + GND + + + + + + + + + + + + + + + + + + + + + + A+B + + + + + + + + + + + + + + + + + + + + + + + +
+ ); + } +} diff --git a/src/view/components/simulator/ActionBar.tsx b/Source/view/components/simulator/ActionBar.tsx similarity index 100% rename from src/view/components/simulator/ActionBar.tsx rename to Source/view/components/simulator/ActionBar.tsx diff --git a/src/view/components/toolbar/GenericSliderComponent.tsx b/Source/view/components/toolbar/GenericSliderComponent.tsx similarity index 97% rename from src/view/components/toolbar/GenericSliderComponent.tsx rename to Source/view/components/toolbar/GenericSliderComponent.tsx index 273896621..747721075 100644 --- a/src/view/components/toolbar/GenericSliderComponent.tsx +++ b/Source/view/components/toolbar/GenericSliderComponent.tsx @@ -1,41 +1,41 @@ -import * as React from "react"; -import { SENSOR_LIST } from "../../constants"; -import { ISensorProps, ISliderProps } from "../../viewUtils"; -import InputSlider from "./InputSlider"; - -interface IProps { - axisProperties: ISensorProps; - axisValues: { - // key is accessed with axisLabel - [key: string]: number; - }; - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void; -} -export const GenericSliderComponent: React.FC = props => { - return ( -
- {props.axisProperties.sliderProps.map( - (sliderProperties: ISliderProps, index: number) => { - return ( - - -
-
- ); - } - )} -
- ); -}; +import * as React from "react"; +import { SENSOR_LIST } from "../../constants"; +import { ISensorProps, ISliderProps } from "../../viewUtils"; +import InputSlider from "./InputSlider"; + +interface IProps { + axisProperties: ISensorProps; + axisValues: { + // key is accessed with axisLabel + [key: string]: number; + }; + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void; +} +export const GenericSliderComponent: React.FC = props => { + return ( +
+ {props.axisProperties.sliderProps.map( + (sliderProperties: ISliderProps, index: number) => { + return ( + + +
+
+ ); + } + )} +
+ ); +}; diff --git a/src/view/components/toolbar/Gesture.tsx b/Source/view/components/toolbar/Gesture.tsx similarity index 97% rename from src/view/components/toolbar/Gesture.tsx rename to Source/view/components/toolbar/Gesture.tsx index a89a3bd5c..4cf941f13 100644 --- a/src/view/components/toolbar/Gesture.tsx +++ b/Source/view/components/toolbar/Gesture.tsx @@ -1,71 +1,71 @@ -import * as React from "react"; -import { CONSTANTS } from "../../constants"; -import { Dropdown } from "../Dropdown"; -import SensorButton from "./SensorButton"; - -const GESTURE_BUTTON_MESSAGE = "Send Gesture"; -interface IProps { - gestures: string[]; - onSelectGestures?: (event: React.ChangeEvent) => void; - onSendGesture?: (isActive: boolean) => void; -} -export class Gesture extends React.Component { - private sensorButtonRef: React.RefObject = React.createRef(); - render() { - return ( -
- - { - if (this.props.onSendGesture) { - this.props.onSendGesture(true); - } - }} - onMouseUp={() => { - if (this.props.onSendGesture) { - this.props.onSendGesture(false); - } - }} - onKeyDown={this.handleOnKeyDown} - onKeyUp={this.handleOnKeyUp} - type="gesture" - /> -
- ); - } - private handleOnKeyDown = (e: React.KeyboardEvent) => { - if (e.key === CONSTANTS.KEYBOARD_KEYS.ENTER) { - this.sensorButtonRef!.current!.setButtonClass(true); - if (this.props.onSendGesture) { - this.props.onSendGesture(true); - } - } - }; - - private handleOnKeyUp = ( - e: React.KeyboardEvent, - onSendGesture?: (isActive: boolean) => void - ) => { - if (e.key === CONSTANTS.KEYBOARD_KEYS.ENTER) { - this.sensorButtonRef!.current!.setButtonClass(false); - - if (this.props.onSendGesture) { - this.props.onSendGesture(false); - } - } - }; -} +import * as React from "react"; +import { CONSTANTS } from "../../constants"; +import { Dropdown } from "../Dropdown"; +import SensorButton from "./SensorButton"; + +const GESTURE_BUTTON_MESSAGE = "Send Gesture"; +interface IProps { + gestures: string[]; + onSelectGestures?: (event: React.ChangeEvent) => void; + onSendGesture?: (isActive: boolean) => void; +} +export class Gesture extends React.Component { + private sensorButtonRef: React.RefObject = React.createRef(); + render() { + return ( +
+ + { + if (this.props.onSendGesture) { + this.props.onSendGesture(true); + } + }} + onMouseUp={() => { + if (this.props.onSendGesture) { + this.props.onSendGesture(false); + } + }} + onKeyDown={this.handleOnKeyDown} + onKeyUp={this.handleOnKeyUp} + type="gesture" + /> +
+ ); + } + private handleOnKeyDown = (e: React.KeyboardEvent) => { + if (e.key === CONSTANTS.KEYBOARD_KEYS.ENTER) { + this.sensorButtonRef!.current!.setButtonClass(true); + if (this.props.onSendGesture) { + this.props.onSendGesture(true); + } + } + }; + + private handleOnKeyUp = ( + e: React.KeyboardEvent, + onSendGesture?: (isActive: boolean) => void + ) => { + if (e.key === CONSTANTS.KEYBOARD_KEYS.ENTER) { + this.sensorButtonRef!.current!.setButtonClass(false); + + if (this.props.onSendGesture) { + this.props.onSendGesture(false); + } + } + }; +} diff --git a/src/view/components/toolbar/InputSlider.tsx b/Source/view/components/toolbar/InputSlider.tsx similarity index 100% rename from src/view/components/toolbar/InputSlider.tsx rename to Source/view/components/toolbar/InputSlider.tsx diff --git a/src/view/components/toolbar/SensorButton.tsx b/Source/view/components/toolbar/SensorButton.tsx similarity index 100% rename from src/view/components/toolbar/SensorButton.tsx rename to Source/view/components/toolbar/SensorButton.tsx diff --git a/src/view/components/toolbar/SensorModalUtils.tsx b/Source/view/components/toolbar/SensorModalUtils.tsx similarity index 100% rename from src/view/components/toolbar/SensorModalUtils.tsx rename to Source/view/components/toolbar/SensorModalUtils.tsx diff --git a/src/view/components/toolbar/ToolBar.tsx b/Source/view/components/toolbar/ToolBar.tsx similarity index 100% rename from src/view/components/toolbar/ToolBar.tsx rename to Source/view/components/toolbar/ToolBar.tsx diff --git a/src/view/components/toolbar/clue/ClueModalContent.tsx b/Source/view/components/toolbar/clue/ClueModalContent.tsx similarity index 97% rename from src/view/components/toolbar/clue/ClueModalContent.tsx rename to Source/view/components/toolbar/clue/ClueModalContent.tsx index 250e61388..b4fc4a136 100644 --- a/src/view/components/toolbar/clue/ClueModalContent.tsx +++ b/Source/view/components/toolbar/clue/ClueModalContent.tsx @@ -1,318 +1,318 @@ -import * as React from "react"; -import { GESTURES_CLUE, SENSOR_LIST } from "../../../constants"; -import { TAG_INPUT_SVG } from "../../../svgs/tag_input_svg"; -import { TAG_OUTPUT_SVG } from "../../../svgs/tag_output_svg"; -import { GenericSliderComponent } from "../GenericSliderComponent"; -import { Gesture } from "../Gesture"; -import { FEATURE_REQUEST_ON_GITHUB, IModalContent } from "../SensorModalUtils"; -import * as SENSOR_PROPERTIES from "./ClueSensorProperties"; - -export const TEMPERATURE_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - const temperatureSensorValues = { - T: sensorValues[SENSOR_LIST.TEMPERATURE], - }; - return { - components: [ - , - ], - descriptionText: "toolbar-clue-temperature-sensor.description", - descriptionTitle: "toolbar-clue-temperature-sensor.title", - id: "temperature", - tagInput: TAG_INPUT_SVG, - tagOutput: undefined, - tryItDescription: "toolbar-clue-temperature-sensor.tryItDescription", - }; -}; - -export const GPIO_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - return { - descriptionTitle: "toolbar-clue-gpio.title", - tagInput: TAG_INPUT_SVG, - tagOutput: TAG_OUTPUT_SVG, - descriptionText: "toolbar-clue-gpio.description", - tryItDescription: "toolbar-clue-gpio.tryItDescription", - components: undefined, - id: "GPIO", - }; -}; - -export const ACCELEROMETER_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - const accelerometerSensorValues = { - X: sensorValues[SENSOR_LIST.MOTION_X], - Y: sensorValues[SENSOR_LIST.MOTION_Y], - Z: sensorValues[SENSOR_LIST.MOTION_Z], - }; - return { - components: ( - - ), - descriptionText: "toolbar-clue-accelerometer-sensor.description", - descriptionTitle: "toolbar-clue-accelerometer-sensor.title", - id: "accelerometer", - tagInput: TAG_INPUT_SVG, - tagOutput: undefined, - tryItDescription: "toolbar-clue-accelerometer-sensor.tryItDescription", - }; -}; -export const GYROSCOPE_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - const gyroSensorValues = { - X: sensorValues[SENSOR_LIST.GYRO_X], - Y: sensorValues[SENSOR_LIST.GYRO_Y], - Z: sensorValues[SENSOR_LIST.GYRO_Z], - }; - return { - components: ( - - ), - descriptionText: "toolbar-clue-gyroscope-sensor.description", - descriptionTitle: "toolbar-clue-gyroscope-sensor.title", - id: "gyroscope", - tagInput: TAG_INPUT_SVG, - tagOutput: undefined, - tryItDescription: "toolbar-clue-gyroscope-sensor.tryItDescription", - }; -}; -export const MAGNETOSCOPE_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - const magnetSensorValues = { - X: sensorValues[SENSOR_LIST.MAGNET_X], - Y: sensorValues[SENSOR_LIST.MAGNET_Y], - Z: sensorValues[SENSOR_LIST.MAGNET_Z], - }; - return { - components: ( - - ), - descriptionText: "toolbar-clue-magnet-sensor.description", - descriptionTitle: "toolbar-clue-magnet-sensor.title", - id: "magnetoscope", - tagInput: TAG_INPUT_SVG, - tagOutput: undefined, - tryItDescription: "toolbar-clue-magnet-sensor.tryItDescription", - }; -}; - -export const LIGHT_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - const lightSensorValues = { - R: sensorValues[SENSOR_LIST.LIGHT_R], - G: sensorValues[SENSOR_LIST.LIGHT_G], - B: sensorValues[SENSOR_LIST.LIGHT_B], - C: sensorValues[SENSOR_LIST.LIGHT_C], - }; - return { - components: ( - - ), - descriptionText: "toolbar-clue-light-sensor.description", - descriptionTitle: "toolbar-clue-light-sensor.title", - id: "light_sensor", - tagInput: TAG_INPUT_SVG, - tagOutput: undefined, - tryItDescription: "toolbar-clue-light-sensor.tryItDescription", - }; -}; - -export const HUMIDITY_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - const humiditySensorValues = { - H: sensorValues[SENSOR_LIST.HUMIDITY], - }; - return { - descriptionTitle: "toolbar-clue-humidity-sensor.title", - tagInput: TAG_INPUT_SVG, - tagOutput: undefined, - descriptionText: "toolbar-clue-humidity-sensor.description", - tryItDescription: "toolbar-clue-humidity-sensor.tryItDescription", - components: [ - , - ], - id: "humidity_sensor", - }; -}; - -export const GESTURE_CONTENT = ( - onSelectGestures?: (event: React.ChangeEvent) => void, - sendGesture?: (isActive: boolean) => void -): IModalContent => { - return { - descriptionTitle: "toolbar-clue-gesture-sensor.title", - tagInput: TAG_INPUT_SVG, - tagOutput: undefined, - descriptionText: "toolbar-clue-gesture-sensor.description", - tryItDescription: "toolbar-clue-gesture-sensor.tryItDescription", - components: [ - , - ], - id: "gesture_sensor", - }; -}; - -export const PROXIMITY_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - const proximitySensorValues = { - P: sensorValues[SENSOR_LIST.PROXIMITY], - }; - return { - descriptionTitle: "toolbar-clue-proximity-sensor.title", - tagInput: TAG_INPUT_SVG, - tagOutput: undefined, - descriptionText: "toolbar-clue-proximity-sensor.description", - tryItDescription: "toolbar-clue-proximity-sensor.tryItDescription", - components: [ - , - ], - id: "proximity_sensor", - }; -}; - -export const PRESSURE_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - const pressureSensorValues = { - P: sensorValues[SENSOR_LIST.PRESSURE], - }; - return { - descriptionTitle: "toolbar-clue-pressure-sensor.title", - tagInput: TAG_INPUT_SVG, - tagOutput: undefined, - descriptionText: "toolbar-clue-pressure-sensor.description", - tryItDescription: "toolbar-clue-pressure-sensor.tryItDescription", - components: [ - , - ], - id: "pressure_sensor", - }; -}; - -export const BUTTON_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - return { - descriptionTitle: "toolbar-clue-a-b-push.title", - tagInput: undefined, - tagOutput: TAG_INPUT_SVG, - descriptionText: "toolbar-clue-a-b-push.description", - tryItDescription: "toolbar-clue-a-b-push.tryItDescription", - components: undefined, - id: "microbit_button", - }; -}; - -export const BLUETOOTH_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - return { - descriptionTitle: "toolbar-clue-bluetooth.title", - tagInput: undefined, - tagOutput: TAG_INPUT_SVG, - descriptionText: "toolbar-clue-bluetooth.description", - tryItDescription: "toolbar-clue-bluetooth.tryItDescription", - components: undefined, - id: "bluetooth", - }; -}; - -export const SOUND_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - return { - descriptionTitle: "toolbar-clue-sound-sensor.title", - tagInput: undefined, - tagOutput: TAG_OUTPUT_SVG, - descriptionText: "toolbar-clue-sound-sensor.description", - tryItDescription: "toolbar-clue-sound-sensor.tryItDescription", - components: [FEATURE_REQUEST_ON_GITHUB], - id: "sound_sensor", - }; -}; - -export const LED_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - return { - descriptionTitle: "toolbar-clue-led.title", - tagInput: undefined, - tagOutput: TAG_OUTPUT_SVG, - descriptionText: "toolbar-clue-led.description", - tryItDescription: "toolbar-clue-led.tryItDescription", - components: undefined, - id: "clue_neopixel", - }; -}; - -export const SPEAKER_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - return { - descriptionTitle: "toolbar-speaker.title", - tagInput: undefined, - tagOutput: TAG_OUTPUT_SVG, - descriptionText: "toolbar-clue-speaker.description", - tryItDescription: "toolbar-speaker.tryItDescription", - components: [FEATURE_REQUEST_ON_GITHUB], - id: "speaker", - }; -}; +import * as React from "react"; +import { GESTURES_CLUE, SENSOR_LIST } from "../../../constants"; +import { TAG_INPUT_SVG } from "../../../svgs/tag_input_svg"; +import { TAG_OUTPUT_SVG } from "../../../svgs/tag_output_svg"; +import { GenericSliderComponent } from "../GenericSliderComponent"; +import { Gesture } from "../Gesture"; +import { FEATURE_REQUEST_ON_GITHUB, IModalContent } from "../SensorModalUtils"; +import * as SENSOR_PROPERTIES from "./ClueSensorProperties"; + +export const TEMPERATURE_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + const temperatureSensorValues = { + T: sensorValues[SENSOR_LIST.TEMPERATURE], + }; + return { + components: [ + , + ], + descriptionText: "toolbar-clue-temperature-sensor.description", + descriptionTitle: "toolbar-clue-temperature-sensor.title", + id: "temperature", + tagInput: TAG_INPUT_SVG, + tagOutput: undefined, + tryItDescription: "toolbar-clue-temperature-sensor.tryItDescription", + }; +}; + +export const GPIO_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + return { + descriptionTitle: "toolbar-clue-gpio.title", + tagInput: TAG_INPUT_SVG, + tagOutput: TAG_OUTPUT_SVG, + descriptionText: "toolbar-clue-gpio.description", + tryItDescription: "toolbar-clue-gpio.tryItDescription", + components: undefined, + id: "GPIO", + }; +}; + +export const ACCELEROMETER_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + const accelerometerSensorValues = { + X: sensorValues[SENSOR_LIST.MOTION_X], + Y: sensorValues[SENSOR_LIST.MOTION_Y], + Z: sensorValues[SENSOR_LIST.MOTION_Z], + }; + return { + components: ( + + ), + descriptionText: "toolbar-clue-accelerometer-sensor.description", + descriptionTitle: "toolbar-clue-accelerometer-sensor.title", + id: "accelerometer", + tagInput: TAG_INPUT_SVG, + tagOutput: undefined, + tryItDescription: "toolbar-clue-accelerometer-sensor.tryItDescription", + }; +}; +export const GYROSCOPE_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + const gyroSensorValues = { + X: sensorValues[SENSOR_LIST.GYRO_X], + Y: sensorValues[SENSOR_LIST.GYRO_Y], + Z: sensorValues[SENSOR_LIST.GYRO_Z], + }; + return { + components: ( + + ), + descriptionText: "toolbar-clue-gyroscope-sensor.description", + descriptionTitle: "toolbar-clue-gyroscope-sensor.title", + id: "gyroscope", + tagInput: TAG_INPUT_SVG, + tagOutput: undefined, + tryItDescription: "toolbar-clue-gyroscope-sensor.tryItDescription", + }; +}; +export const MAGNETOSCOPE_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + const magnetSensorValues = { + X: sensorValues[SENSOR_LIST.MAGNET_X], + Y: sensorValues[SENSOR_LIST.MAGNET_Y], + Z: sensorValues[SENSOR_LIST.MAGNET_Z], + }; + return { + components: ( + + ), + descriptionText: "toolbar-clue-magnet-sensor.description", + descriptionTitle: "toolbar-clue-magnet-sensor.title", + id: "magnetoscope", + tagInput: TAG_INPUT_SVG, + tagOutput: undefined, + tryItDescription: "toolbar-clue-magnet-sensor.tryItDescription", + }; +}; + +export const LIGHT_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + const lightSensorValues = { + R: sensorValues[SENSOR_LIST.LIGHT_R], + G: sensorValues[SENSOR_LIST.LIGHT_G], + B: sensorValues[SENSOR_LIST.LIGHT_B], + C: sensorValues[SENSOR_LIST.LIGHT_C], + }; + return { + components: ( + + ), + descriptionText: "toolbar-clue-light-sensor.description", + descriptionTitle: "toolbar-clue-light-sensor.title", + id: "light_sensor", + tagInput: TAG_INPUT_SVG, + tagOutput: undefined, + tryItDescription: "toolbar-clue-light-sensor.tryItDescription", + }; +}; + +export const HUMIDITY_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + const humiditySensorValues = { + H: sensorValues[SENSOR_LIST.HUMIDITY], + }; + return { + descriptionTitle: "toolbar-clue-humidity-sensor.title", + tagInput: TAG_INPUT_SVG, + tagOutput: undefined, + descriptionText: "toolbar-clue-humidity-sensor.description", + tryItDescription: "toolbar-clue-humidity-sensor.tryItDescription", + components: [ + , + ], + id: "humidity_sensor", + }; +}; + +export const GESTURE_CONTENT = ( + onSelectGestures?: (event: React.ChangeEvent) => void, + sendGesture?: (isActive: boolean) => void +): IModalContent => { + return { + descriptionTitle: "toolbar-clue-gesture-sensor.title", + tagInput: TAG_INPUT_SVG, + tagOutput: undefined, + descriptionText: "toolbar-clue-gesture-sensor.description", + tryItDescription: "toolbar-clue-gesture-sensor.tryItDescription", + components: [ + , + ], + id: "gesture_sensor", + }; +}; + +export const PROXIMITY_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + const proximitySensorValues = { + P: sensorValues[SENSOR_LIST.PROXIMITY], + }; + return { + descriptionTitle: "toolbar-clue-proximity-sensor.title", + tagInput: TAG_INPUT_SVG, + tagOutput: undefined, + descriptionText: "toolbar-clue-proximity-sensor.description", + tryItDescription: "toolbar-clue-proximity-sensor.tryItDescription", + components: [ + , + ], + id: "proximity_sensor", + }; +}; + +export const PRESSURE_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + const pressureSensorValues = { + P: sensorValues[SENSOR_LIST.PRESSURE], + }; + return { + descriptionTitle: "toolbar-clue-pressure-sensor.title", + tagInput: TAG_INPUT_SVG, + tagOutput: undefined, + descriptionText: "toolbar-clue-pressure-sensor.description", + tryItDescription: "toolbar-clue-pressure-sensor.tryItDescription", + components: [ + , + ], + id: "pressure_sensor", + }; +}; + +export const BUTTON_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + return { + descriptionTitle: "toolbar-clue-a-b-push.title", + tagInput: undefined, + tagOutput: TAG_INPUT_SVG, + descriptionText: "toolbar-clue-a-b-push.description", + tryItDescription: "toolbar-clue-a-b-push.tryItDescription", + components: undefined, + id: "microbit_button", + }; +}; + +export const BLUETOOTH_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + return { + descriptionTitle: "toolbar-clue-bluetooth.title", + tagInput: undefined, + tagOutput: TAG_INPUT_SVG, + descriptionText: "toolbar-clue-bluetooth.description", + tryItDescription: "toolbar-clue-bluetooth.tryItDescription", + components: undefined, + id: "bluetooth", + }; +}; + +export const SOUND_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + return { + descriptionTitle: "toolbar-clue-sound-sensor.title", + tagInput: undefined, + tagOutput: TAG_OUTPUT_SVG, + descriptionText: "toolbar-clue-sound-sensor.description", + tryItDescription: "toolbar-clue-sound-sensor.tryItDescription", + components: [FEATURE_REQUEST_ON_GITHUB], + id: "sound_sensor", + }; +}; + +export const LED_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + return { + descriptionTitle: "toolbar-clue-led.title", + tagInput: undefined, + tagOutput: TAG_OUTPUT_SVG, + descriptionText: "toolbar-clue-led.description", + tryItDescription: "toolbar-clue-led.tryItDescription", + components: undefined, + id: "clue_neopixel", + }; +}; + +export const SPEAKER_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + return { + descriptionTitle: "toolbar-speaker.title", + tagInput: undefined, + tagOutput: TAG_OUTPUT_SVG, + descriptionText: "toolbar-clue-speaker.description", + tryItDescription: "toolbar-speaker.tryItDescription", + components: [FEATURE_REQUEST_ON_GITHUB], + id: "speaker", + }; +}; diff --git a/src/view/components/toolbar/clue/ClueSensorProperties.tsx b/Source/view/components/toolbar/clue/ClueSensorProperties.tsx similarity index 95% rename from src/view/components/toolbar/clue/ClueSensorProperties.tsx rename to Source/view/components/toolbar/clue/ClueSensorProperties.tsx index ccb8d8e1b..f8194eeb3 100644 --- a/src/view/components/toolbar/clue/ClueSensorProperties.tsx +++ b/Source/view/components/toolbar/clue/ClueSensorProperties.tsx @@ -1,216 +1,216 @@ -import { SENSOR_LIST } from "../../../constants"; -import { ISensorProps, ISliderProps } from "../../../viewUtils"; - -const CLUE_SLIDER_R: ISliderProps = { - axisLabel: "R", - maxLabel: "Max", - maxValue: 65535, - minLabel: "Min", - minValue: 0, - type: SENSOR_LIST.LIGHT_R, - step: 1, -}; - -const CLUE_SLIDER_G: ISliderProps = { - axisLabel: "G", - maxLabel: "Max", - maxValue: 65535, - minLabel: "Min", - minValue: 0, - type: SENSOR_LIST.LIGHT_G, - step: 1, -}; - -const CLUE_SLIDER_B: ISliderProps = { - axisLabel: "B", - maxLabel: "Max", - maxValue: 65535, - minLabel: "Min", - minValue: 0, - type: SENSOR_LIST.LIGHT_B, - step: 1, -}; -const CLUE_SLIDER_C: ISliderProps = { - axisLabel: "C", - maxLabel: "Max", - maxValue: 65535, - minLabel: "Min", - minValue: 0, - type: SENSOR_LIST.LIGHT_C, - step: 1, -}; - -export const CLUE_LIGHT_PROPERTIES: ISensorProps = { - LABEL: "Light Sensor", - sliderProps: [CLUE_SLIDER_R, CLUE_SLIDER_G, CLUE_SLIDER_B, CLUE_SLIDER_C], - unitLabel: "Lux", -}; - -// Range for magnet found here https://www.adafruit.com/product/4479 -const CLUE_MAGNET_X: ISliderProps = { - axisLabel: "X", - maxLabel: "Max", - minLabel: "Min", - maxValue: 1000, - minValue: -1000, - type: SENSOR_LIST.MAGNET_X, - step: 0.1, -}; -const CLUE_MAGNET_Y: ISliderProps = { - axisLabel: "Y", - maxLabel: "Max", - minLabel: "Min", - maxValue: 1000, - minValue: -1000, - type: SENSOR_LIST.MAGNET_Y, - step: 0.1, -}; -const CLUE_MAGNET_Z: ISliderProps = { - axisLabel: "Z", - maxLabel: "Max", - minLabel: "Min", - maxValue: 1000, - minValue: -1000, - type: SENSOR_LIST.MAGNET_Z, - step: 0.1, -}; - -export const CLUE_MAGNET_PROPERTIES: ISensorProps = { - LABEL: "Magnetoscope", - sliderProps: [CLUE_MAGNET_X, CLUE_MAGNET_Y, CLUE_MAGNET_Z], - unitLabel: "μT", -}; -const CLUE_GYRO_X: ISliderProps = { - axisLabel: "X", - maxLabel: "Max", - minLabel: "Min", - maxValue: 1000, - minValue: -1000, - type: SENSOR_LIST.GYRO_X, - step: 0.1, -}; -const CLUE_GYRO_Y: ISliderProps = { - axisLabel: "Y", - maxLabel: "Max", - minLabel: "Min", - maxValue: 1000, - minValue: -1000, - type: SENSOR_LIST.GYRO_Y, - step: 0.1, -}; -const CLUE_GYRO_Z: ISliderProps = { - axisLabel: "Z", - maxLabel: "Max", - minLabel: "Min", - maxValue: 1000, - minValue: -1000, - type: SENSOR_LIST.GYRO_Z, - step: 0.1, -}; - -export const CLUE_GYRO_PROPERTIES: ISensorProps = { - LABEL: "Gyroscope", - sliderProps: [CLUE_GYRO_X, CLUE_GYRO_Y, CLUE_GYRO_Z], - unitLabel: "deg/s", -}; - -export const CLUE_HUMIDITY_PROPERTIES: ISensorProps = { - LABEL: "Humidity Sensor", - sliderProps: [ - { - axisLabel: "H", - maxLabel: "Max", - maxValue: 100, - minLabel: "Min", - minValue: 0, - type: SENSOR_LIST.HUMIDITY, - step: 0.1, - }, - ], - unitLabel: "%", -}; -export const CLUE__PROXIMITY_PROPERTIES: ISensorProps = { - LABEL: "Humidity Sensor", - sliderProps: [ - { - axisLabel: "P", - maxLabel: "Max", - maxValue: 255, - minLabel: "Min", - minValue: 0, - type: SENSOR_LIST.PROXIMITY, - step: 1, - }, - ], - unitLabel: "", -}; -export const CLUE_PRESSURE_PROPERTIES: ISensorProps = { - LABEL: "Humidity Sensor", - sliderProps: [ - { - axisLabel: "P", - maxLabel: "Max", - maxValue: 1100, - minLabel: "Min", - minValue: 800, - type: SENSOR_LIST.PRESSURE, - step: 0.1, - }, - ], - unitLabel: "hPa", -}; -const MOTION_SLIDER_PROPS_X: ISliderProps = { - axisLabel: "X", - maxLabel: "Right", - maxValue: 1023, - minLabel: "Left", - minValue: -1023, - type: SENSOR_LIST.MOTION_X, - step: 0.1, -}; - -const MOTION_SLIDER_PROPS_Y: ISliderProps = { - axisLabel: "Y", - maxLabel: "Front", - maxValue: 1023, - minLabel: "Back", - minValue: -1023, - type: SENSOR_LIST.MOTION_Y, - step: 0.1, -}; - -const MOTION_SLIDER_PROPS_Z: ISliderProps = { - axisLabel: "Z", - maxLabel: "Down", - maxValue: 1023, - minLabel: "Up", - minValue: -1023, - type: SENSOR_LIST.MOTION_Z, - step: 0.1, -}; - -export const MOTION_SENSOR_PROPERTIES: ISensorProps = { - LABEL: "Motion sensor", - sliderProps: [ - MOTION_SLIDER_PROPS_X, - MOTION_SLIDER_PROPS_Y, - MOTION_SLIDER_PROPS_Z, - ], - unitLabel: "m/s2", -}; - -const TEMPERATURE_SLIDER_PROPS: ISliderProps = { - axisLabel: "T", - maxLabel: "Hot", - maxValue: 125, - minLabel: "Cold", - minValue: -55, - type: SENSOR_LIST.TEMPERATURE, - step: 0.1, -}; - -export const TEMPERATURE_SENSOR_PROPERTIES: ISensorProps = { - LABEL: "Temperature sensor", - sliderProps: [TEMPERATURE_SLIDER_PROPS], - unitLabel: "°C", -}; +import { SENSOR_LIST } from "../../../constants"; +import { ISensorProps, ISliderProps } from "../../../viewUtils"; + +const CLUE_SLIDER_R: ISliderProps = { + axisLabel: "R", + maxLabel: "Max", + maxValue: 65535, + minLabel: "Min", + minValue: 0, + type: SENSOR_LIST.LIGHT_R, + step: 1, +}; + +const CLUE_SLIDER_G: ISliderProps = { + axisLabel: "G", + maxLabel: "Max", + maxValue: 65535, + minLabel: "Min", + minValue: 0, + type: SENSOR_LIST.LIGHT_G, + step: 1, +}; + +const CLUE_SLIDER_B: ISliderProps = { + axisLabel: "B", + maxLabel: "Max", + maxValue: 65535, + minLabel: "Min", + minValue: 0, + type: SENSOR_LIST.LIGHT_B, + step: 1, +}; +const CLUE_SLIDER_C: ISliderProps = { + axisLabel: "C", + maxLabel: "Max", + maxValue: 65535, + minLabel: "Min", + minValue: 0, + type: SENSOR_LIST.LIGHT_C, + step: 1, +}; + +export const CLUE_LIGHT_PROPERTIES: ISensorProps = { + LABEL: "Light Sensor", + sliderProps: [CLUE_SLIDER_R, CLUE_SLIDER_G, CLUE_SLIDER_B, CLUE_SLIDER_C], + unitLabel: "Lux", +}; + +// Range for magnet found here https://www.adafruit.com/product/4479 +const CLUE_MAGNET_X: ISliderProps = { + axisLabel: "X", + maxLabel: "Max", + minLabel: "Min", + maxValue: 1000, + minValue: -1000, + type: SENSOR_LIST.MAGNET_X, + step: 0.1, +}; +const CLUE_MAGNET_Y: ISliderProps = { + axisLabel: "Y", + maxLabel: "Max", + minLabel: "Min", + maxValue: 1000, + minValue: -1000, + type: SENSOR_LIST.MAGNET_Y, + step: 0.1, +}; +const CLUE_MAGNET_Z: ISliderProps = { + axisLabel: "Z", + maxLabel: "Max", + minLabel: "Min", + maxValue: 1000, + minValue: -1000, + type: SENSOR_LIST.MAGNET_Z, + step: 0.1, +}; + +export const CLUE_MAGNET_PROPERTIES: ISensorProps = { + LABEL: "Magnetoscope", + sliderProps: [CLUE_MAGNET_X, CLUE_MAGNET_Y, CLUE_MAGNET_Z], + unitLabel: "μT", +}; +const CLUE_GYRO_X: ISliderProps = { + axisLabel: "X", + maxLabel: "Max", + minLabel: "Min", + maxValue: 1000, + minValue: -1000, + type: SENSOR_LIST.GYRO_X, + step: 0.1, +}; +const CLUE_GYRO_Y: ISliderProps = { + axisLabel: "Y", + maxLabel: "Max", + minLabel: "Min", + maxValue: 1000, + minValue: -1000, + type: SENSOR_LIST.GYRO_Y, + step: 0.1, +}; +const CLUE_GYRO_Z: ISliderProps = { + axisLabel: "Z", + maxLabel: "Max", + minLabel: "Min", + maxValue: 1000, + minValue: -1000, + type: SENSOR_LIST.GYRO_Z, + step: 0.1, +}; + +export const CLUE_GYRO_PROPERTIES: ISensorProps = { + LABEL: "Gyroscope", + sliderProps: [CLUE_GYRO_X, CLUE_GYRO_Y, CLUE_GYRO_Z], + unitLabel: "deg/s", +}; + +export const CLUE_HUMIDITY_PROPERTIES: ISensorProps = { + LABEL: "Humidity Sensor", + sliderProps: [ + { + axisLabel: "H", + maxLabel: "Max", + maxValue: 100, + minLabel: "Min", + minValue: 0, + type: SENSOR_LIST.HUMIDITY, + step: 0.1, + }, + ], + unitLabel: "%", +}; +export const CLUE__PROXIMITY_PROPERTIES: ISensorProps = { + LABEL: "Humidity Sensor", + sliderProps: [ + { + axisLabel: "P", + maxLabel: "Max", + maxValue: 255, + minLabel: "Min", + minValue: 0, + type: SENSOR_LIST.PROXIMITY, + step: 1, + }, + ], + unitLabel: "", +}; +export const CLUE_PRESSURE_PROPERTIES: ISensorProps = { + LABEL: "Humidity Sensor", + sliderProps: [ + { + axisLabel: "P", + maxLabel: "Max", + maxValue: 1100, + minLabel: "Min", + minValue: 800, + type: SENSOR_LIST.PRESSURE, + step: 0.1, + }, + ], + unitLabel: "hPa", +}; +const MOTION_SLIDER_PROPS_X: ISliderProps = { + axisLabel: "X", + maxLabel: "Right", + maxValue: 1023, + minLabel: "Left", + minValue: -1023, + type: SENSOR_LIST.MOTION_X, + step: 0.1, +}; + +const MOTION_SLIDER_PROPS_Y: ISliderProps = { + axisLabel: "Y", + maxLabel: "Front", + maxValue: 1023, + minLabel: "Back", + minValue: -1023, + type: SENSOR_LIST.MOTION_Y, + step: 0.1, +}; + +const MOTION_SLIDER_PROPS_Z: ISliderProps = { + axisLabel: "Z", + maxLabel: "Down", + maxValue: 1023, + minLabel: "Up", + minValue: -1023, + type: SENSOR_LIST.MOTION_Z, + step: 0.1, +}; + +export const MOTION_SENSOR_PROPERTIES: ISensorProps = { + LABEL: "Motion sensor", + sliderProps: [ + MOTION_SLIDER_PROPS_X, + MOTION_SLIDER_PROPS_Y, + MOTION_SLIDER_PROPS_Z, + ], + unitLabel: "m/s2", +}; + +const TEMPERATURE_SLIDER_PROPS: ISliderProps = { + axisLabel: "T", + maxLabel: "Hot", + maxValue: 125, + minLabel: "Cold", + minValue: -55, + type: SENSOR_LIST.TEMPERATURE, + step: 0.1, +}; + +export const TEMPERATURE_SENSOR_PROPERTIES: ISensorProps = { + LABEL: "Temperature sensor", + sliderProps: [TEMPERATURE_SLIDER_PROPS], + unitLabel: "°C", +}; diff --git a/src/view/components/toolbar/cpx/CpxModalContent.tsx b/Source/view/components/toolbar/cpx/CpxModalContent.tsx similarity index 100% rename from src/view/components/toolbar/cpx/CpxModalContent.tsx rename to Source/view/components/toolbar/cpx/CpxModalContent.tsx diff --git a/src/view/components/toolbar/cpx/CpxSensorProperties.tsx b/Source/view/components/toolbar/cpx/CpxSensorProperties.tsx similarity index 100% rename from src/view/components/toolbar/cpx/CpxSensorProperties.tsx rename to Source/view/components/toolbar/cpx/CpxSensorProperties.tsx diff --git a/src/view/components/toolbar/microbit/MicrobitModalContent.tsx b/Source/view/components/toolbar/microbit/MicrobitModalContent.tsx similarity index 97% rename from src/view/components/toolbar/microbit/MicrobitModalContent.tsx rename to Source/view/components/toolbar/microbit/MicrobitModalContent.tsx index 6d4ae76ef..c53cf5554 100644 --- a/src/view/components/toolbar/microbit/MicrobitModalContent.tsx +++ b/Source/view/components/toolbar/microbit/MicrobitModalContent.tsx @@ -1,187 +1,187 @@ -import * as React from "react"; -import { GESTURES_MICROBIT, SENSOR_LIST } from "../../../constants"; -import { TAG_INPUT_SVG } from "../../../svgs/tag_input_svg"; -import { TAG_OUTPUT_SVG } from "../../../svgs/tag_output_svg"; -import { GenericSliderComponent } from "../GenericSliderComponent"; -import { Gesture } from "../Gesture"; -import { FEATURE_REQUEST_ON_GITHUB, IModalContent } from "../SensorModalUtils"; -import * as SENSOR_PROPERTIES from "./MicrobitSensorProperties"; - -export const ACCELEROMETER_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - // this object will be accessed with the axis label - const accelerometerSensorValues = { - X: sensorValues[SENSOR_LIST.MOTION_X], - Y: sensorValues[SENSOR_LIST.MOTION_Y], - Z: sensorValues[SENSOR_LIST.MOTION_Z], - }; - return { - components: ( - - ), - descriptionText: "toolbar-accelerometer-sensor.description", - descriptionTitle: "toolbar-accelerometer-sensor.title", - id: "accelerometer", - tagInput: TAG_INPUT_SVG, - tagOutput: undefined, - tryItDescription: "toolbar-accelerometer-sensor.tryItDescription", - }; -}; -export const LED_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - return { - descriptionTitle: "toolbar-microbit-led.title", - tagInput: undefined, - tagOutput: TAG_OUTPUT_SVG, - descriptionText: "toolbar-microbit-led.description", - tryItDescription: "toolbar-microbit-led.tryItDescription", - components: undefined, - id: "microbit_LED", - }; -}; - -export const BUTTON_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - return { - descriptionTitle: "toolbar-microbit-a-b-push.title", - tagInput: undefined, - tagOutput: TAG_INPUT_SVG, - descriptionText: "toolbar-microbit-a-b-push.description", - tryItDescription: "toolbar-microbit-a-b-push.tryItDescription", - components: undefined, - id: "microbit_button", - }; -}; -export const SOUND_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - return { - descriptionTitle: "toolbar-microbit-sound.title", - tagInput: undefined, - tagOutput: TAG_OUTPUT_SVG, - descriptionText: "toolbar-microbit-sound.description", - tryItDescription: "toolbar-microbit-sound.tryItDescription", - components: [FEATURE_REQUEST_ON_GITHUB], - id: "microbit_sound", - }; -}; -export const GPIO_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - return { - descriptionTitle: "toolbar-microbit-gpio.title", - tagInput: TAG_INPUT_SVG, - tagOutput: TAG_OUTPUT_SVG, - descriptionText: "toolbar-microbit-gpio.description", - tryItDescription: "toolbar-microbit-gpio.tryItDescription", - components: [FEATURE_REQUEST_ON_GITHUB], - id: "microbit_gpio", - }; -}; -export const COMPASS_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - return { - descriptionTitle: "toolbar-microbit-compass-sensor.title", - tagInput: TAG_INPUT_SVG, - tagOutput: TAG_OUTPUT_SVG, - descriptionText: "toolbar-microbit-compass-sensor.description", - tryItDescription: "toolbar-microbit-compass-sensor.tryItDescription", - components: [FEATURE_REQUEST_ON_GITHUB], - id: "microbit_compass", - }; -}; -export const WIRELESS_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - return { - descriptionTitle: "toolbar-microbit-wireless.title", - tagInput: TAG_INPUT_SVG, - tagOutput: TAG_OUTPUT_SVG, - descriptionText: "toolbar-microbit-wireless.description", - tryItDescription: "toolbar-microbit-wireless.tryItDescription", - components: [FEATURE_REQUEST_ON_GITHUB], - id: "microbit_wireless", - }; -}; -export const GESTURE_CONTENT = ( - onSelectGestures?: (event: React.ChangeEvent) => void, - sendGesture?: (isActive: boolean) => void -): IModalContent => { - return { - descriptionTitle: "toolbar-microbit-gesture-sensor.title", - tagInput: TAG_INPUT_SVG, - tagOutput: undefined, - descriptionText: "toolbar-microbit-gesture-sensor.description", - tryItDescription: "toolbar-microbit-gesture-sensor.tryItDescription", - components: [ - , - ], - id: "gesture_sensor", - }; -}; -export const LIGHT_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - const lightSensorValues = { - L: sensorValues[SENSOR_LIST.LIGHT], - }; - return { - descriptionTitle: "toolbar-light-sensor.title", - tagInput: TAG_INPUT_SVG, - tagOutput: undefined, - descriptionText: "toolbar-light-sensor.description", - tryItDescription: "toolbar-light-sensor.tryItDescription", - components: [ - , - ], - id: "light_sensor", - }; -}; - -export const TEMPERATURE_CONTENT = ( - onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, - sensorValues: { [key: string]: number } -): IModalContent => { - const temperatureSensorValues = { - T: sensorValues[SENSOR_LIST.TEMPERATURE], - }; - return { - components: [ - , - ], - descriptionText: "toolbar-temperature-sensor.description", - descriptionTitle: "toolbar-temperature-sensor.title", - id: "temperature", - tagInput: TAG_INPUT_SVG, - tagOutput: undefined, - tryItDescription: "toolbar-temperature-sensor.tryItDescription", - }; -}; +import * as React from "react"; +import { GESTURES_MICROBIT, SENSOR_LIST } from "../../../constants"; +import { TAG_INPUT_SVG } from "../../../svgs/tag_input_svg"; +import { TAG_OUTPUT_SVG } from "../../../svgs/tag_output_svg"; +import { GenericSliderComponent } from "../GenericSliderComponent"; +import { Gesture } from "../Gesture"; +import { FEATURE_REQUEST_ON_GITHUB, IModalContent } from "../SensorModalUtils"; +import * as SENSOR_PROPERTIES from "./MicrobitSensorProperties"; + +export const ACCELEROMETER_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + // this object will be accessed with the axis label + const accelerometerSensorValues = { + X: sensorValues[SENSOR_LIST.MOTION_X], + Y: sensorValues[SENSOR_LIST.MOTION_Y], + Z: sensorValues[SENSOR_LIST.MOTION_Z], + }; + return { + components: ( + + ), + descriptionText: "toolbar-accelerometer-sensor.description", + descriptionTitle: "toolbar-accelerometer-sensor.title", + id: "accelerometer", + tagInput: TAG_INPUT_SVG, + tagOutput: undefined, + tryItDescription: "toolbar-accelerometer-sensor.tryItDescription", + }; +}; +export const LED_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + return { + descriptionTitle: "toolbar-microbit-led.title", + tagInput: undefined, + tagOutput: TAG_OUTPUT_SVG, + descriptionText: "toolbar-microbit-led.description", + tryItDescription: "toolbar-microbit-led.tryItDescription", + components: undefined, + id: "microbit_LED", + }; +}; + +export const BUTTON_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + return { + descriptionTitle: "toolbar-microbit-a-b-push.title", + tagInput: undefined, + tagOutput: TAG_INPUT_SVG, + descriptionText: "toolbar-microbit-a-b-push.description", + tryItDescription: "toolbar-microbit-a-b-push.tryItDescription", + components: undefined, + id: "microbit_button", + }; +}; +export const SOUND_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + return { + descriptionTitle: "toolbar-microbit-sound.title", + tagInput: undefined, + tagOutput: TAG_OUTPUT_SVG, + descriptionText: "toolbar-microbit-sound.description", + tryItDescription: "toolbar-microbit-sound.tryItDescription", + components: [FEATURE_REQUEST_ON_GITHUB], + id: "microbit_sound", + }; +}; +export const GPIO_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + return { + descriptionTitle: "toolbar-microbit-gpio.title", + tagInput: TAG_INPUT_SVG, + tagOutput: TAG_OUTPUT_SVG, + descriptionText: "toolbar-microbit-gpio.description", + tryItDescription: "toolbar-microbit-gpio.tryItDescription", + components: [FEATURE_REQUEST_ON_GITHUB], + id: "microbit_gpio", + }; +}; +export const COMPASS_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + return { + descriptionTitle: "toolbar-microbit-compass-sensor.title", + tagInput: TAG_INPUT_SVG, + tagOutput: TAG_OUTPUT_SVG, + descriptionText: "toolbar-microbit-compass-sensor.description", + tryItDescription: "toolbar-microbit-compass-sensor.tryItDescription", + components: [FEATURE_REQUEST_ON_GITHUB], + id: "microbit_compass", + }; +}; +export const WIRELESS_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + return { + descriptionTitle: "toolbar-microbit-wireless.title", + tagInput: TAG_INPUT_SVG, + tagOutput: TAG_OUTPUT_SVG, + descriptionText: "toolbar-microbit-wireless.description", + tryItDescription: "toolbar-microbit-wireless.tryItDescription", + components: [FEATURE_REQUEST_ON_GITHUB], + id: "microbit_wireless", + }; +}; +export const GESTURE_CONTENT = ( + onSelectGestures?: (event: React.ChangeEvent) => void, + sendGesture?: (isActive: boolean) => void +): IModalContent => { + return { + descriptionTitle: "toolbar-microbit-gesture-sensor.title", + tagInput: TAG_INPUT_SVG, + tagOutput: undefined, + descriptionText: "toolbar-microbit-gesture-sensor.description", + tryItDescription: "toolbar-microbit-gesture-sensor.tryItDescription", + components: [ + , + ], + id: "gesture_sensor", + }; +}; +export const LIGHT_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + const lightSensorValues = { + L: sensorValues[SENSOR_LIST.LIGHT], + }; + return { + descriptionTitle: "toolbar-light-sensor.title", + tagInput: TAG_INPUT_SVG, + tagOutput: undefined, + descriptionText: "toolbar-light-sensor.description", + tryItDescription: "toolbar-light-sensor.tryItDescription", + components: [ + , + ], + id: "light_sensor", + }; +}; + +export const TEMPERATURE_CONTENT = ( + onUpdateValue: (sensor: SENSOR_LIST, value: number) => void, + sensorValues: { [key: string]: number } +): IModalContent => { + const temperatureSensorValues = { + T: sensorValues[SENSOR_LIST.TEMPERATURE], + }; + return { + components: [ + , + ], + descriptionText: "toolbar-temperature-sensor.description", + descriptionTitle: "toolbar-temperature-sensor.title", + id: "temperature", + tagInput: TAG_INPUT_SVG, + tagOutput: undefined, + tryItDescription: "toolbar-temperature-sensor.tryItDescription", + }; +}; diff --git a/src/view/components/toolbar/microbit/MicrobitSensorProperties.tsx b/Source/view/components/toolbar/microbit/MicrobitSensorProperties.tsx similarity index 100% rename from src/view/components/toolbar/microbit/MicrobitSensorProperties.tsx rename to Source/view/components/toolbar/microbit/MicrobitSensorProperties.tsx diff --git a/src/view/constants.ts b/Source/view/constants.ts similarity index 100% rename from src/view/constants.ts rename to Source/view/constants.ts diff --git a/src/view/container/device/Device.tsx b/Source/view/container/device/Device.tsx similarity index 100% rename from src/view/container/device/Device.tsx rename to Source/view/container/device/Device.tsx diff --git a/src/view/context.ts b/Source/view/context.ts similarity index 100% rename from src/view/context.ts rename to Source/view/context.ts diff --git a/src/view/index.css b/Source/view/index.css similarity index 100% rename from src/view/index.css rename to Source/view/index.css diff --git a/src/view/index.tsx b/Source/view/index.tsx similarity index 100% rename from src/view/index.tsx rename to Source/view/index.tsx diff --git a/src/view/pages/gettingStarted.css b/Source/view/pages/gettingStarted.css similarity index 95% rename from src/view/pages/gettingStarted.css rename to Source/view/pages/gettingStarted.css index d312598b1..ae6d20b4f 100644 --- a/src/view/pages/gettingStarted.css +++ b/Source/view/pages/gettingStarted.css @@ -1,56 +1,56 @@ -.inv { - display: none; -} - -.codeText { - overflow-x: auto; - white-space: pre-wrap; - word-wrap: break-word; -} - -li:not(:last-child) { - margin-bottom: 6px; -} - -.normalFontWeight { - font-weight: normal; -} - -.deviceSelector { - width: 250px; - border: 1px solid var(--vscode-dropdown-border); - background-color: var(--vscode-dropdown-background); - color: var(--vscode-dropdown-foreground); - margin: 0 0 5px; - padding: 8px; - border-radius: 5px; - font-size: 12px; - padding-right: 30px; -} - -.deviceSelector optgroup { - background-color: var(--vscode-dropdown-listBackground); - color: var(--vscode-dropdown-foreground); -} - -.deviceSelector option { - background-color: var(--vscode-dropdown-listBackground); - color: var(--vscode-dropdown-foreground); -} - -.codeBox { - display: block; - width: 90%; - margin: 10px; - padding: 15px; - text-align: left; - background: none; - border: 1px solid grey; - border-radius: 4px; - background-color: var(--vscode-textCodeBlock-background); -} - -.container { - text-align: left; - padding: 0 10px 20px 10px; -} +.inv { + display: none; +} + +.codeText { + overflow-x: auto; + white-space: pre-wrap; + word-wrap: break-word; +} + +li:not(:last-child) { + margin-bottom: 6px; +} + +.normalFontWeight { + font-weight: normal; +} + +.deviceSelector { + width: 250px; + border: 1px solid var(--vscode-dropdown-border); + background-color: var(--vscode-dropdown-background); + color: var(--vscode-dropdown-foreground); + margin: 0 0 5px; + padding: 8px; + border-radius: 5px; + font-size: 12px; + padding-right: 30px; +} + +.deviceSelector optgroup { + background-color: var(--vscode-dropdown-listBackground); + color: var(--vscode-dropdown-foreground); +} + +.deviceSelector option { + background-color: var(--vscode-dropdown-listBackground); + color: var(--vscode-dropdown-foreground); +} + +.codeBox { + display: block; + width: 90%; + margin: 10px; + padding: 15px; + text-align: left; + background: none; + border: 1px solid grey; + border-radius: 4px; + background-color: var(--vscode-textCodeBlock-background); +} + +.container { + text-align: left; + padding: 0 10px 20px 10px; +} diff --git a/src/view/pages/gettingStarted.tsx b/Source/view/pages/gettingStarted.tsx similarity index 98% rename from src/view/pages/gettingStarted.tsx rename to Source/view/pages/gettingStarted.tsx index 2477594e7..c58be7145 100644 --- a/src/view/pages/gettingStarted.tsx +++ b/Source/view/pages/gettingStarted.tsx @@ -1,281 +1,281 @@ -import * as React from "react"; -import "./gettingStarted.css"; - -export class GettingStartedPage extends React.Component { - private selectRef: React.RefObject = React.createRef(); - - componentDidMount() { - this.selectRef.current?.addEventListener("change", (event: any) => { - const visibleElement = document.querySelector(".visibleElement"); - const target = document.getElementById(event!.target!.value); - if (visibleElement !== null) { - visibleElement.className = "inv"; - } - if (target !== null) { - target.className = "visibleElement"; - } - }); - } - - render() { - return ( - -
-

Getting started

- -

- Copy these snippets of code to a .py file and run the - simulator -

- {/* prettier-ignore */} -
-

Tutorial for Circuit Playground Express

-

- > Import the Circuit Playground library to use it (This is required) -

- -
from adafruit_circuitplayground import cp
-
-

> Turn on the little red LED

- -
while True:
-
    cp.red_led = True
-
-

> Turn up red LED when button A is clicked

- -
while True:
-
    if cp.button_a:
-
        cp.red_led = True
-
-

> Light up the first neopixel blue

- -
cp.pixels[0] = (0, 0, 255)
-
-

And much more! These links have more tutorials:

-

- - Getting started with CPX and CircuitPython - -

-

- - More example code - -

-

Keyboard Shortcuts

-
    -
  • Push Button: A for Button A, B for Button B, C for Buttons A & B
  • -
  • Refresh the simulator: Shift + R
  • -
  • Run the simulator: Shift + F
  • -
-
- {/* prettier-ignore */} -
-

Tutorial for micro:bit

-

- > Import the micro:bit library to use it (This is - required) -

- -
from microbit import *
-
-

- > Light up your micro:bit with love by showing a - heart -

- -
display.show(Image.HEART)
-
-

- > Use your micro:bit to tell the world how you’re - feeling -

- -
while True:
-
    if button_a.is_pressed():
-
        display.show(Image.HAPPY)
-
    if button_b.is_pressed():
-
        display.show(Image.SAD)
-
-

> Read then display the temperature

- -
while True:
-
    temp = temperature()
-
    display.show(temp)
-
-

- > Display your name with the scroll functionality -

- -
while True:
-
    display.show("Your name")
-
-

And much more! These links have more tutorials:

-

- - Microbit Tutorials - -

-

- - Microbit official documentation - -

-

Keyboard Shortcuts

-
    -
  • Push Button: A for Button A, B for Button B, C for Buttons A & B
  • -
  • Refresh the simulator: Shift + R
  • -
  • Run the simulator: Shift + F
  • -
-
- {/* prettier-ignore */} -
-

Tutorial for CLUE

-

- > Import the the main CLUE library (This is - required) -

- -
from adafruit_clue import clue
-
-

- > Display text on the CLUE and change the text when - a button is pressed -

- -
-                                clue_data = clue.simple_text_display(title="CLUE!")
-                            
-
while True:
-
    clue_data[1].text = "Hello World!"
-
    if clue.button_a:
-
        clue_data[5].text = "A is pressed!"
-
    else:
-
        clue_data[5].text = "A is not pressed!"
-
    clue_data.show()
-
-

> Create a slide show on the CLUE

-

- Make sure there are bitmap (.bmp) pictures of your choice in the same directory - as the code file. -

- -
import board
-
from adafruit_slideshow import SlideShow
-
 
-
slideshow = SlideShow(clue.display, auto_advance=True, dwell=3, fade_effect=True)
-                            
-
while slideshow.update():
-
    pass
-
-

> Light up the neopixel green

- -
clue.pixel.fill(clue.GREEN)
-
-

> Display sensor data on the CLUE

- -
clue_data = clue.simple_text_display(title="CLUE Sensor Data!", title_scale=2)
-
while True:
-
    clue_data[0].text = "Acceleration: {"{}"} {"{}"} {"{}"}".format(*clue.acceleration)
-
    clue_data[1].text = "Gyro: {"{}"} {"{}"} {"{}"}".format(*clue.gyro)
-
    clue_data[2].text = "Magnetic: {"{}"} {"{}"} {"{}"}".format(*clue.magnetic)
-
    clue_data[3].text = "Pressure: {"{}"}hPa".format(clue.pressure)
-
    clue_data[4].text = "Altitude: {"{}"}m".format(clue.altitude)
-
    clue_data[5].text = "Temperature: {"{}"}C".format(clue.temperature)
-
    clue_data[6].text = "Humidity: {"{}"}%".format(clue.humidity)
-
    clue_data[7].text = "Proximity: {"{}"}".format(clue.proximity)
-
    clue_data[8].text = "Gesture: {"{}"}".format(clue.gesture)
-
    clue_data[9].text = "Color: R: {"{}"} G: {"{}"} B: {"{}"} C: {"{}"}".format(*clue.color)
-
    clue_data[10].text = "Button A: {"{}"}".format(clue.button_a)
-
    clue_data[11].text = "Button B: {"{}"}".format(clue.button_b)
-
    clue_data.show()
-
-

> Draw a blue rectangle on the screen

- -
import board
-
import displayio
-
from adafruit_display_shapes.rect import Rect
-
 
-
splash = displayio.Group(max_size=20)
-
board.DISPLAY.show(splash)
-
 
-
rect = Rect(80, 20, 41, 41, fill=0x0000FF)
-
splash.append(rect)
-
-

And much more! These links have more tutorials:

-

- - Getting started with CLUE and CircuitPython - -

-

- - More example code - -

-

Keyboard Shortcuts

-
    -
  • Push Button: A for Button A, B for Button B, C for Buttons A & B
  • -
  • Refresh the simulator: Shift + R
  • -
  • Run the simulator: Shift + F
  • -
  • Capacitive Touch Sensor: Shift + 1 ~ 7 for GPIO pins A1 - A7
  • -
  • Slider Switch: Shift + S
  • -
-
- {/* prettier-ignore */} -
-

Tutorial for using the debugger

-

- > Enter debug mode -

-

Press F5 or go to Run -> Start Debugging

- Start debugging -

- > Set a breakpoint or multiple breakpoints -

-

Stopping at a breakpoint pauses the program at that particular place.

-

Use the debug toolbar or the shortcuts below

- Debugger Toolbar -
    -
  • F5 to continue / pause
  • -
  • F10 to step over (execute current statement and all functions that it calls and stop before the next statement)
  • -
  • F11 to step into (stop at first statement of first function called from first line)
  • -
  • Shift + F11 to step out (run current function to end)
  • -
  • Ctrl + Shift + F11 to restart
  • -
  • Shift + F5 to stop
  • -
- debugging experience -

- > Observe the device's state on the "Variables" tab on the left when stopped at a breakpoint -

- Debugger Variables -

And much more! These links have more tutorials:

-

- - Learn more about debugging in VS Code - -

-
-
-
- ); - } -} +import * as React from "react"; +import "./gettingStarted.css"; + +export class GettingStartedPage extends React.Component { + private selectRef: React.RefObject = React.createRef(); + + componentDidMount() { + this.selectRef.current?.addEventListener("change", (event: any) => { + const visibleElement = document.querySelector(".visibleElement"); + const target = document.getElementById(event!.target!.value); + if (visibleElement !== null) { + visibleElement.className = "inv"; + } + if (target !== null) { + target.className = "visibleElement"; + } + }); + } + + render() { + return ( + +
+

Getting started

+ +

+ Copy these snippets of code to a .py file and run the + simulator +

+ {/* prettier-ignore */} +
+

Tutorial for Circuit Playground Express

+

+ > Import the Circuit Playground library to use it (This is required) +

+ +
from adafruit_circuitplayground import cp
+
+

> Turn on the little red LED

+ +
while True:
+
    cp.red_led = True
+
+

> Turn up red LED when button A is clicked

+ +
while True:
+
    if cp.button_a:
+
        cp.red_led = True
+
+

> Light up the first neopixel blue

+ +
cp.pixels[0] = (0, 0, 255)
+
+

And much more! These links have more tutorials:

+

+ + Getting started with CPX and CircuitPython + +

+

+ + More example code + +

+

Keyboard Shortcuts

+
    +
  • Push Button: A for Button A, B for Button B, C for Buttons A & B
  • +
  • Refresh the simulator: Shift + R
  • +
  • Run the simulator: Shift + F
  • +
+
+ {/* prettier-ignore */} +
+

Tutorial for micro:bit

+

+ > Import the micro:bit library to use it (This is + required) +

+ +
from microbit import *
+
+

+ > Light up your micro:bit with love by showing a + heart +

+ +
display.show(Image.HEART)
+
+

+ > Use your micro:bit to tell the world how you’re + feeling +

+ +
while True:
+
    if button_a.is_pressed():
+
        display.show(Image.HAPPY)
+
    if button_b.is_pressed():
+
        display.show(Image.SAD)
+
+

> Read then display the temperature

+ +
while True:
+
    temp = temperature()
+
    display.show(temp)
+
+

+ > Display your name with the scroll functionality +

+ +
while True:
+
    display.show("Your name")
+
+

And much more! These links have more tutorials:

+

+ + Microbit Tutorials + +

+

+ + Microbit official documentation + +

+

Keyboard Shortcuts

+
    +
  • Push Button: A for Button A, B for Button B, C for Buttons A & B
  • +
  • Refresh the simulator: Shift + R
  • +
  • Run the simulator: Shift + F
  • +
+
+ {/* prettier-ignore */} +
+

Tutorial for CLUE

+

+ > Import the the main CLUE library (This is + required) +

+ +
from adafruit_clue import clue
+
+

+ > Display text on the CLUE and change the text when + a button is pressed +

+ +
+                                clue_data = clue.simple_text_display(title="CLUE!")
+                            
+
while True:
+
    clue_data[1].text = "Hello World!"
+
    if clue.button_a:
+
        clue_data[5].text = "A is pressed!"
+
    else:
+
        clue_data[5].text = "A is not pressed!"
+
    clue_data.show()
+
+

> Create a slide show on the CLUE

+

+ Make sure there are bitmap (.bmp) pictures of your choice in the same directory + as the code file. +

+ +
import board
+
from adafruit_slideshow import SlideShow
+
 
+
slideshow = SlideShow(clue.display, auto_advance=True, dwell=3, fade_effect=True)
+                            
+
while slideshow.update():
+
    pass
+
+

> Light up the neopixel green

+ +
clue.pixel.fill(clue.GREEN)
+
+

> Display sensor data on the CLUE

+ +
clue_data = clue.simple_text_display(title="CLUE Sensor Data!", title_scale=2)
+
while True:
+
    clue_data[0].text = "Acceleration: {"{}"} {"{}"} {"{}"}".format(*clue.acceleration)
+
    clue_data[1].text = "Gyro: {"{}"} {"{}"} {"{}"}".format(*clue.gyro)
+
    clue_data[2].text = "Magnetic: {"{}"} {"{}"} {"{}"}".format(*clue.magnetic)
+
    clue_data[3].text = "Pressure: {"{}"}hPa".format(clue.pressure)
+
    clue_data[4].text = "Altitude: {"{}"}m".format(clue.altitude)
+
    clue_data[5].text = "Temperature: {"{}"}C".format(clue.temperature)
+
    clue_data[6].text = "Humidity: {"{}"}%".format(clue.humidity)
+
    clue_data[7].text = "Proximity: {"{}"}".format(clue.proximity)
+
    clue_data[8].text = "Gesture: {"{}"}".format(clue.gesture)
+
    clue_data[9].text = "Color: R: {"{}"} G: {"{}"} B: {"{}"} C: {"{}"}".format(*clue.color)
+
    clue_data[10].text = "Button A: {"{}"}".format(clue.button_a)
+
    clue_data[11].text = "Button B: {"{}"}".format(clue.button_b)
+
    clue_data.show()
+
+

> Draw a blue rectangle on the screen

+ +
import board
+
import displayio
+
from adafruit_display_shapes.rect import Rect
+
 
+
splash = displayio.Group(max_size=20)
+
board.DISPLAY.show(splash)
+
 
+
rect = Rect(80, 20, 41, 41, fill=0x0000FF)
+
splash.append(rect)
+
+

And much more! These links have more tutorials:

+

+ + Getting started with CLUE and CircuitPython + +

+

+ + More example code + +

+

Keyboard Shortcuts

+
    +
  • Push Button: A for Button A, B for Button B, C for Buttons A & B
  • +
  • Refresh the simulator: Shift + R
  • +
  • Run the simulator: Shift + F
  • +
  • Capacitive Touch Sensor: Shift + 1 ~ 7 for GPIO pins A1 - A7
  • +
  • Slider Switch: Shift + S
  • +
+
+ {/* prettier-ignore */} +
+

Tutorial for using the debugger

+

+ > Enter debug mode +

+

Press F5 or go to Run -> Start Debugging

+ Start debugging +

+ > Set a breakpoint or multiple breakpoints +

+

Stopping at a breakpoint pauses the program at that particular place.

+

Use the debug toolbar or the shortcuts below

+ Debugger Toolbar +
    +
  • F5 to continue / pause
  • +
  • F10 to step over (execute current statement and all functions that it calls and stop before the next statement)
  • +
  • F11 to step into (stop at first statement of first function called from first line)
  • +
  • Shift + F11 to step out (run current function to end)
  • +
  • Ctrl + Shift + F11 to restart
  • +
  • Shift + F5 to stop
  • +
+ debugging experience +

+ > Observe the device's state on the "Variables" tab on the left when stopped at a breakpoint +

+ Debugger Variables +

And much more! These links have more tutorials:

+

+ + Learn more about debugging in VS Code + +

+
+
+
+ ); + } +} diff --git a/src/view/pages/gettingStartedPictures/debugger/debugger_vars.png b/Source/view/pages/gettingStartedPictures/debugger/debugger_vars.png similarity index 100% rename from src/view/pages/gettingStartedPictures/debugger/debugger_vars.png rename to Source/view/pages/gettingStartedPictures/debugger/debugger_vars.png diff --git a/src/view/pages/gettingStartedPictures/debugger/debugging.gif b/Source/view/pages/gettingStartedPictures/debugger/debugging.gif similarity index 100% rename from src/view/pages/gettingStartedPictures/debugger/debugging.gif rename to Source/view/pages/gettingStartedPictures/debugger/debugging.gif diff --git a/src/view/pages/gettingStartedPictures/debugger/start_debugging.jpg b/Source/view/pages/gettingStartedPictures/debugger/start_debugging.jpg similarity index 100% rename from src/view/pages/gettingStartedPictures/debugger/start_debugging.jpg rename to Source/view/pages/gettingStartedPictures/debugger/start_debugging.jpg diff --git a/src/view/pages/gettingStartedPictures/debugger/toolbar.png b/Source/view/pages/gettingStartedPictures/debugger/toolbar.png similarity index 100% rename from src/view/pages/gettingStartedPictures/debugger/toolbar.png rename to Source/view/pages/gettingStartedPictures/debugger/toolbar.png diff --git a/src/view/react-app-env.d.ts b/Source/view/react-app-env.d.ts similarity index 100% rename from src/view/react-app-env.d.ts rename to Source/view/react-app-env.d.ts diff --git a/src/view/styles/Button.css b/Source/view/styles/Button.css similarity index 100% rename from src/view/styles/Button.css rename to Source/view/styles/Button.css diff --git a/src/view/styles/Dropdown.css b/Source/view/styles/Dropdown.css similarity index 100% rename from src/view/styles/Dropdown.css rename to Source/view/styles/Dropdown.css diff --git a/src/view/styles/InputSlider.css b/Source/view/styles/InputSlider.css similarity index 100% rename from src/view/styles/InputSlider.css rename to Source/view/styles/InputSlider.css diff --git a/src/view/styles/LightSensorBar.css b/Source/view/styles/LightSensorBar.css similarity index 100% rename from src/view/styles/LightSensorBar.css rename to Source/view/styles/LightSensorBar.css diff --git a/src/view/styles/MotionSensorBar.css b/Source/view/styles/MotionSensorBar.css similarity index 100% rename from src/view/styles/MotionSensorBar.css rename to Source/view/styles/MotionSensorBar.css diff --git a/src/view/styles/SensorButton.css b/Source/view/styles/SensorButton.css similarity index 100% rename from src/view/styles/SensorButton.css rename to Source/view/styles/SensorButton.css diff --git a/src/view/styles/Simulator.css b/Source/view/styles/Simulator.css similarity index 100% rename from src/view/styles/Simulator.css rename to Source/view/styles/Simulator.css diff --git a/src/view/styles/SimulatorSvg.css b/Source/view/styles/SimulatorSvg.css similarity index 93% rename from src/view/styles/SimulatorSvg.css rename to Source/view/styles/SimulatorSvg.css index c9266c4a3..10d839893 100644 --- a/src/view/styles/SimulatorSvg.css +++ b/Source/view/styles/SimulatorSvg.css @@ -1,290 +1,290 @@ -.microbit-svg { - padding: 0 0 0 10px; -} -svg.sim { - box-sizing: border-box; - width: 100%; - height: 100%; - display: block; -} -svg.sim.grayscale { - -moz-filter: grayscale(1); - -webkit-filter: grayscale(1); - filter: grayscale(1); -} -.sim-button-group { - cursor: pointer; -} -.sim-button { - pointer-events: none; - fill: "rgb(17, 17, 17)"; -} -.sim-button-group > .sim-button:active { - fill: orange; -} -.sim-text-outside { - font-size: 25px; - fill: var(--vscode-foreground); -} -.sim-board, -.sim-display, -sim-button { - fill: #111; -} -.sim-button-group > .sim-button-outer:hover { - stroke: orange; - stroke-width: 4px; -} -.sim-button-group > .sim-button-outer:active { - fill: orange; -} -.sim-button-outer { - fill: #7e7272; -} - -.sim-button-key-press { - fill: orange; -} - -.sim-button-nut { - fill: #704a4a; - pointer-events: none; -} - -.sim-systemled { - fill: #333; - stroke: #555; - stroke-width: 1px; -} -.sim-light-level-button { - stroke: #fff; - stroke-width: 3px; -} -.sim-antenna { - stroke: #555; - stroke-width: 2px; -} -.sim-text { - font-family: "Lucida Console", Monaco, monospace; - font-size: 25px; - fill: #fff; - pointer-events: none; -} -.sim-text-pin { - font-family: "Lucida Console", Monaco, monospace; - font-size: 20px; - fill: #fff; - pointer-events: none; -} -.sim-thermometer { - stroke: #aaa; - stroke-width: 3px; -} -/* animations */ -.sim-flash { - animation-name: sim-flash-animation; - animation-duration: 0.1s; -} -@keyframes sim-flash-animation { - from { - fill: yellow; - } - to { - fill: default; - } -} -.sim-flash-stroke { - animation-name: sim-flash-stroke-animation; - animation-duration: 0.4s; - animation-timing-function: ease-in; -} -@keyframes sim-flash-stroke-animation { - from { - stroke: yellow; - } - to { - stroke: default; - } -} -/* wireframe */ -.sim-wireframe * { - fill: none; - stroke: black; -} -.sim-wireframe .sim-display, -.sim-wireframe .sim-led, -.sim-wireframe .sim-led-back, -.sim-wireframe .sim-head, -.sim-wireframe .sim-theme, -.sim-wireframe .sim-button-group, -.sim-wireframe .sim-button-label, -.sim-wireframe .sim-button, -.sim-wireframe .sim-text-pin { - visibility: hidden; -} -.sim-wireframe .sim-label { - stroke: none; - fill: #777; -} -.sim-label, -.sim-button-label { - fill: #000; -} -.sim-wireframe .sim-board { - stroke-width: 2px; -} -*:focus { - outline: none; -} -.sim-button-group:focus { - stroke: #4d90fe; - stroke-width: 4px; -} -.sim-button-group:focus { - stroke: #4d90fe; - stroke-width: 4px; -} -*:focus .sim-button-outer, -.sim-pin:focus, -.sim-thermometer:focus, -.sim-shake:focus, -.no-drag, -.sim-text, -.sim-text-pin { - user-drag: none; - user-select: none; - -moz-user-select: none; - -webkit-user-drag: none; - -webkit-user-select: none; - -ms-user-select: none; -} -.sim-button { - stroke: none; -} -.sim-button:active { - stroke: none; -} -.cls-1 { - fill: #097054; -} -.cls-1, -.cls-14, -.cls-23, -.cls-9 { - stroke: #000; -} -.cls-1, -.cls-11, -.cls-12, -.cls-14, -.cls-17, -.cls-22, -.cls-23, -.cls-3, -.cls-4, -.cls-5, -.cls-6, -.cls-9 { - stroke-miterlimit: 10; -} -.cls-1, -.cls-23 { - stroke-width: 1.99px; -} -.cls-18, -.cls-2 { - fill: #fff; -} -.cls-11, -.cls-12, -.cls-17, -.cls-23, -.cls-3, -.cls-4, -.cls-5, -.cls-6, -.cls-7, -.cls-8 { - fill: none; -} -.cls-11, -.cls-12, -.cls-17, -.cls-3, -.cls-4, -.cls-5, -.cls-6, -.cls-7, -.cls-8 { - stroke: #fff; -} -.cls-3 { - stroke-width: 2px; -} -.cls-12, -.cls-17, -.cls-4, -.cls-5, -.cls-6, -.cls-7, -.cls-8 { - stroke-linecap: round; -} -.cls-4, -.cls-7 { - stroke-width: 1.63px; -} -.cls-5 { - stroke-width: 1.41px; -} -.cls-6 { - stroke-width: 1.6px; -} -.cls-7, -.cls-8 { - stroke-linejoin: round; -} -.cls-8 { - stroke-width: 1.63px; -} -.cls-10, -.cls-9 { - fill: #7e7272; -} -.cls-22, -.cls-9 { - stroke-width: 1.5px; -} -.cls-12 { - stroke-width: 1.71px; -} - -.cls-14 { - stroke-width: 0.25px; -} - -.cls-17 { - stroke-width: 2.02px; -} -.cls-18 { - font-size: 7px; - font-family: SegoeUI-Bold, Segoe UI; - font-weight: 700; - letter-spacing: -0.02em; -} -.cls-19 { - letter-spacing: -0.03em; -} -.cls-20 { - letter-spacing: -0.05em; -} -.cls-21 { - letter-spacing: 0em; -} -.cls-22 { - stroke: #7e7272; -} -.sim-text-outside-clue { - font-size: 14px; - fill: var(--vscode-foreground); -} +.microbit-svg { + padding: 0 0 0 10px; +} +svg.sim { + box-sizing: border-box; + width: 100%; + height: 100%; + display: block; +} +svg.sim.grayscale { + -moz-filter: grayscale(1); + -webkit-filter: grayscale(1); + filter: grayscale(1); +} +.sim-button-group { + cursor: pointer; +} +.sim-button { + pointer-events: none; + fill: "rgb(17, 17, 17)"; +} +.sim-button-group > .sim-button:active { + fill: orange; +} +.sim-text-outside { + font-size: 25px; + fill: var(--vscode-foreground); +} +.sim-board, +.sim-display, +sim-button { + fill: #111; +} +.sim-button-group > .sim-button-outer:hover { + stroke: orange; + stroke-width: 4px; +} +.sim-button-group > .sim-button-outer:active { + fill: orange; +} +.sim-button-outer { + fill: #7e7272; +} + +.sim-button-key-press { + fill: orange; +} + +.sim-button-nut { + fill: #704a4a; + pointer-events: none; +} + +.sim-systemled { + fill: #333; + stroke: #555; + stroke-width: 1px; +} +.sim-light-level-button { + stroke: #fff; + stroke-width: 3px; +} +.sim-antenna { + stroke: #555; + stroke-width: 2px; +} +.sim-text { + font-family: "Lucida Console", Monaco, monospace; + font-size: 25px; + fill: #fff; + pointer-events: none; +} +.sim-text-pin { + font-family: "Lucida Console", Monaco, monospace; + font-size: 20px; + fill: #fff; + pointer-events: none; +} +.sim-thermometer { + stroke: #aaa; + stroke-width: 3px; +} +/* animations */ +.sim-flash { + animation-name: sim-flash-animation; + animation-duration: 0.1s; +} +@keyframes sim-flash-animation { + from { + fill: yellow; + } + to { + fill: default; + } +} +.sim-flash-stroke { + animation-name: sim-flash-stroke-animation; + animation-duration: 0.4s; + animation-timing-function: ease-in; +} +@keyframes sim-flash-stroke-animation { + from { + stroke: yellow; + } + to { + stroke: default; + } +} +/* wireframe */ +.sim-wireframe * { + fill: none; + stroke: black; +} +.sim-wireframe .sim-display, +.sim-wireframe .sim-led, +.sim-wireframe .sim-led-back, +.sim-wireframe .sim-head, +.sim-wireframe .sim-theme, +.sim-wireframe .sim-button-group, +.sim-wireframe .sim-button-label, +.sim-wireframe .sim-button, +.sim-wireframe .sim-text-pin { + visibility: hidden; +} +.sim-wireframe .sim-label { + stroke: none; + fill: #777; +} +.sim-label, +.sim-button-label { + fill: #000; +} +.sim-wireframe .sim-board { + stroke-width: 2px; +} +*:focus { + outline: none; +} +.sim-button-group:focus { + stroke: #4d90fe; + stroke-width: 4px; +} +.sim-button-group:focus { + stroke: #4d90fe; + stroke-width: 4px; +} +*:focus .sim-button-outer, +.sim-pin:focus, +.sim-thermometer:focus, +.sim-shake:focus, +.no-drag, +.sim-text, +.sim-text-pin { + user-drag: none; + user-select: none; + -moz-user-select: none; + -webkit-user-drag: none; + -webkit-user-select: none; + -ms-user-select: none; +} +.sim-button { + stroke: none; +} +.sim-button:active { + stroke: none; +} +.cls-1 { + fill: #097054; +} +.cls-1, +.cls-14, +.cls-23, +.cls-9 { + stroke: #000; +} +.cls-1, +.cls-11, +.cls-12, +.cls-14, +.cls-17, +.cls-22, +.cls-23, +.cls-3, +.cls-4, +.cls-5, +.cls-6, +.cls-9 { + stroke-miterlimit: 10; +} +.cls-1, +.cls-23 { + stroke-width: 1.99px; +} +.cls-18, +.cls-2 { + fill: #fff; +} +.cls-11, +.cls-12, +.cls-17, +.cls-23, +.cls-3, +.cls-4, +.cls-5, +.cls-6, +.cls-7, +.cls-8 { + fill: none; +} +.cls-11, +.cls-12, +.cls-17, +.cls-3, +.cls-4, +.cls-5, +.cls-6, +.cls-7, +.cls-8 { + stroke: #fff; +} +.cls-3 { + stroke-width: 2px; +} +.cls-12, +.cls-17, +.cls-4, +.cls-5, +.cls-6, +.cls-7, +.cls-8 { + stroke-linecap: round; +} +.cls-4, +.cls-7 { + stroke-width: 1.63px; +} +.cls-5 { + stroke-width: 1.41px; +} +.cls-6 { + stroke-width: 1.6px; +} +.cls-7, +.cls-8 { + stroke-linejoin: round; +} +.cls-8 { + stroke-width: 1.63px; +} +.cls-10, +.cls-9 { + fill: #7e7272; +} +.cls-22, +.cls-9 { + stroke-width: 1.5px; +} +.cls-12 { + stroke-width: 1.71px; +} + +.cls-14 { + stroke-width: 0.25px; +} + +.cls-17 { + stroke-width: 2.02px; +} +.cls-18 { + font-size: 7px; + font-family: SegoeUI-Bold, Segoe UI; + font-weight: 700; + letter-spacing: -0.02em; +} +.cls-19 { + letter-spacing: -0.03em; +} +.cls-20 { + letter-spacing: -0.05em; +} +.cls-21 { + letter-spacing: 0em; +} +.cls-22 { + stroke: #7e7272; +} +.sim-text-outside-clue { + font-size: 14px; + fill: var(--vscode-foreground); +} diff --git a/src/view/styles/TemperatureSensorBar.css b/Source/view/styles/TemperatureSensorBar.css similarity index 100% rename from src/view/styles/TemperatureSensorBar.css rename to Source/view/styles/TemperatureSensorBar.css diff --git a/src/view/styles/ToolBar.css b/Source/view/styles/ToolBar.css similarity index 100% rename from src/view/styles/ToolBar.css rename to Source/view/styles/ToolBar.css diff --git a/src/view/svgs/arrow_right_svg.tsx b/Source/view/svgs/arrow_right_svg.tsx similarity index 100% rename from src/view/svgs/arrow_right_svg.tsx rename to Source/view/svgs/arrow_right_svg.tsx diff --git a/src/view/svgs/close_svg.tsx b/Source/view/svgs/close_svg.tsx similarity index 100% rename from src/view/svgs/close_svg.tsx rename to Source/view/svgs/close_svg.tsx diff --git a/src/view/svgs/play_svg.tsx b/Source/view/svgs/play_svg.tsx similarity index 100% rename from src/view/svgs/play_svg.tsx rename to Source/view/svgs/play_svg.tsx diff --git a/src/view/svgs/refresh_svg.tsx b/Source/view/svgs/refresh_svg.tsx similarity index 100% rename from src/view/svgs/refresh_svg.tsx rename to Source/view/svgs/refresh_svg.tsx diff --git a/src/view/svgs/stop_svg.tsx b/Source/view/svgs/stop_svg.tsx similarity index 100% rename from src/view/svgs/stop_svg.tsx rename to Source/view/svgs/stop_svg.tsx diff --git a/src/view/svgs/tag_input_svg.tsx b/Source/view/svgs/tag_input_svg.tsx similarity index 100% rename from src/view/svgs/tag_input_svg.tsx rename to Source/view/svgs/tag_input_svg.tsx diff --git a/src/view/svgs/tag_output_svg.tsx b/Source/view/svgs/tag_output_svg.tsx similarity index 100% rename from src/view/svgs/tag_output_svg.tsx rename to Source/view/svgs/tag_output_svg.tsx diff --git a/src/view/svgs/toolbar_svg.tsx b/Source/view/svgs/toolbar_svg.tsx similarity index 100% rename from src/view/svgs/toolbar_svg.tsx rename to Source/view/svgs/toolbar_svg.tsx diff --git a/src/view/translations/en.json b/Source/view/translations/en.json similarity index 99% rename from src/view/translations/en.json rename to Source/view/translations/en.json index 0a873c763..c5e6ebed9 100644 --- a/src/view/translations/en.json +++ b/Source/view/translations/en.json @@ -1,112 +1,112 @@ -{ - "toolbar-gpio.description": "8 GPIOs on the device! Pin A1 - A7 can also be used as capacitive touch sensors, and A0 is a true analog output pin.", - "toolbar-gpio.title": "GPIO", - "toolbar-gpio.tryItDescription": "Use your mouse to interact with the pin A1 - A7 or use your keyboard SHIFT + ”1” - “7”.", - "toolbar-ir-sensor.description": "Allows you to send commands to the device with a remote control, or even send messages between multiple devices! You can also do very simple proximity sensing since it reads the reflected light.", - "toolbar-ir-sensor.title": "IR Transmit & Receiver", - "toolbar-ir-sensor.tryItDescription": "If you would like to see this sensor supported, please +1 the feature addition issue on GitHub! For now, you can try it on MakeCode!", - "toolbar-light-sensor.description": "An analog light sensor can be used to detect ambient light, with similar spectral response to the human eye.", - "toolbar-light-sensor.title": "Light Sensor", - "toolbar-light-sensor.tryItDescription": "Change the brightness detected by the sensor here!", - "toolbar-motion-sensor.description": "Detects acceleration in X, Y and Z orientations. It can also detect 'tap' and 'double tap' strikes on the board and when the board is shaken.", - "toolbar-motion-sensor.title": "Motion Sensor", - "toolbar-motion-sensor.tryItDescription": "Change the acceleration here and click or click on the button to simulate a shake. The tap feature is not supported by the Device Simulator Express. If you would like to see the 'tap' feature implemented, please +1 the feature addition issue on GitHub! For now, you can try it on MakeCode!", - "toolbar-neo-pixels.description": "The 10 full color RGB LEDs surrounding the outer edge of the boards can be set to any color. Great for beautiful lighting effects!", - "toolbar-neo-pixels.title": "NeoPixels", - "toolbar-neo-pixels.tryItDescription": "Run your code and see the cool effects on the simulator!", - "toolbar-a-b-push.description": "Two push buttons A and B are connected to digital pin #4 (Left) and #5 (Right) each.", - "toolbar-a-b-push.title": "Push Buttons", - "toolbar-a-b-push.tryItDescription": "Click them with your mouse or by pressing “A” and/or “B” on your keyboard!", - "toolbar-red-led.description": "This Red LED is connected to the digital #13 GPIO pin. It can be very handy when you want an indicator LED.", - "toolbar-red-led.title": "Red LED", - "toolbar-red-led.tryItDescription": "Run your code and see the cool effects on the simulator!", - "toolbar-sound-sensor.description": "A digital microphone can detect audio volume and even perform basic FFT functions but cannot read it like an analog voltage.", - "toolbar-sound-sensor.title": "Sound Sensor", - "toolbar-sound-sensor.tryItDescription": "If you would like to see the sound sensor implemented, please +1 the feature addition issue on GitHub! For now, you can try it on MakeCode!", - "toolbar-slider-switch.description": "This slide switch returns True or False depending on whether it's ON or OFF and can be used as a toggle switch in your code!", - "toolbar-slider-switch.title": "Slider Switch", - "toolbar-slider-switch.tryItDescription": "Click it with your mouse or press 'S' on your keyboard to switch it ON and OFF!", - "toolbar-speaker.description": "This speaker can play a .wav file and different tones and also has a class D amplifier that is connected to an output A0 pin built in! You can turn it off using the shutdown control on pin #11 on the physical device.", - "toolbar-speaker.title": "Speaker", - "toolbar-speaker.tryItDescription": "Right now the tones are not supported on the simulator. If you would like to see tones implemented, please +1 the feature addition issue on GitHub! Regardless, you can play it on your device!", - "toolbar-temperature-sensor.description": "This sensor uses an NTC thermistor to sense temperature an calculate it with the analog voltage on analog pin #A9.", - "toolbar-temperature-sensor.title": "Temperature Sensor", - "toolbar-temperature-sensor.tryItDescription": "You can set the temperature in degrees Celsius.", - "toolbar-accelerometer-sensor.title": "Accelerometer", - "toolbar-accelerometer-sensor.description": "An accelerometer measures the acceleration of your micro:bit; this component senses when the micro:bit is moved.", - "toolbar-accelerometer-sensor.tryItDescription": "Set the acceleration with the sliders.", - "toolbar-microbit-light-sensor.title": "Light Sensor", - "toolbar-microbit-temperature-sensor.title": "Temperature Sensor", - "toolbar-microbit-led.title": "LEDs", - "toolbar-microbit-led.description": "The microbit has 25 LEDs for you to play with. The LEDs have 9 levels of brightness.", - "toolbar-microbit-led.tryItDescription": "Run your code and see the LEDs light up!", - "toolbar-microbit-a-b-push.title": "Buttons", - "toolbar-microbit-a-b-push.description": "There are two buttons on the front of the micro:bit (labelled A and B). The third button is to trigger both A and B buttons. You can detect when these buttons are pressed, allowing you to trigger code on the device.", - "toolbar-microbit-a-b-push.tryItDescription": "Click them with your mouse or by pressing “A” and/or “B” on your keyboard!", - "toolbar-microbit-sound.title": "Sound", - "toolbar-microbit-sound.description": "Your BBC micro:bit can be programmed to make a wide variety of sounds - from single notes, tones and beats to your own musical compositions.", - "toolbar-microbit-sound.tryItDescription": "If you would like to see this sensor supported, please +1 the feature addition issue on GitHub! For now, you can try it on MakeCode!", - "toolbar-microbit-gpio.title": "GPIO (Pins)", - "toolbar-microbit-gpio.description": "On the bottom edge of your BBC micro:bit there are 25 gold strips, called pins. These pins allow you to really get creative. You can create circuits, connect external things like buzzers and motors and make your own fun projects.", - "toolbar-microbit-gpio.tryItDescription": "If you would like to see this sensor supported, please +1 the feature addition issue on GitHub! For now, you can try it on MakeCode!", - "toolbar-microbit-wireless.title": "Bluetooth & Radio", - "toolbar-microbit-wireless.description": "micro:bits can use radio waves and bluetooth services to communicate with each other.", - - "toolbar-microbit-wireless.tryItDescription": "If you would like to see this sensor supported, please +1 the feature addition issue on GitHub! For now, you can try it on MakeCode!", - "toolbar-microbit-gesture-sensor.title": "Gesture", - "toolbar-microbit-gesture-sensor.description": "If you move your BBC micro:bit in a certain way (as a gesture) then the micro:bit is able to detect this. It can recognize the following gestures: up, down, left, right, face up, face down, freefall, 3g, 6g, 8g, and shake.", - - "toolbar-microbit-gesture-sensor.tryItDescription": "Select a gesture and send it by clicking the button.", - "toolbar-microbit-compass-sensor.title": "Compass", - "toolbar-microbit-compass-sensor.description": "A digital compass is an input sensor that detects magnetic fields. Your BBC micro:bit has an inbuilt compass that can detect the direction in which it is facing.", - "toolbar-microbit-compass-sensor.tryItDescription": "If you would like to see this sensor supported, please +1 the feature addition issue on GitHub!", - "toolbar-clue-temperature-sensor.title": "Temperature", - "toolbar-clue-temperature-sensor.description": "CLUE uses the BMP280 sensor, an environmental sensor with temperature. This precision sensor from Bosch is the best low-cost, precision sensing solution for measuring temperature with ±1.0°C accuracy.", - - "toolbar-clue-temperature-sensor.tryItDescription": "You can simulate the temperature in your code!", - - "toolbar-clue-light-sensor.title": "Light/Color Sensor", - "toolbar-clue-light-sensor.description": "The light sensor uses APDS9960 and is able to return the red, blue, green and clear light.", - "toolbar-clue-light-sensor.tryItDescription": "You can set the color values of the light detected.", - "toolbar-clue-accelerometer-sensor.title": "Accelerometer", - "toolbar-clue-accelerometer-sensor.description": " The 3-axis accelerometer, can tell you which direction is down towards the Earth (by measuring gravity) or how fast the board is accelerating in 3D space.", - "toolbar-clue-accelerometer-sensor.tryItDescription": "Set the acceleration with the sliders.", - "toolbar-clue-led.title": "Neopixel", - "toolbar-clue-led.description": "The CLUE has one full RGB LED (NeoPixel) on the back of the device.", - - "toolbar-clue-led.tryItDescription": "Run your code and see the cool effects on the simulator!", - "toolbar-clue-a-b-push.title": "Buttons", - "toolbar-clue-a-b-push.description": "There are two buttons on the front of the CLUE (labelled A and B). The third button is to trigger both A and B buttons. You can detect when these buttons are pressed, allowing you to trigger code on the device.", - "toolbar-clue-a-b-push.tryItDescription": "Click them with your mouse or by pressing “A” and/or “B” on your keyboard!", - "toolbar-clue-gpio.title": "Input/Output (GPIO)", - "toolbar-clue-gpio.description": "On the bottom edge of your CLUE, you have 25 pins. These pins allow you to really get creative. You can create circuits, connect external things like buzzers and motors and make your own fun projects.", - "toolbar-clue-gpio.tryItDescription": "If you would like to see this sensor supported, please +1 the feature addition issue on GitHub!", - "toolbar-clue-sound-sensor.title": "Sound", - "toolbar-clue-sound-sensor.description": "The CLUE uses a PDM MEMS microphone. PDM is a little like 1-bit PWM. You clock the mic with a 1 MHz - 3 MHz clock rate, and on the data line you'll get a square wave out that syncs with the clock.", - "toolbar-clue-sound-sensor.tryItDescription": "If you would like to see this sensor supported, please +1 the feature addition issue on GitHub!", - "toolbar-clue-pressure-sensor.title": "Pressure", - "toolbar-clue-pressure-sensor.description": "CLUE uses the BMP280 sensor for barometric pressure. Because pressure changes with altitude, you can also use it as an altimeter with ±1 meter accuracy.", - - "toolbar-clue-pressure-sensor.tryItDescription": "You can set the pressure here in hectoPascals (hPa).", - "toolbar-clue-humidity-sensor.title": "Humidity", - "toolbar-clue-humidity-sensor.description": "The SHT30-D sensor has an excellent ±2% relative humidity and ±0.5°C accuracy for most uses.", - "toolbar-clue-humidity-sensor.tryItDescription": "You can set the humidity in percentage (%) here.", - "toolbar-clue-gesture-sensor.title": "Gesture", - "toolbar-clue-gesture-sensor.description": "The gesture sensor can detect directional gestures (left to right, right to left, up to down, down to up), but in theory more complicated gestures like zig-zag, clockwise or counterclockwise circle, near to far, etc. could also be detected with additional code. ", - "toolbar-clue-gesture-sensor.tryItDescription": "Select a gesture and send it by clicking the button.", - "toolbar-clue-proximity-sensor.title": "Proximity", - "toolbar-clue-proximity-sensor.description": "The proximity sensor uses APDS9960 and is able to return how close an object is to the front of the sensor. This is a number from 0 to 255 where the higher the number the closer an object is to the sensor. You won't be able to translate this into an absolute value in units like inches or millimeters, you can only see how it changes relative to other values.", - - "toolbar-clue-proximity-sensor.tryItDescription": "Set relative proximity to the sensor in values from 0 - 255, where 0 means very close and 255 means very far.", - - "toolbar-clue-bluetooth.title": "Bluetooth", - "toolbar-clue-bluetooth.description": "You can transmit data over Bluetooth to a computer or mobile device for data plotting and logging, or save it to the built in storage.", - "toolbar-clue-bluetooth.tryItDescription": "If you would like to see this sensor supported, please +1 the feature addition issue on GitHub! ", - "toolbar-clue-speaker.description": "The CLUE has a buzzer/speaker for playing tones and beeps.", - "toolbar-clue-magnet-sensor.title": "Magnetometer", - "toolbar-clue-magnet-sensor.description": "Sense the magnetic fields that surround us with this handy triple-axis magnetometer (compass) module. Magnetometers can sense where the strongest magnetic force is coming from, generally used to detect magnetic north, but can also be used for measuring magnetic fields.", - "toolbar-clue-magnet-sensor.tryItDescription": "You can set the magnetic field value in microTeslas (uT).", - "toolbar-clue-gyroscope-sensor.title": "Gyroscope", - "toolbar-clue-gyroscope-sensor.description": "The 3-axis gyroscope that can measure spin and twist users LSM6DS33.", - "toolbar-clue-gyroscope-sensor.tryItDescription": "Set the angular velocity in degrees/second." -} +{ + "toolbar-gpio.description": "8 GPIOs on the device! Pin A1 - A7 can also be used as capacitive touch sensors, and A0 is a true analog output pin.", + "toolbar-gpio.title": "GPIO", + "toolbar-gpio.tryItDescription": "Use your mouse to interact with the pin A1 - A7 or use your keyboard SHIFT + ”1” - “7”.", + "toolbar-ir-sensor.description": "Allows you to send commands to the device with a remote control, or even send messages between multiple devices! You can also do very simple proximity sensing since it reads the reflected light.", + "toolbar-ir-sensor.title": "IR Transmit & Receiver", + "toolbar-ir-sensor.tryItDescription": "If you would like to see this sensor supported, please +1 the feature addition issue on GitHub! For now, you can try it on MakeCode!", + "toolbar-light-sensor.description": "An analog light sensor can be used to detect ambient light, with similar spectral response to the human eye.", + "toolbar-light-sensor.title": "Light Sensor", + "toolbar-light-sensor.tryItDescription": "Change the brightness detected by the sensor here!", + "toolbar-motion-sensor.description": "Detects acceleration in X, Y and Z orientations. It can also detect 'tap' and 'double tap' strikes on the board and when the board is shaken.", + "toolbar-motion-sensor.title": "Motion Sensor", + "toolbar-motion-sensor.tryItDescription": "Change the acceleration here and click or click on the button to simulate a shake. The tap feature is not supported by the Device Simulator Express. If you would like to see the 'tap' feature implemented, please +1 the feature addition issue on GitHub! For now, you can try it on MakeCode!", + "toolbar-neo-pixels.description": "The 10 full color RGB LEDs surrounding the outer edge of the boards can be set to any color. Great for beautiful lighting effects!", + "toolbar-neo-pixels.title": "NeoPixels", + "toolbar-neo-pixels.tryItDescription": "Run your code and see the cool effects on the simulator!", + "toolbar-a-b-push.description": "Two push buttons A and B are connected to digital pin #4 (Left) and #5 (Right) each.", + "toolbar-a-b-push.title": "Push Buttons", + "toolbar-a-b-push.tryItDescription": "Click them with your mouse or by pressing “A” and/or “B” on your keyboard!", + "toolbar-red-led.description": "This Red LED is connected to the digital #13 GPIO pin. It can be very handy when you want an indicator LED.", + "toolbar-red-led.title": "Red LED", + "toolbar-red-led.tryItDescription": "Run your code and see the cool effects on the simulator!", + "toolbar-sound-sensor.description": "A digital microphone can detect audio volume and even perform basic FFT functions but cannot read it like an analog voltage.", + "toolbar-sound-sensor.title": "Sound Sensor", + "toolbar-sound-sensor.tryItDescription": "If you would like to see the sound sensor implemented, please +1 the feature addition issue on GitHub! For now, you can try it on MakeCode!", + "toolbar-slider-switch.description": "This slide switch returns True or False depending on whether it's ON or OFF and can be used as a toggle switch in your code!", + "toolbar-slider-switch.title": "Slider Switch", + "toolbar-slider-switch.tryItDescription": "Click it with your mouse or press 'S' on your keyboard to switch it ON and OFF!", + "toolbar-speaker.description": "This speaker can play a .wav file and different tones and also has a class D amplifier that is connected to an output A0 pin built in! You can turn it off using the shutdown control on pin #11 on the physical device.", + "toolbar-speaker.title": "Speaker", + "toolbar-speaker.tryItDescription": "Right now the tones are not supported on the simulator. If you would like to see tones implemented, please +1 the feature addition issue on GitHub! Regardless, you can play it on your device!", + "toolbar-temperature-sensor.description": "This sensor uses an NTC thermistor to sense temperature an calculate it with the analog voltage on analog pin #A9.", + "toolbar-temperature-sensor.title": "Temperature Sensor", + "toolbar-temperature-sensor.tryItDescription": "You can set the temperature in degrees Celsius.", + "toolbar-accelerometer-sensor.title": "Accelerometer", + "toolbar-accelerometer-sensor.description": "An accelerometer measures the acceleration of your micro:bit; this component senses when the micro:bit is moved.", + "toolbar-accelerometer-sensor.tryItDescription": "Set the acceleration with the sliders.", + "toolbar-microbit-light-sensor.title": "Light Sensor", + "toolbar-microbit-temperature-sensor.title": "Temperature Sensor", + "toolbar-microbit-led.title": "LEDs", + "toolbar-microbit-led.description": "The microbit has 25 LEDs for you to play with. The LEDs have 9 levels of brightness.", + "toolbar-microbit-led.tryItDescription": "Run your code and see the LEDs light up!", + "toolbar-microbit-a-b-push.title": "Buttons", + "toolbar-microbit-a-b-push.description": "There are two buttons on the front of the micro:bit (labelled A and B). The third button is to trigger both A and B buttons. You can detect when these buttons are pressed, allowing you to trigger code on the device.", + "toolbar-microbit-a-b-push.tryItDescription": "Click them with your mouse or by pressing “A” and/or “B” on your keyboard!", + "toolbar-microbit-sound.title": "Sound", + "toolbar-microbit-sound.description": "Your BBC micro:bit can be programmed to make a wide variety of sounds - from single notes, tones and beats to your own musical compositions.", + "toolbar-microbit-sound.tryItDescription": "If you would like to see this sensor supported, please +1 the feature addition issue on GitHub! For now, you can try it on MakeCode!", + "toolbar-microbit-gpio.title": "GPIO (Pins)", + "toolbar-microbit-gpio.description": "On the bottom edge of your BBC micro:bit there are 25 gold strips, called pins. These pins allow you to really get creative. You can create circuits, connect external things like buzzers and motors and make your own fun projects.", + "toolbar-microbit-gpio.tryItDescription": "If you would like to see this sensor supported, please +1 the feature addition issue on GitHub! For now, you can try it on MakeCode!", + "toolbar-microbit-wireless.title": "Bluetooth & Radio", + "toolbar-microbit-wireless.description": "micro:bits can use radio waves and bluetooth services to communicate with each other.", + + "toolbar-microbit-wireless.tryItDescription": "If you would like to see this sensor supported, please +1 the feature addition issue on GitHub! For now, you can try it on MakeCode!", + "toolbar-microbit-gesture-sensor.title": "Gesture", + "toolbar-microbit-gesture-sensor.description": "If you move your BBC micro:bit in a certain way (as a gesture) then the micro:bit is able to detect this. It can recognize the following gestures: up, down, left, right, face up, face down, freefall, 3g, 6g, 8g, and shake.", + + "toolbar-microbit-gesture-sensor.tryItDescription": "Select a gesture and send it by clicking the button.", + "toolbar-microbit-compass-sensor.title": "Compass", + "toolbar-microbit-compass-sensor.description": "A digital compass is an input sensor that detects magnetic fields. Your BBC micro:bit has an inbuilt compass that can detect the direction in which it is facing.", + "toolbar-microbit-compass-sensor.tryItDescription": "If you would like to see this sensor supported, please +1 the feature addition issue on GitHub!", + "toolbar-clue-temperature-sensor.title": "Temperature", + "toolbar-clue-temperature-sensor.description": "CLUE uses the BMP280 sensor, an environmental sensor with temperature. This precision sensor from Bosch is the best low-cost, precision sensing solution for measuring temperature with ±1.0°C accuracy.", + + "toolbar-clue-temperature-sensor.tryItDescription": "You can simulate the temperature in your code!", + + "toolbar-clue-light-sensor.title": "Light/Color Sensor", + "toolbar-clue-light-sensor.description": "The light sensor uses APDS9960 and is able to return the red, blue, green and clear light.", + "toolbar-clue-light-sensor.tryItDescription": "You can set the color values of the light detected.", + "toolbar-clue-accelerometer-sensor.title": "Accelerometer", + "toolbar-clue-accelerometer-sensor.description": " The 3-axis accelerometer, can tell you which direction is down towards the Earth (by measuring gravity) or how fast the board is accelerating in 3D space.", + "toolbar-clue-accelerometer-sensor.tryItDescription": "Set the acceleration with the sliders.", + "toolbar-clue-led.title": "Neopixel", + "toolbar-clue-led.description": "The CLUE has one full RGB LED (NeoPixel) on the back of the device.", + + "toolbar-clue-led.tryItDescription": "Run your code and see the cool effects on the simulator!", + "toolbar-clue-a-b-push.title": "Buttons", + "toolbar-clue-a-b-push.description": "There are two buttons on the front of the CLUE (labelled A and B). The third button is to trigger both A and B buttons. You can detect when these buttons are pressed, allowing you to trigger code on the device.", + "toolbar-clue-a-b-push.tryItDescription": "Click them with your mouse or by pressing “A” and/or “B” on your keyboard!", + "toolbar-clue-gpio.title": "Input/Output (GPIO)", + "toolbar-clue-gpio.description": "On the bottom edge of your CLUE, you have 25 pins. These pins allow you to really get creative. You can create circuits, connect external things like buzzers and motors and make your own fun projects.", + "toolbar-clue-gpio.tryItDescription": "If you would like to see this sensor supported, please +1 the feature addition issue on GitHub!", + "toolbar-clue-sound-sensor.title": "Sound", + "toolbar-clue-sound-sensor.description": "The CLUE uses a PDM MEMS microphone. PDM is a little like 1-bit PWM. You clock the mic with a 1 MHz - 3 MHz clock rate, and on the data line you'll get a square wave out that syncs with the clock.", + "toolbar-clue-sound-sensor.tryItDescription": "If you would like to see this sensor supported, please +1 the feature addition issue on GitHub!", + "toolbar-clue-pressure-sensor.title": "Pressure", + "toolbar-clue-pressure-sensor.description": "CLUE uses the BMP280 sensor for barometric pressure. Because pressure changes with altitude, you can also use it as an altimeter with ±1 meter accuracy.", + + "toolbar-clue-pressure-sensor.tryItDescription": "You can set the pressure here in hectoPascals (hPa).", + "toolbar-clue-humidity-sensor.title": "Humidity", + "toolbar-clue-humidity-sensor.description": "The SHT30-D sensor has an excellent ±2% relative humidity and ±0.5°C accuracy for most uses.", + "toolbar-clue-humidity-sensor.tryItDescription": "You can set the humidity in percentage (%) here.", + "toolbar-clue-gesture-sensor.title": "Gesture", + "toolbar-clue-gesture-sensor.description": "The gesture sensor can detect directional gestures (left to right, right to left, up to down, down to up), but in theory more complicated gestures like zig-zag, clockwise or counterclockwise circle, near to far, etc. could also be detected with additional code. ", + "toolbar-clue-gesture-sensor.tryItDescription": "Select a gesture and send it by clicking the button.", + "toolbar-clue-proximity-sensor.title": "Proximity", + "toolbar-clue-proximity-sensor.description": "The proximity sensor uses APDS9960 and is able to return how close an object is to the front of the sensor. This is a number from 0 to 255 where the higher the number the closer an object is to the sensor. You won't be able to translate this into an absolute value in units like inches or millimeters, you can only see how it changes relative to other values.", + + "toolbar-clue-proximity-sensor.tryItDescription": "Set relative proximity to the sensor in values from 0 - 255, where 0 means very close and 255 means very far.", + + "toolbar-clue-bluetooth.title": "Bluetooth", + "toolbar-clue-bluetooth.description": "You can transmit data over Bluetooth to a computer or mobile device for data plotting and logging, or save it to the built in storage.", + "toolbar-clue-bluetooth.tryItDescription": "If you would like to see this sensor supported, please +1 the feature addition issue on GitHub! ", + "toolbar-clue-speaker.description": "The CLUE has a buzzer/speaker for playing tones and beeps.", + "toolbar-clue-magnet-sensor.title": "Magnetometer", + "toolbar-clue-magnet-sensor.description": "Sense the magnetic fields that surround us with this handy triple-axis magnetometer (compass) module. Magnetometers can sense where the strongest magnetic force is coming from, generally used to detect magnetic north, but can also be used for measuring magnetic fields.", + "toolbar-clue-magnet-sensor.tryItDescription": "You can set the magnetic field value in microTeslas (uT).", + "toolbar-clue-gyroscope-sensor.title": "Gyroscope", + "toolbar-clue-gyroscope-sensor.description": "The 3-axis gyroscope that can measure spin and twist users LSM6DS33.", + "toolbar-clue-gyroscope-sensor.tryItDescription": "Set the angular velocity in degrees/second." +} diff --git a/src/view/tsconfig.json b/Source/view/tsconfig.json similarity index 100% rename from src/view/tsconfig.json rename to Source/view/tsconfig.json diff --git a/src/view/utils/MessageUtils.tsx b/Source/view/utils/MessageUtils.tsx similarity index 95% rename from src/view/utils/MessageUtils.tsx rename to Source/view/utils/MessageUtils.tsx index 41e093455..a9fcf9c75 100644 --- a/src/view/utils/MessageUtils.tsx +++ b/Source/view/utils/MessageUtils.tsx @@ -1,12 +1,12 @@ -interface vscode { - postMessage(message: any): void; -} - -declare const vscode: vscode; - -export const sendMessage = ( - type: string, - state: TState -) => { - vscode.postMessage({ command: type, text: state }); -}; +interface vscode { + postMessage(message: any): void; +} + +declare const vscode: vscode; + +export const sendMessage = ( + type: string, + state: TState +) => { + vscode.postMessage({ command: type, text: state }); +}; diff --git a/src/view/viewUtils.tsx b/Source/view/viewUtils.tsx similarity index 100% rename from src/view/viewUtils.tsx rename to Source/view/viewUtils.tsx diff --git a/src/vscode_import.ts b/Source/vscode_import.ts similarity index 100% rename from src/vscode_import.ts rename to Source/vscode_import.ts diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 83024d259..000000000 --- a/package-lock.json +++ /dev/null @@ -1,32342 +0,0 @@ -{ - "name": "__EXTENSIONNAME__", - "version": "0.0.0-UNTRACKEDVERSION", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/compat-data": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz", - "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==", - "dev": true, - "requires": { - "browserslist": "^4.8.5", - "invariant": "^2.2.4", - "semver": "^5.5.0" - } - }, - "@babel/core": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.4.3.tgz", - "integrity": "sha512-oDpASqKFlbspQfzAE7yaeTmdljSH2ADIvBlb0RwbStltTuWa0+7CCI1fYVINNv9saHPa1W7oaKeuNuKj+RQCvA==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.0", - "@babel/helpers": "^7.4.3", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "convert-source-map": "^1.1.0", - "debug": "^4.1.0", - "json5": "^2.1.0", - "lodash": "^4.17.11", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", - "requires": { - "minimist": "^1.2.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/generator": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", - "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", - "requires": { - "@babel/types": "^7.4.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", - "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-builder-react-jsx": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.8.3.tgz", - "integrity": "sha512-JT8mfnpTkKNCboTqZsQTdGo3l3Ik3l7QIt9hh0O9DYiwVel37VoJpILKM4YFbP2euF32nkQSb+F9cUk9b7DDXQ==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "esutils": "^2.0.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-call-delegate": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", - "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz", - "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.8.4", - "browserslist": "^4.8.5", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.3.tgz", - "integrity": "sha512-qmp4pD7zeTxsv0JNecSBsEmG1ei2MqwJq4YQcK3ZWm/0t07QstWfvuV/vm3Qt5xNMFETn2SZqpMx2MQzbtq+KA==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3" - }, - "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==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", - "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", - "dev": true, - "requires": { - "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.6.0" - }, - "dependencies": { - "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" - } - }, - "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", - "dev": true - }, - "regjsparser": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.3.tgz", - "integrity": "sha512-8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - } - } - } - }, - "@babel/helper-define-map": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", - "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" - }, - "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==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", - "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", - "dev": true, - "requires": { - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", - "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", - "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", - "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-module-imports": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", - "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-module-transforms": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", - "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" - }, - "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==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", - "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" - }, - "@babel/helper-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", - "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", - "dev": true, - "requires": { - "lodash": "^4.17.13" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/helper-replace-supers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", - "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/helper-simple-access": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", - "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", - "dev": true, - "requires": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", - "requires": { - "@babel/types": "^7.4.4" - } - }, - "@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", - "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/helpers": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.4.4.tgz", - "integrity": "sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A==", - "requires": { - "@babel/template": "^7.4.4", - "@babel/traverse": "^7.4.4", - "@babel/types": "^7.4.4" - } - }, - "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "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.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.3.0" - } - }, - "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" - } - } - } - }, - "@babel/parser": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", - "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==" - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", - "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz", - "integrity": "sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.3.tgz", - "integrity": "sha512-e3RvdvS4qPJVTe288DlXjwKflpfy1hr0j5dz5WpIYYeP7vQZg2WfAEIp8k5/Lwis/m5REXEteIz6rrcDtXXG7w==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-decorators": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", - "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", - "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", - "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - } - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", - "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", - "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" - } - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.8.3.tgz", - "integrity": "sha512-8Hg4dNNT9/LcA1zQlfwuKR8BUc/if7Q7NkTam9sGTcJphLwpf2g4S42uhspQrIrR+dpzE0dtTqBVFoHl8GtnnQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@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==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz", - "integrity": "sha512-innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", - "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", - "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", - "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", - "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.8.3.tgz", - "integrity": "sha512-GO1MQ/SGGGoiEXY0e0bSpHimJvxqB7lktLLIq2pv8xG7WZ8IMEle74jIe1FhprHBWjwjZtXHkycDLZXIWM5Wfg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" - } - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", - "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", - "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", - "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", - "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "lodash": "^4.17.13" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-classes": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", - "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "globals": "^11.1.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==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", - "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", - "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", - "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", - "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", - "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.8.3.tgz", - "integrity": "sha512-g/6WTWG/xbdd2exBBzMfygjX/zw4eyNC4X8pRaq7aRHRoDUCzAIu3kGYIXviOv8BjCuWm8vDBwjHcjiRNgXrPA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-flow": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz", - "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", - "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "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==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/plugin-transform-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", - "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", - "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", - "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", - "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", - "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", - "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", - "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", - "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", - "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", - "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", - "dev": true, - "requires": { - "@babel/helper-call-delegate": "^7.8.3", - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", - "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-react-constant-elements": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.8.3.tgz", - "integrity": "sha512-glrzN2U+egwRfkNFtL34xIBYTxbbUF2qJTP8HD3qETBBqzAWSeNB821X0GjU06+dNpq/UyCIjI72FmGE5NNkQQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz", - "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.8.3.tgz", - "integrity": "sha512-r0h+mUiyL595ikykci+fbwm9YzmuOrUBi0b+FDIKmi3fPQyFokWVEMJnRWHJPPQEjyFJyna9WZC6Viv6UHSv1g==", - "dev": true, - "requires": { - "@babel/helper-builder-react-jsx": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.8.3.tgz", - "integrity": "sha512-01OT7s5oa0XTLf2I8XGsL8+KqV9lx3EZV+jxn/L2LQ97CGKila2YMroTkCEIE0HV/FF7CMSRsIAybopdN9NTdg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.8.3.tgz", - "integrity": "sha512-PLMgdMGuVDtRS/SzjNEQYUT8f4z1xb2BAT54vM1X5efkVuYBf5WyGUMbpmARcfq3NaglIwz08UVQK4HHHbC6ag==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", - "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.0" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", - "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.8.3.tgz", - "integrity": "sha512-/vqUt5Yh+cgPZXXjmaG9NT8aVfThKk7G4OqkVhrXqwsC5soMn/qTCxs36rZ2QFhpfTJcjw4SNDIZ4RUb8OL4jQ==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "resolve": "^1.8.1", - "semver": "^5.5.1" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", - "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", - "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", - "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-regex": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", - "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", - "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.8.3.tgz", - "integrity": "sha512-Ebj230AxcrKGZPKIp4g4TdQLrqX95TobLUWKd/CwG7X1XHUH1ZpkpFvXuXqWbtGRWb7uuEWNlrl681wsOArAdQ==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-typescript": "^7.8.3" - }, - "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.8.3" - } - }, - "@babel/generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz", - "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==", - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.3.tgz", - "integrity": "sha512-qmp4pD7zeTxsv0JNecSBsEmG1ei2MqwJq4YQcK3ZWm/0t07QstWfvuV/vm3Qt5xNMFETn2SZqpMx2MQzbtq+KA==", - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", - "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", - "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" - }, - "@babel/helper-replace-supers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", - "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", - "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz", - "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==" - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz", - "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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.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.3.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "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" - } - } - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", - "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/preset-env": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz", - "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.8.4", - "@babel/helper-compilation-targets": "^7.8.4", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.8.3", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.8.3", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.8.3", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.8.4", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.8.3", - "@babel/plugin-transform-modules-commonjs": "^7.8.3", - "@babel/plugin-transform-modules-systemjs": "^7.8.3", - "@babel/plugin-transform-modules-umd": "^7.8.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.4", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.3", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/types": "^7.8.3", - "browserslist": "^4.8.5", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/preset-react": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.8.3.tgz", - "integrity": "sha512-9hx0CwZg92jGb7iHYQVgi0tOEHP/kM60CtWJQnmbATSPIQQ2xYzfoCI3EdqAhFBeeJwYMdWQuDUHMsuDbH9hyQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-transform-react-display-name": "^7.8.3", - "@babel/plugin-transform-react-jsx": "^7.8.3", - "@babel/plugin-transform-react-jsx-self": "^7.8.3", - "@babel/plugin-transform-react-jsx-source": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } - } - }, - "@babel/preset-typescript": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.8.3.tgz", - "integrity": "sha512-qee5LgPGui9zQ0jR1TeU5/fP9L+ovoArklEqY12ek8P/wV5ZeM/VYSQYwICeoT6FfpJTekG9Ilay5PhwsOpMHA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-transform-typescript": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" - } - } - }, - "@babel/runtime": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz", - "integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.2" - } - }, - "@babel/template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", - "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4" - } - }, - "@babel/traverse": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz", - "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.4", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.4.5", - "@babel/types": "^7.4.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.11" - } - }, - "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - }, - "@cnakazawa/watch": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.3.tgz", - "integrity": "sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==", - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.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==", - "dev": true - }, - "@csstools/normalize.css": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", - "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==", - "dev": true - }, - "@fluentui/react-focus": { - "version": "7.1.13", - "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-7.1.13.tgz", - "integrity": "sha512-voY84/vRkcZGUHSwrPO6eEplc0EGKRGf06ov826NdzMq8s2BXoG2JMMdFNclFppQsCtcXOCPmfzwGHShJvGu5g==", - "requires": { - "@uifabric/merge-styles": "^7.8.11", - "@uifabric/set-version": "^7.0.9", - "@uifabric/styling": "^7.11.2", - "@uifabric/utilities": "^7.15.5", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" - } - } - }, - "@formatjs/intl-relativetimeformat": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-2.8.0.tgz", - "integrity": "sha512-5T3m5hJSxXrbwtnFHyYBSbTjOXPXu+4NJ0MUu1LAf4fPEdd+pJZfWKuMJSWgFQPVMbLYq9NLvDWQda3hVe99sg==" - }, - "@gulp-sourcemaps/identity-map": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz", - "integrity": "sha512-ciiioYMLdo16ShmfHBXJBOFm3xPC4AuwO4xeRpFeHz7WK9PYsWCmigagG2XyzZpubK4a3qNKoUBDhbzHfa50LQ==", - "dev": true, - "requires": { - "acorn": "^5.0.3", - "css": "^2.2.1", - "normalize-path": "^2.1.1", - "source-map": "^0.6.0", - "through2": "^2.0.3" - }, - "dependencies": { - "acorn": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", - "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", - "dev": true - } - } - }, - "@gulp-sourcemaps/map-sources": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", - "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", - "dev": true, - "requires": { - "normalize-path": "^2.0.1", - "through2": "^2.0.3" - } - }, - "@hapi/address": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", - "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==", - "dev": true - }, - "@hapi/bourne": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", - "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==", - "dev": true - }, - "@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", - "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==", - "dev": true - }, - "@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==", - "dev": true, - "requires": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" - } - }, - "@hapi/topo": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", - "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", - "dev": true, - "requires": { - "@hapi/hoek": "^8.3.0" - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", - "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "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" - } - }, - "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.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==" - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==" - }, - "@jest/console": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", - "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", - "dev": true, - "requires": { - "@jest/source-map": "^24.9.0", - "chalk": "^2.0.1", - "slash": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@jest/core": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.1.0.tgz", - "integrity": "sha512-iz05+NmwCmZRzMXvMo6KFipW7nzhbpEawrKrkkdJzgytavPse0biEnCNr2wRlyCsp3SmKaEY+SGv7YWYQnIdig==", - "requires": { - "@jest/console": "^25.1.0", - "@jest/reporters": "^25.1.0", - "@jest/test-result": "^25.1.0", - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.3", - "jest-changed-files": "^25.1.0", - "jest-config": "^25.1.0", - "jest-haste-map": "^25.1.0", - "jest-message-util": "^25.1.0", - "jest-regex-util": "^25.1.0", - "jest-resolve": "^25.1.0", - "jest-resolve-dependencies": "^25.1.0", - "jest-runner": "^25.1.0", - "jest-runtime": "^25.1.0", - "jest-snapshot": "^25.1.0", - "jest-util": "^25.1.0", - "jest-validate": "^25.1.0", - "jest-watcher": "^25.1.0", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "realpath-native": "^1.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "@jest/console": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.1.0.tgz", - "integrity": "sha512-3P1DpqAMK/L07ag/Y9/Jup5iDEG9P4pRAuZiMQnU0JB3UOvCyYCjCoxr7sIA80SeyUCUKrr24fKAxVpmBgQonA==", - "requires": { - "@jest/source-map": "^25.1.0", - "chalk": "^3.0.0", - "jest-util": "^25.1.0", - "slash": "^3.0.0" - } - }, - "@jest/source-map": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.1.0.tgz", - "integrity": "sha512-ohf2iKT0xnLWcIUhL6U6QN+CwFWf9XnrM2a6ybL9NXxJjgYijjLSitkYHIdzkd8wFliH73qj/+epIpTiWjRtAA==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.3", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.1.0.tgz", - "integrity": "sha512-FZzSo36h++U93vNWZ0KgvlNuZ9pnDnztvaM7P/UcTx87aPDotG18bXifkf1Ji44B7k/eIatmMzkBapnAzjkJkg==", - "requires": { - "@jest/console": "^25.1.0", - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "ansi-escapes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", - "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", - "requires": { - "type-fest": "^0.8.1" - } - }, - "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": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.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" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "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.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==", - "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==" - }, - "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" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "jest-message-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.1.0.tgz", - "integrity": "sha512-Nr/Iwar2COfN22aCqX0kCVbXgn8IBm9nWf4xwGr5Olv/KZh0CZ32RKgZWMVDXGdOahicM10/fgjdimGNX/ttCQ==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-resolve": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.1.0.tgz", - "integrity": "sha512-XkBQaU1SRCHj2Evz2Lu4Czs+uIgJXWypfO57L7JYccmAXv4slXA6hzNblmcRmf7P3cQ1mE7fL3ABV6jAwk4foQ==", - "requires": { - "@jest/types": "^25.1.0", - "browser-resolve": "^1.11.3", - "chalk": "^3.0.0", - "jest-pnp-resolver": "^1.2.1", - "realpath-native": "^1.1.0" - } - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1" - } - }, - "jest-watcher": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.1.0.tgz", - "integrity": "sha512-Q9eZ7pyaIr6xfU24OeTg4z1fUqBF/4MP6J801lyQfg7CsnZ/TCzAPvCfckKdL5dlBBEKBeHV0AdyjFZ5eWj4ig==", - "requires": { - "@jest/test-result": "^25.1.0", - "@jest/types": "^25.1.0", - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "jest-util": "^25.1.0", - "string-length": "^3.1.0" - } - }, - "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.1", - "picomatch": "^2.0.5" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "string-length": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", - "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", - "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^5.2.0" - }, - "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" - } - } - } - }, - "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==" - } - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "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" - } - } - } - }, - "@jest/environment": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.1.0.tgz", - "integrity": "sha512-cTpUtsjU4cum53VqBDlcW0E4KbQF03Cn0jckGPW/5rrE9tb+porD3+hhLtHAwhthsqfyF+bizyodTlsRA++sHg==", - "requires": { - "@jest/fake-timers": "^25.1.0", - "@jest/types": "^25.1.0", - "jest-mock": "^25.1.0" - }, - "dependencies": { - "@jest/console": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.1.0.tgz", - "integrity": "sha512-3P1DpqAMK/L07ag/Y9/Jup5iDEG9P4pRAuZiMQnU0JB3UOvCyYCjCoxr7sIA80SeyUCUKrr24fKAxVpmBgQonA==", - "requires": { - "@jest/source-map": "^25.1.0", - "chalk": "^3.0.0", - "jest-util": "^25.1.0", - "slash": "^3.0.0" - } - }, - "@jest/fake-timers": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.1.0.tgz", - "integrity": "sha512-Eu3dysBzSAO1lD7cylZd/CVKdZZ1/43SF35iYBNV1Lvvn2Undp3Grwsv8PrzvbLhqwRzDd4zxrY4gsiHc+wygQ==", - "requires": { - "@jest/types": "^25.1.0", - "jest-message-util": "^25.1.0", - "jest-mock": "^25.1.0", - "jest-util": "^25.1.0", - "lolex": "^5.0.0" - } - }, - "@jest/source-map": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.1.0.tgz", - "integrity": "sha512-ohf2iKT0xnLWcIUhL6U6QN+CwFWf9XnrM2a6ybL9NXxJjgYijjLSitkYHIdzkd8wFliH73qj/+epIpTiWjRtAA==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.3", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.1.0.tgz", - "integrity": "sha512-FZzSo36h++U93vNWZ0KgvlNuZ9pnDnztvaM7P/UcTx87aPDotG18bXifkf1Ji44B7k/eIatmMzkBapnAzjkJkg==", - "requires": { - "@jest/console": "^25.1.0", - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.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" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "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.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==", - "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==" - }, - "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" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "jest-message-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.1.0.tgz", - "integrity": "sha512-Nr/Iwar2COfN22aCqX0kCVbXgn8IBm9nWf4xwGr5Olv/KZh0CZ32RKgZWMVDXGdOahicM10/fgjdimGNX/ttCQ==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-mock": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.1.0.tgz", - "integrity": "sha512-28/u0sqS+42vIfcd1mlcg4ZVDmSUYuNvImP4X2lX5hRMLW+CN0BeiKVD4p+ujKKbSPKd3rg/zuhCF+QBLJ4vag==", - "requires": { - "@jest/types": "^25.1.0" - } - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1" - } - }, - "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.1", - "picomatch": "^2.0.5" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "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" - } - } - } - }, - "@jest/fake-timers": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", - "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", - "dev": true, - "requires": { - "@jest/types": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - } - } - }, - "@jest/reporters": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.1.0.tgz", - "integrity": "sha512-ORLT7hq2acJQa8N+NKfs68ZtHFnJPxsGqmofxW7v7urVhzJvpKZG9M7FAcgh9Ee1ZbCteMrirHA3m5JfBtAaDg==", - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^25.1.0", - "@jest/environment": "^25.1.0", - "@jest/test-result": "^25.1.0", - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.0", - "jest-haste-map": "^25.1.0", - "jest-resolve": "^25.1.0", - "jest-runtime": "^25.1.0", - "jest-util": "^25.1.0", - "jest-worker": "^25.1.0", - "node-notifier": "^6.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^3.1.0", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^4.0.1" - }, - "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.8.3" - } - }, - "@babel/core": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz", - "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.3", - "@babel/helpers": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz", - "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==", - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helpers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz", - "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==", - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "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.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.3.0" - } - }, - "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=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "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" - } - } - } - }, - "@babel/parser": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz", - "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==" - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz", - "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "@jest/console": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.1.0.tgz", - "integrity": "sha512-3P1DpqAMK/L07ag/Y9/Jup5iDEG9P4pRAuZiMQnU0JB3UOvCyYCjCoxr7sIA80SeyUCUKrr24fKAxVpmBgQonA==", - "requires": { - "@jest/source-map": "^25.1.0", - "chalk": "^3.0.0", - "jest-util": "^25.1.0", - "slash": "^3.0.0" - } - }, - "@jest/source-map": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.1.0.tgz", - "integrity": "sha512-ohf2iKT0xnLWcIUhL6U6QN+CwFWf9XnrM2a6ybL9NXxJjgYijjLSitkYHIdzkd8wFliH73qj/+epIpTiWjRtAA==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.3", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.1.0.tgz", - "integrity": "sha512-FZzSo36h++U93vNWZ0KgvlNuZ9pnDnztvaM7P/UcTx87aPDotG18bXifkf1Ji44B7k/eIatmMzkBapnAzjkJkg==", - "requires": { - "@jest/console": "^25.1.0", - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "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": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "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.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==", - "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==" - }, - "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.1" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" - }, - "istanbul-lib-instrument": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.0.tgz", - "integrity": "sha512-Nm4wVHdo7ZXSG30KjZ2Wl5SU/Bw7bDx1PdaiIFzEStdjs0H12mOTncn1GVYuqQSaZxpg87VGBRsVRPGD2cD1AQ==", - "requires": { - "@babel/core": "^7.7.5", - "@babel/parser": "^7.7.5", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - } - }, - "jest-resolve": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.1.0.tgz", - "integrity": "sha512-XkBQaU1SRCHj2Evz2Lu4Czs+uIgJXWypfO57L7JYccmAXv4slXA6hzNblmcRmf7P3cQ1mE7fL3ABV6jAwk4foQ==", - "requires": { - "@jest/types": "^25.1.0", - "browser-resolve": "^1.11.3", - "chalk": "^3.0.0", - "jest-pnp-resolver": "^1.2.1", - "realpath-native": "^1.1.0" - } - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "requires": { - "minimist": "^1.2.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "string-length": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", - "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", - "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^5.2.0" - } - }, - "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" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/source-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", - "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.1.15", - "source-map": "^0.6.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - } - } - }, - "@jest/test-result": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", - "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", - "dev": true, - "requires": { - "@jest/console": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/istanbul-lib-coverage": "^2.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - } - } - }, - "@jest/test-sequencer": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.1.0.tgz", - "integrity": "sha512-WgZLRgVr2b4l/7ED1J1RJQBOharxS11EFhmwDqknpknE0Pm87HLZVS2Asuuw+HQdfQvm2aXL2FvvBLxOD1D0iw==", - "requires": { - "@jest/test-result": "^25.1.0", - "jest-haste-map": "^25.1.0", - "jest-runner": "^25.1.0", - "jest-runtime": "^25.1.0" - }, - "dependencies": { - "@jest/console": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.1.0.tgz", - "integrity": "sha512-3P1DpqAMK/L07ag/Y9/Jup5iDEG9P4pRAuZiMQnU0JB3UOvCyYCjCoxr7sIA80SeyUCUKrr24fKAxVpmBgQonA==", - "requires": { - "@jest/source-map": "^25.1.0", - "chalk": "^3.0.0", - "jest-util": "^25.1.0", - "slash": "^3.0.0" - } - }, - "@jest/source-map": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.1.0.tgz", - "integrity": "sha512-ohf2iKT0xnLWcIUhL6U6QN+CwFWf9XnrM2a6ybL9NXxJjgYijjLSitkYHIdzkd8wFliH73qj/+epIpTiWjRtAA==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.3", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.1.0.tgz", - "integrity": "sha512-FZzSo36h++U93vNWZ0KgvlNuZ9pnDnztvaM7P/UcTx87aPDotG18bXifkf1Ji44B7k/eIatmMzkBapnAzjkJkg==", - "requires": { - "@jest/console": "^25.1.0", - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "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.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==", - "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==" - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/transform": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.1.0.tgz", - "integrity": "sha512-4ktrQ2TPREVeM+KxB4zskAT84SnmG1vaz4S+51aTefyqn3zocZUnliLLm5Fsl85I3p/kFPN4CRp1RElIfXGegQ==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^25.1.0", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^3.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.1.0", - "jest-regex-util": "^25.1.0", - "jest-util": "^25.1.0", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "realpath-native": "^1.1.0", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.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.8.3" - } - }, - "@babel/generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz", - "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==", - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helpers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz", - "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==", - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.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.3.0" - } - } - } - }, - "@babel/parser": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz", - "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==" - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz", - "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - } - }, - "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" - } - }, - "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.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "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" - } - }, - "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.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "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==" - }, - "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" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" - }, - "istanbul-lib-instrument": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.0.tgz", - "integrity": "sha512-Nm4wVHdo7ZXSG30KjZ2Wl5SU/Bw7bDx1PdaiIFzEStdjs0H12mOTncn1GVYuqQSaZxpg87VGBRsVRPGD2cD1AQ==", - "requires": { - "@babel/core": "^7.7.5", - "@babel/parser": "^7.7.5", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "@babel/core": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz", - "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.3", - "@babel/helpers": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "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.1" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "requires": { - "minimist": "^1.2.0" - } - }, - "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.1", - "picomatch": "^2.0.5" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "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" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.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" - } - }, - "write-file-atomic": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.1.tgz", - "integrity": "sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - } - } - }, - "@jest/types": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.1.0.tgz", - "integrity": "sha512-VpOtt7tCrgvamWZh1reVsGADujKigBUFTi19mlRjqEGsE8qH4r3s+skY33dNdXOwyZIvuftZ5tqdF1IgsMejMA==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - }, - "dependencies": { - "@types/yargs": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.1.tgz", - "integrity": "sha512-sYlwNU7zYi6eZbMzFvG6eHD7VsEvFdoDtlD7eI1JTg7YNnuguzmiGsc6MPSq5l8n+h21AsNof0je+9sgOe4+dg==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "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.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==", - "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.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@microsoft/load-themed-styles": { - "version": "1.10.43", - "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.43.tgz", - "integrity": "sha512-9RUeBMXPHbT/qHTRIQi9oQs3bw5JkQGBQ8ayjycq95q+1OUI9jBJPiJi2d8btpGdJWisVb3ZXxRsUx5u6f5dRA==" - }, - "@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==", - "dev": true, - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, - "@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==", - "dev": true - }, - "@serialport/binding-abstract": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@serialport/binding-abstract/-/binding-abstract-8.0.6.tgz", - "integrity": "sha512-1swwUVoRyQ9ubxrkJ8JPppykohUpTAP4jkGr36e9NjbVocSPfqeX6tFZFwl/IdUlwJwxGdbKDqq7FvXniCQUMw==", - "requires": { - "debug": "^4.1.1" - } - }, - "@serialport/binding-mock": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-8.0.6.tgz", - "integrity": "sha512-BIbY5/PsDDo0QWDNCCxDgpowAdks+aZR8BOsEtK2GoASTTcJCy1fBwPIfH870o7rnbH901wY3C+yuTfdOvSO9A==", - "requires": { - "@serialport/binding-abstract": "^8.0.6", - "debug": "^4.1.1" - } - }, - "@serialport/bindings": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/@serialport/bindings/-/bindings-8.0.7.tgz", - "integrity": "sha512-IqudDL8ne2Y2S0W5fKA6wdgHCIA2e2OIaPVYhGy6duE6legNHFY+05CLicHAyAeTocXmHU7rVNxzVQrOG5tM4g==", - "requires": { - "@serialport/binding-abstract": "^8.0.6", - "@serialport/parser-readline": "^8.0.6", - "bindings": "^1.5.0", - "debug": "^4.1.1", - "nan": "^2.14.0", - "prebuild-install": "^5.3.0" - } - }, - "@serialport/parser-byte-length": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-8.0.6.tgz", - "integrity": "sha512-92mrFxFEvq3gRvSM7ANK/jfbmHslz91a5oYJy/nbSn4H/MCRXjxR2YOkQgVXuN+zLt+iyDoW3pcOP4Sc1nWdqQ==" - }, - "@serialport/parser-cctalk": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-8.0.6.tgz", - "integrity": "sha512-pqtCYQPgxnxHygiXUPCfgX7sEx+fdR/ObjpscidynEULUq2fFrC5kBkrxRbTfHRtTaU2ii9DyjFq0JVRCbhI0Q==" - }, - "@serialport/parser-delimiter": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-8.0.6.tgz", - "integrity": "sha512-ogKOcPisPMlVtirkuDu3SFTF0+xT0ijxoH7XjpZiYL41EVi367MwuCnEmXG+dEKKnF0j9EPqOyD2LGSJxaFmhQ==" - }, - "@serialport/parser-readline": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-8.0.6.tgz", - "integrity": "sha512-OYBT2mpczh9QUI3MTw8j0A0tIlPVjpVipvuVnjRkYwxrxPeq04RaLFhaDpuRzua5rTKMt89c1y3btYeoDXMjAA==", - "requires": { - "@serialport/parser-delimiter": "^8.0.6" - } - }, - "@serialport/parser-ready": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-8.0.6.tgz", - "integrity": "sha512-xcEqv4rc119WR5JzAuu8UeJOlAwET2PTdNb6aIrrLlmTxhvuBbuRFcsnF3BpH9jUL30Kh7a6QiNXIwVG+WR/1Q==" - }, - "@serialport/parser-regex": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-8.0.6.tgz", - "integrity": "sha512-J8KY75Azz5ZyExmyM5YfUxbXOWBkZCytKgCCmZ966ttwZS0bUZOuoCaZj2Zp4VILJAiLuxHoqc0foi67Fri5+g==" - }, - "@serialport/stream": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-8.0.6.tgz", - "integrity": "sha512-ym1PwM0rwLrj90vRBB66I1hwMXbuMw9wGTxqns75U3N/tuNFOH85mxXaYVF2TpI66aM849NoI1jMm50fl9equg==", - "requires": { - "debug": "^4.1.1" - } - }, - "@sheerun/mutationobserver-shim": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.2.tgz", - "integrity": "sha512-vTCdPp/T/Q3oSqwHmZ5Kpa9oI7iLtGl3RQaA/NyLHikvcrPxACkkKVr/XzkSPJWXHRhKGzVvb0urJsbMlRxi1Q==" - }, - "@sinonjs/commons": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.0.tgz", - "integrity": "sha512-qbk9AP+cZUsKdW1GJsBpxPKFmCJ0T8swwzVje3qFd+AkQb74Q/tiuzrdfFg8AD2g5HH/XbE/I8Uc1KYHVYWfhg==", - "requires": { - "type-detect": "4.0.8" - } - }, - "@svgr/babel-plugin-add-jsx-attribute": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz", - "integrity": "sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig==", - "dev": true - }, - "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz", - "integrity": "sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ==", - "dev": true - }, - "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz", - "integrity": "sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w==", - "dev": true - }, - "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz", - "integrity": "sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w==", - "dev": true - }, - "@svgr/babel-plugin-svg-dynamic-title": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.3.3.tgz", - "integrity": "sha512-w3Be6xUNdwgParsvxkkeZb545VhXEwjGMwExMVBIdPQJeyMQHqm9Msnb2a1teHBqUYL66qtwfhNkbj1iarCG7w==", - "dev": true - }, - "@svgr/babel-plugin-svg-em-dimensions": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz", - "integrity": "sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w==", - "dev": true - }, - "@svgr/babel-plugin-transform-react-native-svg": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz", - "integrity": "sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw==", - "dev": true - }, - "@svgr/babel-plugin-transform-svg-component": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz", - "integrity": "sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw==", - "dev": true - }, - "@svgr/babel-preset": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-4.3.3.tgz", - "integrity": "sha512-6PG80tdz4eAlYUN3g5GZiUjg2FMcp+Wn6rtnz5WJG9ITGEF1pmFdzq02597Hn0OmnQuCVaBYQE1OVFAnwOl+0A==", - "dev": true, - "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "^4.2.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^4.2.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^4.2.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^4.2.0", - "@svgr/babel-plugin-svg-dynamic-title": "^4.3.3", - "@svgr/babel-plugin-svg-em-dimensions": "^4.2.0", - "@svgr/babel-plugin-transform-react-native-svg": "^4.2.0", - "@svgr/babel-plugin-transform-svg-component": "^4.2.0" - } - }, - "@svgr/core": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-4.3.3.tgz", - "integrity": "sha512-qNuGF1QON1626UCaZamWt5yedpgOytvLj5BQZe2j1k1B8DUG4OyugZyfEwBeXozCUwhLEpsrgPrE+eCu4fY17w==", - "dev": true, - "requires": { - "@svgr/plugin-jsx": "^4.3.3", - "camelcase": "^5.3.1", - "cosmiconfig": "^5.2.1" - } - }, - "@svgr/hast-util-to-babel-ast": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.2.tgz", - "integrity": "sha512-JioXclZGhFIDL3ddn4Kiq8qEqYM2PyDKV0aYno8+IXTLuYt6TOgHUbUAAFvqtb0Xn37NwP0BTHglejFoYr8RZg==", - "dev": true, - "requires": { - "@babel/types": "^7.4.4" - } - }, - "@svgr/plugin-jsx": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz", - "integrity": "sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w==", - "dev": true, - "requires": { - "@babel/core": "^7.4.5", - "@svgr/babel-preset": "^4.3.3", - "@svgr/hast-util-to-babel-ast": "^4.3.2", - "svg-parser": "^2.0.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==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/core": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", - "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.4", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", - "dev": true, - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@svgr/plugin-svgo": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-4.3.1.tgz", - "integrity": "sha512-PrMtEDUWjX3Ea65JsVCwTIXuSqa3CG9px+DluF1/eo9mlDrgrtFE7NE/DjdhjJgSM9wenlVBzkzneSIUgfUI/w==", - "dev": true, - "requires": { - "cosmiconfig": "^5.2.1", - "merge-deep": "^3.0.2", - "svgo": "^1.2.2" - } - }, - "@svgr/webpack": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.3.3.tgz", - "integrity": "sha512-bjnWolZ6KVsHhgyCoYRFmbd26p8XVbulCzSG53BDQqAr+JOAderYK7CuYrB3bDjHJuF6LJ7Wrr42+goLRV9qIg==", - "dev": true, - "requires": { - "@babel/core": "^7.4.5", - "@babel/plugin-transform-react-constant-elements": "^7.0.0", - "@babel/preset-env": "^7.4.5", - "@babel/preset-react": "^7.0.0", - "@svgr/core": "^4.3.3", - "@svgr/plugin-jsx": "^4.3.3", - "@svgr/plugin-svgo": "^4.3.1", - "loader-utils": "^1.2.3" - }, - "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==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/core": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", - "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.4", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", - "dev": true, - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@testing-library/dom": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-6.11.0.tgz", - "integrity": "sha512-Pkx9LMIGshyNbfmecjt18rrAp/ayMqGH674jYER0SXj0iG9xZc+zWRjk2Pg9JgPBDvwI//xGrI/oOQkAi4YEew==", - "requires": { - "@babel/runtime": "^7.6.2", - "@sheerun/mutationobserver-shim": "^0.3.2", - "@types/testing-library__dom": "^6.0.0", - "aria-query": "3.0.0", - "pretty-format": "^24.9.0", - "wait-for-expect": "^3.0.0" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz", - "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==", - "requires": { - "regenerator-runtime": "^0.13.2" - } - } - } - }, - "@testing-library/jest-dom": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.0.2.tgz", - "integrity": "sha512-Pl3si4eH88+5wlVz6NjecLfeO7PjTbbgWKwVZXUtBfrGuJLjGdUUo+O92XRu/59wft8HAmwvXHeMWpqWTg2Uwg==", - "requires": { - "@babel/runtime": "^7.5.1", - "@types/testing-library__jest-dom": "^5.0.0", - "chalk": "^2.4.1", - "css": "^2.2.3", - "css.escape": "^1.5.1", - "jest-diff": "^24.0.0", - "jest-matcher-utils": "^24.0.0", - "lodash": "^4.17.11", - "pretty-format": "^24.0.0", - "redent": "^3.0.0" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz", - "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==", - "requires": { - "regenerator-runtime": "^0.13.2" - } - }, - "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.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.3.0" - } - }, - "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" - } - } - } - }, - "@testing-library/react": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-9.4.0.tgz", - "integrity": "sha512-XdhDWkI4GktUPsz0AYyeQ8M9qS/JFie06kcSnUVcpgOwFjAu9vhwR83qBl+lw9yZWkbECjL8Hd+n5hH6C0oWqg==", - "requires": { - "@babel/runtime": "^7.7.6", - "@testing-library/dom": "^6.11.0", - "@types/testing-library__react": "^9.1.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz", - "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==", - "requires": { - "regenerator-runtime": "^0.13.2" - } - } - } - }, - "@types/babel__core": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.3.tgz", - "integrity": "sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", - "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz", - "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.8.tgz", - "integrity": "sha512-yGeB2dHEdvxjP0y4UbRtQaSkXJ9649fYCmIdRoul5kfAoGCwxuCbMhag0k3RPfnuh9kPGm8x89btcfDEXdVWGw==", - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true - }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", - "dev": true - }, - "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", - "dev": true, - "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", - "requires": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "@types/invariant": { - "version": "2.2.30", - "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.30.tgz", - "integrity": "sha512-98fB+yo7imSD2F7PF7GIpELNgtLNgo5wjivu0W5V4jx+KVVJxo6p/qN4zdzSTBWy4/sN3pPyXwnhRSD28QX+ag==" - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==" - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz", - "integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==", - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.9.0.tgz", - "integrity": "sha512-dXvuABY9nM1xgsXlOtLQXJKdacxZJd7AtvLsKZ/0b57ruMXDKCOXAC/M75GbllQX6o1pcZ5hAG4JzYy7Z/wM2w==", - "requires": { - "jest-diff": "^24.3.0" - } - }, - "@types/json-schema": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", - "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "@types/node": { - "version": "10.14.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.7.tgz", - "integrity": "sha512-on4MmIDgHXiuJDELPk1NFaKVUxxCFr37tm8E9yN6rAiF5Pzp/9bBfBHkoexqRiY+hk/Z04EJU9kKEb59YqJ82A==" - }, - "@types/open": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/open/-/open-6.1.0.tgz", - "integrity": "sha512-sdB0OltczakZfdn5DYg3ZbHoQeYtU8Vbo4dys0U98gikn++M4gGDI02dzEWXPMP5uXGSjGx9GnK/yLlJMfGjlg==", - "requires": { - "@types/node": "*" - } - }, - "@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==", - "dev": true - }, - "@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.2", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", - "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==", - "dev": true - }, - "@types/react": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.6.tgz", - "integrity": "sha512-bN9qDjEMltmHrl0PZRI4IF2AbB7V5UlRfG+OOduckVnRQ4VzXVSzy/1eLAh778IEqhTnW0mmgL9yShfinNverA==", - "requires": { - "@types/prop-types": "*", - "csstype": "^2.2.0" - } - }, - "@types/react-dom": { - "version": "16.8.4", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.8.4.tgz", - "integrity": "sha512-eIRpEW73DCzPIMaNBDP5pPIpK1KXyZwNgfxiVagb5iGiz6da+9A5hslSX6GAQKdO7SayVCS/Fr2kjqprgAvkfA==", - "requires": { - "@types/react": "*" - } - }, - "@types/react-test-renderer": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.9.2.tgz", - "integrity": "sha512-4eJr1JFLIAlWhzDkBCkhrOIWOvOxcCAfQh+jiKg7l/nNZcCIL2MHl2dZhogIFKyHzedVWHaVP1Yydq/Ruu4agw==", - "requires": { - "@types/react": "*" - } - }, - "@types/socket.io": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@types/socket.io/-/socket.io-2.1.2.tgz", - "integrity": "sha512-Ind+4qMNfQ62llyB4IMs1D8znMEBsMKohZBPqfBUIXqLQ9bdtWIbNTBWwtdcBWJKnokMZGcmWOOKslatni5vtA==", - "requires": { - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" - }, - "@types/testing-library__dom": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.11.1.tgz", - "integrity": "sha512-ImChHtQqmjwraRLqBC2sgSQFtczeFvBmBcfhTYZn/3KwXbyD07LQykEQ0xJo7QHc1GbVvf7pRyGaIe6PkCdxEw==", - "requires": { - "pretty-format": "^24.3.0" - } - }, - "@types/testing-library__jest-dom": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.0.0.tgz", - "integrity": "sha512-Pm+2mvqs9sND247oMVJbu3QmPUqMzBuJbY5uHHYQdl9MXq5hwWkTbesw1sPIky52Y0sHksWAZnVvGLbdyFSyrA==", - "requires": { - "@types/jest": "*" - } - }, - "@types/testing-library__react": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@types/testing-library__react/-/testing-library__react-9.1.2.tgz", - "integrity": "sha512-CYaMqrswQ+cJACy268jsLAw355DZtPZGt3Jwmmotlcu8O/tkoXBI6AeZ84oZBJsIsesozPKzWzmv/0TIU+1E9Q==", - "requires": { - "@types/react-dom": "*", - "@types/testing-library__dom": "*" - } - }, - "@types/vscode": { - "version": "1.45.1", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.45.1.tgz", - "integrity": "sha512-0NO9qrrEJBO8FsqHCrFMgR2suKnwCsKBWvRSb2OzH5gs4i3QO5AhEMQYrSzDbU/wLPt7N617/rN9lPY213gmwg==", - "dev": true - }, - "@types/yargs": { - "version": "13.0.8", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz", - "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", - "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" - }, - "@typescript-eslint/eslint-plugin": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.20.0.tgz", - "integrity": "sha512-cimIdVDV3MakiGJqMXw51Xci6oEDEoPkvh8ggJe2IIzcc0fYqAxOXN6Vbeanahz6dLZq64W+40iUEc9g32FLDQ==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "2.20.0", - "eslint-utils": "^1.4.3", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.20.0.tgz", - "integrity": "sha512-fEBy9xYrwG9hfBLFEwGW2lKwDRTmYzH3DwTmYbT+SMycmxAoPl0eGretnBFj/s+NfYBG63w/5c3lsvqqz5mYag==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.20.0", - "eslint-scope": "^5.0.0" - }, - "dependencies": { - "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - } - } - }, - "@typescript-eslint/parser": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.20.0.tgz", - "integrity": "sha512-o8qsKaosLh2qhMZiHNtaHKTHyCHc3Triq6aMnwnWj7budm3xAY9owSZzV1uon5T9cWmJRJGzTFa90aex4m77Lw==", - "dev": true, - "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.20.0", - "@typescript-eslint/typescript-estree": "2.20.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "@typescript-eslint/typescript-estree": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.20.0.tgz", - "integrity": "sha512-WlFk8QtI8pPaE7JGQGxU7nGcnk1ccKAJkhbVookv94ZcAef3m6oCE/jEDL6dGte3JcD7reKrA0o55XhBRiVT3A==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^6.3.0", - "tsutils": "^3.17.1" - }, - "dependencies": { - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@uifabric/foundation": { - "version": "7.5.25", - "resolved": "https://registry.npmjs.org/@uifabric/foundation/-/foundation-7.5.25.tgz", - "integrity": "sha512-5PcqVMjXG1or7GrZHCWQ1SRNcCUV6lPm7OoAi1AKtVrSEi69g56VjJCJ7sqc/Q587ehDN6LqK9RhLc2IhQVO+Q==", - "requires": { - "@uifabric/merge-styles": "^7.8.11", - "@uifabric/set-version": "^7.0.9", - "@uifabric/styling": "^7.11.2", - "@uifabric/utilities": "^7.15.5", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" - } - } - }, - "@uifabric/icons": { - "version": "7.3.24", - "resolved": "https://registry.npmjs.org/@uifabric/icons/-/icons-7.3.24.tgz", - "integrity": "sha512-0CkTEgY8xwvNs+zUQcvWKLnuYxudjJfPI016385bqizE9dkCMyAfXer/7sgyrp6FjxNUrHGyQUKvdVoT3zSNYA==", - "requires": { - "@uifabric/set-version": "^7.0.9", - "@uifabric/styling": "^7.11.2", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" - } - } - }, - "@uifabric/merge-styles": { - "version": "7.8.11", - "resolved": "https://registry.npmjs.org/@uifabric/merge-styles/-/merge-styles-7.8.11.tgz", - "integrity": "sha512-U1gYewj/j6ZGBSXD84Ekp+En4N5hH79TsK9hWJq2wKJKK3h0MKmY50WyFKWIL2/kS+wM7zIR6irK0xY+mfjB2g==", - "requires": { - "@uifabric/set-version": "^7.0.9", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" - } - } - }, - "@uifabric/react-hooks": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@uifabric/react-hooks/-/react-hooks-7.1.2.tgz", - "integrity": "sha512-gFsjCeh+g0rZYSx13WIJcA2HLxNKiY4RQsxLuOq1cMsBgiUGix8ofMPd3S5ys+qfVdl+XwoqlV/25PgvIRrpUA==", - "requires": { - "@uifabric/set-version": "^7.0.9", - "@uifabric/utilities": "^7.15.5", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" - } - } - }, - "@uifabric/set-version": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@uifabric/set-version/-/set-version-7.0.9.tgz", - "integrity": "sha512-YJL6WLBlFKDJcLSw1ihqW5PTFi2XMoluEvwGd2qtzp2IVbHvdbk7uIdWuTALo3dFNNqWPN8shSNUdHVATE/1jQ==", - "requires": { - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" - } - } - }, - "@uifabric/styling": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@uifabric/styling/-/styling-7.11.2.tgz", - "integrity": "sha512-0so6oM6d0WOogDiOxT5bbfOrkGEvhrmRukSrgr1mY/3tkQ3gue/XW4yus0fNi7H9R8wZa2rIPQaUcZBW3Hrc0g==", - "requires": { - "@microsoft/load-themed-styles": "^1.10.26", - "@uifabric/merge-styles": "^7.8.11", - "@uifabric/set-version": "^7.0.9", - "@uifabric/utilities": "^7.15.5", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" - } - } - }, - "@uifabric/utilities": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@uifabric/utilities/-/utilities-7.15.5.tgz", - "integrity": "sha512-cjnhT7tTvHNXt0rvuajk5s/RQtSWFh2JfRhbmS7dTGfg3vNieoHg2EiNt+ulzKXxtdkFriXoFHRSNkTuV4/L9w==", - "requires": { - "@uifabric/merge-styles": "^7.8.11", - "@uifabric/set-version": "^7.0.9", - "prop-types": "^15.7.2", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" - } - } - }, - "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", - "@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==", - "dev": true - }, - "@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==", - "dev": true - }, - "abab": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", - "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==" - }, - "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.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==" - }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", - "dev": true - }, - "acorn-globals": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.2.tgz", - "integrity": "sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ==", - "requires": { - "acorn": "^6.0.1", - "acorn-walk": "^6.0.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" - } - } - }, - "acorn-jsx": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz", - "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==", - "dev": true - }, - "acorn-walk": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", - "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==" - }, - "address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", - "dev": true - }, - "adjust-sourcemap-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz", - "integrity": "sha512-4hFsTsn58+YjrU9qKzML2JSSDqKvN8mUGQ0nNIrfPi8hmIONT4L3uUaT6MKdMsZ9AjsU6D2xDkZxCkbQPxChrA==", - "dev": true, - "requires": { - "assert": "1.4.1", - "camelcase": "5.0.0", - "loader-utils": "1.2.3", - "object-path": "0.11.4", - "regex-parser": "2.2.10" - }, - "dependencies": { - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - } - }, - "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", - "dev": true - }, - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "aggregate-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", - "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "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==", - "dev": true - }, - "ajv-keywords": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", - "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", - "dev": true - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true - }, - "ansi-cyan": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", - "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-escapes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", - "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, - "ansi-red": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "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=" - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, - "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.4", - "normalize-path": "^2.1.1" - } - }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "dev": true, - "requires": { - "buffer-equal": "^1.0.0" - } - }, - "applicationinsights": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/applicationinsights/-/applicationinsights-1.0.8.tgz", - "integrity": "sha512-KzOOGdphOS/lXWMFZe5440LUdFbrLpMvh2SaRxn7BmiI550KAoSb2gIhiq6kJZ9Ir3AxRRztjhzif+e5P5IXIg==", - "requires": { - "diagnostic-channel": "0.2.0", - "diagnostic-channel-publishers": "0.2.1", - "zone.js": "0.7.6" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "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.2" - } - }, - "aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", - "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", - "requires": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "arity-n": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", - "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, - "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-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true - }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" - }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", - "dev": true - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "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.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", - "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", - "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.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.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==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "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==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - } - } - }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "dev": true, - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", - "dev": true - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", - "dev": true - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true - }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "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==", - "dev": true - } - } - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "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.flat": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", - "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", - "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.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.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==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "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==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - } - } - }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "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=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - } - }, - "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==", - "dev": true - }, - "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", - "dev": true - }, - "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "dev": true, - "requires": { - "async-done": "^1.2.2" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "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.7.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.4.tgz", - "integrity": "sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g==", - "dev": true, - "requires": { - "browserslist": "^4.8.3", - "caniuse-lite": "^1.0.30001020", - "chalk": "^2.4.2", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.26", - "postcss-value-parser": "^4.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-value-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz", - "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" - }, - "axobject-query": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.1.2.tgz", - "integrity": "sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ==", - "dev": true - }, - "azure-devops-node-api": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-7.2.0.tgz", - "integrity": "sha512-pMfGJ6gAQ7LRKTHgiRF+8iaUUeGAI0c8puLaqHLc7B8AR7W6GJLozK9RFeUHFjEGybC9/EB3r67WPd7e46zQ8w==", - "dev": true, - "requires": { - "os": "0.1.1", - "tunnel": "0.0.4", - "typed-rest-client": "1.2.0", - "underscore": "1.8.3" - } - }, - "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=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - } - } - }, - "babel-eslint": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.3.tgz", - "integrity": "sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - }, - "dependencies": { - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - } - } - }, - "babel-extract-comments": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz", - "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==", - "dev": true, - "requires": { - "babylon": "^6.18.0" - } - }, - "babel-jest": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.1.0.tgz", - "integrity": "sha512-tz0VxUhhOE2y+g8R2oFrO/2VtVjA1lkJeavlhExuRBg3LdNJY9gwQ+Vcvqt9+cqy71MCTJhewvTB7Qtnnr9SWg==", - "requires": { - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/babel__core": "^7.1.0", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^25.1.0", - "chalk": "^3.0.0", - "slash": "^3.0.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.8.3" - } - }, - "@babel/generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz", - "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==", - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helpers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz", - "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==", - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.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.3.0" - } - } - } - }, - "@babel/parser": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz", - "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==" - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz", - "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "@jest/transform": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.1.0.tgz", - "integrity": "sha512-4ktrQ2TPREVeM+KxB4zskAT84SnmG1vaz4S+51aTefyqn3zocZUnliLLm5Fsl85I3p/kFPN4CRp1RElIfXGegQ==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^25.1.0", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^3.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.1.0", - "jest-regex-util": "^25.1.0", - "jest-util": "^25.1.0", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "realpath-native": "^1.1.0", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "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.0" - } - }, - "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.0.4" - } - }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - } - }, - "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" - } - }, - "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.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "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" - } - }, - "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.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "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==" - }, - "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" - } - }, - "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", - "optional": true - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" - }, - "istanbul-lib-instrument": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.0.tgz", - "integrity": "sha512-Nm4wVHdo7ZXSG30KjZ2Wl5SU/Bw7bDx1PdaiIFzEStdjs0H12mOTncn1GVYuqQSaZxpg87VGBRsVRPGD2cD1AQ==", - "requires": { - "@babel/core": "^7.7.5", - "@babel/parser": "^7.7.5", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "@babel/core": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz", - "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.3", - "@babel/helpers": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "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.1" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "jest-haste-map": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.1.0.tgz", - "integrity": "sha512-/2oYINIdnQZAqyWSn1GTku571aAfs8NxzSErGek65Iu5o8JYb+113bZysRMcC/pjE5v9w0Yz+ldbj9NxrFyPyw==", - "requires": { - "@jest/types": "^25.1.0", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.3", - "jest-serializer": "^25.1.0", - "jest-util": "^25.1.0", - "jest-worker": "^25.1.0", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-regex-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.1.0.tgz", - "integrity": "sha512-9lShaDmDpqwg+xAd73zHydKrBbbrIi08Kk9YryBEBybQFg/lBWR/2BDjjiSE7KIppM9C5+c03XiDaZ+m4Pgs1w==" - }, - "jest-serializer": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.1.0.tgz", - "integrity": "sha512-20Wkq5j7o84kssBwvyuJ7Xhn7hdPeTXndnwIblKDR2/sy1SUm6rWWiG9kSCgJPIfkDScJCIsTtOKdlzfIHOfKA==" - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1" - } - }, - "jest-worker": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.1.0.tgz", - "integrity": "sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==", - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "requires": { - "minimist": "^1.2.0" - } - }, - "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==" - }, - "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.1", - "picomatch": "^2.0.5" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "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" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.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" - } - }, - "write-file-atomic": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.1.tgz", - "integrity": "sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - } - } - }, - "babel-loader": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz", - "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==", - "dev": true, - "requires": { - "find-cache-dir": "^2.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1", - "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-istanbul": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz", - "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "find-up": "^3.0.0", - "istanbul-lib-instrument": "^3.3.0", - "test-exclude": "^5.2.3" - } - }, - "babel-plugin-jest-hoist": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.1.0.tgz", - "integrity": "sha512-oIsopO41vW4YFZ9yNYoLQATnnN46lp+MZ6H4VvPKFkcc2/fkl3CfE/NZZSmnEIEsJRmJAgkVEK0R7Zbl50CpTw==", - "requires": { - "@types/babel__traverse": "^7.0.6" - } - }, - "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, - "requires": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "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==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "parse-json": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", - "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1", - "lines-and-columns": "^1.1.6" - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } - } - }, - "babel-plugin-named-asset-import": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.6.tgz", - "integrity": "sha512-1aGDUfL1qOOIoqk9QKGIo2lANk+C7ko/fqH0uIyC71x3PEGz0uVP8ISgfEsFuG+FKmjHTvFK/nNM8dowpmUxLA==", - "dev": true - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", - "dev": true - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "dev": true, - "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" - } - }, - "babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==", - "dev": true - }, - "babel-preset-jest": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.1.0.tgz", - "integrity": "sha512-eCGn64olaqwUMaugXsTtGAM2I0QTahjEtnRu0ql8Ie+gDWAc1N6wqN0k2NilnyTunM69Pad7gJY7LOtwLimoFQ==", - "requires": { - "@babel/plugin-syntax-bigint": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "babel-plugin-jest-hoist": "^25.1.0" - } - }, - "babel-preset-react-app": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-9.1.1.tgz", - "integrity": "sha512-YkWP2UwY//TLltNlEBRngDOrYhvSLb+CA330G7T9M5UhGEMWe+JK/8IXJc5p2fDTSfSiETf+PY0+PYXFMix81Q==", - "dev": true, - "requires": { - "@babel/core": "7.8.4", - "@babel/plugin-proposal-class-properties": "7.8.3", - "@babel/plugin-proposal-decorators": "7.8.3", - "@babel/plugin-proposal-numeric-separator": "7.8.3", - "@babel/plugin-transform-flow-strip-types": "7.8.3", - "@babel/plugin-transform-react-display-name": "7.8.3", - "@babel/plugin-transform-runtime": "7.8.3", - "@babel/preset-env": "7.8.4", - "@babel/preset-react": "7.8.3", - "@babel/preset-typescript": "7.8.3", - "@babel/runtime": "7.8.4", - "babel-plugin-macros": "2.8.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.24" - }, - "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==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/core": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", - "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.4", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", - "dev": true, - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "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==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - } - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "dev": true, - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "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.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "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.0" - } - }, - "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.0" - } - }, - "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.0" - } - }, - "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.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=" - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" - }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bl": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", - "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "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.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - }, - "bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "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.17" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "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": "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.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.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-process-hrtime": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", - "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==" - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" - } - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "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==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "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=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.8.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.7.tgz", - "integrity": "sha512-gFOnZNYBHrEyUML0xr5NJ6edFaaKbTFX9S9kQHlYfCP0Rit/boRIz4G+Avq6/4haEKJXdGGUnoolx+5MWW2BoA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001027", - "electron-to-chromium": "^1.3.349", - "node-releases": "^1.1.49" - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", - "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", - "dev": true - }, - "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==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "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=", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "cacache": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", - "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", - "dev": true, - "requires": { - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.2", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", - "ssri": "^7.0.0", - "unique-filename": "^1.1.1" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "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.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "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=", - "dev": true - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "requires": { - "callsites": "^2.0.0" - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "pascal-case": "^3.1.1", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.0.tgz", - "integrity": "sha512-BmndXUtiTn/VDDrJzQE7Mm22Ix3PxgLltW9bSNLoeCY31gnG2OPx0QqJnuc9oMIKioYrz487i6K9o4Pdn0j+Kg==", - "dev": true - } - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "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==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001028", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001028.tgz", - "integrity": "sha512-Vnrq+XMSHpT7E+LWoIYhs3Sne8h9lx9YJV3acH3THNCwU/9zV93/ta4xVfzTtnqd3rvnuVpVjE3DFqf56tr3aQ==", - "dev": true - }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "requires": { - "rsvp": "^4.8.4" - } - }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz", - "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "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.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "cheerio": { - "version": "1.0.0-rc.3", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", - "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", - "dev": true, - "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.1", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash": "^4.15.0", - "parse5": "^3.0.1" - }, - "dependencies": { - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "dev": true, - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "parse5": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", - "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", - "dev": true, - "requires": { - "@types/node": "*" - } - } - } - }, - "chokidar": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", - "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - } - } - }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==" - }, - "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==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "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==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "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.0", - "static-extend": "^0.1.1" - }, - "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.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, - "clone-deep": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", - "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", - "dev": true, - "requires": { - "for-own": "^0.1.3", - "is-plain-object": "^2.0.1", - "kind-of": "^3.0.2", - "lazy-cache": "^1.0.3", - "shallow-clone": "^0.1.2" - } - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dev": true, - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "collect-v8-coverage": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.0.tgz", - "integrity": "sha512-VKIhJgvk8E1W28m5avZ2Gv2Ruv5YiF56ug2oclvaG9md69BuZImMG2sk9g7QNKLUbtYAKQjXjYxbYZVUlMMKmQ==" - }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "dev": true, - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } - } - }, - "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.0" - } - }, - "color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", - "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", - "dev": true, - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, - "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.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" - }, - "common-tags": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", - "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "compare-versions": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.5.1.tgz", - "integrity": "sha512-9fGPIB7C6AyM18CJJBHt5EnCZDG3oiTJYy0NjfIAGjKpzv0tkxWko7TNQHF5ymqm7IH03tqmeuBxtvD+Izh6mg==" - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" - }, - "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==" - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" - }, - "compose-function": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", - "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", - "dev": true, - "requires": { - "arity-n": "^1.0.4" - } - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - }, - "dependencies": { - "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", - "dev": true - } - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "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==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "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==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "confusing-browser-globals": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", - "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==", - "dev": true - }, - "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==", - "dev": true - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "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==", - "dev": true - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copy-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", - "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", - "dev": true, - "requires": { - "each-props": "^1.3.0", - "is-plain-object": "^2.0.1" - } - }, - "core-js": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", - "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", - "dev": true - }, - "core-js-compat": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", - "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", - "dev": true, - "requires": { - "browserslist": "^4.8.3", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "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": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "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==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "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.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "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==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.5" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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=", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.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==", - "dev": true, - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^5.0.0-rc.4" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", - "dev": true - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "css-loader": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", - "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "css-selector-tokenizer": "^0.7.0", - "icss-utils": "^2.1.0", - "loader-utils": "^1.0.2", - "lodash": "^4.17.11", - "postcss": "^6.0.23", - "postcss-modules-extract-imports": "^1.2.0", - "postcss-modules-local-by-default": "^1.2.0", - "postcss-modules-scope": "^1.1.0", - "postcss-modules-values": "^1.3.0", - "postcss-value-parser": "^3.3.0", - "source-list-map": "^2.0.0" - } - }, - "css-modules-loader-core": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz", - "integrity": "sha1-WQhmgpShvs0mGuCkziGwtVHyHRY=", - "requires": { - "icss-replace-symbols": "1.1.0", - "postcss": "6.0.1", - "postcss-modules-extract-imports": "1.1.0", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", - "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", - "requires": { - "chalk": "^1.1.3", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "postcss-modules-extract-imports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", - "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", - "requires": { - "postcss": "^6.0.1" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.5" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.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==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - }, - "dependencies": { - "css-what": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz", - "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==", - "dev": true - } - } - }, - "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==", - "dev": true - }, - "css-selector-tokenizer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", - "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", - "requires": { - "cssesc": "^0.1.0", - "fastparse": "^1.1.1", - "regexpu-core": "^1.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - } - }, - "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==", - "dev": true - }, - "css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" - }, - "cssdb": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", - "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==", - "dev": true - }, - "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=" - }, - "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "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" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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=", - "dev": true - }, - "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=", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true - }, - "csso": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.2.tgz", - "integrity": "sha512-kS7/oeNVXkHWxby5tHVxlhjizRCSv8QdU7hB2FpdAibDU8FjTAolhNjKNTiLzXtUrKT6HwClE81yXwEk1309wg==", - "dev": true, - "requires": { - "css-tree": "1.0.0-alpha.37" - } - }, - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "cssstyle": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", - "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", - "dev": true, - "requires": { - "cssom": "0.3.x" - } - }, - "csstype": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.8.tgz", - "integrity": "sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA==" - }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "dev": true - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "damerau-levenshtein": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", - "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", - "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", - "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" - }, - "dependencies": { - "whatwg-url": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", - "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "debug-fabulous": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", - "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", - "dev": true, - "requires": { - "debug": "3.X", - "memoizee": "0.4.X", - "object-assign": "4.X" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "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": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "requires": { - "mimic-response": "^2.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.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=" - }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "requires": { - "kind-of": "^5.0.2" - }, - "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==", - "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==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - } - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", - "dev": true - }, - "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.0.12" - } - }, - "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.0" - } - }, - "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.0" - } - }, - "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.2" - } - }, - "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==" - } - } - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "dependencies": { - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "denodeify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", - "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - }, - "detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", - "dev": true - }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "diagnostic-channel": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz", - "integrity": "sha1-zJmvlhLCP7H/8TYSxy8sv6qNWhc=", - "requires": { - "semver": "^5.3.0" - } - }, - "diagnostic-channel-publishers": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.2.1.tgz", - "integrity": "sha1-ji1geottef6IC1SLxYzGvrKIxPM=" - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "diff-sequences": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", - "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==" - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "path-type": "^3.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=", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "requires": { - "utila": "~0.4" - } - }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "dev": true, - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } - }, - "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==", - "dev": true - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "requires": { - "webidl-conversions": "^4.0.2" - } - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz", - "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==", - "dev": true, - "requires": { - "no-case": "^3.0.3", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.0.tgz", - "integrity": "sha512-BmndXUtiTn/VDDrJzQE7Mm22Ix3PxgLltW9bSNLoeCY31gnG2OPx0QqJnuc9oMIKioYrz487i6K9o4Pdn0j+Kg==", - "dev": true - } - } - }, - "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", - "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", - "dev": true - }, - "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "dev": true - }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.355", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.355.tgz", - "integrity": "sha512-zKO/wS+2ChI/jz9WAo647xSW8t2RmgRLFdbUb/77cORkUTargO+SCj4ctTHjBn2VeNFrsLgDT7IuDVrd3F8mLQ==", - "dev": true - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "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.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - } - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz", - "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==", - "requires": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "~7.4.2" - }, - "dependencies": { - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - }, - "ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==" - } - } - }, - "engine.io-client": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.1.tgz", - "integrity": "sha512-oVu9kBkGbcggulyVF0kz6BV3ganqUeqXvD79WOFKa+11oK692w1NyFkuEj4xrkFRpZhn92QOqTk4RQq5LiBXbQ==", - "requires": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==" - } - } - }, - "engine.io-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", - "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.4", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "tapable": "^1.0.0" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "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.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.50", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz", - "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==", - "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "^1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz", - "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==", - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - } - } - }, - "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "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", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz", - "integrity": "sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "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==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "eslint-config-react-app": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.0.tgz", - "integrity": "sha512-WrHjoGpKr1kLLiWDD81tme9jMM0hk5cMxasLSdyno6DdPt+IfLOrDJBVo6jN7tn4y1nzhs43TmUaZWO6Sf0blw==", - "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.9" - } - }, - "eslint-import-resolver-node": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", - "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - } - } - }, - "eslint-loader": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-3.0.3.tgz", - "integrity": "sha512-+YRqB95PnNvxNp1HEjQmvf9KNvCin5HXYYseOXVC2U0KEcw4IkQ2IQEBG46j7+gW39bMzeu0GsUhVbBY3Votpw==", - "dev": true, - "requires": { - "fs-extra": "^8.1.0", - "loader-fs-cache": "^1.0.2", - "loader-utils": "^1.2.3", - "object-hash": "^2.0.1", - "schema-utils": "^2.6.1" - }, - "dependencies": { - "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, - "schema-utils": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", - "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz", - "integrity": "sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - } - } - }, - "eslint-plugin-flowtype": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.6.0.tgz", - "integrity": "sha512-W5hLjpFfZyZsXfo5anlu7HM970JBDqbEshAJUkeczP6BFCIfJXuiIBQXyberLRtOStT0OGPF8efeTbxlHk4LpQ==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "eslint-plugin-import": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.0.tgz", - "integrity": "sha512-NK42oA0mUc8Ngn4kONOPsPB1XhbUvNHqF+g307dPV28aknPoiNnKLFd9em4nkswwepdF5ouieqv5Th/63U7YJQ==", - "dev": true, - "requires": { - "array-includes": "^3.0.3", - "array.prototype.flat": "^1.2.1", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.1", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.0", - "read-pkg-up": "^2.0.0", - "resolve": "^1.12.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - } - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz", - "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.4.5", - "aria-query": "^3.0.0", - "array-includes": "^3.0.3", - "ast-types-flow": "^0.0.7", - "axobject-query": "^2.0.2", - "damerau-levenshtein": "^1.0.4", - "emoji-regex": "^7.0.2", - "has": "^1.0.3", - "jsx-ast-utils": "^2.2.1" - } - }, - "eslint-plugin-react": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.18.0.tgz", - "integrity": "sha512-p+PGoGeV4SaZRDsXqdj9OWcOrOpZn8gXoGPcIQTzo2IDMbAKhNDnME9myZWqO3Ic4R3YmwAZ1lDjWl2R2hMUVQ==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.2.3", - "object.entries": "^1.1.1", - "object.fromentries": "^2.0.2", - "object.values": "^1.1.1", - "prop-types": "^15.7.2", - "resolve": "^1.14.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" - } - }, - "es-abstract": { - "version": "1.17.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", - "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", - "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.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.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==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "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==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "object.entries": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", - "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - } - } - }, - "eslint-plugin-react-hooks": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz", - "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", - "dev": true - }, - "espree": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz", - "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==", - "dev": true, - "requires": { - "acorn": "^7.1.0", - "acorn-jsx": "^5.1.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "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.1.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.1.0.tgz", - "integrity": "sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q==", - "dev": true, - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "event-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", - "dev": true, - "requires": { - "duplexer": "^0.1.1", - "from": "^0.1.7", - "map-stream": "0.0.7", - "pause-stream": "^0.0.11", - "split": "^1.0.1", - "stream-combiner": "^0.2.2", - "through": "^2.3.8" - } - }, - "eventemitter2": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", - "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=" - }, - "eventemitter3": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", - "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", - "dev": true - }, - "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", - "dev": true - }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "dev": true, - "requires": { - "original": "^1.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "exec-sh": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.2.tgz", - "integrity": "sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg==" - }, - "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.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" - }, - "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.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.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.0" - } - }, - "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.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "expect": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-25.1.0.tgz", - "integrity": "sha512-wqHzuoapQkhc3OKPlrpetsfueuEiMf3iWh0R8+duCu9PIjXoP7HgD5aeypwTnXUAjC8aMsiVDaWwlbJ1RlQ38g==", - "requires": { - "@jest/types": "^25.1.0", - "ansi-styles": "^4.0.0", - "jest-get-type": "^25.1.0", - "jest-matcher-utils": "^25.1.0", - "jest-message-util": "^25.1.0", - "jest-regex-util": "^25.1.0" - }, - "dependencies": { - "@jest/console": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.1.0.tgz", - "integrity": "sha512-3P1DpqAMK/L07ag/Y9/Jup5iDEG9P4pRAuZiMQnU0JB3UOvCyYCjCoxr7sIA80SeyUCUKrr24fKAxVpmBgQonA==", - "requires": { - "@jest/source-map": "^25.1.0", - "chalk": "^3.0.0", - "jest-util": "^25.1.0", - "slash": "^3.0.0" - } - }, - "@jest/source-map": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.1.0.tgz", - "integrity": "sha512-ohf2iKT0xnLWcIUhL6U6QN+CwFWf9XnrM2a6ybL9NXxJjgYijjLSitkYHIdzkd8wFliH73qj/+epIpTiWjRtAA==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.3", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.1.0.tgz", - "integrity": "sha512-FZzSo36h++U93vNWZ0KgvlNuZ9pnDnztvaM7P/UcTx87aPDotG18bXifkf1Ji44B7k/eIatmMzkBapnAzjkJkg==", - "requires": { - "@jest/console": "^25.1.0", - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "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.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.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" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "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.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==", - "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==" - }, - "diff-sequences": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.1.0.tgz", - "integrity": "sha512-nFIfVk5B/NStCsJ+zaPO4vYuLjlzQ6uFvPxzYyHlejNZ/UGa7G/n7peOXVrVNvRuyfstt+mZQYGpjxg9Z6N8Kw==" - }, - "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" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "jest-diff": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.1.0.tgz", - "integrity": "sha512-nepXgajT+h017APJTreSieh4zCqnSHEJ1iT8HDlewu630lSJ4Kjjr9KNzm+kzGwwcpsDE6Snx1GJGzzsefaEHw==", - "requires": { - "chalk": "^3.0.0", - "diff-sequences": "^25.1.0", - "jest-get-type": "^25.1.0", - "pretty-format": "^25.1.0" - } - }, - "jest-get-type": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.1.0.tgz", - "integrity": "sha512-yWkBnT+5tMr8ANB6V+OjmrIJufHtCAqI5ic2H40v+tRqxDmE0PGnIiTyvRWFOMtmVHYpwRqyazDbTnhpjsGvLw==" - }, - "jest-matcher-utils": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.1.0.tgz", - "integrity": "sha512-KGOAFcSFbclXIFE7bS4C53iYobKI20ZWleAdAFun4W1Wz1Kkej8Ng6RRbhL8leaEvIOjGXhGf/a1JjO8bkxIWQ==", - "requires": { - "chalk": "^3.0.0", - "jest-diff": "^25.1.0", - "jest-get-type": "^25.1.0", - "pretty-format": "^25.1.0" - } - }, - "jest-message-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.1.0.tgz", - "integrity": "sha512-Nr/Iwar2COfN22aCqX0kCVbXgn8IBm9nWf4xwGr5Olv/KZh0CZ32RKgZWMVDXGdOahicM10/fgjdimGNX/ttCQ==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1" - } - }, - "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.1", - "picomatch": "^2.0.5" - } - }, - "pretty-format": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.1.0.tgz", - "integrity": "sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ==", - "requires": { - "@jest/types": "^25.1.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "react-is": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", - "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "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" - } - } - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "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.5", - "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": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - } - } - }, - "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": "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" - } - } - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^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.0" - } - }, - "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.0" - } - }, - "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.0" - } - }, - "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.0" - } - }, - "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.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - } - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==" - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fb-watchman": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", - "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", - "requires": { - "bser": "^2.0.0" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "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": "4.3.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz", - "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==", - "dev": true, - "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.5.0" - }, - "dependencies": { - "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, - "schema-utils": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", - "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1" - } - } - } - }, - "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==" - }, - "filesize": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz", - "integrity": "sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg==", - "dev": true - }, - "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.0" - }, - "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.0" - } - } - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "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==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "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==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true - }, - "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "dev": true, - "requires": { - "is-buffer": "~2.0.3" - } - }, - "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.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", - "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", - "dev": true - }, - "flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", - "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "follow-redirects": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.10.0.tgz", - "integrity": "sha512-4eyLK6s6lH32nOvLLwlIOnr9zrL8Sm+OvW4pVTJNoXeGzYIkHVf+pADQi+OJ0E67hiuSLezPVPyBcIZO50TmmQ==", - "dev": true, - "requires": { - "debug": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "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=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "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==", - "dev": true, - "requires": { - "babel-code-frame": "^6.22.0", - "chalk": "^2.4.1", - "chokidar": "^3.3.0", - "micromatch": "^3.1.10", - "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0", - "worker-rpc": "^0.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", - "dev": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chokidar": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", - "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.3.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "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==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "readdirp": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", - "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", - "dev": true, - "requires": { - "picomatch": "^2.0.7" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "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=", - "dev": true - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "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.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - } - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.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=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "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": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": false, - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": false, - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "resolved": false, - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": false, - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": false, - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "resolved": false, - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": false, - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": false, - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": false, - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "resolved": false, - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": false, - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "resolved": false, - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "resolved": false, - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "resolved": false, - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": false, - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": false, - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": false, - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "resolved": false, - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": false, - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": false, - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": false, - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": false, - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "resolved": false, - "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "resolved": false, - "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": false, - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "resolved": false, - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "resolved": false, - "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==", - "dev": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "resolved": false, - "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==", - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": false, - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "resolved": false, - "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "resolved": false, - "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==", - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": false, - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": false, - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": false, - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "resolved": false, - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "resolved": false, - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": false, - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": false, - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "resolved": false, - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": false, - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": false, - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "resolved": false, - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": false, - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": false, - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "resolved": false, - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "resolved": false, - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": false, - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": false, - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": false, - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": false, - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": false, - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "resolved": false, - "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": false, - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "resolved": false, - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true, - "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 - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "generic-names": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-1.0.3.tgz", - "integrity": "sha1-LXhqEhruUIh2eWk56OO/+DbCCRc=", - "requires": { - "loader-utils": "^0.2.16" - }, - "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - } - } - }, - "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": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "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==", - "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=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "git-rev-sync": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/git-rev-sync/-/git-rev-sync-1.12.0.tgz", - "integrity": "sha1-RGhAbH5sO6TPRYeZnhrbKNnRr1U=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5", - "graceful-fs": "4.1.11", - "shelljs": "0.7.7" - }, - "dependencies": { - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - } - } - }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - } - }, - "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=", - "dev": true - }, - "glob-watcher": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", - "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "object.defaults": "^1.1.0" - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "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==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "dependencies": { - "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==", - "dev": true - } - } - }, - "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": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "dependencies": { - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - } - } - }, - "glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" - }, - "gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "dev": true, - "requires": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - } - }, - "gulp-cli": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", - "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.1.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.0.1", - "yargs": "^7.1.0" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - } - }, - "yargs-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", - "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } - } - } - }, - "gulp-filter": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/gulp-filter/-/gulp-filter-5.1.0.tgz", - "integrity": "sha1-oF4Rr/sHz33PQafeHLe2OsN4PnM=", - "dev": true, - "requires": { - "multimatch": "^2.0.0", - "plugin-error": "^0.1.2", - "streamfilter": "^1.0.5" - } - }, - "gulp-sourcemaps": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.5.tgz", - "integrity": "sha512-SYLBRzPTew8T5Suh2U8jCSDKY+4NARua4aqjj8HOysBh2tSgT9u4jc1FYirAdPx1akUxxDeK++fqw6Jg0LkQRg==", - "dev": true, - "requires": { - "@gulp-sourcemaps/identity-map": "1.X", - "@gulp-sourcemaps/map-sources": "1.X", - "acorn": "5.X", - "convert-source-map": "1.X", - "css": "2.X", - "debug-fabulous": "1.X", - "detect-newline": "2.X", - "graceful-fs": "4.X", - "source-map": "~0.6.0", - "strip-bom-string": "1.X", - "through2": "2.X" - }, - "dependencies": { - "acorn": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", - "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", - "dev": true - } - } - }, - "gulp-typescript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-5.0.1.tgz", - "integrity": "sha512-YuMMlylyJtUSHG1/wuSVTrZp60k1dMEFKYOvDf7OvbAJWrDtxxD4oZon4ancdWwzjj30ztiidhe4VXJniF0pIQ==", - "dev": true, - "requires": { - "ansi-colors": "^3.0.5", - "plugin-error": "^1.0.1", - "source-map": "^0.7.3", - "through2": "^3.0.0", - "vinyl": "^2.1.0", - "vinyl-fs": "^3.0.3" - }, - "dependencies": { - "plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - } - } - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - }, - "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", - "dev": true, - "requires": { - "readable-stream": "2 || 3" - } - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "requires": { - "glogg": "^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==", - "dev": true, - "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } - } - }, - "handle-thing": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", - "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "harmony-reflect": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", - "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==", - "dev": true - }, - "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.0.0" - } - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, - "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.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "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.0" - } - }, - "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-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "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.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "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==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hoist-non-react-statics": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz", - "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==", - "requires": { - "react-is": "^16.7.0" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "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==", - "dev": true - }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "requires": { - "whatwg-encoding": "^1.0.1" - } - }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", - "dev": true - }, - "html-escaper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz", - "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==" - }, - "html-minifier-terser": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.4.tgz", - "integrity": "sha512-fHwmKQ+GzhlqdxEtwrqLT7MSuheiA+rif5/dZgbz3GjoMXJzcRzy1L9NXoiiyxrnap+q5guSiv8Tz5lrh9g42g==", - "dev": true, - "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.6.3" - }, - "dependencies": { - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - } - } - }, - "html-webpack-plugin": { - "version": "4.0.0-beta.11", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.11.tgz", - "integrity": "sha512-4Xzepf0qWxf8CGg7/WQM5qBB2Lc/NFI7MhU59eUDTkuQp3skZczH4UA1d6oQyDEIoMDgERVhRyTdtUPZ5s5HBg==", - "dev": true, - "requires": { - "html-minifier-terser": "^5.0.1", - "loader-utils": "^1.2.3", - "lodash": "^4.17.15", - "pretty-error": "^2.1.1", - "tapable": "^1.1.3", - "util.promisify": "1.0.0" - } - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "http-parser-js": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", - "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "dev": true, - "requires": { - "agent-base": "4", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "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==", - "dev": true, - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "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=", - "dev": true - }, - "https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "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 < 3" - } - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" - }, - "icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "dev": true, - "requires": { - "postcss": "^6.0.1" - } - }, - "identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", - "dev": true, - "requires": { - "harmony-reflect": "^1.4.6" - } - }, - "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=", - "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 - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true - }, - "immer": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", - "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==", - "dev": true - }, - "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": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.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" - } - }, - "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==", - "dev": true, - "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=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "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==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "inquirer": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", - "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^2.4.2", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.2.0", - "rxjs": "^6.5.3", - "string-width": "^4.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "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": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "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-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", - "dev": true - }, - "intl-format-cache": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-4.1.13.tgz", - "integrity": "sha512-d/1NI8ctPZsPJU3G6k0pIuydnebeck7hG+wIHJOJUJm3eZ2+3bcZCD34o/Mc18M5ZiEZei02xsMtp8g1IQc23A==" - }, - "intl-locales-supported": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/intl-locales-supported/-/intl-locales-supported-1.4.5.tgz", - "integrity": "sha512-D7oriM5x46rd7kNlSW0f9noIBegFr3ReIM6xlMpwH4lfIPD/zvBelPlCjR10IK16boGJG9lKccOvRAM8wzpbrA==" - }, - "intl-messageformat": { - "version": "6.1.9", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-6.1.9.tgz", - "integrity": "sha512-vnPujdP+gpWK/+GxWUo3nWRfrUj67/NAZoBNAyCvZ0fnfWh5jvIkKNr5ZZYewdZ7J3cEFLU6hYYgWztiCEFZGg==", - "requires": { - "intl-format-cache": "^4.1.13", - "intl-messageformat-parser": "^3.0.7" - } - }, - "intl-messageformat-parser": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-3.0.7.tgz", - "integrity": "sha512-L16VbbV3NFaiZV65XwOIH9fBe52TS2EkOR0k8Y4ratsgTE7KPEbcUCUrz/iEQwJo7BcWY4ohkZbeYZRgAiPR1Q==" - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "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.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", - "dev": true - }, - "is": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/is/-/is-3.3.0.tgz", - "integrity": "sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "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=", - "dev": true - }, - "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.0.2" - } - }, - "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": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", - "dev": true - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" - }, - "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" - } - }, - "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=", - "dev": true, - "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-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.0.2" - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" - }, - "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.0.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.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", - "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==", - "dev": true - }, - "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=", - "dev": true - }, - "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-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" - }, - "is-generator-function": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz", - "integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==" - }, - "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==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", - "dev": true - }, - "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.0.2" - } - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-path-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.1.0.tgz", - "integrity": "sha512-Sc5j3/YnM8tDeyCsVeKlm/0p95075DyLmDEIkSgQ7mXkrOX+uTCtmQFm0CYzVyJwcCCmO3k8qfJt17SxQwB5Zw==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "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=", - "dev": true - }, - "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-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "requires": { - "has": "^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=", - "dev": true - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "html-comment-regex": "^1.1.0" - } - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "requires": { - "has-symbols": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true - }, - "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-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "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=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", - "dev": true, - "requires": { - "@babel/generator": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "istanbul-lib-coverage": "^2.0.5", - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" - }, - "make-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", - "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" - } - } - }, - "istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-2osTcC8zcOSUkImzN2EWQta3Vdi4WjjKw99P2yWx5mLnigAM0Rd5uYFn1cf2i/Ois45GkNjaoTqc5CxgMSX80A==", - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-25.1.0.tgz", - "integrity": "sha512-FV6jEruneBhokkt9MQk0WUFoNTwnF76CLXtwNMfsc0um0TlB/LG2yxUd0KqaFjEJ9laQmVWQWS0sG/t2GsuI0w==", - "requires": { - "@jest/core": "^25.1.0", - "import-local": "^3.0.2", - "jest-cli": "^25.1.0" - }, - "dependencies": { - "@jest/console": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.1.0.tgz", - "integrity": "sha512-3P1DpqAMK/L07ag/Y9/Jup5iDEG9P4pRAuZiMQnU0JB3UOvCyYCjCoxr7sIA80SeyUCUKrr24fKAxVpmBgQonA==", - "requires": { - "@jest/source-map": "^25.1.0", - "chalk": "^3.0.0", - "jest-util": "^25.1.0", - "slash": "^3.0.0" - } - }, - "@jest/source-map": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.1.0.tgz", - "integrity": "sha512-ohf2iKT0xnLWcIUhL6U6QN+CwFWf9XnrM2a6ybL9NXxJjgYijjLSitkYHIdzkd8wFliH73qj/+epIpTiWjRtAA==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.3", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.1.0.tgz", - "integrity": "sha512-FZzSo36h++U93vNWZ0KgvlNuZ9pnDnztvaM7P/UcTx87aPDotG18bXifkf1Ji44B7k/eIatmMzkBapnAzjkJkg==", - "requires": { - "@jest/console": "^25.1.0", - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "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.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "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.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.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==" - }, - "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==" - }, - "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" - } - }, - "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==" - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "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==" - }, - "jest-cli": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.1.0.tgz", - "integrity": "sha512-p+aOfczzzKdo3AsLJlhs8J5EW6ffVidfSZZxXedJ0mHPBOln1DccqFmGCoO8JWd4xRycfmwy1eoQkMsF8oekPg==", - "requires": { - "@jest/core": "^25.1.0", - "@jest/test-result": "^25.1.0", - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^25.1.0", - "jest-util": "^25.1.0", - "jest-validate": "^25.1.0", - "prompts": "^2.0.1", - "realpath-native": "^1.1.0", - "yargs": "^15.0.0" - } - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.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" - } - }, - "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.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.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "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" - } - }, - "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.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.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.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "yargs": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.1.0.tgz", - "integrity": "sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^16.1.0" - } - } - } - }, - "jest-changed-files": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.1.0.tgz", - "integrity": "sha512-bdL1aHjIVy3HaBO3eEQeemGttsq1BDlHgWcOjEOIAcga7OOEGWHD2WSu8HhL7I1F0mFFyci8VKU4tRNk+qtwDA==", - "requires": { - "@jest/types": "^25.1.0", - "execa": "^3.2.0", - "throat": "^5.0.0" - }, - "dependencies": { - "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.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "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.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "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==" - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "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" - } - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "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==" - }, - "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" - } - } - } - }, - "jest-config": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.1.0.tgz", - "integrity": "sha512-tLmsg4SZ5H7tuhBC5bOja0HEblM0coS3Wy5LTCb2C8ZV6eWLewHyK+3qSq9Bi29zmWQ7ojdCd3pxpx4l4d2uGw==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^25.1.0", - "@jest/types": "^25.1.0", - "babel-jest": "^25.1.0", - "chalk": "^3.0.0", - "glob": "^7.1.1", - "jest-environment-jsdom": "^25.1.0", - "jest-environment-node": "^25.1.0", - "jest-get-type": "^25.1.0", - "jest-jasmine2": "^25.1.0", - "jest-regex-util": "^25.1.0", - "jest-resolve": "^25.1.0", - "jest-util": "^25.1.0", - "jest-validate": "^25.1.0", - "micromatch": "^4.0.2", - "pretty-format": "^25.1.0", - "realpath-native": "^1.1.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==" - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.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" - } - }, - "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.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==", - "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==" - }, - "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" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "jest-get-type": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.1.0.tgz", - "integrity": "sha512-yWkBnT+5tMr8ANB6V+OjmrIJufHtCAqI5ic2H40v+tRqxDmE0PGnIiTyvRWFOMtmVHYpwRqyazDbTnhpjsGvLw==" - }, - "jest-resolve": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.1.0.tgz", - "integrity": "sha512-XkBQaU1SRCHj2Evz2Lu4Czs+uIgJXWypfO57L7JYccmAXv4slXA6hzNblmcRmf7P3cQ1mE7fL3ABV6jAwk4foQ==", - "requires": { - "@jest/types": "^25.1.0", - "browser-resolve": "^1.11.3", - "chalk": "^3.0.0", - "jest-pnp-resolver": "^1.2.1", - "realpath-native": "^1.1.0" - } - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1" - } - }, - "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.1", - "picomatch": "^2.0.5" - } - }, - "pretty-format": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.1.0.tgz", - "integrity": "sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ==", - "requires": { - "@jest/types": "^25.1.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "react-is": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", - "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "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" - } - } - } - }, - "jest-diff": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", - "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", - "requires": { - "chalk": "^2.0.1", - "diff-sequences": "^24.9.0", - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - }, - "dependencies": { - "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.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.3.0" - } - }, - "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" - } - } - } - }, - "jest-docblock": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-25.1.0.tgz", - "integrity": "sha512-370P/mh1wzoef6hUKiaMcsPtIapY25suP6JqM70V9RJvdKLrV4GaGbfUseUVk4FZJw4oTZ1qSCJNdrClKt5JQA==", - "requires": { - "detect-newline": "^3.0.0" - }, - "dependencies": { - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" - } - } - }, - "jest-each": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.1.0.tgz", - "integrity": "sha512-R9EL8xWzoPySJ5wa0DXFTj7NrzKpRD40Jy+zQDp3Qr/2QmevJgkN9GqioCGtAJ2bW9P/MQRznQHQQhoeAyra7A==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "jest-get-type": "^25.1.0", - "jest-util": "^25.1.0", - "pretty-format": "^25.1.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==" - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "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.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==", - "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==" - }, - "jest-get-type": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.1.0.tgz", - "integrity": "sha512-yWkBnT+5tMr8ANB6V+OjmrIJufHtCAqI5ic2H40v+tRqxDmE0PGnIiTyvRWFOMtmVHYpwRqyazDbTnhpjsGvLw==" - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1" - } - }, - "pretty-format": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.1.0.tgz", - "integrity": "sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ==", - "requires": { - "@jest/types": "^25.1.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "react-is": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", - "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.1.0.tgz", - "integrity": "sha512-ILb4wdrwPAOHX6W82GGDUiaXSSOE274ciuov0lztOIymTChKFtC02ddyicRRCdZlB5YSrv3vzr1Z5xjpEe1OHQ==", - "requires": { - "@jest/environment": "^25.1.0", - "@jest/fake-timers": "^25.1.0", - "@jest/types": "^25.1.0", - "jest-mock": "^25.1.0", - "jest-util": "^25.1.0", - "jsdom": "^15.1.1" - }, - "dependencies": { - "@jest/console": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.1.0.tgz", - "integrity": "sha512-3P1DpqAMK/L07ag/Y9/Jup5iDEG9P4pRAuZiMQnU0JB3UOvCyYCjCoxr7sIA80SeyUCUKrr24fKAxVpmBgQonA==", - "requires": { - "@jest/source-map": "^25.1.0", - "chalk": "^3.0.0", - "jest-util": "^25.1.0", - "slash": "^3.0.0" - } - }, - "@jest/fake-timers": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.1.0.tgz", - "integrity": "sha512-Eu3dysBzSAO1lD7cylZd/CVKdZZ1/43SF35iYBNV1Lvvn2Undp3Grwsv8PrzvbLhqwRzDd4zxrY4gsiHc+wygQ==", - "requires": { - "@jest/types": "^25.1.0", - "jest-message-util": "^25.1.0", - "jest-mock": "^25.1.0", - "jest-util": "^25.1.0", - "lolex": "^5.0.0" - } - }, - "@jest/source-map": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.1.0.tgz", - "integrity": "sha512-ohf2iKT0xnLWcIUhL6U6QN+CwFWf9XnrM2a6ybL9NXxJjgYijjLSitkYHIdzkd8wFliH73qj/+epIpTiWjRtAA==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.3", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.1.0.tgz", - "integrity": "sha512-FZzSo36h++U93vNWZ0KgvlNuZ9pnDnztvaM7P/UcTx87aPDotG18bXifkf1Ji44B7k/eIatmMzkBapnAzjkJkg==", - "requires": { - "@jest/console": "^25.1.0", - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.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" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "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.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==", - "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==" - }, - "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" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "jest-message-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.1.0.tgz", - "integrity": "sha512-Nr/Iwar2COfN22aCqX0kCVbXgn8IBm9nWf4xwGr5Olv/KZh0CZ32RKgZWMVDXGdOahicM10/fgjdimGNX/ttCQ==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-mock": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.1.0.tgz", - "integrity": "sha512-28/u0sqS+42vIfcd1mlcg4ZVDmSUYuNvImP4X2lX5hRMLW+CN0BeiKVD4p+ujKKbSPKd3rg/zuhCF+QBLJ4vag==", - "requires": { - "@jest/types": "^25.1.0" - } - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1" - } - }, - "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.1", - "picomatch": "^2.0.5" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "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" - } - } - } - }, - "jest-environment-jsdom-fourteen": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom-fourteen/-/jest-environment-jsdom-fourteen-1.0.1.tgz", - "integrity": "sha512-DojMX1sY+at5Ep+O9yME34CdidZnO3/zfPh8UW+918C5fIZET5vCjfkegixmsi7AtdYfkr4bPlIzmWnlvQkP7Q==", - "dev": true, - "requires": { - "@jest/environment": "^24.3.0", - "@jest/fake-timers": "^24.3.0", - "@jest/types": "^24.3.0", - "jest-mock": "^24.0.0", - "jest-util": "^24.0.0", - "jsdom": "^14.1.0" - }, - "dependencies": { - "@jest/environment": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz", - "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==", - "dev": true, - "requires": { - "@jest/fake-timers": "^24.9.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "jest-mock": "^24.9.0" - } - }, - "@jest/transform": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz", - "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^24.9.0", - "babel-plugin-istanbul": "^5.1.0", - "chalk": "^2.0.1", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.1.15", - "jest-haste-map": "^24.9.0", - "jest-regex-util": "^24.9.0", - "jest-util": "^24.9.0", - "micromatch": "^3.1.10", - "pirates": "^4.0.1", - "realpath-native": "^1.1.0", - "slash": "^2.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "2.4.1" - } - }, - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "jest-haste-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", - "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", - "dev": true, - "requires": { - "@jest/types": "^24.9.0", - "anymatch": "^2.0.0", - "fb-watchman": "^2.0.0", - "fsevents": "^1.2.7", - "graceful-fs": "^4.1.15", - "invariant": "^2.2.4", - "jest-serializer": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.9.0", - "micromatch": "^3.1.10", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-regex-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz", - "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==", - "dev": true - }, - "jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==", - "dev": true - }, - "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jsdom": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-14.1.0.tgz", - "integrity": "sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng==", - "dev": true, - "requires": { - "abab": "^2.0.0", - "acorn": "^6.0.4", - "acorn-globals": "^4.3.0", - "array-equal": "^1.0.0", - "cssom": "^0.3.4", - "cssstyle": "^1.1.1", - "data-urls": "^1.1.0", - "domexception": "^1.0.1", - "escodegen": "^1.11.0", - "html-encoding-sniffer": "^1.0.2", - "nwsapi": "^2.1.3", - "parse5": "5.1.0", - "pn": "^1.1.0", - "request": "^2.88.0", - "request-promise-native": "^1.0.5", - "saxes": "^3.1.9", - "symbol-tree": "^3.2.2", - "tough-cookie": "^2.5.0", - "w3c-hr-time": "^1.0.1", - "w3c-xmlserializer": "^1.1.2", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^7.0.0", - "ws": "^6.1.2", - "xml-name-validator": "^3.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "jest-environment-node": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.1.0.tgz", - "integrity": "sha512-U9kFWTtAPvhgYY5upnH9rq8qZkj6mYLup5l1caAjjx9uNnkLHN2xgZy5mo4SyLdmrh/EtB9UPpKFShvfQHD0Iw==", - "requires": { - "@jest/environment": "^25.1.0", - "@jest/fake-timers": "^25.1.0", - "@jest/types": "^25.1.0", - "jest-mock": "^25.1.0", - "jest-util": "^25.1.0" - }, - "dependencies": { - "@jest/console": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.1.0.tgz", - "integrity": "sha512-3P1DpqAMK/L07ag/Y9/Jup5iDEG9P4pRAuZiMQnU0JB3UOvCyYCjCoxr7sIA80SeyUCUKrr24fKAxVpmBgQonA==", - "requires": { - "@jest/source-map": "^25.1.0", - "chalk": "^3.0.0", - "jest-util": "^25.1.0", - "slash": "^3.0.0" - } - }, - "@jest/fake-timers": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.1.0.tgz", - "integrity": "sha512-Eu3dysBzSAO1lD7cylZd/CVKdZZ1/43SF35iYBNV1Lvvn2Undp3Grwsv8PrzvbLhqwRzDd4zxrY4gsiHc+wygQ==", - "requires": { - "@jest/types": "^25.1.0", - "jest-message-util": "^25.1.0", - "jest-mock": "^25.1.0", - "jest-util": "^25.1.0", - "lolex": "^5.0.0" - } - }, - "@jest/source-map": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.1.0.tgz", - "integrity": "sha512-ohf2iKT0xnLWcIUhL6U6QN+CwFWf9XnrM2a6ybL9NXxJjgYijjLSitkYHIdzkd8wFliH73qj/+epIpTiWjRtAA==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.3", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.1.0.tgz", - "integrity": "sha512-FZzSo36h++U93vNWZ0KgvlNuZ9pnDnztvaM7P/UcTx87aPDotG18bXifkf1Ji44B7k/eIatmMzkBapnAzjkJkg==", - "requires": { - "@jest/console": "^25.1.0", - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.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" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "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.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==", - "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==" - }, - "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" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "jest-message-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.1.0.tgz", - "integrity": "sha512-Nr/Iwar2COfN22aCqX0kCVbXgn8IBm9nWf4xwGr5Olv/KZh0CZ32RKgZWMVDXGdOahicM10/fgjdimGNX/ttCQ==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-mock": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.1.0.tgz", - "integrity": "sha512-28/u0sqS+42vIfcd1mlcg4ZVDmSUYuNvImP4X2lX5hRMLW+CN0BeiKVD4p+ujKKbSPKd3rg/zuhCF+QBLJ4vag==", - "requires": { - "@jest/types": "^25.1.0" - } - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1" - } - }, - "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.1", - "picomatch": "^2.0.5" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "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" - } - } - } - }, - "jest-get-type": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", - "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==" - }, - "jest-haste-map": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.1.0.tgz", - "integrity": "sha512-/2oYINIdnQZAqyWSn1GTku571aAfs8NxzSErGek65Iu5o8JYb+113bZysRMcC/pjE5v9w0Yz+ldbj9NxrFyPyw==", - "requires": { - "@jest/types": "^25.1.0", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.3", - "jest-serializer": "^25.1.0", - "jest-util": "^25.1.0", - "jest-worker": "^25.1.0", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "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.0.4" - } - }, - "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" - } - }, - "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.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==", - "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==" - }, - "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" - } - }, - "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", - "optional": true - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1" - } - }, - "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.1", - "picomatch": "^2.0.5" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "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" - } - } - } - }, - "jest-jasmine2": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.1.0.tgz", - "integrity": "sha512-GdncRq7jJ7sNIQ+dnXvpKO2MyP6j3naNK41DTTjEAhLEdpImaDA9zSAZwDhijjSF/D7cf4O5fdyUApGBZleaEg==", - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^25.1.0", - "@jest/source-map": "^25.1.0", - "@jest/test-result": "^25.1.0", - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "co": "^4.6.0", - "expect": "^25.1.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^25.1.0", - "jest-matcher-utils": "^25.1.0", - "jest-message-util": "^25.1.0", - "jest-runtime": "^25.1.0", - "jest-snapshot": "^25.1.0", - "jest-util": "^25.1.0", - "pretty-format": "^25.1.0", - "throat": "^5.0.0" - }, - "dependencies": { - "@jest/console": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.1.0.tgz", - "integrity": "sha512-3P1DpqAMK/L07ag/Y9/Jup5iDEG9P4pRAuZiMQnU0JB3UOvCyYCjCoxr7sIA80SeyUCUKrr24fKAxVpmBgQonA==", - "requires": { - "@jest/source-map": "^25.1.0", - "chalk": "^3.0.0", - "jest-util": "^25.1.0", - "slash": "^3.0.0" - } - }, - "@jest/source-map": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.1.0.tgz", - "integrity": "sha512-ohf2iKT0xnLWcIUhL6U6QN+CwFWf9XnrM2a6ybL9NXxJjgYijjLSitkYHIdzkd8wFliH73qj/+epIpTiWjRtAA==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.3", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.1.0.tgz", - "integrity": "sha512-FZzSo36h++U93vNWZ0KgvlNuZ9pnDnztvaM7P/UcTx87aPDotG18bXifkf1Ji44B7k/eIatmMzkBapnAzjkJkg==", - "requires": { - "@jest/console": "^25.1.0", - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "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.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.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" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "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.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==", - "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==" - }, - "diff-sequences": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.1.0.tgz", - "integrity": "sha512-nFIfVk5B/NStCsJ+zaPO4vYuLjlzQ6uFvPxzYyHlejNZ/UGa7G/n7peOXVrVNvRuyfstt+mZQYGpjxg9Z6N8Kw==" - }, - "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" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "jest-diff": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.1.0.tgz", - "integrity": "sha512-nepXgajT+h017APJTreSieh4zCqnSHEJ1iT8HDlewu630lSJ4Kjjr9KNzm+kzGwwcpsDE6Snx1GJGzzsefaEHw==", - "requires": { - "chalk": "^3.0.0", - "diff-sequences": "^25.1.0", - "jest-get-type": "^25.1.0", - "pretty-format": "^25.1.0" - } - }, - "jest-get-type": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.1.0.tgz", - "integrity": "sha512-yWkBnT+5tMr8ANB6V+OjmrIJufHtCAqI5ic2H40v+tRqxDmE0PGnIiTyvRWFOMtmVHYpwRqyazDbTnhpjsGvLw==" - }, - "jest-matcher-utils": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.1.0.tgz", - "integrity": "sha512-KGOAFcSFbclXIFE7bS4C53iYobKI20ZWleAdAFun4W1Wz1Kkej8Ng6RRbhL8leaEvIOjGXhGf/a1JjO8bkxIWQ==", - "requires": { - "chalk": "^3.0.0", - "jest-diff": "^25.1.0", - "jest-get-type": "^25.1.0", - "pretty-format": "^25.1.0" - } - }, - "jest-message-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.1.0.tgz", - "integrity": "sha512-Nr/Iwar2COfN22aCqX0kCVbXgn8IBm9nWf4xwGr5Olv/KZh0CZ32RKgZWMVDXGdOahicM10/fgjdimGNX/ttCQ==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1" - } - }, - "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.1", - "picomatch": "^2.0.5" - } - }, - "pretty-format": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.1.0.tgz", - "integrity": "sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ==", - "requires": { - "@jest/types": "^25.1.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "react-is": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", - "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "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" - } - } - } - }, - "jest-leak-detector": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.1.0.tgz", - "integrity": "sha512-3xRI264dnhGaMHRvkFyEKpDeaRzcEBhyNrOG5oT8xPxOyUAblIAQnpiR3QXu4wDor47MDTiHbiFcbypdLcLW5w==", - "requires": { - "jest-get-type": "^25.1.0", - "pretty-format": "^25.1.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==" - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "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==" - }, - "jest-get-type": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.1.0.tgz", - "integrity": "sha512-yWkBnT+5tMr8ANB6V+OjmrIJufHtCAqI5ic2H40v+tRqxDmE0PGnIiTyvRWFOMtmVHYpwRqyazDbTnhpjsGvLw==" - }, - "pretty-format": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.1.0.tgz", - "integrity": "sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ==", - "requires": { - "@jest/types": "^25.1.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "react-is": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", - "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==" - } - } - }, - "jest-matcher-utils": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", - "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", - "requires": { - "chalk": "^2.0.1", - "jest-diff": "^24.9.0", - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - }, - "dependencies": { - "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.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.3.0" - } - }, - "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" - } - } - } - }, - "jest-message-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", - "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^2.0.1", - "micromatch": "^3.1.10", - "slash": "^2.0.0", - "stack-utils": "^1.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-mock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", - "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", - "dev": true, - "requires": { - "@jest/types": "^24.9.0" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - } - } - }, - "jest-pnp-resolver": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz", - "integrity": "sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==" - }, - "jest-regex-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.1.0.tgz", - "integrity": "sha512-9lShaDmDpqwg+xAd73zHydKrBbbrIi08Kk9YryBEBybQFg/lBWR/2BDjjiSE7KIppM9C5+c03XiDaZ+m4Pgs1w==" - }, - "jest-resolve": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz", - "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==", - "dev": true, - "requires": { - "@jest/types": "^24.9.0", - "browser-resolve": "^1.11.3", - "chalk": "^2.0.1", - "jest-pnp-resolver": "^1.2.1", - "realpath-native": "^1.1.0" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.1.0.tgz", - "integrity": "sha512-Cu/Je38GSsccNy4I2vL12ZnBlD170x2Oh1devzuM9TLH5rrnLW1x51lN8kpZLYTvzx9j+77Y5pqBaTqfdzVzrw==", - "requires": { - "@jest/types": "^25.1.0", - "jest-regex-util": "^25.1.0", - "jest-snapshot": "^25.1.0" - } - }, - "jest-runner": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.1.0.tgz", - "integrity": "sha512-su3O5fy0ehwgt+e8Wy7A8CaxxAOCMzL4gUBftSs0Ip32S0epxyZPDov9Znvkl1nhVOJNf4UwAsnqfc3plfQH9w==", - "requires": { - "@jest/console": "^25.1.0", - "@jest/environment": "^25.1.0", - "@jest/test-result": "^25.1.0", - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.3", - "jest-config": "^25.1.0", - "jest-docblock": "^25.1.0", - "jest-haste-map": "^25.1.0", - "jest-jasmine2": "^25.1.0", - "jest-leak-detector": "^25.1.0", - "jest-message-util": "^25.1.0", - "jest-resolve": "^25.1.0", - "jest-runtime": "^25.1.0", - "jest-util": "^25.1.0", - "jest-worker": "^25.1.0", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - }, - "dependencies": { - "@jest/console": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.1.0.tgz", - "integrity": "sha512-3P1DpqAMK/L07ag/Y9/Jup5iDEG9P4pRAuZiMQnU0JB3UOvCyYCjCoxr7sIA80SeyUCUKrr24fKAxVpmBgQonA==", - "requires": { - "@jest/source-map": "^25.1.0", - "chalk": "^3.0.0", - "jest-util": "^25.1.0", - "slash": "^3.0.0" - } - }, - "@jest/source-map": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.1.0.tgz", - "integrity": "sha512-ohf2iKT0xnLWcIUhL6U6QN+CwFWf9XnrM2a6ybL9NXxJjgYijjLSitkYHIdzkd8wFliH73qj/+epIpTiWjRtAA==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.3", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.1.0.tgz", - "integrity": "sha512-FZzSo36h++U93vNWZ0KgvlNuZ9pnDnztvaM7P/UcTx87aPDotG18bXifkf1Ji44B7k/eIatmMzkBapnAzjkJkg==", - "requires": { - "@jest/console": "^25.1.0", - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.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" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "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.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==", - "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==" - }, - "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" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "jest-message-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.1.0.tgz", - "integrity": "sha512-Nr/Iwar2COfN22aCqX0kCVbXgn8IBm9nWf4xwGr5Olv/KZh0CZ32RKgZWMVDXGdOahicM10/fgjdimGNX/ttCQ==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-resolve": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.1.0.tgz", - "integrity": "sha512-XkBQaU1SRCHj2Evz2Lu4Czs+uIgJXWypfO57L7JYccmAXv4slXA6hzNblmcRmf7P3cQ1mE7fL3ABV6jAwk4foQ==", - "requires": { - "@jest/types": "^25.1.0", - "browser-resolve": "^1.11.3", - "chalk": "^3.0.0", - "jest-pnp-resolver": "^1.2.1", - "realpath-native": "^1.1.0" - } - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1" - } - }, - "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.1", - "picomatch": "^2.0.5" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "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" - } - } - } - }, - "jest-runtime": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.1.0.tgz", - "integrity": "sha512-mpPYYEdbExKBIBB16ryF6FLZTc1Rbk9Nx0ryIpIMiDDkOeGa0jQOKVI/QeGvVGlunKKm62ywcioeFVzIbK03bA==", - "requires": { - "@jest/console": "^25.1.0", - "@jest/environment": "^25.1.0", - "@jest/source-map": "^25.1.0", - "@jest/test-result": "^25.1.0", - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.3", - "jest-config": "^25.1.0", - "jest-haste-map": "^25.1.0", - "jest-message-util": "^25.1.0", - "jest-mock": "^25.1.0", - "jest-regex-util": "^25.1.0", - "jest-resolve": "^25.1.0", - "jest-snapshot": "^25.1.0", - "jest-util": "^25.1.0", - "jest-validate": "^25.1.0", - "realpath-native": "^1.1.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.0.0" - }, - "dependencies": { - "@jest/console": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.1.0.tgz", - "integrity": "sha512-3P1DpqAMK/L07ag/Y9/Jup5iDEG9P4pRAuZiMQnU0JB3UOvCyYCjCoxr7sIA80SeyUCUKrr24fKAxVpmBgQonA==", - "requires": { - "@jest/source-map": "^25.1.0", - "chalk": "^3.0.0", - "jest-util": "^25.1.0", - "slash": "^3.0.0" - } - }, - "@jest/source-map": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.1.0.tgz", - "integrity": "sha512-ohf2iKT0xnLWcIUhL6U6QN+CwFWf9XnrM2a6ybL9NXxJjgYijjLSitkYHIdzkd8wFliH73qj/+epIpTiWjRtAA==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.3", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.1.0.tgz", - "integrity": "sha512-FZzSo36h++U93vNWZ0KgvlNuZ9pnDnztvaM7P/UcTx87aPDotG18bXifkf1Ji44B7k/eIatmMzkBapnAzjkJkg==", - "requires": { - "@jest/console": "^25.1.0", - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@types/yargs": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.1.tgz", - "integrity": "sha512-sYlwNU7zYi6eZbMzFvG6eHD7VsEvFdoDtlD7eI1JTg7YNnuguzmiGsc6MPSq5l8n+h21AsNof0je+9sgOe4+dg==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "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.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.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" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "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.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.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==" - }, - "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==" - }, - "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" - } - }, - "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" - } - }, - "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==" - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "jest-message-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.1.0.tgz", - "integrity": "sha512-Nr/Iwar2COfN22aCqX0kCVbXgn8IBm9nWf4xwGr5Olv/KZh0CZ32RKgZWMVDXGdOahicM10/fgjdimGNX/ttCQ==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-mock": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.1.0.tgz", - "integrity": "sha512-28/u0sqS+42vIfcd1mlcg4ZVDmSUYuNvImP4X2lX5hRMLW+CN0BeiKVD4p+ujKKbSPKd3rg/zuhCF+QBLJ4vag==", - "requires": { - "@jest/types": "^25.1.0" - } - }, - "jest-resolve": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.1.0.tgz", - "integrity": "sha512-XkBQaU1SRCHj2Evz2Lu4Czs+uIgJXWypfO57L7JYccmAXv4slXA6hzNblmcRmf7P3cQ1mE7fL3ABV6jAwk4foQ==", - "requires": { - "@jest/types": "^25.1.0", - "browser-resolve": "^1.11.3", - "chalk": "^3.0.0", - "jest-pnp-resolver": "^1.2.1", - "realpath-native": "^1.1.0" - } - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.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": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "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.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==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "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" - } - }, - "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" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "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" - } - }, - "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.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "yargs": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.1.0.tgz", - "integrity": "sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^16.1.0" - } - } - } - }, - "jest-serializer": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.1.0.tgz", - "integrity": "sha512-20Wkq5j7o84kssBwvyuJ7Xhn7hdPeTXndnwIblKDR2/sy1SUm6rWWiG9kSCgJPIfkDScJCIsTtOKdlzfIHOfKA==" - }, - "jest-snapshot": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.1.0.tgz", - "integrity": "sha512-xZ73dFYN8b/+X2hKLXz4VpBZGIAn7muD/DAg+pXtDzDGw3iIV10jM7WiHqhCcpDZfGiKEj7/2HXAEPtHTj0P2A==", - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "expect": "^25.1.0", - "jest-diff": "^25.1.0", - "jest-get-type": "^25.1.0", - "jest-matcher-utils": "^25.1.0", - "jest-message-util": "^25.1.0", - "jest-resolve": "^25.1.0", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^25.1.0", - "semver": "^7.1.1" - }, - "dependencies": { - "@jest/console": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.1.0.tgz", - "integrity": "sha512-3P1DpqAMK/L07ag/Y9/Jup5iDEG9P4pRAuZiMQnU0JB3UOvCyYCjCoxr7sIA80SeyUCUKrr24fKAxVpmBgQonA==", - "requires": { - "@jest/source-map": "^25.1.0", - "chalk": "^3.0.0", - "jest-util": "^25.1.0", - "slash": "^3.0.0" - } - }, - "@jest/source-map": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.1.0.tgz", - "integrity": "sha512-ohf2iKT0xnLWcIUhL6U6QN+CwFWf9XnrM2a6ybL9NXxJjgYijjLSitkYHIdzkd8wFliH73qj/+epIpTiWjRtAA==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.3", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.1.0.tgz", - "integrity": "sha512-FZzSo36h++U93vNWZ0KgvlNuZ9pnDnztvaM7P/UcTx87aPDotG18bXifkf1Ji44B7k/eIatmMzkBapnAzjkJkg==", - "requires": { - "@jest/console": "^25.1.0", - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "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.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.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" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "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.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==", - "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==" - }, - "diff-sequences": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.1.0.tgz", - "integrity": "sha512-nFIfVk5B/NStCsJ+zaPO4vYuLjlzQ6uFvPxzYyHlejNZ/UGa7G/n7peOXVrVNvRuyfstt+mZQYGpjxg9Z6N8Kw==" - }, - "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" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "jest-diff": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.1.0.tgz", - "integrity": "sha512-nepXgajT+h017APJTreSieh4zCqnSHEJ1iT8HDlewu630lSJ4Kjjr9KNzm+kzGwwcpsDE6Snx1GJGzzsefaEHw==", - "requires": { - "chalk": "^3.0.0", - "diff-sequences": "^25.1.0", - "jest-get-type": "^25.1.0", - "pretty-format": "^25.1.0" - } - }, - "jest-get-type": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.1.0.tgz", - "integrity": "sha512-yWkBnT+5tMr8ANB6V+OjmrIJufHtCAqI5ic2H40v+tRqxDmE0PGnIiTyvRWFOMtmVHYpwRqyazDbTnhpjsGvLw==" - }, - "jest-matcher-utils": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.1.0.tgz", - "integrity": "sha512-KGOAFcSFbclXIFE7bS4C53iYobKI20ZWleAdAFun4W1Wz1Kkej8Ng6RRbhL8leaEvIOjGXhGf/a1JjO8bkxIWQ==", - "requires": { - "chalk": "^3.0.0", - "jest-diff": "^25.1.0", - "jest-get-type": "^25.1.0", - "pretty-format": "^25.1.0" - } - }, - "jest-message-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.1.0.tgz", - "integrity": "sha512-Nr/Iwar2COfN22aCqX0kCVbXgn8IBm9nWf4xwGr5Olv/KZh0CZ32RKgZWMVDXGdOahicM10/fgjdimGNX/ttCQ==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.1.0", - "@jest/types": "^25.1.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-resolve": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.1.0.tgz", - "integrity": "sha512-XkBQaU1SRCHj2Evz2Lu4Czs+uIgJXWypfO57L7JYccmAXv4slXA6hzNblmcRmf7P3cQ1mE7fL3ABV6jAwk4foQ==", - "requires": { - "@jest/types": "^25.1.0", - "browser-resolve": "^1.11.3", - "chalk": "^3.0.0", - "jest-pnp-resolver": "^1.2.1", - "realpath-native": "^1.1.0" - } - }, - "jest-util": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz", - "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==", - "requires": { - "@jest/types": "^25.1.0", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1" - } - }, - "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.1", - "picomatch": "^2.0.5" - } - }, - "pretty-format": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.1.0.tgz", - "integrity": "sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ==", - "requires": { - "@jest/types": "^25.1.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "react-is": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", - "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==" - }, - "semver": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", - "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "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" - } - } - } - }, - "jest-transform-css": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jest-transform-css/-/jest-transform-css-2.0.0.tgz", - "integrity": "sha512-KV5pD27qUltAVj0mZEVvqd+Ahe+WNPOVWKA1BRpIhBJ5OeUUOM46ivAznJrC5B1JrVNbMzWjPxnKl6QTsAAT3Q==", - "requires": { - "common-tags": "1.8.0", - "cosmiconfig": "5.0.6", - "cross-spawn": "6.0.5", - "postcss-load-config": "2.0.0", - "postcss-modules": "1.3.2", - "style-inject": "0.3.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.6.tgz", - "integrity": "sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==", - "requires": { - "is-directory": "^0.3.1", - "js-yaml": "^3.9.0", - "parse-json": "^4.0.0" - } - } - } - }, - "jest-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", - "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", - "dev": true, - "requires": { - "@jest/console": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/source-map": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "callsites": "^3.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.15", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1", - "slash": "^2.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-validate": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.1.0.tgz", - "integrity": "sha512-kGbZq1f02/zVO2+t1KQGSVoCTERc5XeObLwITqC6BTRH3Adv7NZdYqCpKIZLUgpLXf2yISzQ465qOZpul8abXA==", - "requires": { - "@jest/types": "^25.1.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "jest-get-type": "^25.1.0", - "leven": "^3.1.0", - "pretty-format": "^25.1.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==" - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "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.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==", - "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==" - }, - "jest-get-type": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.1.0.tgz", - "integrity": "sha512-yWkBnT+5tMr8ANB6V+OjmrIJufHtCAqI5ic2H40v+tRqxDmE0PGnIiTyvRWFOMtmVHYpwRqyazDbTnhpjsGvLw==" - }, - "pretty-format": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.1.0.tgz", - "integrity": "sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ==", - "requires": { - "@jest/types": "^25.1.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "react-is": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", - "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-watch-typeahead": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.4.2.tgz", - "integrity": "sha512-f7VpLebTdaXs81rg/oj4Vg/ObZy2QtGzAmGLNsqUS5G5KtSN68tFcIsbvNODfNyQxU78g7D8x77o3bgfBTR+2Q==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^2.4.1", - "jest-regex-util": "^24.9.0", - "jest-watcher": "^24.3.0", - "slash": "^3.0.0", - "string-length": "^3.1.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "jest-regex-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz", - "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "string-length": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", - "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", - "dev": true, - "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^5.2.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-watcher": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz", - "integrity": "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==", - "dev": true, - "requires": { - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/yargs": "^13.0.0", - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "jest-util": "^24.9.0", - "string-length": "^2.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-worker": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.1.0.tgz", - "integrity": "sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==", - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "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.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "jsdom": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.2.1.tgz", - "integrity": "sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==", - "requires": { - "abab": "^2.0.0", - "acorn": "^7.1.0", - "acorn-globals": "^4.3.2", - "array-equal": "^1.0.0", - "cssom": "^0.4.1", - "cssstyle": "^2.0.0", - "data-urls": "^1.1.0", - "domexception": "^1.0.1", - "escodegen": "^1.11.1", - "html-encoding-sniffer": "^1.0.2", - "nwsapi": "^2.2.0", - "parse5": "5.1.0", - "pn": "^1.1.0", - "request": "^2.88.0", - "request-promise-native": "^1.0.7", - "saxes": "^3.1.9", - "symbol-tree": "^3.2.2", - "tough-cookie": "^3.0.1", - "w3c-hr-time": "^1.0.1", - "w3c-xmlserializer": "^1.1.2", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^7.0.0", - "ws": "^7.0.0", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - }, - "cssstyle": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.2.0.tgz", - "integrity": "sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA==", - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - } - } - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" - }, - "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", - "requires": { - "ip-regex": "^2.1.0", - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } - }, - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - }, - "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-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "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": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "requires": { - "jsonify": "~0.0.0" - } - }, - "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 - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jsx-ast-utils": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", - "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==", - "dev": true, - "requires": { - "array-includes": "^3.0.3", - "object.assign": "^4.1.0" - } - }, - "just-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", - "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", - "dev": true - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, - "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.5" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - } - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "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==", - "dev": true, - "requires": { - "lodash": "^4.17.5", - "webpack-sources": "^1.1.0" - } - }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "dev": true, - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "dev": true, - "requires": { - "flush-write-stream": "^1.0.2" - } - }, - "left-pad": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", - "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", - "dev": true - }, - "less": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/less/-/less-3.9.0.tgz", - "integrity": "sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w==", - "dev": true, - "requires": { - "clone": "^2.1.2", - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "mime": "^1.4.1", - "mkdirp": "^0.5.0", - "promise": "^7.1.1", - "request": "^2.83.0", - "source-map": "~0.6.0" - } - }, - "less-loader": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", - "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "loader-utils": "^1.1.0", - "pify": "^3.0.0" - } - }, - "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==" - }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "dev": true, - "requires": { - "leven": "^3.1.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "dev": true, - "requires": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, - "dependencies": { - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - } - } - }, - "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=", - "dev": true - }, - "linkify-it": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.1.0.tgz", - "integrity": "sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "loader-fs-cache": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz", - "integrity": "sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw==", - "dev": true, - "requires": { - "find-cache-dir": "^0.1.1", - "mkdirp": "0.5.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true, - "requires": { - "find-up": "^1.0.0" - } - } - } - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "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.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==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.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==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "^2.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "loglevel": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz", - "integrity": "sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A==", - "dev": true - }, - "lolex": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz", - "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==", - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "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": "^3.0.0 || ^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==", - "dev": true, - "requires": { - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.0.tgz", - "integrity": "sha512-BmndXUtiTn/VDDrJzQE7Mm22Ix3PxgLltW9bSNLoeCY31gnG2OPx0QqJnuc9oMIKioYrz487i6K9o4Pdn0j+Kg==", - "dev": true - } - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "dev": true, - "requires": { - "es5-ext": "~0.10.2" - } - }, - "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==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", - "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==" - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - }, - "dependencies": { - "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==", - "dev": true - } - } - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "requires": { - "tmpl": "1.0.x" - } - }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", - "dev": true - }, - "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.0" - } - }, - "markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", - "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "dev": true, - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - } - }, - "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==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "dev": true - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "dependencies": { - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - } - } - }, - "memoizee": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz", - "integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.45", - "es6-weak-map": "^2.0.2", - "event-emitter": "^0.3.5", - "is-promise": "^2.1", - "lru-queue": "0.1", - "next-tick": "1", - "timers-ext": "^0.1.5" - } - }, - "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=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", - "dev": true - }, - "merge-deep": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", - "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "clone-deep": "^0.2.4", - "kind-of": "^3.0.2" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "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.3.0", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", - "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "microevent.ts": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", - "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==", - "dev": true - }, - "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.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "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==" - } - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" - }, - "min-indent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz", - "integrity": "sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY=" - }, - "mini-css-extract-plugin": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz", - "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - } - }, - "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==", - "dev": true - }, - "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=", - "dev": true - }, - "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.7" - } - }, - "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.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", - "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "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==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", - "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "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=", - "dev": true, - "requires": { - "for-in": "^0.1.3", - "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=", - "dev": true - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } - } - }, - "mocha": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.1.4.tgz", - "integrity": "sha512-PN8CIy4RXsIoxoFJzS4QNnCH4psUCPWc4/rPrst/ecSJJbLBkubMiyGCP2Kj/9YnWbotFqAoeXyXMucj7gwCFg==", - "dev": true, - "requires": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "ms": "2.1.1", - "node-environment-flags": "1.0.5", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.2.2", - "yargs-parser": "13.0.0", - "yargs-unparser": "1.5.0" - }, - "dependencies": { - "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "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" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "yargs": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", - "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.0.0" - } - }, - "yargs-parser": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", - "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "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==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "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==" - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "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=", - "dev": true - }, - "multimatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", - "dev": true, - "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" - } - }, - "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" - }, - "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.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "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==" - } - } - }, - "napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "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.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", - "dev": true - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "lower-case": "^2.0.1", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.0.tgz", - "integrity": "sha512-BmndXUtiTn/VDDrJzQE7Mm22Ix3PxgLltW9bSNLoeCY31gnG2OPx0QqJnuc9oMIKioYrz487i6K9o4Pdn0j+Kg==", - "dev": true - } - } - }, - "node-abi": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.15.0.tgz", - "integrity": "sha512-FeLpTS0F39U7hHZU1srAK4Vx+5AHNVOTP+hxBNQknR/54laTHSFIJkDWDqiquY1LeLUgTfPN7sLPhMubx0PLAg==", - "requires": { - "semver": "^5.4.1" - } - }, - "node-environment-flags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", - "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", - "dev": true, - "requires": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - } - }, - "node-forge": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", - "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node-libs-browser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", - "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.0", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "0.0.4" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - } - } - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" - }, - "node-notifier": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-6.0.0.tgz", - "integrity": "sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==", - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.1.1", - "semver": "^6.3.0", - "shellwords": "^0.1.1", - "which": "^1.3.1" - }, - "dependencies": { - "is-wsl": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", - "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==", - "optional": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "optional": true - } - } - }, - "node-releases": { - "version": "1.1.49", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.49.tgz", - "integrity": "sha512-xH8t0LS0disN0mtRCh+eByxFPie+msJUBL/lJDBuap53QGiYPa9joh83K4pCZgWJ+2L4b9h88vCVdXQ60NO2bg==", - "dev": true, - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "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.0.1" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - } - }, - "now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "dev": true, - "requires": { - "once": "^1.3.2" - } - }, - "npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "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.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "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.0" - } - } - } - }, - "object-hash": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz", - "integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==", - "dev": true - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, - "object-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz", - "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-path": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz", - "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=", - "dev": true - }, - "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.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } - } - }, - "object.entries": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", - "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "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.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", - "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", - "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.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.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==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "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==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - } - } - }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^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.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.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==", - "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.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", - "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", - "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.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.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==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "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==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - } - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "office-ui-fabric-react": { - "version": "7.105.12", - "resolved": "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.105.12.tgz", - "integrity": "sha512-PUmhth8szgLzR6xoN4HkPA0aIahpYr6/sU5oPob5zPRXB2JrhOCnCL9lFsL7/xU0lCFf/OAdoH+ARvF8DcAa0w==", - "requires": { - "@fluentui/react-focus": "^7.1.13", - "@microsoft/load-themed-styles": "^1.10.26", - "@uifabric/foundation": "^7.5.25", - "@uifabric/icons": "^7.3.24", - "@uifabric/merge-styles": "^7.8.11", - "@uifabric/react-hooks": "^7.1.2", - "@uifabric/set-version": "^7.0.9", - "@uifabric/styling": "^7.11.2", - "@uifabric/utilities": "^7.15.5", - "prop-types": "^15.7.2", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" - } - } - }, - "on-error-resume-next": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/on-error-resume-next/-/on-error-resume-next-1.1.0.tgz", - "integrity": "sha512-XhWMbmKV0+W95yLJjT1Z9zdkKiPUjDn63YYsji1pdvKqaa7pq4coeHaHEXPsa36SFlffOyOlPK/0rn6Njfb+LA==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "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==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "requires": { - "is-wsl": "^1.1.0" - } - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - } - }, - "optimize-css-assets-webpack-plugin": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz", - "integrity": "sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==", - "dev": true, - "requires": { - "cssnano": "^4.1.10", - "last-call-webpack-plugin": "^3.0.0" - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "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==", - "dev": true, - "requires": { - "url-parse": "^1.4.3" - } - }, - "os": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/os/-/os-0.1.1.tgz", - "integrity": "sha1-IIhF6J4ZOtTZcUdLk5R3NqVtE/M=" - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "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=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-each-series": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz", - "integrity": "sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==" - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "requires": { - "p-try": "^2.0.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==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "p-reduce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", - "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", - "dev": true - }, - "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==", - "dev": true, - "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==" - }, - "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", - "dev": true - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "dev": true, - "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "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==", - "dev": true, - "requires": { - "dot-case": "^3.0.3", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.0.tgz", - "integrity": "sha512-BmndXUtiTn/VDDrJzQE7Mm22Ix3PxgLltW9bSNLoeCY31gnG2OPx0QqJnuc9oMIKioYrz487i6K9o4Pdn0j+Kg==", - "dev": true - } - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - } - } - }, - "parse-asn1": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", - "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", - "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "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.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "parse-semver": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz", - "integrity": "sha1-mkr9bfBj3Egm+T+6SpnPIj9mbLg=", - "dev": true, - "requires": { - "semver": "^5.1.0" - } - }, - "parse5": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", - "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==" - }, - "parseqs": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", - "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==" - }, - "parseuri": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", - "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "no-case": "^3.0.3", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.0.tgz", - "integrity": "sha512-BmndXUtiTn/VDDrJzQE7Mm22Ix3PxgLltW9bSNLoeCY31gnG2OPx0QqJnuc9oMIKioYrz487i6K9o4Pdn0j+Kg==", - "dev": true - } - } - }, - "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.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "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=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "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-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true - }, - "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=", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "dev": true, - "requires": { - "through": "~2.3" - } - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picomatch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", - "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==" - }, - "pidtree": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz", - "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "dev": true, - "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - }, - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", - "dev": true - } - } - }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" - }, - "pnp-webpack-plugin": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.0.tgz", - "integrity": "sha512-ZcMGn/xF/fCOq+9kWMP9vVVxjIkMCja72oy3lziR7UHy0hHFZ57iVpQ71OtveVbmzeCmphBg8pxNdk/hlK99aQ==", - "dev": true, - "requires": { - "ts-pnp": "^1.1.2" - } - }, - "portfinder": { - "version": "1.0.25", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", - "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", - "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.1" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "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": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "dependencies": { - "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.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.3.0" - } - }, - "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" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^6.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-browser-comments": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz", - "integrity": "sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig==", - "dev": true, - "requires": { - "postcss": "^7" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-calc": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", - "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==", - "dev": true, - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz", - "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.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==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.14", - "postcss-values-parser": "^2.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.14" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.17", - "postcss-values-parser": "^2.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", - "dev": true - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", - "dev": true - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-flexbugs-fixes": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz", - "integrity": "sha512-jr1LHxQvStNNAHlgco6PzY308zvLklh7SJVYuWUwyUQncofaAlD2l+P/gxKHOdqWKe7xJSkVLFF/2Tp+JqMSZA==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-initial": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.2.tgz", - "integrity": "sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA==", - "dev": true, - "requires": { - "lodash.template": "^4.5.0", - "postcss": "^7.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-load-config": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", - "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", - "requires": { - "cosmiconfig": "^4.0.0", - "import-cwd": "^2.0.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", - "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", - "requires": { - "is-directory": "^0.3.1", - "js-yaml": "^3.9.0", - "parse-json": "^4.0.0", - "require-from-string": "^2.0.1" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-logical": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", - "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-modules": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-1.3.2.tgz", - "integrity": "sha512-QujH5ZpPtr1fBWTKDa43Hx45gm7p19aEtHaAtkMCBZZiB/D5za2wXSMtAf94tDUZHF3F5KZcTXISUNqgEQRiDw==", - "requires": { - "css-modules-loader-core": "^1.1.0", - "generic-names": "^1.0.3", - "lodash.camelcase": "^4.3.0", - "postcss": "^7.0.1", - "string-hash": "^1.1.1" - }, - "dependencies": { - "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.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.3.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" - } - } - } - }, - "postcss": { - "version": "7.0.26", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.26.tgz", - "integrity": "sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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-modules-extract-imports": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", - "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", - "dev": true, - "requires": { - "postcss": "^6.0.1" - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" - } - }, - "postcss-nesting": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", - "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-8.0.1.tgz", - "integrity": "sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ==", - "dev": true, - "requires": { - "@csstools/normalize.css": "^10.1.0", - "browserslist": "^4.6.2", - "postcss": "^7.0.17", - "postcss-browser-comments": "^3.0.0", - "sanitize.css": "^10.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-place": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", - "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "autoprefixer": "^9.6.1", - "browserslist": "^4.6.4", - "caniuse-lite": "^1.0.30000981", - "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.17", - "postcss-attribute-case-insensitive": "^4.0.1", - "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.0", - "postcss-lab-function": "^2.0.1", - "postcss-logical": "^3.0.0", - "postcss-media-minmax": "^4.0.0", - "postcss-nesting": "^7.0.0", - "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" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.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==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", - "dev": true - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-safe-parser": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz", - "integrity": "sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "dependencies": { - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - } - } - }, - "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==", - "dev": true, - "requires": { - "is-svg": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "prebuild-install": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.3.tgz", - "integrity": "sha512-GV+nsUXuPW2p8Zy7SarF/2W/oiK8bFQgJcncoJ0d7kRpekEA0ftChjfEaF9/Y+QJEc/wFR7RAEa8lYByuUIe2g==", - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.7.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", - "dev": true - }, - "pretty-bytes": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", - "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==", - "dev": true - }, - "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", - "dev": true, - "requires": { - "renderkid": "^2.0.1", - "utila": "~0.4" - } - }, - "pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", - "requires": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@types/yargs": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.6.tgz", - "integrity": "sha512-IkltIncDQWv6fcAvnHtJ6KtkmY/vtR3bViOaCzpj/A3yNhlfZAgxNe6AEQD1cQrkYD+YsKVo08DSxvNKEsD7BA==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "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.0" - } - } - } - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, - "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==", - "dev": true, - "optional": true, - "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=", - "dev": true - }, - "prompts": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.0.tgz", - "integrity": "sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.3" - } - }, - "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.8.1" - } - }, - "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", - "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "psl": { - "version": "1.1.32", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.32.tgz", - "integrity": "sha512-MHACAkHpihU/REGGPLj4sEfc/XKW2bheigvHO1dUqjaKigMp1C8+WLQYRGgeKFMsw5PMfegZcaN8IDXK/cD0+g==" - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "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.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", - "dev": true - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "dev": true, - "requires": { - "performance-now": "^2.1.0" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - } - } - }, - "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.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "react": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", - "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - }, - "react-app-polyfill": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-1.0.6.tgz", - "integrity": "sha512-OfBnObtnGgLGfweORmdZbyEz+3dgVePQBb3zipiaDsMHV1NpWm0rDFYIVXFV/AK+x4VIIfWHhrdMIeoTLyRr2g==", - "dev": true, - "requires": { - "core-js": "^3.5.0", - "object-assign": "^4.1.1", - "promise": "^8.0.3", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.3", - "whatwg-fetch": "^3.0.0" - }, - "dependencies": { - "promise": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.3.tgz", - "integrity": "sha512-HeRDUL1RJiLhyA0/grn+PTShlBAcLuh/1BJGtrvjwbvRDCTLLMEz9rOGCV+R3vHY4MixIuoMEd9Yq/XvsTPcjw==", - "dev": true, - "requires": { - "asap": "~2.0.6" - } - }, - "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", - "dev": true - } - } - }, - "react-dev-utils": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.2.0.tgz", - "integrity": "sha512-MwrvQW2TFjLblhqpDNeqCXHBkz3G5vc7k4wntgutAJZX4ia3o07eGKo6uYGhUOeJ0hfOxcpJFNFk7+4XCc1S8g==", - "dev": true, - "requires": { - "@babel/code-frame": "7.8.3", - "address": "1.1.2", - "browserslist": "4.8.6", - "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.0.2", - "pkg-up": "3.1.0", - "react-error-overlay": "^6.0.6", - "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==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "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": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "browserslist": { - "version": "4.8.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz", - "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001023", - "electron-to-chromium": "^1.3.341", - "node-releases": "^1.1.47" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "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=", - "dev": true - } - } - }, - "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "is-wsl": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", - "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "open": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.0.2.tgz", - "integrity": "sha512-70E/pFTPr7nZ9nLDPNTcj3IVqnNvKuP4VsBmoKV9YGTnChe0mlS3C4qM7qKarhZ8rGaHKLfo+vBTHXDp6ZSyLQ==", - "dev": true, - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "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==", - "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" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "react-dom": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz", - "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.18.0" - } - }, - "react-error-overlay": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.6.tgz", - "integrity": "sha512-Yzpno3enVzSrSCnnljmr4b/2KUQSMZaPuqmS26t9k4nW7uwJk6STWmH9heNjPuvqUTO3jOSPkHoKgO4+Dw7uIw==", - "dev": true - }, - "react-intl": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-3.1.9.tgz", - "integrity": "sha512-mQxhcFsYsj7O+k2Gsf1p+QaGhEdr+g7v5hYaa88dqar1m1xdWldEJjZ4JK/waHTp4zhVPoco4NQ1JdPkhs8HkA==", - "requires": { - "@formatjs/intl-relativetimeformat": "^2.6.3", - "@types/hoist-non-react-statics": "^3.3.1", - "@types/invariant": "^2.2.30", - "hoist-non-react-statics": "^3.3.0", - "intl-format-cache": "^4.1.10", - "intl-locales-supported": "^1.4.5", - "intl-messageformat": "^6.1.6", - "intl-messageformat-parser": "^3.0.7", - "invariant": "^2.1.1", - "shallow-equal": "^1.1.0" - } - }, - "react-is": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", - "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==" - }, - "react-scripts": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-3.4.0.tgz", - "integrity": "sha512-pBqaAroFoHnFAkuX+uSK9Th1uEh2GYdGY2IG1I9/7HmuEf+ls3lLCk1p2GFYRSrLMz6ieQR/SyN6TLIGK3hKRg==", - "dev": true, - "requires": { - "@babel/core": "7.8.4", - "@svgr/webpack": "4.3.3", - "@typescript-eslint/eslint-plugin": "^2.10.0", - "@typescript-eslint/parser": "^2.10.0", - "babel-eslint": "10.0.3", - "babel-jest": "^24.9.0", - "babel-loader": "8.0.6", - "babel-plugin-named-asset-import": "^0.3.6", - "babel-preset-react-app": "^9.1.1", - "camelcase": "^5.3.1", - "case-sensitive-paths-webpack-plugin": "2.3.0", - "css-loader": "3.4.2", - "dotenv": "8.2.0", - "dotenv-expand": "5.1.0", - "eslint": "^6.6.0", - "eslint-config-react-app": "^5.2.0", - "eslint-loader": "3.0.3", - "eslint-plugin-flowtype": "4.6.0", - "eslint-plugin-import": "2.20.0", - "eslint-plugin-jsx-a11y": "6.2.3", - "eslint-plugin-react": "7.18.0", - "eslint-plugin-react-hooks": "^1.6.1", - "file-loader": "4.3.0", - "fs-extra": "^8.1.0", - "fsevents": "2.1.2", - "html-webpack-plugin": "4.0.0-beta.11", - "identity-obj-proxy": "3.0.0", - "jest": "24.9.0", - "jest-environment-jsdom-fourteen": "1.0.1", - "jest-resolve": "24.9.0", - "jest-watch-typeahead": "0.4.2", - "mini-css-extract-plugin": "0.9.0", - "optimize-css-assets-webpack-plugin": "5.0.3", - "pnp-webpack-plugin": "1.6.0", - "postcss-flexbugs-fixes": "4.1.0", - "postcss-loader": "3.0.0", - "postcss-normalize": "8.0.1", - "postcss-preset-env": "6.7.0", - "postcss-safe-parser": "4.0.1", - "react-app-polyfill": "^1.0.6", - "react-dev-utils": "^10.2.0", - "resolve": "1.15.0", - "resolve-url-loader": "3.1.1", - "sass-loader": "8.0.2", - "semver": "6.3.0", - "style-loader": "0.23.1", - "terser-webpack-plugin": "2.3.4", - "ts-pnp": "1.1.5", - "url-loader": "2.3.0", - "webpack": "4.41.5", - "webpack-dev-server": "3.10.2", - "webpack-manifest-plugin": "2.2.0", - "workbox-webpack-plugin": "4.3.1" - }, - "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==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/core": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", - "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.4", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", - "dev": true, - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "@jest/core": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz", - "integrity": "sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==", - "dev": true, - "requires": { - "@jest/console": "^24.7.1", - "@jest/reporters": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "graceful-fs": "^4.1.15", - "jest-changed-files": "^24.9.0", - "jest-config": "^24.9.0", - "jest-haste-map": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.9.0", - "jest-resolve-dependencies": "^24.9.0", - "jest-runner": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-snapshot": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "jest-watcher": "^24.9.0", - "micromatch": "^3.1.10", - "p-each-series": "^1.0.0", - "realpath-native": "^1.1.0", - "rimraf": "^2.5.4", - "slash": "^2.0.0", - "strip-ansi": "^5.0.0" - } - }, - "@jest/environment": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz", - "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==", - "dev": true, - "requires": { - "@jest/fake-timers": "^24.9.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "jest-mock": "^24.9.0" - } - }, - "@jest/reporters": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz", - "integrity": "sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==", - "dev": true, - "requires": { - "@jest/environment": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "glob": "^7.1.2", - "istanbul-lib-coverage": "^2.0.2", - "istanbul-lib-instrument": "^3.0.1", - "istanbul-lib-report": "^2.0.4", - "istanbul-lib-source-maps": "^3.0.1", - "istanbul-reports": "^2.2.6", - "jest-haste-map": "^24.9.0", - "jest-resolve": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.6.0", - "node-notifier": "^5.4.2", - "slash": "^2.0.0", - "source-map": "^0.6.0", - "string-length": "^2.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "@jest/test-sequencer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz", - "integrity": "sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==", - "dev": true, - "requires": { - "@jest/test-result": "^24.9.0", - "jest-haste-map": "^24.9.0", - "jest-runner": "^24.9.0", - "jest-runtime": "^24.9.0" - } - }, - "@jest/transform": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz", - "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^24.9.0", - "babel-plugin-istanbul": "^5.1.0", - "chalk": "^2.0.1", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.1.15", - "jest-haste-map": "^24.9.0", - "jest-regex-util": "^24.9.0", - "jest-util": "^24.9.0", - "micromatch": "^3.1.10", - "pirates": "^4.0.1", - "realpath-native": "^1.1.0", - "slash": "^2.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "2.4.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==", - "dev": true - } - } - }, - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "acorn": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", - "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", - "dev": true - }, - "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", - "dev": true - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "babel-jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz", - "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==", - "dev": true, - "requires": { - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/babel__core": "^7.1.0", - "babel-plugin-istanbul": "^5.1.0", - "babel-preset-jest": "^24.9.0", - "chalk": "^2.4.2", - "slash": "^2.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz", - "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==", - "dev": true, - "requires": { - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz", - "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==", - "dev": true, - "requires": { - "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "babel-plugin-jest-hoist": "^24.9.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==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "css-loader": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.4.2.tgz", - "integrity": "sha512-jYq4zdZT0oS0Iykt+fqnzVLRIeiPWhka+7BqPn+oSIpWJAHak5tmB/WZrJ2a21JhCeFyNnnlroSl8c+MtVndzA==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "cssesc": "^3.0.0", - "icss-utils": "^4.1.1", - "loader-utils": "^1.2.3", - "normalize-path": "^3.0.0", - "postcss": "^7.0.23", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.2", - "postcss-modules-scope": "^2.1.1", - "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.0.2", - "schema-utils": "^2.6.0" - } - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "expect": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz", - "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==", - "dev": true, - "requires": { - "@jest/types": "^24.9.0", - "ansi-styles": "^3.2.0", - "jest-get-type": "^24.9.0", - "jest-matcher-utils": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-regex-util": "^24.9.0" - } - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, - "find-cache-dir": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.2.0.tgz", - "integrity": "sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.0", - "pkg-dir": "^4.1.0" - }, - "dependencies": { - "make-dir": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", - "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - } - } - }, - "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", - "dev": true, - "optional": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "dev": true, - "requires": { - "postcss": "^7.0.14" - } - }, - "istanbul-lib-report": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", - "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "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==", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", - "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0" - } - }, - "jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz", - "integrity": "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==", - "dev": true, - "requires": { - "import-local": "^2.0.0", - "jest-cli": "^24.9.0" - }, - "dependencies": { - "jest-cli": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz", - "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==", - "dev": true, - "requires": { - "@jest/core": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "import-local": "^2.0.0", - "is-ci": "^2.0.0", - "jest-config": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "prompts": "^2.0.1", - "realpath-native": "^1.1.0", - "yargs": "^13.3.0" - } - } - } - }, - "jest-changed-files": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz", - "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==", - "dev": true, - "requires": { - "@jest/types": "^24.9.0", - "execa": "^1.0.0", - "throat": "^4.0.0" - } - }, - "jest-config": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz", - "integrity": "sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^24.9.0", - "@jest/types": "^24.9.0", - "babel-jest": "^24.9.0", - "chalk": "^2.0.1", - "glob": "^7.1.1", - "jest-environment-jsdom": "^24.9.0", - "jest-environment-node": "^24.9.0", - "jest-get-type": "^24.9.0", - "jest-jasmine2": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "micromatch": "^3.1.10", - "pretty-format": "^24.9.0", - "realpath-native": "^1.1.0" - } - }, - "jest-docblock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz", - "integrity": "sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==", - "dev": true, - "requires": { - "detect-newline": "^2.1.0" - } - }, - "jest-each": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz", - "integrity": "sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==", - "dev": true, - "requires": { - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "jest-util": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-environment-jsdom": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz", - "integrity": "sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==", - "dev": true, - "requires": { - "@jest/environment": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/types": "^24.9.0", - "jest-mock": "^24.9.0", - "jest-util": "^24.9.0", - "jsdom": "^11.5.1" - } - }, - "jest-environment-node": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz", - "integrity": "sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==", - "dev": true, - "requires": { - "@jest/environment": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/types": "^24.9.0", - "jest-mock": "^24.9.0", - "jest-util": "^24.9.0" - } - }, - "jest-haste-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", - "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", - "dev": true, - "requires": { - "@jest/types": "^24.9.0", - "anymatch": "^2.0.0", - "fb-watchman": "^2.0.0", - "fsevents": "^1.2.7", - "graceful-fs": "^4.1.15", - "invariant": "^2.2.4", - "jest-serializer": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.9.0", - "micromatch": "^3.1.10", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "dependencies": { - "fsevents": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", - "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1", - "node-pre-gyp": "*" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": false, - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": false, - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "resolved": false, - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": false, - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": false, - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.3", - "resolved": false, - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": false, - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": false, - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": false, - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true, - "optional": true - }, - "debug": { - "version": "3.2.6", - "resolved": false, - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": false, - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "resolved": false, - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": false, - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "resolved": false, - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": false, - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": false, - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": false, - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.3", - "resolved": false, - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": false, - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": false, - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": false, - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": false, - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.9.0", - "resolved": false, - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": false, - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": false, - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.2", - "resolved": false, - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "needle": { - "version": "2.4.0", - "resolved": false, - "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", - "dev": true, - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.14.0", - "resolved": false, - "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==", - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": false, - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.1.1", - "resolved": false, - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "dev": true, - "optional": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": false, - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.7", - "resolved": false, - "integrity": "sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==", - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": false, - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": false, - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": false, - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "resolved": false, - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "resolved": false, - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": false, - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": false, - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "resolved": false, - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": false, - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": false, - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": false, - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": false, - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": false, - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "resolved": false, - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.1", - "resolved": false, - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": false, - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": false, - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": false, - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": false, - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": false, - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.13", - "resolved": false, - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": false, - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.1.1", - "resolved": false, - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "optional": true - } - } - } - } - }, - "jest-jasmine2": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz", - "integrity": "sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "co": "^4.6.0", - "expect": "^24.9.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^24.9.0", - "jest-matcher-utils": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-snapshot": "^24.9.0", - "jest-util": "^24.9.0", - "pretty-format": "^24.9.0", - "throat": "^4.0.0" - } - }, - "jest-leak-detector": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz", - "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==", - "dev": true, - "requires": { - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-regex-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz", - "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==", - "dev": true - }, - "jest-resolve-dependencies": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz", - "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==", - "dev": true, - "requires": { - "@jest/types": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-snapshot": "^24.9.0" - } - }, - "jest-runner": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz", - "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==", - "dev": true, - "requires": { - "@jest/console": "^24.7.1", - "@jest/environment": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.4.2", - "exit": "^0.1.2", - "graceful-fs": "^4.1.15", - "jest-config": "^24.9.0", - "jest-docblock": "^24.3.0", - "jest-haste-map": "^24.9.0", - "jest-jasmine2": "^24.9.0", - "jest-leak-detector": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-resolve": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.6.0", - "source-map-support": "^0.5.6", - "throat": "^4.0.0" - } - }, - "jest-runtime": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz", - "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==", - "dev": true, - "requires": { - "@jest/console": "^24.7.1", - "@jest/environment": "^24.9.0", - "@jest/source-map": "^24.3.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/yargs": "^13.0.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.1.15", - "jest-config": "^24.9.0", - "jest-haste-map": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.9.0", - "jest-snapshot": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "realpath-native": "^1.1.0", - "slash": "^2.0.0", - "strip-bom": "^3.0.0", - "yargs": "^13.3.0" - } - }, - "jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==", - "dev": true - }, - "jest-snapshot": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz", - "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "expect": "^24.9.0", - "jest-diff": "^24.9.0", - "jest-get-type": "^24.9.0", - "jest-matcher-utils": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-resolve": "^24.9.0", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^24.9.0", - "semver": "^6.2.0" - } - }, - "jest-validate": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", - "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", - "dev": true, - "requires": { - "@jest/types": "^24.9.0", - "camelcase": "^5.3.1", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "leven": "^3.1.0", - "pretty-format": "^24.9.0" - } - }, - "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jsdom": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", - "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", - "dev": true, - "requires": { - "abab": "^2.0.0", - "acorn": "^5.5.3", - "acorn-globals": "^4.1.0", - "array-equal": "^1.0.0", - "cssom": ">= 0.3.2 < 0.4.0", - "cssstyle": "^1.0.0", - "data-urls": "^1.0.0", - "domexception": "^1.0.1", - "escodegen": "^1.9.1", - "html-encoding-sniffer": "^1.0.2", - "left-pad": "^1.3.0", - "nwsapi": "^2.0.7", - "parse5": "4.0.0", - "pn": "^1.1.0", - "request": "^2.87.0", - "request-promise-native": "^1.0.5", - "sax": "^1.2.4", - "symbol-tree": "^3.2.2", - "tough-cookie": "^2.3.4", - "w3c-hr-time": "^1.0.1", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.3", - "whatwg-mimetype": "^2.1.0", - "whatwg-url": "^6.4.1", - "ws": "^5.2.0", - "xml-name-validator": "^3.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node-notifier": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", - "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", - "dev": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^1.1.0", - "semver": "^5.5.0", - "shellwords": "^0.1.1", - "which": "^1.3.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "p-each-series": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", - "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", - "dev": true, - "requires": { - "p-reduce": "^1.0.0" - } - }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", - "dev": true - }, - "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==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "postcss": "^7.0.5" - } - }, - "postcss-modules-local-by-default": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz", - "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==", - "dev": true, - "requires": { - "icss-utils": "^4.1.1", - "postcss": "^7.0.16", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.0" - } - }, - "postcss-modules-scope": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz", - "integrity": "sha512-OXRUPecnHCg8b9xWvldG/jUpRIGPNRka0r4D4j0ESUU2/5IOnpsjfPPmDprM3Ih8CgZ8FXjWqaniK5v4rWt3oQ==", - "dev": true, - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "icss-utils": "^4.0.0", - "postcss": "^7.0.6" - } - }, - "postcss-value-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz", - "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "resolve": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", - "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "schema-utils": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", - "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "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" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "style-loader": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", - "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "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==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "terser-webpack-plugin": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.4.tgz", - "integrity": "sha512-Nv96Nws2R2nrFOpbzF6IxRDpIkkIfmhvOws+IqMvYdFLO7o6wAILWFKONFgaYy8+T4LVz77DQW0f7wOeDEAjrg==", - "dev": true, - "requires": { - "cacache": "^13.0.1", - "find-cache-dir": "^3.2.0", - "jest-worker": "^25.1.0", - "p-limit": "^2.2.2", - "schema-utils": "^2.6.4", - "serialize-javascript": "^2.1.2", - "source-map": "^0.6.1", - "terser": "^4.4.3", - "webpack-sources": "^1.4.3" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-worker": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.1.0.tgz", - "integrity": "sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.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==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "throat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", - "dev": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "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==", - "dev": true - }, - "webpack": { - "version": "4.41.5", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", - "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.6.0", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", - "dev": true - }, - "cacache": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", - "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.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==", - "dev": true - }, - "terser-webpack-plugin": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", - "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", - "dev": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^2.1.2", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - } - } - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "requires": { - "source-list-map": "^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==", - "dev": true - } - } - }, - "whatwg-url": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", - "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "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==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - }, - "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "react-test-renderer": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.12.0.tgz", - "integrity": "sha512-Vj/teSqt2oayaWxkbhQ6gKis+t5JrknXfPVo+aIJ8QwYAqMPH77uptOdrlphyxl8eQI/rtkOYg86i/UWkpFu0w==", - "requires": { - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "react-is": "^16.8.6", - "scheduler": "^0.18.0" - }, - "dependencies": { - "scheduler": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", - "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } - } - }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "dev": true, - "requires": { - "mute-stream": "~0.0.4" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "dev": true, - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "realpath-native": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", - "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", - "requires": { - "util.promisify": "^1.0.0" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "dev": true, - "requires": { - "minimatch": "3.0.4" - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" - }, - "regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", - "dev": true, - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz", - "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA==" - }, - "regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", - "dev": true, - "requires": { - "private": "^0.1.6" - } - }, - "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" - } - }, - "regex-parser": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.10.tgz", - "integrity": "sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", - "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", - "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.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.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==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "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==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - } - } - }, - "regexpp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz", - "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==", - "dev": true - }, - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "requires": { - "jsesc": "~0.5.0" - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true - }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - } - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "dev": true, - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - } - }, - "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.3", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", - "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", - "dev": true, - "requires": { - "css-select": "^1.1.0", - "dom-converter": "^0.2", - "htmlparser2": "^3.3.0", - "strip-ansi": "^3.0.0", - "utila": "^0.4.0" - }, - "dependencies": { - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "dev": true, - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "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=", - "dev": true - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "request-promise-core": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", - "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", - "requires": { - "lodash": "^4.17.11" - } - }, - "request-promise-native": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", - "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", - "requires": { - "request-promise-core": "1.1.2", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "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=", - "dev": true - }, - "resolve": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz", - "integrity": "sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==", - "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=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - } - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "dev": true, - "requires": { - "value-or-function": "^3.0.0" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "resolve-url-loader": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.1.tgz", - "integrity": "sha512-K1N5xUjj7v0l2j/3Sgs5b8CjrrgtC70SmdCuZiJ8tSyb5J+uk3FoeZ4b7yTnH6j7ngI+Bc5bldHJIa8hYdu2gQ==", - "dev": true, - "requires": { - "adjust-sourcemap-loader": "2.0.0", - "camelcase": "5.3.1", - "compose-function": "3.0.3", - "convert-source-map": "1.7.0", - "es6-iterator": "2.0.3", - "loader-utils": "1.2.3", - "postcss": "7.0.21", - "rework": "1.0.1", - "rework-visit": "1.0.0", - "source-map": "0.6.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "postcss": { - "version": "7.0.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", - "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "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=", - "dev": true - }, - "rework": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", - "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", - "dev": true, - "requires": { - "convert-source-map": "^0.3.3", - "css": "^2.0.0" - }, - "dependencies": { - "convert-source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", - "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", - "dev": true - } - } - }, - "rework-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", - "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", - "dev": true - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "rimraf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", - "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rsvp": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.4.tgz", - "integrity": "sha512-6FomvYPfs+Jy9TfXmBpBuMWNH94SgCsZmJKcanySzgNNP6LjWxBvyLTa9KaMfDDM5oxRfrKDB0r/qeRsLwnBfA==" - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "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.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - } - }, - "sanitize.css": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-10.0.0.tgz", - "integrity": "sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg==", - "dev": true - }, - "sass-loader": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz", - "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.2.3", - "neo-async": "^2.6.1", - "schema-utils": "^2.6.1", - "semver": "^6.3.0" - }, - "dependencies": { - "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, - "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==", - "dev": true - }, - "schema-utils": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", - "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - } - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "saxes": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.9.tgz", - "integrity": "sha512-FZeKhJglhJHk7eWG5YM0z46VHmI3KJpMBAQm3xa9meDvd+wevB5GuBB0wc0exPInZiBBHqi00DbS8AcvCGCFMw==", - "requires": { - "xmlchars": "^1.3.1" - } - }, - "scheduler": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", - "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.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==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selfsigned": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", - "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", - "dev": true, - "requires": { - "node-forge": "0.9.0" - } - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" - }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "dev": true, - "requires": { - "sver-compat": "^1.5.0" - } - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "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==", - "dev": true, - "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=", - "dev": true - } - } - } - } - }, - "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", - "dev": true - }, - "serialport": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/serialport/-/serialport-8.0.7.tgz", - "integrity": "sha512-R9bfNebs2dblYf5sD/Aaa7j8+siP4X7TGT02lqHM9DF5fyjlrPGXmsLw9+LKOz1AvjGjkxf2NzBVnDpqRX7clQ==", - "requires": { - "@serialport/binding-mock": "^8.0.6", - "@serialport/bindings": "^8.0.7", - "@serialport/parser-byte-length": "^8.0.6", - "@serialport/parser-cctalk": "^8.0.6", - "@serialport/parser-delimiter": "^8.0.6", - "@serialport/parser-readline": "^8.0.6", - "@serialport/parser-ready": "^8.0.6", - "@serialport/parser-regex": "^8.0.6", - "@serialport/stream": "^8.0.6", - "debug": "^4.1.1" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "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=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - } - } - }, - "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==", - "dev": true, - "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.3", - "split-string": "^3.0.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.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-clone": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", - "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", - "dev": true, - "requires": { - "is-extendable": "^0.1.1", - "kind-of": "^2.0.1", - "lazy-cache": "^0.2.3", - "mixin-object": "^2.0.1" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "kind-of": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", - "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", - "dev": true, - "requires": { - "is-buffer": "^1.0.2" - } - }, - "lazy-cache": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", - "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=", - "dev": true - } - } - }, - "shallow-equal": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.0.tgz", - "integrity": "sha512-Z21pVxR4cXsfwpMKMhCEIO1PCi5sp7KEp+CmOpBQ+E8GpHwKOw2sEzk7sgblM3d/j4z4gakoWEoPcjK0VJQogA==" - }, - "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=" - }, - "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "dev": true, - "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" - } - }, - "shelljs": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.7.tgz", - "integrity": "sha1-svXHfvlxSPS09uImguELuoZnz/E=", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" - }, - "simple-get": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, - "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==", - "dev": true - } - } - }, - "sisteransi": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.4.tgz", - "integrity": "sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig==" - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "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" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - } - } - }, - "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.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.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" - } - }, - "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.0" - } - }, - "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.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "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.0", - "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.0" - } - }, - "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.0" - } - }, - "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.0" - } - }, - "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.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "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.0" - } - }, - "socket.io": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.0.tgz", - "integrity": "sha512-9UPJ1UTvKayuQfVv2IQ3k7tCQC/fboDyIK62i99dAQIyHKaBsNdTpwHLgKJ6guRWxRtC9H+138UwpaGuQO9uWQ==", - "requires": { - "debug": "~4.1.0", - "engine.io": "~3.5.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.4.0", - "socket.io-parser": "~3.4.0" - } - }, - "socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" - }, - "socket.io-client": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz", - "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", - "requires": { - "backo2": "1.0.2", - "component-bind": "1.0.0", - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "engine.io-client": "~3.5.0", - "has-binary2": "~1.0.2", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "socket.io-parser": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", - "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", - "requires": { - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "isarray": "2.0.1" - } - } - } - }, - "socket.io-parser": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", - "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", - "requires": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } - } - }, - "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", - "dev": true, - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" - } - }, - "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==", - "dev": true, - "requires": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "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==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.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==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "requires": { - "atob": "^2.1.1", - "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.12", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", - "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "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=" - }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", - "dev": true - }, - "spdy": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz", - "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "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==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "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==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "requires": { - "through": "2" - } - }, - "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.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", - "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1", - "minipass": "^3.1.1" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true - }, - "stack-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", - "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==" - }, - "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.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" - }, - "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==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-combiner": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", - "dev": true, - "requires": { - "duplexer": "~0.1.1", - "through": "~2.3.4" - } - }, - "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==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "streamfilter": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/streamfilter/-/streamfilter-1.0.7.tgz", - "integrity": "sha512-Gk6KZM+yNA1JpW0KzlZIhjo3EaBJDkYfXtYSbOwNIQ7Zd6006E6+sCFlW1NDvFG/vnXhKmw6TJJgiEQg/8lXfQ==", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "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=", - "dev": true - }, - "string-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", - "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=" - }, - "string-length": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", - "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", - "dev": true, - "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string.prototype.padend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", - "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.4.3", - "function-bind": "^1.0.2" - } - }, - "string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "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.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==", - "dev": true, - "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=", - "dev": true - } - } - }, - "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.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "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=", - "dev": true - }, - "strip-comments": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz", - "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==", - "dev": true, - "requires": { - "babel-extract-comments": "^1.0.0", - "babel-plugin-transform-object-rest-spread": "^6.26.0" - } - }, - "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-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "requires": { - "min-indent": "^1.0.0" - } - }, - "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-inject": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz", - "integrity": "sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==" - }, - "style-loader": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.21.0.tgz", - "integrity": "sha512-T+UNsAcl3Yg+BsPKs1vd22Fr8sVT+CJMtzqc6LEw9bbJZb43lm9GoeIfUcDEefBSWC0BhYbcdupV1GtI4DGzxg==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^0.4.5" - }, - "dependencies": { - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "supports-hyperlinks": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.0.0.tgz", - "integrity": "sha512-bFhn0MQ8qefLyJ3K7PpHiPUTuTVPWw6RXfaMeV6xgJLXtBbszyboz1bvGTVv4R0YpQm2DqlXXn0fFHhxUHVE5w==", - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "dev": true, - "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "svg-inline-react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/svg-inline-react/-/svg-inline-react-3.1.0.tgz", - "integrity": "sha512-c39AIRQOUXLMD8fQ2rHmK1GOSO3tVuZk61bAXqIT05uhhm3z4VtQFITQSwyhL0WA2uxoJAIhPd2YV0CYQOolSA==", - "requires": { - "prop-types": "^15.5.0" - } - }, - "svg-parser": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.3.tgz", - "integrity": "sha512-fnCWiifNhK8i2Z7b9R5tbNahpxrRdAaQbnoxKlT2KrSCj9Kq/yBSgulCRgBJRhy1dPnSY5slg5ehPUnzpEcHlg==", - "dev": true - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "symbol-tree": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", - "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=" - }, - "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": { - "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, - "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" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true - }, - "tar-fs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", - "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", - "requires": { - "chownr": "^1.1.1", - "mkdirp": "^0.5.1", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - } - }, - "tar-stream": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz", - "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==", - "requires": { - "bl": "^4.0.1", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "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.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", - "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", - "requires": { - "type-fest": "^0.8.1" - } - } - } - }, - "terser": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", - "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - } - }, - "terser-webpack-plugin": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", - "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", - "dev": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^2.1.2", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "cacache": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", - "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", - "dev": true - }, - "ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "terser": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", - "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - } - } - }, - "test-exclude": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", - "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", - "dev": true, - "requires": { - "glob": "^7.1.3", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^2.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true - }, - "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "dev": true, - "requires": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" - }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "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.0.2" - } - }, - "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" - } - }, - "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" - } - }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "dev": true, - "requires": { - "through2": "^2.0.3" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "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" - } - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" - }, - "ts-import-plugin": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/ts-import-plugin/-/ts-import-plugin-1.5.5.tgz", - "integrity": "sha512-i0ULERaX+vycmASUeJFbAqx+KeMBAH+iFaSim+U9t05DxK+ZGpMCHT18zTRzTEh1dA6OWsHzVZmHgFKh5UTKUA==", - "dev": true, - "requires": { - "tslib": "^1.9.2" - } - }, - "ts-jest": { - "version": "25.0.0", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-25.0.0.tgz", - "integrity": "sha512-F+hZg3j7XYOFpXJteXb4lnqy7vQzTmpTmX7AJT6pvSGeZejyXj1Lk0ArpnrEPOpv6Zu/NugHc5W7FINngC9WZQ==", - "requires": { - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "mkdirp": "0.x", - "resolve": "1.x", - "semver": "^5.5", - "yargs-parser": "10.x" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "requires": { - "minimist": "^1.2.0" - } - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "ts-loader": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-4.5.0.tgz", - "integrity": "sha512-ihgVaSmgrX4crGV4n7yuoHPoCHbDzj9aepCZR9TgIx4SgJ9gdnB6xLHgUBb7bsFM/f0K6x9iXa65KY/Fu1Klkw==", - "dev": true, - "requires": { - "chalk": "^2.3.0", - "enhanced-resolve": "^4.0.0", - "loader-utils": "^1.0.2", - "micromatch": "^3.1.4", - "semver": "^5.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "ts-pnp": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.5.tgz", - "integrity": "sha512-ti7OGMOUOzo66wLF3liskw6YQIaSsBgc4GOAlWRnIEj8htCxJUxskanMUoJOD6MDCRAXo36goXJZch+nOS0VMA==", - "dev": true - }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true - }, - "tslint": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.16.0.tgz", - "integrity": "sha512-UxG2yNxJ5pgGwmMzPMYh/CCnCnh0HfPgtlVRDs1ykZklufFBL1ZoTlWFRz2NQjcoEiDoRp+JyT0lhBbbH/obyA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^3.2.0", - "glob": "^7.1.1", - "js-yaml": "^3.13.0", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.29.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } - } - }, - "tslint-config-prettier": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz", - "integrity": "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==", - "dev": true - }, - "tslint-microsoft-contrib": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tslint-microsoft-contrib/-/tslint-microsoft-contrib-6.2.0.tgz", - "integrity": "sha512-6tfi/2tHqV/3CL77pULBcK+foty11Rr0idRDxKnteTaKm6gWF9qmaCNU17HVssOuwlYNyOmd9Jsmjd+1t3a3qw==", - "dev": true, - "requires": { - "tsutils": "^2.27.2 <2.29.0" - }, - "dependencies": { - "tsutils": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.28.0.tgz", - "integrity": "sha512-bh5nAtW0tuhvOJnx1GLRn5ScraRLICGyJV5wJhtRWOLsxW70Kk5tZtpK3O/hW6LDnqKS9mlUMPZj9fEMJ0gxqA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } - } - }, - "tslint-react": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/tslint-react/-/tslint-react-3.6.0.tgz", - "integrity": "sha512-AIv1QcsSnj7e9pFir6cJ6vIncTqxfqeFF3Lzh8SuuBljueYzEAtByuB6zMaD27BL0xhMEqsZ9s5eHuCONydjBw==", - "dev": true, - "requires": { - "tsutils": "^2.13.1" - }, - "dependencies": { - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } - } - }, - "tslint-react-hooks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslint-react-hooks/-/tslint-react-hooks-2.1.0.tgz", - "integrity": "sha512-ccjyguEHGEU5rXikLDaQ6kT1AVo3C0HV8gi2MIJc7SbYAXjbzJkpbs4IXulgfqdEY1T6RnNSuGhyXg+2jTm5Bg==", - "dev": true - }, - "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tunnel": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.4.tgz", - "integrity": "sha1-LTeFoVjBdMmhbcLARuxfxfF0IhM=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz", - "integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw==", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" - }, - "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==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typed-rest-client": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.2.0.tgz", - "integrity": "sha512-FrUshzZ1yxH8YwGR29PWWnfksLEILbWJydU7zfIRkyH7kAEzB62uMAl2WY6EyolWpLpVHeJGgQm45/MaruaHpw==", - "dev": true, - "requires": { - "tunnel": "0.0.4", - "underscore": "1.8.3" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "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" - } - }, - "typescript": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", - "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", - "dev": true - }, - "typescript-react-intl": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/typescript-react-intl/-/typescript-react-intl-0.4.0.tgz", - "integrity": "sha512-sCQN2YdWSaWNAK9bBezmqZStswfh0MMWQnIlBOn+iFBN4fE1m36fv1zqUaw33jTbQUjIaZ4N+NFbMfS/cnyIew==", - "dev": true, - "requires": { - "typescript": "^2.6.2" - }, - "dependencies": { - "typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", - "dev": true - } - } - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, - "underscore": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", - "dev": true - }, - "undertaker": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", - "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - } - }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", - "dev": true - }, - "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=", - "dev": true - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dev": true, - "requires": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.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=", - "dev": true - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true - }, - "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.0" - }, - "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.3", - "has-values": "^0.1.4", - "isobject": "^2.0.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.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - } - }, - "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=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-join": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-1.1.0.tgz", - "integrity": "sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg=", - "dev": true - }, - "url-loader": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz", - "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==", - "dev": true, - "requires": { - "loader-utils": "^1.2.3", - "mime": "^2.4.4", - "schema-utils": "^2.5.0" - }, - "dependencies": { - "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", - "dev": true - }, - "schema-utils": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", - "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1" - } - } - } - }, - "url-parse": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", - "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "usb-detection": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/usb-detection/-/usb-detection-4.7.0.tgz", - "integrity": "sha512-HE9y5uYfA2ebVo64BrIB0OVNaVKZ2oWkadpTItCi4YQXyZ9vD0705iqQ3B7Rz8xevcrW/RNg/85E2o2JoPFmsQ==", - "requires": { - "bindings": "^1.3.0", - "eventemitter2": "^5.0.1", - "nan": "^2.13.2", - "prebuild-install": "^5.1.0" - } - }, - "usb-native": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/usb-native/-/usb-native-5.0.1.tgz", - "integrity": "sha512-FuKUVJmzgo7I6jclH0fCLuQLuOTg3jzzDvQwFgFWJM5Qe1L09snrl84adFCNvE/LGbCCCa4XjLuGGIgB7+zGQA==", - "requires": { - "fs-extra": "^8.1.0", - "serialport": "^8.0.7", - "usb-detection": "^4.7.0" - } - }, - "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.12.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.1.tgz", - "integrity": "sha512-MREAtYOp+GTt9/+kwf00IYoHZyjM8VU4aVrkzUlejyqaIjd2GztVl5V9hGXKlvBKE3gENn/FMfHE5v6hElXGcQ==", - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "object.entries": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "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.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.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - }, - "v8-compile-cache": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", - "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", - "dev": true - }, - "v8-to-istanbul": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.0.1.tgz", - "integrity": "sha512-x0yZvZAkjJwdD3fPiJzYP37aod0ati4LlmD2RmpKjqewjKAov/u/ytZ8ViIZb07cN4cePKzl9ijiUi7C1LQ8hQ==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "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==" - } - } - }, - "v8flags": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz", - "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "version-from-git": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/version-from-git/-/version-from-git-1.1.1.tgz", - "integrity": "sha512-R8kAZ+EFJcqG5HGrfjk7bSBAWKB3AE/Dnh21llvNg6CWJIPJAKsYNLR7lvYrCwu33A3TU4UljPLpp577UxgL3w==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "commander": "^2.15.1", - "cross-spawn": "^6.0.5", - "git-rev-sync": "^1.12.0", - "on-error-resume-next": "^1.0.0", - "semver": "^5.5.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "dev": true, - "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - } - }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "dev": true, - "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - } - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } - }, - "vsce": { - "version": "1.62.0", - "resolved": "https://registry.npmjs.org/vsce/-/vsce-1.62.0.tgz", - "integrity": "sha512-KXtPBsdC0K27hmDksINyjoRl9BiuTB+ntmoJEDbbO3GIc+L3wfOclaSy8iYqddnpSA33YDkhKzKXhT0JGzrG/A==", - "dev": true, - "requires": { - "azure-devops-node-api": "^7.2.0", - "chalk": "^2.4.2", - "cheerio": "^1.0.0-rc.1", - "commander": "^2.8.1", - "denodeify": "^1.2.1", - "glob": "^7.0.6", - "lodash": "^4.17.10", - "markdown-it": "^8.3.1", - "mime": "^1.3.4", - "minimatch": "^3.0.3", - "osenv": "^0.1.3", - "parse-semver": "^1.1.1", - "read": "^1.0.7", - "semver": "^5.1.0", - "tmp": "0.0.29", - "typed-rest-client": "1.2.0", - "url-join": "^1.1.0", - "yauzl": "^2.3.1", - "yazl": "^2.2.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tmp": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", - "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.1" - } - } - } - }, - "vscode-extension-telemetry": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/vscode-extension-telemetry/-/vscode-extension-telemetry-0.1.1.tgz", - "integrity": "sha512-TkKKG/B/J94DP5qf6xWB4YaqlhWDg6zbbqVx7Bz//stLQNnfE9XS1xm3f6fl24c5+bnEK0/wHgMgZYKIKxPeUA==", - "requires": { - "applicationinsights": "1.0.8" - } - }, - "vscode-nls": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-4.1.1.tgz", - "integrity": "sha512-4R+2UoUUU/LdnMnFjePxfLqNhBS8lrAFyX7pjb2ud/lqDkrUavFUTcG7wR0HBZFakae0Q6KLBFjMS6W93F403A==" - }, - "vscode-nls-dev": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/vscode-nls-dev/-/vscode-nls-dev-3.3.1.tgz", - "integrity": "sha512-fug18D7CXb8pv8JoQ0D0JmZaIYDQoKLiyZxkAy5P8Cln/FwlNsdzwQILDph62EdGY5pvsJ2Jd1T5qgHAExe/tg==", - "dev": true, - "requires": { - "ansi-colors": "^3.2.3", - "clone": "^2.1.1", - "event-stream": "^3.3.4", - "fancy-log": "^1.3.3", - "glob": "^7.1.2", - "iconv-lite": "^0.4.19", - "is": "^3.2.1", - "source-map": "^0.6.1", - "typescript": "^2.6.2", - "vinyl": "^2.1.0", - "xml2js": "^0.4.19", - "yargs": "^13.2.4" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "event-stream": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.5.tgz", - "integrity": "sha512-vyibDcu5JL20Me1fP734QBH/kenBGLZap2n0+XXM7mvuUPzJ20Ydqj1aKcIeMdri1p+PU+4yAKugjN8KCVst+g==", - "dev": true, - "requires": { - "duplexer": "^0.1.1", - "from": "^0.1.7", - "map-stream": "0.0.7", - "pause-stream": "^0.0.11", - "split": "^1.0.1", - "stream-combiner": "^0.2.2", - "through": "^2.3.8" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "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" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "vscode-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.0.0.tgz", - "integrity": "sha512-RnZUhxEXYCozHtBAQwX/UISlw0JPqlv1I9LLl4++vcPDIvjs2Zfz2Inp8haxixS1sOTftHJ9kiecrwWF9S3taQ==", - "dev": true, - "requires": { - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1" - } - }, - "w3c-hr-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", - "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", - "requires": { - "browser-process-hrtime": "^0.1.2" - } - }, - "w3c-xmlserializer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", - "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", - "requires": { - "domexception": "^1.0.1", - "webidl-conversions": "^4.0.2", - "xml-name-validator": "^3.0.0" - } - }, - "wait-for-expect": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-3.0.1.tgz", - "integrity": "sha512-3Ha7lu+zshEG/CeHdcpmQsZnnZpPj/UsG3DuKO8FskjuDbkx3jE3845H+CuwZjA2YWYDfKMU2KhnCaXMLd3wVw==" - }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "requires": { - "makeerror": "1.0.x" - } - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, - "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "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.32.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.32.2.tgz", - "integrity": "sha512-F+H2Aa1TprTQrpodRAWUMJn7A8MgDx82yQiNvYMaj3d1nv3HetKU0oqEulL9huj8enirKi8KvEXQ3QtuHF89Zg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.0.5", - "acorn-dynamic-import": "^4.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^1.0.0", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" - }, - "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", - "dev": true - } - } - }, - "webpack-cli": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.2.tgz", - "integrity": "sha512-FLkobnaJJ+03j5eplxlI0TUxhGCOdfewspIGuvDVtpOlrAuKMFC57K42Ukxqs1tn8947/PM6tP95gQc0DCzRYA==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.0", - "findup-sync": "^2.0.0", - "global-modules": "^1.0.0", - "import-local": "^2.0.0", - "interpret": "^1.1.0", - "loader-utils": "^1.1.0", - "supports-color": "^5.5.0", - "v8-compile-cache": "^2.0.2", - "yargs": "^12.0.5" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", - "dev": true - } - } - }, - "webpack-dev-server": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.2.tgz", - "integrity": "sha512-pxZKPYb+n77UN8u9YxXT4IaIrGcNtijh/mi8TXbErHmczw0DtPnMTTjHj+eNjkqLOaAZM/qD7V59j/qJsEiaZA==", - "dev": true, - "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.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.2.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.6.6", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.25", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "0.3.19", - "sockjs-client": "1.4.0", - "spdy": "^4.0.1", - "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": "12.0.5" - }, - "dependencies": { - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "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==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - } - }, - "webpack-manifest-plugin": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz", - "integrity": "sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ==", - "dev": true, - "requires": { - "fs-extra": "^7.0.0", - "lodash": ">=3.5 <5", - "object.entries": "^1.1.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "webpack-sources": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", - "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "websocket-driver": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", - "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", - "dev": true, - "requires": { - "http-parser-js": ">=0.4.0 <0.4.11", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "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==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", - "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==", - "dev": true - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - }, - "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": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "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=" - }, - "which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "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 - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "workbox-background-sync": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz", - "integrity": "sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg==", - "dev": true, - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-broadcast-update": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz", - "integrity": "sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA==", - "dev": true, - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-build": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-4.3.1.tgz", - "integrity": "sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.4", - "@hapi/joi": "^15.0.0", - "common-tags": "^1.8.0", - "fs-extra": "^4.0.2", - "glob": "^7.1.3", - "lodash.template": "^4.4.0", - "pretty-bytes": "^5.1.0", - "stringify-object": "^3.3.0", - "strip-comments": "^1.0.2", - "workbox-background-sync": "^4.3.1", - "workbox-broadcast-update": "^4.3.1", - "workbox-cacheable-response": "^4.3.1", - "workbox-core": "^4.3.1", - "workbox-expiration": "^4.3.1", - "workbox-google-analytics": "^4.3.1", - "workbox-navigation-preload": "^4.3.1", - "workbox-precaching": "^4.3.1", - "workbox-range-requests": "^4.3.1", - "workbox-routing": "^4.3.1", - "workbox-strategies": "^4.3.1", - "workbox-streams": "^4.3.1", - "workbox-sw": "^4.3.1", - "workbox-window": "^4.3.1" - }, - "dependencies": { - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "workbox-cacheable-response": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz", - "integrity": "sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw==", - "dev": true, - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-core": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz", - "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==", - "dev": true - }, - "workbox-expiration": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-4.3.1.tgz", - "integrity": "sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw==", - "dev": true, - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-google-analytics": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz", - "integrity": "sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg==", - "dev": true, - "requires": { - "workbox-background-sync": "^4.3.1", - "workbox-core": "^4.3.1", - "workbox-routing": "^4.3.1", - "workbox-strategies": "^4.3.1" - } - }, - "workbox-navigation-preload": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz", - "integrity": "sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw==", - "dev": true, - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-precaching": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-4.3.1.tgz", - "integrity": "sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ==", - "dev": true, - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-range-requests": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz", - "integrity": "sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA==", - "dev": true, - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-routing": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-4.3.1.tgz", - "integrity": "sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g==", - "dev": true, - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-strategies": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-4.3.1.tgz", - "integrity": "sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw==", - "dev": true, - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-streams": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-4.3.1.tgz", - "integrity": "sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA==", - "dev": true, - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-sw": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-4.3.1.tgz", - "integrity": "sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w==", - "dev": true - }, - "workbox-webpack-plugin": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-4.3.1.tgz", - "integrity": "sha512-gJ9jd8Mb8wHLbRz9ZvGN57IAmknOipD3W4XNE/Lk/4lqs5Htw4WOQgakQy/o/4CoXQlMCYldaqUg+EJ35l9MEQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.0.0", - "json-stable-stringify": "^1.0.1", - "workbox-build": "^4.3.1" - } - }, - "workbox-window": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-4.3.1.tgz", - "integrity": "sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg==", - "dev": true, - "requires": { - "workbox-core": "^4.3.1" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "requires": { - "microevent.ts": "~0.1.1" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.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": "2.4.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", - "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "ws": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.1.tgz", - "integrity": "sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A==" - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true - }, - "xmlchars": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-1.3.1.tgz", - "integrity": "sha512-tGkGJkN8XqCod7OT+EvGYK5Z4SfDQGD30zAa58OcnAa0RRWgzUEK72tkXhsX1FZd+rgnhRxFtmO+ihkp8LHSkw==" - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true - }, - "yaml": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz", - "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.6.3" - } - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - }, - "dependencies": { - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "yargs-parser": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz", - "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yargs-unparser": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", - "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", - "dev": true, - "requires": { - "flat": "^4.1.0", - "lodash": "^4.17.11", - "yargs": "^12.0.5" - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yazl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", - "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3" - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - }, - "zone.js": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.7.6.tgz", - "integrity": "sha1-+7w50+AmHQmG8boGMG6zrrDSIAk=" - } - } -} diff --git a/package.json b/package.json index c3d9e093d..654876f07 100644 --- a/package.json +++ b/package.json @@ -1,327 +1,276 @@ { - "name": "__EXTENSIONNAME__", - "displayName": "__DISPLAYNAME__", - "description": "__DESCRIPTION__", - "version": "0.0.0-UNTRACKEDVERSION", - "publisher": "__PUBLISHER__", - "instrumentationKey": "__AIKEY__", - "icon": "assets/icon.png", - "engines": { - "vscode": "^1.43.0" - }, - "categories": [ - "Other" - ], - "preview": true, - "license": "MIT", - "homepage": "https://github.com/microsoft/vscode-python-devicesimulator", - "repository": { - "type": "git", - "url": "https://github.com/microsoft/vscode-python-devicesimulator" - }, - "bugs": { - "url": "https://github.com/microsoft/vscode-python-devicesimulator/issues" - }, - "keywords": [ - "python", - "CircuitPython", - "Adafruit", - "microbit", - "MicroPython" - ], - "activationEvents": [ - "onCommand:deviceSimulatorExpress.common.installDependencies", - "onCommand:deviceSimulatorExpress.common.openSerialMonitor", - "onCommand:deviceSimulatorExpress.common.runSimulator", - "onCommand:deviceSimulatorExpress.common.selectSerialPort", - "onCommand:deviceSimulatorExpress.common.gettingStarted", - "onCommand:deviceSimulatorExpress.common.deployToDevice", - "onCommand:deviceSimulatorExpress.common.newFile", - "onCommand:deviceSimulatorExpress.common.openSimulator", - "onDebug" - ], - "main": "./out/extension.js", - "contributes": { - "commands": [ - { - "command": "deviceSimulatorExpress.common.installDependencies", - "title": "%deviceSimulatorExpressExtension.commands.common.installDependencies%", - "category": "%deviceSimulatorExpressExtension.commands.common.label%" - }, - { - "command": "deviceSimulatorExpress.common.changeBaudRate", - "title": "%deviceSimulatorExpressExtension.commands.common.changeBaudRate%", - "category": "%deviceSimulatorExpressExtension.commands.common.label%" - }, - { - "command": "deviceSimulatorExpress.common.closeSerialMonitor", - "title": "%deviceSimulatorExpressExtension.commands.common.closeSerialMonitor%", - "category": "%deviceSimulatorExpressExtension.commands.common.label%" - }, - { - "command": "deviceSimulatorExpress.common.openSerialMonitor", - "title": "%deviceSimulatorExpressExtension.commands.common.openSerialMonitor%", - "category": "%deviceSimulatorExpressExtension.commands.common.label%" - }, - { - "command": "deviceSimulatorExpress.common.selectSerialPort", - "title": "%deviceSimulatorExpressExtension.commands.common.selectSerialPort%", - "category": "%deviceSimulatorExpressExtension.commands.common.label%" - }, - { - "command": "deviceSimulatorExpress.common.runSimulator", - "title": "%deviceSimulatorExpressExtension.commands.common.runSimulator%", - "category": "%deviceSimulatorExpressExtension.commands.common.label%" - }, - { - "command": "deviceSimulatorExpress.common.gettingStarted", - "title": "%deviceSimulatorExpressExtension.commands.common.gettingStarted%", - "category": "%deviceSimulatorExpressExtension.commands.common.label%" - }, - { - "command": "deviceSimulatorExpress.common.deployToDevice", - "title": "%deviceSimulatorExpressExtension.commands.common.deployToDevice%", - "category": "%deviceSimulatorExpressExtension.commands.common.label%" - }, - { - "command": "deviceSimulatorExpress.common.newFile", - "title": "%deviceSimulatorExpressExtension.commands.common.newFile%", - "category": "%deviceSimulatorExpressExtension.commands.common.label%" - }, - { - "command": "deviceSimulatorExpress.common.openSimulator", - "title": "%deviceSimulatorExpressExtension.commands.common.openSimulator%", - "category": "%deviceSimulatorExpressExtension.commands.common.label%" - } - ], - "colors": [ - { - "id": "highContrastButtonBorderOverride.color", - "description": "Color for the high contrast border updated", - "defaults": { - "dark": "debugToolBar.background", - "light": "debugToolBar.background", - "highContrast": "#6FC3DF" - } - }, - { - "id": "badgeForegroundOverride", - "description": "Color that fixes the issue with midnight blue ", - "defaults": { - "dark": "#FFFFFF", - "light": "badge.foreground", - "highContrast": "#FFFFFF" - } - } - ], - "configuration": { - "type": "object", - "title": "%deviceSimulatorExpressExtension.configuration.title%", - "properties": { - "deviceSimulatorExpress.configNewEnvironmentUponSwitch": { - "type": "boolean", - "default": false, - "description": "%deviceSimulatorExpressExtension.configuration.properties.configEnvOnChange%", - "scope": "resource" - }, - "deviceSimulatorExpress.enableUSBDetection": { - "type": "boolean", - "default": true - }, - "deviceSimulatorExpress.showDependencyInstall": { - "type": "boolean", - "default": true, - "description": "%deviceSimulatorExpressExtension.configuration.properties.dependencyChecker%", - "scope": "resource" - }, - "deviceSimulatorExpress.showNewFilePopup": { - "type": "boolean", - "default": true, - "scope": "resource" - }, - "deviceSimulatorExpress.debuggerServerPort": { - "type": "number", - "default": 5577, - "description": "%deviceSimulatorExpressExtension.configuration.properties.debuggerPort%", - "scope": "resource" - } - } - }, - "breakpoints": [ - { - "language": "python" - } - ], - "debuggers": [ - { - "type": "deviceSimulatorExpress", - "label": "Device Simulator Express Debugger", - "languages": [ - "python" - ], - "configurationAttributes": { - "launch": { - "properties": { - "program": { - "type": "string", - "description": "Absolute path to the code file.", - "default": "${file}" - }, - "stopOnEntry": { - "type": "boolean", - "description": "Automatically stop after launch.", - "default": true - }, - "console": { - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], - "description": "Where to launch the debug target: internal console, integrated terminal, or external terminal.", - "default": "integratedTerminal" - }, - "args": { - "type": "array", - "description": "Command line arguments passed to the program.", - "default": [], - "items": { - "filePath": "string", - "serverPort": "string" - } - }, - "rules": { - "type": "array", - "description": "Debugger rules.", - "default": [], - "items": { - "path": "string", - "include": "boolean" - } - } - } - } - }, - "initialConfigurations": [ - { - "type": "deviceSimulatorExpress", - "request": "launch", - "name": "Device Simulator Express Debugger", - "console": "integratedTerminal" - } - ], - "configurationSnippets": [ - { - "label": "Device Simulator Express Debugger : Launch", - "description": "Device Simulator Express Debugger - A configuration for debugging a python code file for the Device Simulator Express simulator.", - "body": { - "type": "deviceSimulatorExpress", - "request": "launch", - "name": "Device Simulator Express Debugger", - "console": "integratedTerminal" - } - } - ] - } - ] - }, - "scripts": { - "start": "webpack-dev-server", - "vscode:prepublish": "npm run compile", - "build": "gulp build", - "clean": "gulp clean", - "compile": "npm-run-all compile:*", - "compile:extension": "gulp compile", - "compile:views": "webpack --mode development", - "watch": "npm-run-all -p watch:*", - "watch:extension": "tsc --watch", - "watch:views": "webpack --watch --mode development", - "pretest": "npm run compile", - "test": "npm-run-all test:*", - "test:extension-tests": "node ./out/test/runTest.js", - "test:ts": "jest", - "test:api-tests": "pytest src", - "lint": "npm-run-all lint:*", - "lint:ts": "tslint -c tslint.json src/**/*.{ts,tsx}", - "lint:python": "pylint src", - "format": "npm-run-all format:*", - "format:ts": "prettier --config .prettierrc.yaml --write src/**/*.{css,ts,tsx}", - "format:python": "black src", - "check": "npm-run-all check:*", - "check:ts": "prettier --config .prettierrc.yaml --check src/**/*.{css,ts,tsx}", - "check:python": "black src --check", - "package": "vsce package" - }, - "devDependencies": { - "@types/glob": "^7.1.1", - "@types/node": "^10.12.21", - "@types/react": "16.8.6", - "@types/react-dom": "16.8.4", - "@types/vscode": "^1.45.1", - "css-loader": "^1.0.0", - "del": "^4.0.0", - "event-stream": "^4.0.1", - "gulp": "^4.0.2", - "gulp-cli": "^2.1.0", - "gulp-filter": "^5.1.0", - "gulp-sourcemaps": "^2.6.5", - "gulp-typescript": "^5.0.1", - "less": "^3.7.0", - "less-loader": "^4.1.0", - "mocha": "^6.1.4", - "npm-run-all": "^4.1.3", - "prettier": "^1.19.1", - "react-scripts": "^3.4.0", - "style-loader": "^0.21.0", - "ts-import-plugin": "^1.5.4", - "ts-loader": "^4.4.2", - "tslint": "^5.12.1", - "tslint-config-prettier": "^1.18.0", - "tslint-microsoft-contrib": "^6.1.0", - "tslint-react": "^3.6.0", - "tslint-react-hooks": "^2.0.0", - "typescript": "^3.8.3", - "typescript-react-intl": "^0.4.0", - "version-from-git": "^1.1.1", - "vsce": "^1.47.0", - "vscode-nls-dev": "^3.2.6", - "vscode-test": "^1.0.0", - "webpack": "^4.15.1", - "webpack-cli": "^3.0.8" - }, - "dependencies": { - "@babel/preset-typescript": "^7.8.3", - "@testing-library/jest-dom": "^5.0.2", - "@testing-library/react": "^9.4.0", - "@types/jest": "^24.9.0", - "@types/open": "^6.1.0", - "@types/react-test-renderer": "^16.9.0", - "@types/socket.io": "^2.1.2", - "babel-jest": "^25.1.0", - "compare-versions": "^3.5.1", - "eventemitter2": "^5.0.1", - "glob": "^7.1.4", - "jest": "^25.1.0", - "jest-transform-css": "^2.0.0", - "office-ui-fabric-react": "^7.105.12", - "open": "^6.4.0", - "os": "^0.1.1", - "react": "^16.9.0", - "react-dom": "^16.9.0", - "react-intl": "^3.1.9", - "react-test-renderer": "^16.9.0", - "socket.io": "^2.4.0", - "svg-inline-react": "^3.1.0", - "ts-jest": "^25.0.0", - "usb-native": "^5.0.1", - "util": "^0.12.1", - "vscode-extension-telemetry": "^0.1.1", - "vscode-nls": "^4.1.0" - }, - "eslintConfig": { - "extends": "react-app" - }, - "extensionDependencies": [ - "ms-python.python" - ] + "name": "__EXTENSIONNAME__", + "displayName": "__DISPLAYNAME__", + "version": "0.0.1", + "private": false, + "description": "__DESCRIPTION__", + "homepage": "https://github.com/CodeEditorLand/Foundation#readme", + "bugs": { + "url": "https://github.com/CodeEditorLand/Foundation/issues" + }, + "repository": { + "type": "git", + "url": "git+HTTPS://github.com/CodeEditorLand/Foundation.git" + }, + "license": "SEE LICENSE IN LICENSE", + "author": { + "name": "Land", + "email": "Land@Playform.Cloud", + "url": "HTTPS://Land.Playform.Cloud" + }, + "type": "module", + "main": "./out/extension.js", + "scripts": { + "Document": "Document 'Source/**/*.ts'", + "build": "gulp build", + "check:python": "black src --check", + "check:ts": "prettier --config .prettierrc.yaml --check src/**/*.{css,ts,tsx}", + "clean": "gulp clean", + "compile": "npm-run-all compile:*", + "compile:extension": "gulp compile", + "compile:views": "webpack --mode development", + "format:python": "black src", + "format:ts": "prettier --config .prettierrc.yaml --write src/**/*.{css,ts,tsx}", + "lint:python": "pylint src", + "lint:ts": "tslint -c tslint.json src/**/*.{ts,tsx}", + "prepublishOnly": "Build 'Source/**/*.ts'", + "start": "webpack-dev-server", + "test:api-tests": "pytest src", + "test:extension-tests": "node ./out/test/runTest.js", + "test:ts": "jest", + "watch:extension": "tsc --watch", + "watch:views": "webpack --watch --mode development" + }, + "contributes": { + "breakpoints": [ + { + "language": "python" + } + ], + "colors": [ + { + "defaults": { + "dark": "debugToolBar.background", + "highContrast": "#6FC3DF", + "light": "debugToolBar.background" + }, + "description": "Color for the high contrast border updated", + "id": "highContrastButtonBorderOverride.color" + }, + { + "defaults": { + "dark": "#FFFFFF", + "highContrast": "#FFFFFF", + "light": "badge.foreground" + }, + "description": "Color that fixes the issue with midnight blue ", + "id": "badgeForegroundOverride" + } + ], + "commands": [ + { + "category": "%deviceSimulatorExpressExtension.commands.common.label%", + "command": "deviceSimulatorExpress.common.installDependencies", + "title": "%deviceSimulatorExpressExtension.commands.common.installDependencies%" + }, + { + "category": "%deviceSimulatorExpressExtension.commands.common.label%", + "command": "deviceSimulatorExpress.common.changeBaudRate", + "title": "%deviceSimulatorExpressExtension.commands.common.changeBaudRate%" + }, + { + "category": "%deviceSimulatorExpressExtension.commands.common.label%", + "command": "deviceSimulatorExpress.common.closeSerialMonitor", + "title": "%deviceSimulatorExpressExtension.commands.common.closeSerialMonitor%" + }, + { + "category": "%deviceSimulatorExpressExtension.commands.common.label%", + "command": "deviceSimulatorExpress.common.openSerialMonitor", + "title": "%deviceSimulatorExpressExtension.commands.common.openSerialMonitor%" + }, + { + "category": "%deviceSimulatorExpressExtension.commands.common.label%", + "command": "deviceSimulatorExpress.common.selectSerialPort", + "title": "%deviceSimulatorExpressExtension.commands.common.selectSerialPort%" + }, + { + "category": "%deviceSimulatorExpressExtension.commands.common.label%", + "command": "deviceSimulatorExpress.common.runSimulator", + "title": "%deviceSimulatorExpressExtension.commands.common.runSimulator%" + }, + { + "category": "%deviceSimulatorExpressExtension.commands.common.label%", + "command": "deviceSimulatorExpress.common.gettingStarted", + "title": "%deviceSimulatorExpressExtension.commands.common.gettingStarted%" + }, + { + "category": "%deviceSimulatorExpressExtension.commands.common.label%", + "command": "deviceSimulatorExpress.common.deployToDevice", + "title": "%deviceSimulatorExpressExtension.commands.common.deployToDevice%" + }, + { + "category": "%deviceSimulatorExpressExtension.commands.common.label%", + "command": "deviceSimulatorExpress.common.newFile", + "title": "%deviceSimulatorExpressExtension.commands.common.newFile%" + }, + { + "category": "%deviceSimulatorExpressExtension.commands.common.label%", + "command": "deviceSimulatorExpress.common.openSimulator", + "title": "%deviceSimulatorExpressExtension.commands.common.openSimulator%" + } + ], + "configuration": { + "properties": { + "deviceSimulatorExpress.configNewEnvironmentUponSwitch": { + "default": false, + "description": "%deviceSimulatorExpressExtension.configuration.properties.configEnvOnChange%", + "scope": "resource", + "type": "boolean" + }, + "deviceSimulatorExpress.debuggerServerPort": { + "default": 5577, + "description": "%deviceSimulatorExpressExtension.configuration.properties.debuggerPort%", + "scope": "resource", + "type": "number" + }, + "deviceSimulatorExpress.enableUSBDetection": { + "default": true, + "type": "boolean" + }, + "deviceSimulatorExpress.showDependencyInstall": { + "default": true, + "description": "%deviceSimulatorExpressExtension.configuration.properties.dependencyChecker%", + "scope": "resource", + "type": "boolean" + }, + "deviceSimulatorExpress.showNewFilePopup": { + "default": true, + "scope": "resource", + "type": "boolean" + } + }, + "title": "%deviceSimulatorExpressExtension.configuration.title%", + "type": "object" + }, + "debuggers": [ + { + "configurationAttributes": { + "launch": { + "properties": { + "args": { + "default": [], + "description": "Command line arguments passed to the program.", + "items": { + "filePath": "string", + "serverPort": "string" + }, + "type": "array" + }, + "console": { + "default": "integratedTerminal", + "description": "Where to launch the debug target: internal console, integrated terminal, or external terminal.", + "enum": [ + "internalConsole", + "integratedTerminal", + "externalTerminal" + ] + }, + "program": { + "default": "${file}", + "description": "Absolute path to the code file.", + "type": "string" + }, + "rules": { + "default": [], + "description": "Debugger rules.", + "items": { + "include": "boolean", + "path": "string" + }, + "type": "array" + }, + "stopOnEntry": { + "default": true, + "description": "Automatically stop after launch.", + "type": "boolean" + } + } + } + }, + "configurationSnippets": [ + { + "body": { + "console": "integratedTerminal", + "name": "Device Simulator Express Debugger", + "request": "launch", + "type": "deviceSimulatorExpress" + }, + "description": "Device Simulator Express Debugger - A configuration for debugging a python code file for the Device Simulator Express simulator.", + "label": "Device Simulator Express Debugger : Launch" + } + ], + "initialConfigurations": [ + { + "console": "integratedTerminal", + "name": "Device Simulator Express Debugger", + "request": "launch", + "type": "deviceSimulatorExpress" + } + ], + "label": "Device Simulator Express Debugger", + "languages": [ + "python" + ], + "type": "deviceSimulatorExpress" + } + ] + }, + "activationEvents": [ + "onCommand:deviceSimulatorExpress.common.installDependencies", + "onCommand:deviceSimulatorExpress.common.openSerialMonitor", + "onCommand:deviceSimulatorExpress.common.runSimulator", + "onCommand:deviceSimulatorExpress.common.selectSerialPort", + "onCommand:deviceSimulatorExpress.common.gettingStarted", + "onCommand:deviceSimulatorExpress.common.deployToDevice", + "onCommand:deviceSimulatorExpress.common.newFile", + "onCommand:deviceSimulatorExpress.common.openSimulator", + "onDebug" + ], + "dependencies": { + "@types/open": "^6.1.0", + "@types/socket.io": "^2.1.2", + "compare-versions": "^3.5.1", + "eventemitter2": "^5.0.1", + "glob": "^7.1.4", + "open": "^6.4.0", + "os": "^0.1.1", + "socket.io": "^2.4.0", + "usb-native": "^5.0.1", + "util": "^0.12.1" + }, + "devDependencies": { + "@playform/build": "0.0.5", + "@playform/document": "0.0.6", + "@types/glob": "^7.1.1", + "@types/node": "^10.12.21", + "css-loader": "^1.0.0", + "del": "^4.0.0", + "event-stream": "^4.0.1", + "less": "^3.7.0", + "less-loader": "^4.1.0", + "npm-run-all": "^4.1.3", + "style-loader": "^0.21.0", + "ts-import-plugin": "^1.5.4", + "ts-loader": "^4.4.2", + "version-from-git": "^1.1.1" + }, + "extensionDependencies": [ + "ms-python.python" + ], + "publishConfig": { + "access": "public" + }, + "icon": "assets/icon.png", + "preview": true, + "instrumentationKey": "__AIKEY__" } diff --git a/src/adafruit_circuitplayground/test/sample.mp4 b/src/adafruit_circuitplayground/test/sample.mp4 deleted file mode 100644 index ed139d6d50cc43f89c27392621f20d174d0bf051..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1055736 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

Aa@|$FDt-+LPp7ZlZYEj+U-s{? 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⁣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%0DXThCjUf28ZIq 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≫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

l{J&)}YQ*vBn(G1ylxHzv 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

^>&uqp0SB(s(nZAP%Ox2{`ej2 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

QHULVySZ}#~PuWJ^7tmFuh?r7A2=*(e)d45vEW8 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 diff --git a/src/adafruit_circuitplayground/test/sample.wav b/src/adafruit_circuitplayground/test/sample.wav deleted file mode 100644 index 362feec5a6c6d167193fc975a2175264968ab671..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 210158 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≤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 z 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

0`oAv;E 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 diff --git a/src/adafruit_circuitplayground/test/test_express.py b/src/adafruit_circuitplayground/test/test_express.py deleted file mode 100644 index 0732d9641..000000000 --- a/src/adafruit_circuitplayground/test/test_express.py +++ /dev/null @@ -1,115 +0,0 @@ -import pytest -from unittest import mock - -import playsound -from ..express import Express -from ..pixel import Pixel -from .. import constants as CONSTANTS - - -class TestExpress(object): - def setup_method(self): - self.cpx = Express() - self.__state = {} - self.__state[CONSTANTS.EXPRESS_STATE.BRIGHTNESS] = 1.0 - self.__state[CONSTANTS.EXPRESS_STATE.BUTTON_A] = False - self.__state[CONSTANTS.EXPRESS_STATE.BUTTON_B] = False - self.__state[CONSTANTS.EXPRESS_STATE.PIXELS] = [(255, 0, 0)] * 10 - self.__state[CONSTANTS.EXPRESS_STATE.RED_LED] = False - self.__state[CONSTANTS.EXPRESS_STATE.SWITCH] = False - self.pixels = Pixel(self.__state) - self.__speaker_enabled = False - - def test_acceleration(self): - mock_motion_x = 10 - mock_motion_y = -10 - mock_motion_z = -20 - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.MOTION_X] = mock_motion_x - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.MOTION_Y] = mock_motion_y - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.MOTION_Z] = mock_motion_z - accel = self.cpx.acceleration - assert accel[0] == 10 - assert accel[1] == -10 - assert accel[2] == -20 - - def test_button_a(self): - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.BUTTON_A] = True - assert self.cpx.button_a - - def test_button_b(self): - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.BUTTON_B] = True - assert self.cpx.button_b - - def test_taps(self): - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.DETECT_TAPS] = 2 - assert 2 == self.cpx.detect_taps - - @pytest.mark.parametrize("taps, expected", [(1, 1), (2, 2), (3, 1)]) - def test_taps_setter(self, taps, expected): - self.cpx.detect_taps = taps - assert expected == self.cpx.detect_taps - - def test_red_led(self): - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.RED_LED] = True - assert self.cpx.red_led - - def test_red_led_int(self): - self.cpx.red_led = 3 - assert self.cpx.red_led - - def test_red_led_string(self): - self.cpx.red_led = "foo" - assert self.cpx.red_led - - def test_switch(self): - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.SWITCH] = True - assert self.cpx.switch - - def test_temperature(self): - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.TEMPERATURE] = 31 - assert 31 == self.cpx.temperature - - def test_light(self): - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.LIGHT] = 255 - assert 255 == self.cpx.light - - def test_shake(self): - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.SHAKE] = True - assert self.cpx.shake() - - def test_touch_A1(self): - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.TOUCH][0] = True - assert self.cpx.touch_A1 - - def test_touch_A2(self): - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.TOUCH][1] = True - assert self.cpx.touch_A2 - - def test_touch_A3(self): - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.TOUCH][2] = True - assert self.cpx.touch_A3 - - def test_touch_A4(self): - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.TOUCH][3] = True - assert self.cpx.touch_A4 - - def test_touch_A5(self): - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.TOUCH][4] = True - assert self.cpx.touch_A5 - - def test_touch_A6(self): - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.TOUCH][5] = True - assert self.cpx.touch_A6 - - def test_touch_A7(self): - self.cpx._Express__state[CONSTANTS.EXPRESS_STATE.TOUCH][6] = True - assert self.cpx.touch_A7 - - def test_play_file_mp4_wrong_type(self): - with pytest.raises(TypeError): - self.cpx.play_file("sample.mp4") - - def test_play_file_mp4(self): - playsound.playsound = mock.Mock() - self.cpx.play_file("sample.wav") - playsound.playsound.assert_called_once() diff --git a/src/adafruit_circuitplayground/test/test_pixel.py b/src/adafruit_circuitplayground/test/test_pixel.py deleted file mode 100644 index e1179939b..000000000 --- a/src/adafruit_circuitplayground/test/test_pixel.py +++ /dev/null @@ -1,117 +0,0 @@ -import pytest - -from ..pixel import Pixel -from .. import constants as CONSTANTS - - -class TestPixel(object): - def setup_method(self): - state = {} - state[CONSTANTS.EXPRESS_STATE.BRIGHTNESS] = 1.0 - state[CONSTANTS.EXPRESS_STATE.BUTTON_A] = False - state[CONSTANTS.EXPRESS_STATE.BUTTON_B] = False - state[CONSTANTS.EXPRESS_STATE.PIXELS] = [(255, 0, 0), (0, 255, 0), (0, 0, 255)] - state[CONSTANTS.EXPRESS_STATE.RED_LED] = False - state[CONSTANTS.EXPRESS_STATE.SWITCH] = False - self.pixel = Pixel(state) - - def test_get_item_out_of_bounds(self): - with pytest.raises(IndexError): - p = self.pixel[3] - - def test_get_item(self): - assert (0, 0, 255) == self.pixel[2] - - def test_get_item_splice(self): - assert [(255, 0, 0), (0, 255, 0)] == self.pixel[0:2] - - def test_set_item(self): - self.pixel[1] = (50, 50, 50) - assert (50, 50, 50) == self.pixel[1] - - def test_set_item_splice(self): - self.pixel[0:1] = [(100, 100, 100), (0, 0, 100)] - assert (100, 100, 100) == self.pixel[0] - assert (0, 0, 100) == self.pixel[1] - - def test_set_item_out_of_bounds(self): - with pytest.raises(IndexError): - self.pixel[3] = (0, 0, 0) - - def test_set_item_invalid(self): - with pytest.raises(ValueError): - self.pixel[0] = "hello" - - def test_len(self): - assert 3 == len(self.pixel) - - @pytest.mark.parametrize("index, expected", [(0, True), (3, False)]) - def test_valid_index(self, index, expected): - assert self.pixel._Pixel__valid_index(index) == expected - - def test_fill(self): - self.pixel.fill((123, 123, 123)) - assert all( - p == (123, 123, 123) - for p in self.pixel._Pixel__state[CONSTANTS.EXPRESS_STATE.PIXELS] - ) - - @pytest.mark.parametrize( - "val, expected", - [([3, 4, 5], (3, 4, 5)), (432, (0, 1, 176)), ((1, 2, 3), (1, 2, 3))], - ) - def test_extract_pixel_values_not_slice(self, val, expected): - assert expected == self.pixel._Pixel__extract_pixel_value(val) - - @pytest.mark.parametrize( - "val, expected", - [ - ([[3, 4, 5], [6, 7, 8]], [(3, 4, 5), (6, 7, 8)]), - ([444555, 666777], [(6, 200, 139), (10, 44, 153)]), - ([(10, 10, 10), (20, 20, 20)], [(10, 10, 10), (20, 20, 20)]), - ], - ) - def test_extract_pixel_values_slice(self, val, expected): - assert expected == self.pixel._Pixel__extract_pixel_value(val, is_slice=True) - - @pytest.mark.parametrize("val", [[1, 2, 3, 4], [1, 2], 0.3]) - def test_extract_pixel_values_fail(self, val): - with pytest.raises(ValueError): - self.pixel._Pixel__extract_pixel_value(val) - - def test_hex_to_rgb_fail(self): - with pytest.raises(ValueError): - self.pixel._Pixel__hex_to_rgb("x") - - @pytest.mark.parametrize( - "hex, expected", - [ - ("0xffffff", (255, 255, 255)), - ("0x0", (0, 0, 0)), - ("0xff0000", (255, 0, 0)), - ("0xabcdef", (171, 205, 239)), - ], - ) - def test_hex_to_rgb(self, hex, expected): - assert expected == self.pixel._Pixel__hex_to_rgb(hex) - - @pytest.mark.parametrize( - "pixValue, expected", - [(0, True), (200, True), (255, True), (-1, False), (256, False), ("1", False)], - ) - def test_valid_rgb_value(self, pixValue, expected): - assert expected == self.pixel._Pixel__valid_rgb_value(pixValue) - - def test_get_brightness(self): - self.pixel._Pixel__state[CONSTANTS.EXPRESS_STATE.BRIGHTNESS] = 0.4 - assert 0.4 == pytest.approx(self.pixel.brightness) - - @pytest.mark.parametrize("brightness", [-0.1, 1.1]) - def test_set_brightness_fail(self, brightness): - with pytest.raises(ValueError): - self.pixel.brightness = brightness - - @pytest.mark.parametrize("brightness", [0, 1, 0.4, 0.333]) - def test_set_brightness(self, brightness): - self.pixel.brightness = brightness - assert self.pixel._Pixel__valid_brightness(brightness) diff --git a/src/base_circuitpython/displayio/test/img/group_test_result.bmp b/src/base_circuitpython/displayio/test/img/group_test_result.bmp deleted file mode 100644 index 3dfdad5fce9797b69f25281ee08d44dad30c16e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172854 zcmeIwv5lQo7zW{MlRL$71ytYyoYNMK&LQ_ZN@H&)@%=`+aWrBJh&HT+Gjd zUw(r>BX9`l`H=A5KtRtoSo95tfSwNt?+pa>e1k>ba0ux6knr9>K+iW=^bLoAo(~D{ z4FvRjgGJwP2e1k>ba0ux6knr9>K+iW=^bLoA zo(~D{4FvRjgGJwP2|Eu&|R(dXt#jWRB({pJoZavqUo=anK>$%qS zTpEj8&$XuK(pcPjt~EWE#^TmjP0yvVxb<9XdM=H{t>;?Pb7?GYJ=dC^ zOJi~Cxz_Yt8jD-cwWjCNSloK9H9eQc;?{Gm>A5r(x1MWF&!w@r^;~OuE{(;l=UUTq zX)JC%*P5P7V{z-b*7RH&i(AjNrsvXF+YfaCk zvAFeIYkDq?#jWRB({pJoZavqUo=anK>$%qSTpEj8&$XuK(pcPjt~EWE#^TmjP0yvVxb<9XdM=H{t>;?Pb7?GYJ=dC^OJi~Cxz_Yt8jD-cwWjCNSloK9H9eQc z;?{Gm>A5r(x1MWF&!w@r^;~OuE{(;l=UUTqX)JC%*P5P7V{z-b*7RH&i(AjNrsvXF z+8JWb7|P?1oXUa(ETN#=hCp(3Fvvjd(7y-q;S>jvFl0(veDd!2xu*A2SA1oT`Q_BsJQuN!oK3Fx^r>~#Wq zUN`9e63}yL*y{xJyl&9_C7|chu-6IbdEKD8JWb7|P?1oXUa z(ETN#=hCp(3Fvvjd(7y-q;S>jvFl0(veDd!2xu z*A2SA1oT`Q_BsJQuN!oK3Fx^r>~#WqUN`9e63}yL*y{xJyl&9_C7|chu-6IbdEKD< zOF+-1VXqU=^SVLzmw=v2!(Jz#=XHbbF9AK5hP_Te&+7)=UjlkA4SSt{p4Sb!zXbGL z8umH?J+B*de+lThH0*T(dR{l^{u0o0Y1r!o^t^7+{UxC1(y-SF=y~0s`%6I2rD3lV L(DS-M_m{xmwbZOQ diff --git a/src/base_circuitpython/displayio/test/test_bitmap.py b/src/base_circuitpython/displayio/test/test_bitmap.py deleted file mode 100644 index 2967aa632..000000000 --- a/src/base_circuitpython/displayio/test/test_bitmap.py +++ /dev/null @@ -1,44 +0,0 @@ -import pytest -from ..bitmap import Bitmap -from .. import constants as CONSTANTS - - -class TestBitmap(object): - @pytest.mark.parametrize("x, y", [(1, 1), (2, 6), (0, 0)]) - def test_create_bitmap(self, x, y): - bitmap = Bitmap(x, y) - - @pytest.mark.parametrize("x, y, palette_num", [(1, 1, 4), (2, 3, 6), (4, 4, 9)]) - def test_set_and_get_pixel(self, x, y, palette_num): - bitmap = Bitmap(5, 5) - bitmap[x, y] = palette_num - assert palette_num == bitmap[x, y] - - @pytest.mark.parametrize("i, palette_num", [(1, 1), (24, 2)]) - def test_set_and_get_pixel_singular_index(self, i, palette_num): - bitmap = Bitmap(5, 5) - bitmap[i] = palette_num - assert palette_num == bitmap[i] - - @pytest.mark.parametrize( - "x_size, y_size, x_coord, y_coord", - [(1, 1, 0, 4), (1, 1, 4, 0), (200, 200, 300, 1), (200, 200, 1, 300)], - ) - def test_get_set_index_err(self, x_size, y_size, x_coord, y_coord): - bitmap = Bitmap(x_size, y_size) - - with pytest.raises(IndexError, match=CONSTANTS.PIXEL_OUT_OF_BOUNDS): - bitmap[x_coord, y_coord] = 0 - - with pytest.raises(IndexError, match=CONSTANTS.PIXEL_OUT_OF_BOUNDS): - val = bitmap[x_coord, y_coord] - - @pytest.mark.parametrize("x_size, y_size, i", [(1, 1, 3), (200, 200, 40000)]) - def test_get_set_index_err_singular_index(self, x_size, y_size, i): - bitmap = Bitmap(x_size, y_size) - - with pytest.raises(IndexError, match=CONSTANTS.PIXEL_OUT_OF_BOUNDS): - bitmap[i] = 0 - - with pytest.raises(IndexError, match=CONSTANTS.PIXEL_OUT_OF_BOUNDS): - val = bitmap[i] diff --git a/src/base_circuitpython/displayio/test/test_group.py b/src/base_circuitpython/displayio/test/test_group.py deleted file mode 100644 index 3e4b3601e..000000000 --- a/src/base_circuitpython/displayio/test/test_group.py +++ /dev/null @@ -1,174 +0,0 @@ -import sys -import os -import pytest -import pathlib - -from unittest import mock - -from common import utils - -from displayio.tile_grid import TileGrid -from displayio.group import Group -from displayio.palette import Palette -from displayio.bitmap import Bitmap -from .. import constants as CONSTANTS -from PIL import Image - - -class TestGroup(object): - def setup_method(self): - self.abs_path = pathlib.Path(__file__).parent.absolute() - self.dummy_bitmap = Bitmap(500, 500) - self.dummy_palette = Palette(5) - self.dummy_pos = (0, 0) - - utils.send_to_simulator = mock.Mock() - - def test_append_tilegrid_group_to_group(self): - tg1 = TileGrid( - bitmap=self.dummy_bitmap, - pixel_shader=self.dummy_palette, - position=self.dummy_pos, - ) - - tg2 = TileGrid( - bitmap=self.dummy_bitmap, - pixel_shader=self.dummy_palette, - position=self.dummy_pos, - ) - - g1 = Group(max_size=10) - g2 = Group(max_size=10) - - g2.append(g1) - g2.append(tg1) - g2.append(tg2) - - assert len(g2._Group__contents) == 3 - assert len(g1._Group__contents) == 0 - - @pytest.mark.parametrize("group_item", [(""), (5), ((4, 5))]) - def test_incorr_subclass(self, group_item): - g1 = Group(max_size=10) - with pytest.raises(ValueError, match=CONSTANTS.INCORR_SUBCLASS): - g1.append(group_item) - - @pytest.mark.parametrize("scale", [(0), (-2)]) - def test_invalid_scale(self, scale): - with pytest.raises(ValueError, match=CONSTANTS.SCALE_TOO_SMALL): - g1 = Group(scale=scale) - - def test_layer_already_in_group(self): - g1 = Group(max_size=4) - - tg1 = TileGrid( - bitmap=self.dummy_bitmap, - pixel_shader=self.dummy_palette, - position=self.dummy_pos, - ) - - tg2 = TileGrid( - bitmap=self.dummy_bitmap, - pixel_shader=self.dummy_palette, - position=self.dummy_pos, - ) - - g1.append(tg1) - - # should allow this, since it checks equality by reference: - g1.append(tg2) - - # should throw error for same group by reference - with pytest.raises(ValueError, match=CONSTANTS.LAYER_ALREADY_IN_GROUP): - g1.append(tg1) - - def test_group_full(self): - g1 = Group(max_size=1) - - tg1 = TileGrid( - bitmap=self.dummy_bitmap, - pixel_shader=self.dummy_palette, - position=self.dummy_pos, - ) - - tg2 = TileGrid( - bitmap=self.dummy_bitmap, - pixel_shader=self.dummy_palette, - position=self.dummy_pos, - ) - - g1.append(tg1) - - with pytest.raises(RuntimeError, match=CONSTANTS.GROUP_FULL): - g1.append(tg2) - - @pytest.mark.parametrize( - "size_w,size_h,draw_w,draw_h,accent_colors,x_offset,y_offset,scale_sub,scale_main", - [ - ( - (30, 27), - (63, 34), - (10, 11), - (40, 20), - ((244, 266, 23), (134, 26, 3)), - 3, - 9, - 2, - 3, - ) - ], - ) - def test_draw_group( - self, - size_w, - size_h, - draw_w, - draw_h, - accent_colors, - x_offset, - y_offset, - scale_sub, - scale_main, - ): - palette = Palette(3) - palette[1] = accent_colors[0] - palette[2] = accent_colors[1] - - bmp_1 = Bitmap(size_w[0], size_h[0]) - bmp_2 = Bitmap(size_w[1], size_h[1]) - - for i in range(draw_h[0]): - for j in range(draw_w[0]): - try: - bmp_1[j, i] = 1 - except IndexError: - continue - - for i in range(draw_h[1]): - for j in range(draw_w[1]): - try: - bmp_2[j, i] = 2 - except IndexError: - continue - - tg = TileGrid(bitmap=bmp_1, pixel_shader=palette, position=(0, 0)) - tg2 = TileGrid(bitmap=bmp_2, pixel_shader=palette, position=(50, 50)) - - group_main = Group(max_size=10, scale=scale_main, check_active_group_ref=False) - group_sub = Group(max_size=10, scale=scale_sub) - - group_sub.append(tg) - group_main.append(group_sub) - group_main.append(tg2) - img = group_main._Group__draw() - - img.putalpha(255) - expected = Image.open( - os.path.join(self.abs_path, "img", "group_test_result.bmp") - ) - expected.putalpha(255) - bmp_img_expected = expected.load() - bmp_img = img.load() - for i in range(CONSTANTS.SCREEN_HEIGHT_WIDTH): - for j in range(CONSTANTS.SCREEN_HEIGHT_WIDTH): - assert bmp_img_expected[j, i] == bmp_img[j, i] diff --git a/src/base_circuitpython/displayio/test/test_palette.py b/src/base_circuitpython/displayio/test/test_palette.py deleted file mode 100644 index 8b0d1aa38..000000000 --- a/src/base_circuitpython/displayio/test/test_palette.py +++ /dev/null @@ -1,31 +0,0 @@ -import pytest -from ..palette import Palette -from .. import constants as CONSTANTS -from ..color_type import _ColorType - - -class TestPalette(object): - @pytest.mark.parametrize( - "color_count, palette_num, val", - [(11, 5, (255, 255, 255)), (1, 0, (255, 0, 255)), (4, 3, (0, 0, 0))], - ) - def test_get_and_set_palette(self, color_count, palette_num, val): - palette = Palette(color_count) - palette[palette_num] = val - assert palette._Palette__contents[palette_num] == _ColorType(val) - - @pytest.mark.parametrize("palette_size, palette_index", [(3, 7), (0, 0), (3, 3)]) - def test_get_and_set_palette_err(self, palette_size, palette_index): - palette = Palette(palette_size) - with pytest.raises(IndexError, match=CONSTANTS.PALETTE_OUT_OF_RANGE): - palette[palette_index] = 0 - - def test_set_transparency(self): - palette = Palette(5) - assert palette._Palette__contents[2].transparent == False - - palette.make_transparent(2) - assert palette._Palette__contents[2].transparent == True - - palette.make_opaque(2) - assert palette._Palette__contents[2].transparent == False diff --git a/src/base_circuitpython/displayio/test/test_tile_grid.py b/src/base_circuitpython/displayio/test/test_tile_grid.py deleted file mode 100644 index 1f2d9d5fa..000000000 --- a/src/base_circuitpython/displayio/test/test_tile_grid.py +++ /dev/null @@ -1,173 +0,0 @@ -import pytest -from PIL import Image -from ..tile_grid import TileGrid -from ..palette import Palette -from ..bitmap import Bitmap -from .. import constants as CONSTANTS - - -class TestTileGrid(object): - def setup_method(self): - self.dummy_bitmap = Bitmap(500, 500) - self.dummy_palette = Palette(5) - self.dummy_pos = (0, 0) - - @pytest.mark.parametrize( - "bitmap_w,bitmap_h,palette_num,tile_width,tile_height,position", - [(1, 1, 3, 1, 1, (0, 5)), (5, 7, 4, 2, 3, (0, 5))], - ) - def test_basic_constructor( - self, bitmap_w, bitmap_h, palette_num, tile_width, tile_height, position - ): - # constructor with position tuple - tg1 = TileGrid( - bitmap=Bitmap(bitmap_w, bitmap_h), - pixel_shader=Palette(palette_num), - tile_width=tile_width, - tile_height=tile_height, - position=position, - ) - - # alternate constructor with no position tuple - - tg2 = TileGrid( - bitmap=Bitmap(bitmap_w, bitmap_h), - pixel_shader=Palette(palette_num), - tile_width=tile_width, - tile_height=tile_height, - x=position[0], - y=position[1], - ) - - tile_grids = [tg1, tg2] - - for tg in tile_grids: - assert tg._TileGrid__bitmap.width == bitmap_w - assert tg._TileGrid__bitmap.height == bitmap_h - assert len(tg.pixel_shader._Palette__contents) == palette_num - assert tg._TileGrid__tile_width == tile_width - assert tg._TileGrid__tile_height == tile_height - assert tg.x == position[0] - assert tg.y == position[1] - - # alternate constructor with no height and width -> takes the bitmap's height and width - tg3 = TileGrid( - bitmap=Bitmap(bitmap_w, bitmap_h), - pixel_shader=Palette(palette_num), - x=position[0], - y=position[1], - ) - - assert tg3._TileGrid__bitmap.width == bitmap_w - assert tg3._TileGrid__bitmap.height == bitmap_h - assert len(tg3.pixel_shader._Palette__contents) == palette_num - assert tg3._TileGrid__tile_width == bitmap_w - assert tg3._TileGrid__tile_height == bitmap_h - assert tg3.x == position[0] - assert tg3.y == position[1] - - @pytest.mark.parametrize( - "w, h, x, y", [(5, 5, 2, 1), (2, 7, 0, 0), (66, 88, 65, 87)] - ) - def test_tile_set_get(self, w, h, x, y): - tg = TileGrid( - bitmap=self.dummy_bitmap, - pixel_shader=self.dummy_palette, - tile_width=w, - tile_height=h, - position=self.dummy_pos, - ) - - tg_x_y = tg[x, y] - assert tg_x_y == tg._TileGrid__bitmap[x, y] - - @pytest.mark.parametrize( - "w, h, x, y", [(55, 56, 100, 1), (55, 56, 0, 56), (66, 88, 66, 88)] - ) - def test_tile_out_of_bounds(self, w, h, x, y): - tg = TileGrid( - bitmap=self.dummy_bitmap, - pixel_shader=self.dummy_palette, - tile_width=w, - tile_height=h, - position=self.dummy_pos, - ) - with pytest.raises(IndexError, match=CONSTANTS.TILE_OUT_OF_BOUNDS): - tg_x_y = tg[x, y] - - @pytest.mark.parametrize( - "size_w, size_h, x, y, draw_w, draw_h, bg_color, accent_color, x_offset, y_offset, scale", - [ - (10, 10, 5, 5, 5, 5, (3, 0, 0, 255), (244, 255, 23, 255), 2, 0, 2), - (100, 30, 2, 3, 6, 3, (255, 255, 255, 255), (45, 45, 77, 255), 0, 7, 5), - ], - ) - def test_draw( - self, - size_w, - size_h, - x, - y, - draw_w, - draw_h, - bg_color, - accent_color, - x_offset, - y_offset, - scale, - ): - - palette = Palette(2) - palette[0] = bg_color - palette[1] = accent_color - - bmp = Bitmap(size_w, size_h) - - for i in range(size_h): - for j in range(size_w): - bmp[j, i] = 0 - - for i in range(y, y + draw_h): - for j in range(x, x + draw_w): - try: - bmp[j, i] = 1 - except IndexError: - continue - - tg = TileGrid(bitmap=bmp, pixel_shader=palette, position=(0, 0)) - tg2 = TileGrid(bitmap=bmp, pixel_shader=palette, position=(0, 0)) - img = Image.new( - "RGBA", (CONSTANTS.SCREEN_HEIGHT_WIDTH, CONSTANTS.SCREEN_HEIGHT_WIDTH) - ) - # without scaling, test output - img = tg._TileGrid__draw(img, x_offset, y_offset, 1) - bmp_img = img.load() - for i in range(CONSTANTS.SCREEN_HEIGHT_WIDTH): - for j in range(CONSTANTS.SCREEN_HEIGHT_WIDTH): - if (i in range(y_offset + y, y_offset + y + draw_h)) and ( - j in range(x_offset + x, x_offset + x + draw_w) - ): - assert bmp_img[j, i] == accent_color - elif (i in range(y_offset, y_offset + size_h)) and ( - j in range(x_offset, x_offset + size_w) - ): - assert bmp_img[j, i] == bg_color - - img = Image.new( - "RGBA", (CONSTANTS.SCREEN_HEIGHT_WIDTH, CONSTANTS.SCREEN_HEIGHT_WIDTH) - ) - # with scaling, test output - img = tg._TileGrid__draw(img, x_offset, y_offset, scale) - bmp_img = img.load() - for i in range(CONSTANTS.SCREEN_HEIGHT_WIDTH): - for j in range(CONSTANTS.SCREEN_HEIGHT_WIDTH): - if ( - i in range(y_offset + y * scale, y_offset + (y + draw_h) * scale) - ) and ( - j in range(x_offset + x * scale, x_offset + (x + draw_w) * scale) - ): - assert bmp_img[j, i] == accent_color - elif (i in range(y_offset * scale, (y_offset + draw_h) * scale)) and ( - j in range(x_offset * scale, (x_offset + draw_w) * scale) - ): - assert bmp_img[j, i] == bg_color diff --git a/src/base_circuitpython/test/__init__.py b/src/base_circuitpython/test/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/base_circuitpython/test/test_terminal_handler.py b/src/base_circuitpython/test/test_terminal_handler.py deleted file mode 100644 index 22a8986af..000000000 --- a/src/base_circuitpython/test/test_terminal_handler.py +++ /dev/null @@ -1,61 +0,0 @@ -import pytest - -import base_circuitpython.terminal_handler -from common import utils -from unittest import mock - - -class TestTerminal(object): - def setup_method(self): - - utils.send_to_simulator = mock.Mock() - - @pytest.mark.parametrize( - "str_vals", - [ - (["potato", "Lorem ipsum"]), - ([""]), - ([".......", "123456", "", "test"]), - (["123456789 123456789 123456789 1234567"]), - ], - ) - def test_single_line(self, str_vals): - self.terminal = base_circuitpython.terminal_handler.Terminal() - for s in str_vals: - self.terminal.add_str_to_terminal(s) - - result = list(self.terminal._Terminal__output_values) - result.reverse() - - # output should just be the reversed version since all lines - # don't have newline or exceed 37 characters - assert str_vals == result - - @pytest.mark.parametrize( - "str_vals, expected", - [ - ( - ["\nCode done running. Waiting for reload."], - [".", "Code done running. Waiting for reload", ""], - ), - ( - ["TESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTEST"], - ["ESTTESTTEST", "TESTTESTTESTTESTTESTTESTTESTTESTTESTT"], - ), - ( - ["\nCode done running. Waiting for reload.", "........."], - [".........", ".", "Code done running. Waiting for reload", ""], - ), - ( - ["TEST TEST TEST TEST TEST ", "..."], - ["...", " ", "TEST TEST TEST TEST TEST "], - ), - ], - ) - def test_multiline(self, str_vals, expected): - self.terminal = base_circuitpython.terminal_handler.Terminal() - for s in str_vals: - self.terminal.add_str_to_terminal(s) - - result = list(self.terminal._Terminal__output_values) - assert result == expected diff --git a/src/clue/test/__init__.py b/src/clue/test/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/clue/test/img/test_clue_text_1.bmp b/src/clue/test/img/test_clue_text_1.bmp deleted file mode 100644 index 7ea72fe2cea4b656b69e41a9a262552dc2a18a7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172854 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 w^^Bjk^Sd3rc15q8XCwq88Il86E`aR{Pgpe zU%&nM^Us&p-ydIpfB)z2Hy=N|rq`d>zyJ2#$6tT{Uid!&0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7csfqx17^8Lrx|Nixl|FQTQehuwUW=`fOJ?-1vKe=I}Cp)Ke z{+5$(Px6^*b9*cEEi>I`XPaAR=36HBC;7~r%-NswlW*U-CvTh1X>#)INj@`eZf|A2 zWv2V=Y;)_(e9PqiB%hg+Is0>d^6fkKXHV{PZkgP-`BqQsZ~OM{c7FP9yQl4M^-p`Y^X>PxecqFE=5wEO%jCYzw|ZKC z+qZYO^V4_RJ#Bxhf7-L1Z@;(g^PZeDpZlC!CiiW=)zkXhzP-DhpT67fY5QCK)1K{o z`@L)qBf-M8P>dT!;XJ?);hztunO+0M7$+xG3ATl-t@ww~#}{jSz?E1x~nx!sog?9Bai zp7w0#Z{6SSobKB_w|ZKC+qZYO^ZD*{Znxz=J99ssr#;*GTlcp+r~7u#t)AB3_U+y6 ze7-xK+ikhe&fHJuY0q~4*8T0y>Au}_tEct1eS3F1pYKlRc3bYVGxyVZ+OwU%b$`2a zx^MT~>S_IL-`+jR=eH+wc4j{JZQjm**1OZ+)$VNjX@ASN{q)`J$+`7R_tVbIPv^WX zzs-G{xAUL%?(}!HJKKKR-|}rgeK&h@Zavfev@`S5Id98vbKmCe{Aay8{ax+Owx9O5 zeA`do&7PcF&vZZS%=~oD+w$Aow|P7NS?^ANSG%+Ar~NJ8_S1K>C+F5P-A_9=^4Zzu z?cde<^PZMz`~0@e?b}=XeD|dDB%hf!x3@B%ncTNI^KH&=TPF7#`Rr_S-f%K!&q=;z zp7i9mZEo-0+UL6`ohSLsw7I>N`OM_L&6#g=e%ms+-^gcYoAZW~IeSj>E%T%&zio4S z_trk&J?T8jXQs{Vt;}a8_ifI6oAcY2$^Aw?JKLN$oXpvCl5d$OJ^5{$+q<{+`R+;Q zNj@`eZf|8iGr4bb=G&a#woLA~^ZC}3d3tAi>sC+e-`-E}pXRskpY~7h-_B3(Z~5t+ z+dZv+dp~uU=C|*k_D}EM&QI@e`RSe8J*|IxKXsVqx9^|!Pw(H(Pw#K}>7Cm>t$%wz zb(rS2@1OQh@88Z(@6UYRmUCuK=KMD2lW*TGGrfPBe}~_jH|KnE+jjoshL*|Oa&Gyy Z&u?>X`FGw=@1N%1;kW0_Isfl%e*nkUw}=1$ diff --git a/src/clue/test/img/test_display_text_2.bmp b/src/clue/test/img/test_display_text_2.bmp deleted file mode 100644 index c08c37fe02c3cabf6a774b181a985bbe629605e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172854 zcmeIx(M`iJ5CG7?0DLn76LbLnJ0;(&z!!5c10!(skY(vma7bHF@}f98U7WM~e0@9~ zo^Gel>k#81#{1W}neHQsE8f4}O{b9wPXYu85FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAVA={0&mYRZNZFxmx&_rVcvbg`An`=pIM>L*G&I*ByPJBY*-*V zp*6$GAe35#m2rai)oP}HI}&FF&ut5gbi(!L)b6dBrMuepIr??$J7j4`jnA)ptC{g? zIn#;nL7+eDzC&vNTrShEd%1WIr|CETc|XSn@~;1vncl8n{g`pqdl1N;slBu`b1tiF n%cwRJoNFz0wkPlp`?(?K-s%q91OWj81PBlyK!5;&Zv{R8Ce|~( diff --git a/src/clue/test/img/test_display_text_3.bmp b/src/clue/test/img/test_display_text_3.bmp deleted file mode 100644 index 3b68886396ece1aee9d6df5771e9a874a2679c36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172854 zcmeIw!EGK#3EEoHUAZ9dAfDA*k9DaP9Kfizb z>yNizKi^)zUthmJ|Ns5;_T}}z*U#(x@6T`l{{Hs|{}LcTfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjX*gusvPpLUh*fIrqr*q+3NANaLgjn=;Ot46nf zZ%^XFTl1$Mw39v!aQpo_3EPvn@OJx8KWHa?8sPT(brQBGapCRupMKCz`ZU1p_v<8V zPvXMc?LYmXo%Csd+wa#&*q+3Nx7&aEK|ATw0Jq<-ldwIB3vajo^n-TNrvYxiUngOE z5*OZX|LF(qq)!9fe!ot__9TZ~Sgg1ZSih&2oT|wUPWH++xPHQHu5+p; zH#pfV+u-^Mv$@Wxn%v-IuWWzt~|4NmsTHn@JmY_4;v zCO0_QE8F1u3A4G*shZs2WUp+4>nF_SI;U!KgOk0o4X&Rso9mpa$qi2S$~L%u!fdW{ zswOu$*(=-N`U$hS&Z(N*;AF3CgX<^E<~pZpa)Xn-vJI}EFq`X~s>uyb_R2Q6e!^_7 zbE+mcIN2-P;Q9%(xz4GY+~8!dY=i43%;q|$YI1{&2oT|wUPWH++xPHQH zu5+p;H#pfV+u-^Mv$@Wxn%v-IuWWzt~|4NmsTHn@Jm zY_4;vCO0_QE8F1u3A4G*smeB(`DDGas*jp5o9mn^ujTh$XBt`6?|uEhOJH&rS+A@r z^T~Q;Rart+wZP;qvR+wLJ@wUT)+?*J%HZ$s5t!UX)+?*ZOtM~CRhCdyEik!@tXEc5 zPknWo^~$QQGWh#@1SWTp^~$O;ldM-(l_gYF3ry}J>y=g2Q(v8Cy|SvS4F3KefyrHD zy|SvzB)LbeM` zzOl((?NBb&3GP9%ILFC_BAbYe$)z%uq?=Dch%*~^bhhiuiweAb6#bWHb6SFaK=dl49w)n(sOx$@`ES|A$3DPsZv~PJ^ z0eQad(?0Tx$@3$h{kC6Po^SiKkNjft{K#jY^rcHgmyY>+E{!UeFPxl5soqSW1ZnA* zDV9c+%NI`0qf~DuP=d5{%oIzb%H<0u=TWLR6DUDiI%bNcQRVW5lk+Imn+cR4Egdt( z(x`Iz!pV7*>U4pnb(Uz*~q=QnpJaeuI9iA@VPBxZ$%jKnGd7#o;s*X<<=wxH5w_IL2 zmIo@mrRw-(flfA-dduadV|k#`TdIyv7U*PSskdBSI+h12y`}2-WPwgLI=$IEPtMgm zS@qrmoosY^vud84t9i2Oy#+ei==5gQJULhMWYv2Mbh6Ru&8m5FuI9MfV^F+V}+&6ialCD6&nQg6AOkNF8oZ@#QbfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C79wqSY{r%_P7k>Aj$G-kPV)BJc8g)cqV(RwoeB=py z=!F9NvN3V;g|J2)5tx{|eLEj{0v~#zz`kruoO~gyQAY$Orf%QPN1nikUMR3H8xtpA z2y4_4fr+WxxAT!F@Szt9?90Z)$rr*Jbwprd>h|q?jQXbSAh#>B}@Ozp=7CZ=xR&c~m_0!@K^*_b%FiK+d# zz{J$;+xhr&SfDAeFB=mlH!-yz7nqp3eLEk24hu8|_GM$@?w{Pd;&tZY4 zz`kruoZQ6Jeq3N;>h|q?{5dSp6xf%IiIba{+K&rNOx?bnk3WY6ngaW>F>!JeQ#%0y z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0yhx& E7mPcEsQ>@~ diff --git a/src/clue/test/img/test_image_shapes_1.bmp b/src/clue/test/img/test_image_shapes_1.bmp deleted file mode 100644 index 6719a7f8d6f1788d8c28c8c7a9d839f2cc4a8435..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172854 zcmeIuOAUZP5JbTN0i2P5f)%iLRAL1|IDqD(f>b9j+05RmuWcLaUQ0_lzJ{9f%JRQY z_4FR9P9s2o009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ j009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7csfnNw*yLO6e diff --git a/src/clue/test/img/test_image_shapes_2.bmp b/src/clue/test/img/test_image_shapes_2.bmp deleted file mode 100644 index ae1f7618d0b2a21643e1668654c47d3932eef879..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172854 zcmeIw+erjb6hzUh0r+hQMqmK`8>OijkQt2aBLbn=Agh@Mao`lQ*e|coZ};cxdA{DK z>;3qB@6O}(*Y#ZAzdxMs_vaty+&lyb5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBm_1kUYLpXe8x{m%kb%-8OJX7$@50X;|XW+wuAp0GL^3FtY3H#-r~ z^MuvWNI=gKyxEC>o+qr1Mgn?{;LT11^gLm8G!oEr1aEdCpyvszqmh7~BY3kD0XS!dO=Lp{HL_p6IR!1WNJxB0nCjxq&usRwE=sAKnI}yH2t@U*G1}uh-Y7>FfN{{Fwj#^UL(|y8U9BE*=C35FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNB!O<=lQ?mf3H z=qv)q3%oTvU8Z}__s);MJQE2l6nH85Uc>+V{cG3@*LN6!V+7Wh{CD1}K4zCpStKy0 zdHDI=cbgrIHy77;A+lR#LE&37D8Sm$pUV@T7gCaLYD1XQ6oo=R+|)NaEuiPLsP&oxdT#2Qofgn@TGV%0V%(%1^@s6 diff --git a/src/clue/test/img/test_image_shapes_4.bmp b/src/clue/test/img/test_image_shapes_4.bmp deleted file mode 100644 index be810780ba72a7f1955073e58b1f243f530dcca3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172854 zcmeI)QBoUM5Cu>r3&?ktkQI0V{?972l`JSbAOa&%Wm-m{?s>YJqk=MSpkL4FTjOyR z_V>TP{qy_b`StDi{@3ySzt{KQ4u2j$I=+sd|M!o>%lnVQ;qc@|fB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pkHwYXuUpHK_Z+&Ee%s3w&c_psx1_61#0nfMIoxnNIcQ;uz zP}a276{yV$WF;hP+S$$NUI}C+Bx~BrTWwY#Do{O3CWta@>ZJ_$Vy1ow6mMjy%NYuNY=EKx7w^gRzk9-o!y-7l|WWPvZk%P)n)~< z5|TCT?B;Z@1hNv6HErdsHY<>okgREEH>Z0gkd=_EX)ABFS%IvCWKBD}Io&IPtb}Au zTY0O^3S=cDYuee(>0SwBB_wOw%3Ez#AS)qR)6Q;A_evluAz9N_-fFV~SqaISc6M{R zR{~iH$(pwER+|;bN=VkUvzybs639wO*0hzk+N{7GCFJn*bm{G6a7WXgM)K=j39L`Z zDZ_`S!=<-#&euKKRtzxX)d@2>c}Q7LcDlG4$J8!uBzN2>&n;oTkY|xj4q)@_TjaSb%$M^l(#^4m zZ70vMt21~ZFrMeeoAWR4&u-DhcK273=l$*ck*|0*&%HP2kM7TI(T|+e>#j|nuXFNM z83OX0u_serCoq`j_J@rto;N&lT(|az{VI8W*wyax!p?aP``~!5zVPOUly({9*NYB| z@p;?}VfMVS=P)0y{Tz_659E30!QKAyC;mQoImYM556>IhuX-0J%JVMPyqk-Z=iRJ& z7Z)neyIAv{E^_lodwAYcyf(j9dET7dfrA3_Jcz6H3V{tH?O|iZf_HYNJnwAbkAJzF zMB2^y@q=_HS18YSvIt{z2@FTt&ADq)`dlk87HMI=b_Kq!S70F0!rZ$e-99JK8fjtv z9KNrf5NL|DFi$K;&#wr4`TysC`T6JPB>T_IzvAwDCIvp9YDu2lhu$3mKW?_adR!009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5(rAaMK_uB+ZYn9QdMd|qHxn4kZpxEFzL z0eS8g)o-PMJg?MucDH~$cZ=$`Qb3+p>N~qzK%Tor^;;<*&nxwv-7O%`-J<%f6p-hY z`p)hakmqhu{Z||9zO%ap=yi(uU-2(F5Evny2 z0eN1j@9b^?dF~d~Z>4}duhe&Tw}3o%i|V&hK%Q6XJG)yzp1Vc$TPYyVEA^e-Eg;X` zqWY~Akmr^9&h8eF=WbE`Rtm`TN_}T{3&?Y~sD3L2+j-Qs3F# z0`lA~s^3Zhd0wgS>}~;h?iST=rGPxI)OU8bfIN4L>bFuro>%HSyIVk>yG8X|DIm`) z^_|@R`Vk;NfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk a1PBlyK!5-N0t5&UAV7cs0RjYO1^x$f_BIRv diff --git a/src/clue/test/img/test_image_shapes_5.bmp b/src/clue/test/img/test_image_shapes_5.bmp deleted file mode 100644 index e5473f83d5742c6a45046fad223e2cdcdf3d1995..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172854 zcmeI)?Qvs85Qb4f0Q@EdBG>@;+xOKyDsN%NtC`lB2O+9} zKmYpi_pgW3tydtckgREYZ_e(OKvp4H(^lTrdIhoy$(pwJ=ImYxWEGM%ZRKsP zS0Jm9tZ931&hC{!Rv}r_R^HZn1+ogsnzr}m>|P0E6_Pb=tydtckgREYZ_e(OKvp4H(^lTrdIhoy$(pwJ=ImYxWEGM%ZRKsP zS0Jm9tZ931&hC{!Rv}r_R^HZn1+ogsnzr}m>|P0E6_Pb=tydtckgREYZ_e(OKvp4H(^lTrdIhoy$(pwJ=ImYxWEGM%ZRKsP zS0Jm9tZ931&hC{!Rv}r_R^HZn1+ogsnzr}m>|P0E6_Pb=tydtckgREYZ_e(OKvp4H(^lTrdIdIA$l>Yf+Si-GhNgWR$sac* zFki@9!-uECwXbvM^V4qX@(gn!Fj>fR$=4dL*WbpycpVl9oCMwiIkvUpV?oI;@7{0Y zp5C!N2wVuf1+rov$9LZAA1!|JqxW%7yLb@zB=8={ryn%^>33p&|C`C{Cv8bL-BRwh ztM>fOm@j&M-Y?hQCFUzVOFB8gJI}sG&-aS?de4%+ za~84N={ff53|UwdtO z{+g5Dl_8+#jC(TW*901SzWaxbFMQtck>hLE{;7E>6_*F0Oeu zFH+CDx$0fKP(APBn)mb~S5Ml9=RM`M`fJtm>f{b=6wq@cuB|5oR!rK5jfo51*_nFY z*@fSFxzGP!tkc`h7QSu`dh=(iB<;=l<{eD`a0>yKGc177^8&O-dP*76b`}>iJ7^MZR==_y+)_NVhKaJg&JVqS0q z>pkV7pH2Nc$)|WeeJ!K8Q_^By#=p|DKBaQJ^zA)9_k5gr+2i@eo?hajuh%h_9qn1` z2<)oo7t;Sx_V&XWX6IBcSIVSG&##=y}H7sXYRE?s2v2jKIV7eB-}w?f%is4LbFsfSwoqzc|Xj zG(NieenvpgdY&n-=TtrGxu>j|UG=Qzneuv0)w7;^%9`0#&w8FIujf=f>$#__nO*g) z=b7?)PSvxXd&-*GRnK~!DX-^LJ?purteIW)tmm2XdQR1|o_org*;UVao++>AR6Xmt zr>vP>^{nTa@_J6yvz~j(n%Py)dY&n-=TtrGxu>j|UG=Qzneuv0)w7;^%9`0#&w8FI zujf=f>$#__nO*g)=b7?)PSvxXd&-*GRnK~!DX-^LJ?purteIW)tmm2XdQR1|o_org z*;UVao++>AR6Xmtr>vP>^{nTa@_J6yvz~j(n%Py)dY&n-=TtrGxu>j|UG=Qzneuv0 z)w7;^%9`0#&w8FIujf=f>$#__nO*g)=b7?)PJOtZdzkDRBB1Axi!$by1oZqRCci01 zVB1MQU5u9_YtjjU%V0LXGJ)jGB!P_w{BgV_R}YfX1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oP8<@E_d! B4ZHvV diff --git a/src/clue/test/img/test_image_text_1.bmp b/src/clue/test/img/test_image_text_1.bmp deleted file mode 100644 index dee4173d2604b57b07aaabb92eb8c5b9057ffeb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230454 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 qN9c#uet_`tL{Z>z?f62Xr~^Y!@q zpWpua_2vEFx3|w9Z=Zku|NQdu``fp-e{c8y{_W-G=f6Mv{O^yq|N7_w0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3_P`g*Voq{ zt3EFat*tuK`#xXwTr2Cg*UJr7pvYmaI9q@{jKJle)e9@yzkMqpVctq@1wPzd45LypJkq@>uBv~d-(g;nc<^% zoV>r%MY8Urtgm{mm37-|&Tqnz&E)-+?=V^SQPx*I*UGx>Wq!{XIGVZS{WEoquKlWY zkDmJ(pYM6sJ$<=rPS4qU)>P|HPtDfM`Tt?Euhm>tt0&d#yPhl6A34{4E2_DwR!_>+ zUC)*3j~w&6HISN@ZRW`LR6VJjk+XRA+N{m!Tgt;-b5cF8)}Pe5b1rSv-4f)@JlA<>9V5sh(Hs zPwHH99y`m`Tve+l<@2uRO7%z1wcmkiuBz3Oa&^~prTQbs{B8}T=4G2X@;y~gDre*@ zp1n3}Gy0bDaMzqv&#Uz(buKxNo#kq-s@0S7dDnBL`XlGs??5$I)#^#Py6d@8{gGpS zw+2%4vdtX%o~kF6GjbNsUYoTUeM@<`Yfh@?)%ueAWay3`g>Ph*$>$y_>k#p^L zpqi^{^`uT&e!Zx%N9y%~iE}Qm*cLu2g^InBT2|)VypnN4}@(N#%^3#k1FDZARZx z9`2fx>Up*Pq|PPhv9nywRkeCjKJR+2RDa}L`yHs}s#-lMS9d*Esy}ibJHM&^-_`kD z&y{-ba?J16Kx$sLnIqp*^`vq}&f?i?vo@n|)jXu?N#&$^o~kF6lRB52$Ify!52<=m zIVqp1dQv&5bICEkTLUSdshn+XBi~c?q;f{i;@QW}?6&{aJf!ML*}tdiN#&fa-}*W;yL}hcJf!ML)jXu? zN#&%hrs_%Mq|PPhv9nywL#m!sPRi%XdV2QiU6VS$oH=ve^B!0BK2=XDCw2Cf_4Mr3 zyC!vhIp(*S>#@+*?p=FwQfv0=X!lm`)%HBPrfQO7ew(!(3vKP*wI?UFX0MKRZ{=QX z&!cOqCOPJ}S?jUT*6v+S*^??$!1@x~6K9V}6^p9t&;l-nAzuwPvr5c5mfg zZO@}?swO$+w^{44(AMr@SDw9EJuA;{ zFSC2rK(%?PR?pdfT5kqd8mKle)#_RKF6?FY&l;#UFV*Tf+fVDw;7SA4=A~LaE8m5^ z%>G#e)#jyIJ!kuAy%}6-pxV4tt7qlAu$S3CYoOY^RIBG~Kdm=|D-BeemumH_d>8gI z`!fvm%v5U4jQVAoi)S{Fn$4b^XYRAJ`<%O>44h}c{+`!suJwAh0sG6;Y*X@`XUhJb*K4lzdbR=k z%hYUB^1WuN+QE^twErVDs=H^@O>2mI&7gku_p924k+XCbBQ>hKXVgt=i0k*LcdzxX z+J%v`wErVDs=H^@O>2mI&7gku_p924k+XCbBQ>hKXVgt=i0k*LcdzxX+J%v`wErVD zs=H^@O>2mI&7gi|{Tgv!^*GI!##J?{vov2CSJiNqnbN28`ZU{fnlFt@Eu{I`O>(wuDGKqJvpx@vpuKz(zw(@nlFt@>xw(is$L&^J==4dFO5rQmgY<2(z@b~ zru5{zp3L@~=1b#J3u(SIF0Cu>Jga(r?DcHVX}&ZromrYMjZ5o_JDSpy^LjGdbDA%W zOD&}N(zvv)xbv*)^|9BpJ&)w8?v9*Q^RDt$an6ob^yGRyneBNbUv+ontnyantKytp z&#IXmXENLKNWSXs$XPY-Dqj`n>}W+#uGf>>n#pk{vptXG ztL~1RRr9X$RdLRaR`le0J(=x!cD~e1S~rbL>x#Rc>78aW+w<&v=`7N^XZo@eJvdz02p>0NPl^=bxYdmhPG-A&KZzE=6tyW;Hc)eOw`Jd&@vo1Ue8t@5RJ z#o6Dh8JO*PBwuwmJxlvqUFWmg9<6%sU48i8 z*Z#e;%JXh@?ZLJ8;I8x8ZI4#H_pUyC?`!|wS><`Ry7u7OdvMqJ?6ya%-g{RczW23% z@2v8?TU~o_?LD~be0JNTRqws458vDG9R?U+fB^;=V1NMz7+`<_1{h#~0R|Z8HL&X6 zV|T0DJ0JJ#cFVwSd$j7ktr_^tj`kW@<$1Tdz4LL;Znq5VwnwYp+nRyT>}aonRi1aN z+dCik>~_n*ZhN%qy{#Ge%#QXNSmk-Qy1nyp&u+I2?6ya%-rJgi&+KTgfmNP&tJ^yt z_w07dz;1iA>b8d&9dx4OOaanEkI4D7Z?tKQq1fzRw{uYpybcdOewANTBb z%fN1XwCcUB8TibO_8M5_dAGW~^Ks8^w+!sIN2}i3nt{*kXs>})o_DL;J0JJ#cFVwS zd$j7ktr_^tj`kW@<$1Tdz4LL;Znq5VwnwYp+nRyT>}aonRi1aN+dCik>~_n*ZhN%q zy{#Ge%#QXNSmk-Qy1nyp&u+I2?6ya%-rJgi&+KTgfmNP&tJ^yt_v|(U3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb UFu(u<3^2d|0}L?0zzPHZ0zx#fl>h($ diff --git a/src/clue/test/slideshow_pics/pic_1.bmp b/src/clue/test/slideshow_pics/pic_1.bmp deleted file mode 100644 index 0d15550078f61eb5e68515958b9c3a79d376bbbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113974 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 G?EfD(a~m1} diff --git a/src/clue/test/slideshow_pics/pic_2.bmp b/src/clue/test/slideshow_pics/pic_2.bmp deleted file mode 100644 index 345d5820e11be986d573aab47bdf709e48ca9e82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113974 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 diff --git a/src/clue/test/slideshow_pics/pic_3.bmp b/src/clue/test/slideshow_pics/pic_3.bmp deleted file mode 100644 index 78ef7b8a23d5f92e06cffc87c0795af7f6ef884c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330726 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 diff --git a/src/clue/test/slideshow_pics/pic_6.bmp b/src/clue/test/slideshow_pics/pic_6.bmp deleted file mode 100644 index d3e2540397b43a06c2c748ffe972047b8141ae8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115818 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 C7L5@A diff --git a/src/clue/test/slideshow_pics/pic_8.bmp b/src/clue/test/slideshow_pics/pic_8.bmp deleted file mode 100644 index 2746a30f812280f3aff4b5ca6992f753ced09982..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193734 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 C1~?P| diff --git a/src/clue/test/test_adafruit_clue.py b/src/clue/test/test_adafruit_clue.py deleted file mode 100644 index 0d7204205..000000000 --- a/src/clue/test/test_adafruit_clue.py +++ /dev/null @@ -1,193 +0,0 @@ -import pytest - -import os -import pathlib -from PIL import Image - -from unittest import mock -from unittest.mock import MagicMock, patch - -from common import utils - -import displayio -import terminalio - -from ..adafruit_clue import clue -from .test_helpers import helper -from base_circuitpython import base_cp_constants as CONSTANTS - - -class TestAdafruitClue(object): - def setup_method(self): - self.abs_path = pathlib.Path(__file__).parent.absolute() - - self.main_img = Image.new( - "RGBA", - (CONSTANTS.SCREEN_HEIGHT_WIDTH, CONSTANTS.SCREEN_HEIGHT_WIDTH), - (0, 0, 0, 0), - ) - - utils.send_to_simulator = mock.Mock() - - def test_clue_display_text(self): - img = Image.open( - os.path.join(self.abs_path, CONSTANTS.IMG_DIR_NAME, f"test_clue_text_1.bmp") - ) - - img.putalpha(255) - expected = img.load() - clue_data = clue.simple_text_display(title="LET'S TEST!", title_scale=2) - - clue_data.text_group._Group__show = self.__send_helper - clue_data.text_group._Group__check_active_group_ref = False - - clue_data[0].text = "Lorem ipsum" - clue_data[1].text = "dolor sit amet, consectetur " - clue_data[2].text = "adipiscing:" - - clue_data[4].text = "e" - clue_data[5].text = "sed do eiusmod" - clue_data[6].text = "tempor incididunt\nut labore" - clue_data[7].text = "ut labore" - - clue_data[10].text = "et dolore" - clue_data[11].text = "magna" - clue_data[12].text = "aliqua\ntestest" - clue_data[13].text = "Ut enim ad" - clue_data[14].text = "Excepteur sint" - clue_data.show() - helper._Helper__test_image_equality(self.main_img.load(), expected) - - def __send_helper(self, image): - self.main_img = image - - def test_buttons(self): - clue._Clue__update_button(CONSTANTS.CLUE_STATE.BUTTON_A, True) - assert clue.button_a - clue._Clue__update_button(CONSTANTS.CLUE_STATE.BUTTON_A, False) - assert not clue.button_a - - clue._Clue__update_button(CONSTANTS.CLUE_STATE.BUTTON_B, True) - assert clue.button_b - clue._Clue__update_button(CONSTANTS.CLUE_STATE.BUTTON_B, False) - assert not clue.button_b - - assert clue.were_pressed == set(["A", "B"]) - assert clue.were_pressed == set() - - @pytest.mark.parametrize( - "mock_x, mock_y, mock_z", [(1, 2, 3), (0, 0, 0), (4, 6, 100)] - ) - def test_acceleration(self, mock_x, mock_y, mock_z): - clue._Clue__state[CONSTANTS.CLUE_STATE.MOTION_X] = mock_x - clue._Clue__state[CONSTANTS.CLUE_STATE.MOTION_Y] = mock_y - clue._Clue__state[CONSTANTS.CLUE_STATE.MOTION_Z] = mock_z - assert clue.acceleration == (mock_x, mock_y, mock_z) - - @pytest.mark.parametrize( - "mock_color_r, mock_color_g,mock_color_b,mock_color_c", - [(1, 2, 3, 4), (255, 255, 255, 255), (120, 140, 160, 180)], - ) - def test_color(self, mock_color_r, mock_color_g, mock_color_b, mock_color_c): - clue._Clue__state[CONSTANTS.CLUE_STATE.LIGHT_R] = mock_color_r - clue._Clue__state[CONSTANTS.CLUE_STATE.LIGHT_G] = mock_color_g - clue._Clue__state[CONSTANTS.CLUE_STATE.LIGHT_B] = mock_color_b - clue._Clue__state[CONSTANTS.CLUE_STATE.LIGHT_C] = mock_color_c - assert clue.color == (mock_color_r, mock_color_g, mock_color_b, mock_color_c) - - @pytest.mark.parametrize("mock_temperature", [-10, 0, 10]) - def test_temperature(self, mock_temperature): - clue._Clue__state[CONSTANTS.CLUE_STATE.TEMPERATURE] = mock_temperature - assert clue.temperature == mock_temperature - - @pytest.mark.parametrize( - "mock_magnetic_x, mock_magnetic_y, mock_magnetic_z", - [(1, 2, 3), (100, 150, 200), (10, 5, 15)], - ) - def test_magnetic(self, mock_magnetic_x, mock_magnetic_y, mock_magnetic_z): - clue._Clue__state[CONSTANTS.CLUE_STATE.MAGNET_X] = mock_magnetic_x - clue._Clue__state[CONSTANTS.CLUE_STATE.MAGNET_Y] = mock_magnetic_y - clue._Clue__state[CONSTANTS.CLUE_STATE.MAGNET_Z] = mock_magnetic_z - assert clue.magnetic == (mock_magnetic_x, mock_magnetic_y, mock_magnetic_z,) - - @pytest.mark.parametrize("mock_distance", (0, 10, 250, 255)) - def test_proximity(self, mock_distance): - clue._Clue__state[CONSTANTS.CLUE_STATE.PROXIMITY] = mock_distance - assert clue.proximity == mock_distance - - @pytest.mark.parametrize( - "mock_gyro_x, mock_gyro_y, mock_gyro_z", - [(1, 2, 3), (100, 150, 200), (10, 5, 15)], - ) - def test_gyro(self, mock_gyro_x, mock_gyro_y, mock_gyro_z): - clue._Clue__state[CONSTANTS.CLUE_STATE.GYRO_X] = mock_gyro_x - clue._Clue__state[CONSTANTS.CLUE_STATE.GYRO_Y] = mock_gyro_y - clue._Clue__state[CONSTANTS.CLUE_STATE.GYRO_Z] = mock_gyro_z - assert clue.gyro == (mock_gyro_x, mock_gyro_y, mock_gyro_z) - - @pytest.mark.parametrize( - "gesture_word, gesture_number", - [("", 0), ("up", 1), ("down", 2), ("left", 3), ("right", 4)], - ) - def test_gesture(self, gesture_word, gesture_number): - clue._Clue__state[CONSTANTS.CLUE_STATE.GESTURE] = gesture_word - assert clue.gesture == gesture_number - - def test_shake(self): - NONE = "none" - SHAKE = "shake" - clue._Clue__state[CONSTANTS.CLUE_STATE.GESTURE] = SHAKE - assert clue.shake() - clue._Clue__state[CONSTANTS.CLUE_STATE.GESTURE] = NONE - assert not clue.shake() - - @pytest.mark.parametrize("mock_humidity", [0, 10, 50, 100]) - def test_humidity(self, mock_humidity): - clue._Clue__state[CONSTANTS.CLUE_STATE.HUMIDITY] = mock_humidity - assert clue.humidity == mock_humidity - - @pytest.mark.parametrize("mock_pressure", [0, 10, 50, 100]) - def test_pressure(self, mock_pressure): - clue._Clue__state[CONSTANTS.CLUE_STATE.PRESSURE] = mock_pressure - assert clue.pressure == mock_pressure - - @pytest.mark.parametrize( - "mock_pressure, mock_sea_level_pressure, expected_altitude", - [ - (1000, 1015, 125.42255615546036), - (1030, 1015, -123.93061640175468), - (1020, 1013, -58.13176263932101), - ], - ) - def test_altitude(self, mock_pressure, mock_sea_level_pressure, expected_altitude): - clue.sea_level_pressure = mock_sea_level_pressure - clue._Clue__state[CONSTANTS.CLUE_STATE.PRESSURE] = mock_pressure - assert expected_altitude == pytest.approx(clue.altitude) - - @pytest.mark.parametrize("mock_sea_level_pressure", [1040, 1015, 1013]) - def test_sea_level_pressure(self, mock_sea_level_pressure): - clue.sea_level_pressure = mock_sea_level_pressure - assert mock_sea_level_pressure == clue.sea_level_pressure - - @pytest.mark.parametrize( - "mock_color", [(255, 0, 0), (255, 255, 255), (123, 123, 123)] - ) - def test_pixel(self, mock_color): - clue.pixel.fill(mock_color) - assert clue.pixel[0] == mock_color - - @pytest.mark.parametrize( - "value, expected", - [(True, True), (False, False), (1, True), ("a", True), (0, False), ("", False)], - ) - def test_red_led(self, value, expected): - clue.red_led = value - assert clue.red_led == expected - - @pytest.mark.parametrize( - "value, expected", - [(True, True), (False, False), (1, True), ("a", True), (0, False), ("", False)], - ) - def test_white_leds(self, value, expected): - clue.white_leds = value - assert clue.white_leds == expected diff --git a/src/clue/test/test_adafruit_display_shapes.py b/src/clue/test/test_adafruit_display_shapes.py deleted file mode 100644 index 8c1c3c303..000000000 --- a/src/clue/test/test_adafruit_display_shapes.py +++ /dev/null @@ -1,81 +0,0 @@ -import pytest -import pathlib -import os - -import displayio - -from PIL import Image -from unittest import mock - -from common import utils - - -from adafruit_display_shapes.rect import Rect -from adafruit_display_shapes.circle import Circle -from adafruit_display_shapes.roundrect import RoundRect - -from .test_helpers import helper -from base_circuitpython import base_cp_constants as CONSTANTS -import board - - -class TestAdafruitDisplayShapes(object): - def setup_method(self): - self.abs_path = pathlib.Path(__file__).parent.absolute() - - utils.send_to_simulator = mock.Mock() - self.main_img = Image.new( - "RGBA", - (CONSTANTS.SCREEN_HEIGHT_WIDTH, CONSTANTS.SCREEN_HEIGHT_WIDTH), - (0, 0, 0, 0), - ) - - def test_shapes(self): - - expected_images = [] - for i in range(5): - img = Image.open( - os.path.join( - self.abs_path, - CONSTANTS.IMG_DIR_NAME, - f"test_image_shapes_{i+1}.bmp", - ) - ) - - img.putalpha(255) - expected_images.append(img.load()) - - # TAKEN FROM ADAFRUIT'S DISPLAY SHAPES LIBRARY - # https://github.com/ladyada/Adafruit_CircuitPython_Display_Shapes/blob/master/examples/display_shapes_simpletest.py - splash = displayio.Group(max_size=10) - splash._Group__show = self.__send_helper - board.DISPLAY.show(splash) - color_bitmap = displayio.Bitmap(320, 240, 1) - color_palette = displayio.Palette(1) - color_palette[0] = 0xFFFFFF - bg_sprite = displayio.TileGrid( - color_bitmap, x=0, y=0, pixel_shader=color_palette - ) - splash.append(bg_sprite) - helper._Helper__test_image_equality(self.main_img.load(), expected_images[0]) - - rect = Rect(80, 20, 41, 41, fill=0x00FF00) - splash.append(rect) - helper._Helper__test_image_equality(self.main_img.load(), expected_images[1]) - circle = Circle(100, 100, 20, fill=0x00FF00, outline=0xFF00FF) - splash.append(circle) - - helper._Helper__test_image_equality(self.main_img.load(), expected_images[2]) - - rect2 = Rect(50, 100, 61, 81, outline=0x0, stroke=3) - splash.append(rect2) - - helper._Helper__test_image_equality(self.main_img.load(), expected_images[3]) - - roundrect = RoundRect(10, 10, 61, 81, 10, fill=0x0, outline=0xFF00FF, stroke=6) - splash.append(roundrect) - - helper._Helper__test_image_equality(self.main_img.load(), expected_images[4]) - - def __send_helper(self, image): - self.main_img = image diff --git a/src/clue/test/test_adafruit_display_text.py b/src/clue/test/test_adafruit_display_text.py deleted file mode 100644 index 922230275..000000000 --- a/src/clue/test/test_adafruit_display_text.py +++ /dev/null @@ -1,65 +0,0 @@ -import pytest - -import os -import sys -import pathlib -from PIL import Image -from unittest import mock - -from common import utils - -import displayio -import terminalio - -from adafruit_display_text import label - -from .test_helpers import helper -from base_circuitpython import base_cp_constants as CONSTANTS - -# to keep track of test # to find right expected bmp -test_count = 0 - - -class TestAdafruitDisplayText(object): - def setup_method(self): - self.abs_path = pathlib.Path(__file__).parent.absolute() - # Create a new black (default) image - utils.send_to_simulator = mock.Mock() - - @pytest.mark.parametrize( - "text, x,y, scale, color", - [ - ("Hello World", 1, 10, 4, (0, 22, 103)), - ("WWWWwwwmMMmmm", 30, 6, 1, (190, 173, 222)), - ("wOooo00ooo", 104, 49, 9, 0xEFEFEF), - ("!!!\n yay!", 100, 100, 5, (200, 200, 255)), - ], - ) - def test_display_text(self, text, x, y, scale, color): - global test_count - - expected_image = Image.open( - os.path.join( - self.abs_path, - CONSTANTS.IMG_DIR_NAME, - f"test_display_text_{test_count+1}.bmp", - ) - ) - expected_image.convert("RGBA") - expected_image.putalpha(255) - loaded_img = expected_image.load() - - text_area = label.Label( - terminalio.FONT, - text=text, - scale=scale, - color=color, - check_active_group_ref=False, - ) - text_area.x = x - text_area.y = y - - main_img = text_area._Group__draw() - - helper._Helper__test_image_equality(main_img.load(), loaded_img) - test_count += 1 diff --git a/src/clue/test/test_adafruit_slideshow.py b/src/clue/test/test_adafruit_slideshow.py deleted file mode 100644 index 1f966b15a..000000000 --- a/src/clue/test/test_adafruit_slideshow.py +++ /dev/null @@ -1,100 +0,0 @@ -from ..adafruit_slideshow import SlideShow, PlayBackDirection, PlayBackOrder -import board -import pathlib -import os - -from PIL import Image -from .test_helpers import helper -from base_circuitpython import base_cp_constants as CONSTANTS - -from unittest import mock - -from common import utils - - -class TestAdafruitSlideShow(object): - def setup_method(self): - self.abs_path = pathlib.Path(__file__).parent.absolute() - - # Create a new black (default) image - self.main_img = Image.new( - "RGBA", - (CONSTANTS.SCREEN_HEIGHT_WIDTH, CONSTANTS.SCREEN_HEIGHT_WIDTH), - (0, 0, 0, 0), - ) - - utils.send_to_simulator = mock.Mock() - - def test_slideshow(self): - - pic_dir = os.path.join(self.abs_path, "slideshow_pics") - slideshow_images = [] - for i in range(8): - img = Image.open(os.path.join(pic_dir, f"pic_{i+1}.bmp")) - img = img.convert("RGBA") - img.putalpha(255) - - img = img.crop( - (0, 0, CONSTANTS.SCREEN_HEIGHT_WIDTH, CONSTANTS.SCREEN_HEIGHT_WIDTH) - ) - - if img.size[0] < 240 or img.size[1] < 240: - black_overlay = Image.new( - "RGBA", - CONSTANTS.SCREEN_HEIGHT_WIDTH, - CONSTANTS.SCREEN_HEIGHT_WIDTH, - ) - black_overlay.paste(img) - img = black_overlay - - slideshow_images.append(img) - - # Create the slideshow object that plays through once alphabetically. - slideshow = SlideShow( - board.DISPLAY, - dwell=3, - folder=pic_dir, - loop=True, - fade_effect=True, - auto_advance=True, - order=PlayBackOrder.ALPHABETICAL, - direction=PlayBackDirection.FORWARD, - ) - - slideshow._SlideShow__send = self.__send_helper - - # first image's appear time is unstable,since it fades/scrolls in - # can only predict following ones... - - for i in range(1, 8): - slideshow.advance() - helper._Helper__test_image_equality( - self.main_img.load(), slideshow_images[i].load() - ) - - # Create the slideshow object that plays through once backwards. - slideshow2 = SlideShow( - board.DISPLAY, - dwell=3, - folder=pic_dir, - loop=True, - fade_effect=False, - auto_advance=True, - order=PlayBackOrder.ALPHABETICAL, - direction=PlayBackDirection.BACKWARD, - ) - - slideshow2._SlideShow__send = self.__send_helper - - helper._Helper__test_image_equality( - self.main_img.load(), slideshow_images[7].load() - ) - - for i in range(6, -1, -1): - slideshow2.advance() - helper._Helper__test_image_equality( - self.main_img.load(), slideshow_images[i].load() - ) - - def __send_helper(self, image): - self.main_img = image diff --git a/src/clue/test/test_helpers.py b/src/clue/test/test_helpers.py deleted file mode 100644 index 429965aaf..000000000 --- a/src/clue/test/test_helpers.py +++ /dev/null @@ -1,32 +0,0 @@ -from base_circuitpython import base_cp_constants as CONSTANTS - - -class Helper: - def __test_image_equality(self, image_1, image_2): - for i in range(CONSTANTS.SCREEN_HEIGHT_WIDTH): - for j in range(CONSTANTS.SCREEN_HEIGHT_WIDTH): - pixel_1 = image_1[j, i] - pixel_2 = image_2[j, i] - - if not isinstance(pixel_1, tuple): - pixel_1 = self.hex2rgba(pixel_1) - - if not isinstance(pixel_2, tuple): - pixel_2 = self.hex2rgba(pixel_2) - assert pixel_1[0:3] == pixel_2[0:3] - - def hex2rgba(self, curr_colour): - - ret_list = [] - - for i in range(3, -1, -1): - val = (curr_colour >> (2 ** (i + 1))) & 255 - if val == 0: - ret_list.append(0) - else: - ret_list.append(val) - - return tuple(ret_list) - - -helper = Helper() diff --git a/src/common/__init__.py b/src/common/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/common/test/__init__.py b/src/common/test/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/common/test/test_debugger_communication_client.py b/src/common/test/test_debugger_communication_client.py deleted file mode 100644 index fea21211e..000000000 --- a/src/common/test/test_debugger_communication_client.py +++ /dev/null @@ -1,193 +0,0 @@ -import pytest -import json # Remove -from unittest import mock -import socketio -import threading -import os -import sys - -from common import constants as CONSTANTS - -abs_path_to_parent_dir = os.path.join( - os.path.dirname(os.path.abspath(__file__)), "..", ".." -) - -sys.path.insert(0, abs_path_to_parent_dir) -# Insert absolute path to Micropython libraries for micro:bit into sys.path -abs_path_to_micropython_lib = os.path.join( - abs_path_to_parent_dir, CONSTANTS.MICROPYTHON_LIBRARY_NAME -) - -sys.path.insert(0, abs_path_to_micropython_lib) - -from common import debugger_communication_client -from adafruit_circuitplayground import express -from adafruit_circuitplayground.constants import CPX - - -class TestDebuggerCommunicationClient(object): - @mock.patch("socketio.Client.connect") - def test_init_connection(self, mock_connect): - mock_connect.return_value = None - debugger_communication_client.init_connection() - mock_connect.assert_called_once() - - def test_init_connection1(self): - socketio.Client.connect = mock.Mock() - socketio.Client.connect.return_value = None - debugger_communication_client.init_connection() - socketio.Client.connect.assert_called_once() - - def test_update_state(self): - threading.Event.clear = mock.Mock() - threading.Event.wait = mock.Mock() - socketio.Client.emit = mock.Mock() - socketio.Client.emit.return_value = None - debugger_communication_client.update_state( - {CONSTANTS.ACTIVE_DEVICE_FIELD: CPX, CONSTANTS.STATE_FIELD: {}} - ) - socketio.Client.emit.assert_called_once() - - @mock.patch.dict( - express.cpx._Express__state, - { - "brightness": 1.0, - "button_a": False, - "button_b": False, - "pixels": [ - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - ], - "red_led": False, - "switch": False, - "temperature": 0, - "light": 0, - "motion_x": 0, - "motion_y": 0, - "motion_z": 0, - "touch": [False] * 7, - "shake": False, - }, - clear=True, - ) - def test_button_press(self): - data = { - CONSTANTS.ACTIVE_DEVICE_FIELD: CPX, - CONSTANTS.STATE_FIELD: {"button_a": True, "button_b": True, "switch": True}, - } - expected_data = { - "brightness": 1.0, - "button_a": True, - "button_b": True, - "pixels": [ - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - ], - "red_led": False, - "switch": True, - "temperature": 0, - "light": 0, - "motion_x": 0, - "motion_y": 0, - "motion_z": 0, - "touch": [False] * 7, - "shake": False, - } - serialized_data = json.dumps(data) - debugger_communication_client.input_changed(serialized_data) - assert expected_data == express.cpx._Express__state - - @mock.patch.dict( - express.cpx._Express__state, - { - "brightness": 1.0, - "button_a": False, - "button_b": False, - "pixels": [ - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - ], - "red_led": False, - "switch": False, - "temperature": 0, - "light": 0, - "motion_x": 0, - "motion_y": 0, - "motion_z": 0, - "touch": [False] * 7, - "shake": False, - }, - clear=True, - ) - def test_input_changed(self): - data = { - CONSTANTS.ACTIVE_DEVICE_FIELD: CPX, - CONSTANTS.STATE_FIELD: { - "temperature": 1, - "light": 2, - "motion_x": 3, - "motion_y": 4, - "motion_z": 5, - }, - } - expected_data = { - "brightness": 1.0, - "button_a": False, - "button_b": False, - "pixels": [ - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - (0, 0, 0), - ], - "red_led": False, - "switch": False, - "temperature": 1, - "light": 2, - "motion_x": 3, - "motion_y": 4, - "motion_z": 5, - "touch": [False] * 7, - "shake": False, - } - serialized_data = json.dumps(data) - debugger_communication_client.input_changed(serialized_data) - assert expected_data == express.cpx._Express__state - - @mock.patch("builtins.print") - @mock.patch.dict(express.cpx._Express__state, {}, clear=True) - def test_update_api_state_fail(self, mocked_print): - data = [] - debugger_communication_client.input_changed(data) - # Exception is caught and a print is stated to stderr - mocked_print.assert_called_once() diff --git a/src/common/test/test_utils.py b/src/common/test/test_utils.py deleted file mode 100644 index 11e7c8a2e..000000000 --- a/src/common/test/test_utils.py +++ /dev/null @@ -1,32 +0,0 @@ -import sys - -from unittest import mock - -from common import constants as CONSTANTS -from common import utils - - -class TestUtils(object): - def test_remove_leading_slashes(self): - original = "///a//b/" - expected = "a//b/" - assert expected == utils.remove_leading_slashes(original) - - def test_escape_notOSX(self): - _utils_sys = utils.sys - if sys.platform.startswith(CONSTANTS.MAC_OS): - utils.sys = mock.MagicMock() - utils.sys.configure_mock(platform="win32") - original = "a b" - assert original == utils.escape_if_OSX(original) - utils.sys = _utils_sys - - def test_escape_isOSX(self): - _utils_sys = utils.sys - if not sys.platform.startswith(CONSTANTS.MAC_OS): - utils.sys = mock.MagicMock() - utils.sys.configure_mock(platform="darwin") - original = "a b" - expected = "a%20b" - assert expected == utils.escape_if_OSX(original) - utils.sys = _utils_sys diff --git a/src/micropython/__init__.py b/src/micropython/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/micropython/microbit/test/__init__.py b/src/micropython/microbit/test/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/micropython/microbit/test/test_accelerometer.py b/src/micropython/microbit/test/test_accelerometer.py deleted file mode 100644 index 241f63df1..000000000 --- a/src/micropython/microbit/test/test_accelerometer.py +++ /dev/null @@ -1,104 +0,0 @@ -import pytest -from unittest import mock - -from ..__model.accelerometer import Accelerometer -from ..__model import constants as CONSTANTS - - -class TestAccelerometer(object): - def setup_method(self): - self.accelerometer = Accelerometer() - - @pytest.mark.parametrize( - "accel", - [ - CONSTANTS.MIN_ACCELERATION, - CONSTANTS.MIN_ACCELERATION + 1, - 100, - CONSTANTS.MAX_ACCELERATION - 1, - CONSTANTS.MAX_ACCELERATION, - ], - ) - def test_x_y_z(self, accel): - self.accelerometer._Accelerometer__set_accel("x", accel) - assert accel == self.accelerometer.get_x() - self.accelerometer._Accelerometer__set_accel("y", accel) - assert accel == self.accelerometer.get_y() - self.accelerometer._Accelerometer__set_accel("z", accel) - assert accel == self.accelerometer.get_z() - - @pytest.mark.parametrize("axis", ["x", "y", "z"]) - def test_x_y_z_invalid_accel(self, axis): - with pytest.raises(ValueError): - self.accelerometer._Accelerometer__set_accel( - axis, CONSTANTS.MAX_ACCELERATION + 1 - ) - with pytest.raises(ValueError): - self.accelerometer._Accelerometer__set_accel( - axis, CONSTANTS.MIN_ACCELERATION - 1 - ) - - @pytest.mark.parametrize( - "accels", - [ - (23, 25, 26), - (204, 234, -534), - (CONSTANTS.MIN_ACCELERATION + 10, 234, CONSTANTS.MAX_ACCELERATION), - ], - ) - def test_get_values(self, accels): - self.accelerometer._Accelerometer__set_accel("x", accels[0]) - self.accelerometer._Accelerometer__set_accel("y", accels[1]) - self.accelerometer._Accelerometer__set_accel("z", accels[2]) - assert accels == self.accelerometer.get_values() - - @pytest.mark.parametrize("gesture", ["up", "face down", "freefall", "8g"]) - def test_current_gesture(self, gesture): - self.accelerometer._Accelerometer__set_gesture(gesture) - assert gesture == self.accelerometer.current_gesture() - - @pytest.mark.parametrize("gesture", ["up", "face down", "freefall", "8g"]) - def test_is_gesture(self, gesture): - self.accelerometer._Accelerometer__set_gesture(gesture) - assert self.accelerometer.is_gesture(gesture) - for g in CONSTANTS.GESTURES: - if g != gesture: - assert not self.accelerometer.is_gesture(g) - - def test_is_gesture_error(self): - with pytest.raises(ValueError): - self.accelerometer.is_gesture("sideways") - - def test_was_gesture(self): - mock_gesture_up = "up" - mock_gesture_down = "down" - - assert not self.accelerometer.was_gesture(mock_gesture_up) - self.accelerometer._Accelerometer__set_gesture(mock_gesture_up) - self.accelerometer.current_gesture() # Call is needed for gesture detection so it can be added to the lists. - self.accelerometer._Accelerometer__set_gesture("") - assert self.accelerometer.was_gesture(mock_gesture_up) - assert not self.accelerometer.was_gesture(mock_gesture_up) - - def test_was_gesture_error(self): - with pytest.raises(ValueError): - self.accelerometer.was_gesture("sideways") - - def test_get_gestures(self): - mock_gesture_up = "up" - mock_gesture_down = "down" - mock_gesture_freefall = "freefall" - - self.accelerometer._Accelerometer__set_gesture(mock_gesture_up) - self.accelerometer.current_gesture() # Call is needed for gesture detection so it can be added to the lists. - self.accelerometer._Accelerometer__set_gesture(mock_gesture_down) - self.accelerometer.current_gesture() - self.accelerometer._Accelerometer__set_gesture(mock_gesture_freefall) - self.accelerometer.current_gesture() - self.accelerometer._Accelerometer__set_gesture("") - assert ( - mock_gesture_up, - mock_gesture_down, - mock_gesture_freefall, - ) == self.accelerometer.get_gestures() - assert () == self.accelerometer.get_gestures() diff --git a/src/micropython/microbit/test/test_button.py b/src/micropython/microbit/test/test_button.py deleted file mode 100644 index 31e9d6720..000000000 --- a/src/micropython/microbit/test/test_button.py +++ /dev/null @@ -1,46 +0,0 @@ -import pytest -from ..__model.button import Button - - -class TestButton(object): - def setup_method(self): - self.button = Button() - - def test_press_down(self): - self.button._Button__press_down() - assert self.button._Button__presses == 1 - assert self.button._Button__pressed - assert self.button._Button__prev_pressed - self.button._Button__press_down() - assert self.button._Button__presses == 2 - assert self.button._Button__pressed - assert self.button._Button__prev_pressed - - def test_release(self): - self.button._Button__pressed = True - self.button._Button__prev_pressed = False - self.button._Button__release() - assert not self.button._Button__pressed - - def test_is_pressed(self): - assert not self.button.is_pressed() - self.button._Button__press_down() - assert self.button.is_pressed() - - def test_was_pressed(self): - assert not self.button.was_pressed() - self.button._Button__press_down() - self.button._Button__release() - assert self.button.was_pressed() - # Button resets __prev_pressed after was_pressed() is called. - assert not self.button.was_pressed() - - @pytest.mark.parametrize("presses", [1, 2, 4]) - def test_get_presses(self, presses): - assert 0 == self.button.get_presses() - for i in range(presses): - self.button._Button__press_down() - self.button._Button__release() - assert presses == self.button.get_presses() - # Presses is reset to 0 after get_presses() is called. - assert 0 == self.button.get_presses() diff --git a/src/micropython/microbit/test/test_display.py b/src/micropython/microbit/test/test_display.py deleted file mode 100644 index 1055c8870..000000000 --- a/src/micropython/microbit/test/test_display.py +++ /dev/null @@ -1,185 +0,0 @@ -import pytest -import threading -from unittest import mock -from common import utils - -from ..__model import constants as CONSTANTS -from ..__model.display import Display -from ..__model.image import Image - - -STR_A = "09900:90090:99990:90090:90090" -STR_QUESTION_MARK = "09990:90009:00990:00000:00900" -STR_EXCLAMATION_MARK = "09000:09000:09000:00000:09000:" -STR_SIX = "00090:00900:09990:90009:09990" - - -class TestDisplay(object): - def setup_method(self): - self.display = Display() - utils.send_to_simulator = mock.Mock() - - @pytest.mark.parametrize("x, y, brightness", [(1, 1, 4), (2, 3, 6), (4, 4, 9)]) - def test_set_and_get_pixel(self, x, y, brightness): - self.display.set_pixel(x, y, brightness) - assert brightness == self.display.get_pixel(x, y) - - @pytest.mark.parametrize("x, y", [(5, 0), (0, -1), (0, 5)]) - def test_get_pixel_error(self, x, y): - with pytest.raises(ValueError, match=CONSTANTS.INDEX_ERR): - self.display.get_pixel(x, y) - - @pytest.mark.parametrize( - "x, y, brightness, err_msg", - [ - (5, 0, 0, CONSTANTS.INDEX_ERR), - (0, -1, 0, CONSTANTS.INDEX_ERR), - (0, 0, -1, CONSTANTS.BRIGHTNESS_ERR), - ], - ) - def test_set_pixel_error(self, x, y, brightness, err_msg): - with pytest.raises(ValueError, match=err_msg): - self.display.set_pixel(x, y, brightness) - - def test_clear(self): - self.display.set_pixel(2, 3, 7) - self.display.set_pixel(3, 4, 6) - self.display.set_pixel(4, 4, 9) - assert not self.__is_clear() - self.display.clear() - assert self.__is_clear() - - def test_on_off(self): - self.display.on() - assert self.display.is_on() - self.display.off() - assert not self.display.is_on() - - def test_show_one_image(self): - img = Image() - img.set_pixel(0, 0, 8) - img.set_pixel(0, 1, 9) - img.set_pixel(0, 2, 7) - img.set_pixel(2, 2, 6) - self.display.show(img, delay=0) - assert Image._Image__same_image(img, self.display._Display__image) - - def test_show_different_size_image(self): - img = Image(3, 7) - img.set_pixel(1, 1, 9) - img.set_pixel(2, 6, 9) # Will not be on display - expected = Image(5, 5) - expected.set_pixel(1, 1, 9) - self.display.show(img, delay=0) - assert Image._Image__same_image(expected, self.display._Display__image) - - def test_show_smaller_image(self): - img = Image(2, 2) - img.set_pixel(1, 1, 9) - expected = Image(5, 5) - expected.set_pixel(1, 1, 9) - self.display.show(img, delay=0) - assert Image._Image__same_image(expected, self.display._Display__image) - - @pytest.mark.parametrize( - "value, expected_str", - [ - ("!", STR_EXCLAMATION_MARK), - ("A", STR_A), - (" ", CONSTANTS.BLANK_5X5), - (6, STR_SIX), - ("\x7F", STR_QUESTION_MARK), # Character is out of our ASCII range - ], - ) - def test_show_char(self, value, expected_str): - expected = Image(expected_str) - self.display.show(value, delay=0) - assert Image._Image__same_image(expected, self.display._Display__image) - - def test_show_char_with_clear(self): - image = Image(STR_EXCLAMATION_MARK) - self.display.show(image, delay=0, clear=True) - assert self.__is_clear() - - def test_show_iterable(self): - expected = Image(STR_A) - value = [Image(STR_EXCLAMATION_MARK), "A", "ab"] - self.display.show(value, delay=0) - assert Image._Image__same_image(expected, self.display._Display__image) - - def test_show_non_iterable(self): - with pytest.raises(TypeError): - self.display.show(TestDisplay()) - - def test_scroll(self): - self.display.scroll("a b") - self.__is_clear() - - def test_scroll_type_error(self): - with pytest.raises(TypeError): - self.display.scroll(["a", 1]) - - # Should change these threaded tests to test behaviour in the future - def test_show_threaded(self): - threading.Thread = mock.Mock() - self.display.show("a", delay=0, wait=False) - threading.Thread.assert_called_once() - - def test_scroll_threaded(self): - threading.Thread = mock.Mock() - self.display.scroll("test", delay=0, wait=False) - threading.Thread.assert_called_once() - - def test_get_array(self): - self.display.set_pixel(3, 3, 3) - self.display.off() - assert self.display._Display__get_array() == [ - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - ] - - self.display.on() - assert self.display._Display__get_array() == [ - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 3, 0], - [0, 0, 0, 0, 0], - ] - - # The second show call should immedaitely stop the first show call. - # Therefore the final result of display should be 6. - def test_async_tests(self): - self.display.show("MMMMMMMMMMMMMM", delay=100, wait=False) - self.display.show("6", delay=0) - assert Image._Image__same_image(Image(STR_SIX), self.display._Display__image) - - @pytest.mark.parametrize( - "light_level", - [ - CONSTANTS.MIN_LIGHT_LEVEL, - CONSTANTS.MIN_LIGHT_LEVEL + 1, - 100, - CONSTANTS.MAX_LIGHT_LEVEL - 1, - CONSTANTS.MAX_LIGHT_LEVEL, - ], - ) - def test_light_level(self, light_level): - self.display._Display__set_light_level(light_level) - assert light_level == self.display.read_light_level() - - @pytest.mark.parametrize( - "invalid_light_level", - [CONSTANTS.MIN_LIGHT_LEVEL - 1, CONSTANTS.MAX_LIGHT_LEVEL + 1], - ) - def test_invalid_light_level(self, invalid_light_level): - with pytest.raises(ValueError): - self.display._Display__set_light_level(invalid_light_level) - - # Helpers - def __is_clear(self): - i = Image(CONSTANTS.BLANK_5X5) - return Image._Image__same_image(i, self.display._Display__image) diff --git a/src/micropython/microbit/test/test_image.py b/src/micropython/microbit/test/test_image.py deleted file mode 100644 index 5ea150230..000000000 --- a/src/micropython/microbit/test/test_image.py +++ /dev/null @@ -1,283 +0,0 @@ -import pytest -from ..__model.image import Image - -from ..__model import constants as CONSTANTS - - -class TestImage(object): - def setup_method(self): - self.image = Image() - self.image_heart = Image(CONSTANTS.IMAGE_PATTERNS["HEART"]) - - @pytest.mark.parametrize("x, y, brightness", [(1, 1, 4), (2, 3, 6), (4, 4, 9)]) - def test_get_set_pixel(self, x, y, brightness): - self.image.set_pixel(x, y, brightness) - assert brightness == self.image.get_pixel(x, y) - - @pytest.mark.parametrize("x, y", [(5, 0), (0, -1), (0, 5)]) - def test_get_pixel_error(self, x, y): - with pytest.raises(ValueError, match=CONSTANTS.INDEX_ERR): - self.image.get_pixel(x, y) - - @pytest.mark.parametrize( - "x, y, brightness, err_msg", - [ - (5, 0, 0, CONSTANTS.INDEX_ERR), - (0, -1, 0, CONSTANTS.INDEX_ERR), - (0, 0, -1, CONSTANTS.BRIGHTNESS_ERR), - ], - ) - def test_set_pixel_error(self, x, y, brightness, err_msg): - with pytest.raises(ValueError, match=err_msg): - self.image.set_pixel(x, y, brightness) - - @pytest.mark.parametrize( - "image, height, width", - [ - (Image(), 5, 5), - (Image(3, 3), 3, 3), - (Image(""), 0, 0), - (Image("00:00000"), 2, 5), - (Image("0000:0000"), 2, 4), - ], - ) - def test_width_and_height(self, image, height, width): - print(str(image)) - assert image.height() == height - assert image.width() == width - - @pytest.mark.parametrize( - "x, y, w, h, x_dest, y_dest, actual", - [ - (0, 0, 3, 2, 2, 1, Image("00000:00090:00999:00000:00000:")), - (0, 0, 3, 3, 8, 8, Image("00000:00000:00000:00000:00000:")), - (3, 0, 3, 3, 0, 0, Image("90000:99000:99000:00000:00000:")), - (3, 0, 7, 7, 0, 0, Image("90000:99000:99000:90000:00000:")), - ], - ) - def test_blit_heart(self, x, y, w, h, x_dest, y_dest, actual): - result = Image() - result.blit(self.image_heart, x, y, w, h, x_dest, y_dest) - assert result._Image__LED == actual._Image__LED - - @pytest.mark.parametrize( - "x, y, w, h, x_dest, y_dest, actual", - [ - (1, 1, 2, 4, 3, 3, Image("09090:99999:99999:09999:00999:")), - (0, 0, 3, 3, 8, 8, Image(CONSTANTS.IMAGE_PATTERNS["HEART"])), - (0, 0, 7, 7, 0, 0, Image(CONSTANTS.IMAGE_PATTERNS["HEART"])), - (3, 0, 7, 7, 0, 0, Image("90000:99000:99000:90000:00000:")), - ], - ) - def test_blit_heart_nonblank(self, x, y, w, h, x_dest, y_dest, actual): - result = Image(CONSTANTS.IMAGE_PATTERNS["HEART"]) - src = Image(CONSTANTS.IMAGE_PATTERNS["HEART"]) - result.blit(src, x, y, w, h, x_dest, y_dest) - assert result._Image__LED == actual._Image__LED - - @pytest.mark.parametrize( - "x, y, w, h, x_dest, y_dest", [(5, 6, 2, 4, 3, 3), (5, 0, 3, 3, 8, 8)] - ) - def test_blit_heart_valueerror(self, x, y, w, h, x_dest, y_dest): - result = Image(CONSTANTS.IMAGE_PATTERNS["HEART"]) - with pytest.raises(ValueError, match=CONSTANTS.INDEX_ERR): - result.blit(self.image_heart, x, y, w, h, x_dest, y_dest) - - @pytest.mark.parametrize( - "image1, image2", [(Image(2, 2, bytearray([4, 4, 4, 4])), Image("44:44"))] - ) - def test_constructor_bytearray(self, image1, image2): - assert image1._Image__LED == image2._Image__LED - - @pytest.mark.parametrize( - "x, y, w, h, actual", [(1, 1, 2, 4, Image("99:99:99:09:"))] - ) - def test_crop_heart(self, x, y, w, h, actual): - result = self.image_heart.crop(1, 1, 2, 4) - assert result._Image__LED == actual._Image__LED - - @pytest.mark.parametrize( - "target, actual", [(Image("99:99:99:00:"), Image("22:22:22:22:"))] - ) - def test_fill(self, target, actual): - target.fill(2) - assert target._Image__LED == actual._Image__LED - - @pytest.mark.parametrize( - "target, actual", [(Image("012:345:678:900:"), Image("987:654:321:099:"))] - ) - def test_invert(self, target, actual): - target.invert() - assert target._Image__LED == actual._Image__LED - - @pytest.mark.parametrize( - "target, value, actual", - [ - (Image("012:345:678:900:"), 1, Image("001:034:067:090:")), - (Image("012:345:678:900:"), 6, Image("000:000:000:000:")), - (Image("012:345:678:900:"), -1, Image("120:450:780:000:")), - ], - ) - def test_shift_right(self, target, value, actual): - result = target.shift_right(value) - assert result._Image__LED == actual._Image__LED - - @pytest.mark.parametrize( - "target, value, actual", - [ - (Image("012:345:678:900:"), 2, Image("200:500:800:000:")), - (Image("012:345:678:900:"), 6, Image("000:000:000:000:")), - (Image("012:345:678:900:"), -2, Image("000:003:006:009:")), - ], - ) - def test_shift_left(self, target, value, actual): - result = target.shift_left(value) - assert result._Image__LED == actual._Image__LED - - @pytest.mark.parametrize( - "target, value, actual", - [ - (Image("012:345:678:900:"), 2, Image("678:900:000:000:")), - (Image("012:345:678:900:"), 6, Image("000:000:000:000:")), - (Image("012:345:678:900:"), -2, Image("000:000:012:345:")), - ], - ) - def test_shift_up(self, target, value, actual): - result = target.shift_up(value) - assert result._Image__LED == actual._Image__LED - - @pytest.mark.parametrize( - "target, value, actual", - [ - (Image("012:345:678:900:"), 1, Image("000:012:345:678")), - (Image("012:345:678:900:"), 6, Image("000:000:000:000:")), - (Image("012:345:678:900:"), -1, Image("345:678:900:000:")), - ], - ) - def test_shift_down(self, target, value, actual): - result = target.shift_down(value) - assert result._Image__LED == actual._Image__LED - - @pytest.mark.parametrize("target", [(Image("012:345:678:900:"))]) - def test_copy(self, target): - result = target.copy() - assert result._Image__LED == target._Image__LED - - @pytest.mark.parametrize( - "target, multiplier, actual", - [ - (Image("012:345:678:900:"), 2, Image("024:689:999:900:")), - (Image("012:345:678:900:"), 0, Image("000:000:000:000:")), - ], - ) - def test_multiply(self, target, multiplier, actual): - result = target * multiplier - assert result._Image__LED == actual._Image__LED - - @pytest.mark.parametrize( - "target, multiplier", - [ - (Image("012:345:678:900:"), []), - (Image("012:345:678:900:"), Image("000:000:000:000:")), - ], - ) - def test_multiply_error(self, target, multiplier): - - with pytest.raises( - TypeError, match=f"can't convert {type(multiplier)} to float" - ): - target * multiplier - - @pytest.mark.parametrize( - "target, value, actual", - [ - ( - Image("012:345:678:900:"), - Image("024:689:999:900:"), - Image("036:999:999:900:"), - ), - ( - Image("999:999:999:000:"), - Image("999:999:999:000:"), - Image("999:999:999:000:"), - ), - ], - ) - def test_add(self, target, value, actual): - result = target + value - assert result._Image__LED == actual._Image__LED - - @pytest.mark.parametrize( - "target, value, err_message", - [ - ( - Image("012:345:678:900:"), - 2, - CONSTANTS.UNSUPPORTED_ADD_TYPE + f"'{type(Image())}', '{type(2)}'", - ), - ( - Image("012:345:678:900:"), - [], - CONSTANTS.UNSUPPORTED_ADD_TYPE + f"'{type(Image())}', '{type([])}'", - ), - ], - ) - def test_add_typeerror(self, target, value, err_message): - with pytest.raises(TypeError, match=err_message): - target + value - - @pytest.mark.parametrize( - "target, value", [(Image(2, 3), Image(3, 3)), (Image(2, 1), Image(0, 0))] - ) - def test_add_valueerror(self, target, value): - with pytest.raises(ValueError, match=CONSTANTS.SAME_SIZE_ERR): - target + value - - @pytest.mark.parametrize( - "initial, actual", - [ - (Image("0:000:00:0000:"), Image("0000:0000:0000:0000:")), - (Image("12125:1212:12:1:"), Image("12125:12120:12000:10000:")), - ], - ) - def test_uneven_strings(self, initial, actual): - assert initial._Image__LED == actual._Image__LED - - @pytest.mark.parametrize( - "image, repr_actual, str_actual", - [ - ( - Image("05150:05050:05050:99999:09990:"), - "Image('05150:05050:05050:99999:09990:')", - "Image('\n 05150:\n 05050:\n 05050:\n 99999:\n 09990:\n')", - ), - (Image(""), "Image('')", "Image('\n')"), - ( - Image("00000:00000:00000:00000:00000:"), - "Image('00000:00000:00000:00000:00000:')", - "Image('\n 00000:\n 00000:\n 00000:\n 00000:\n 00000:\n')", - ), - ( - Image("00:00:00:00:"), - "Image('00:00:00:00:')", - "Image('\n 00:\n 00:\n 00:\n 00:\n')", - ), - ], - ) - def test_str(self, image, repr_actual, str_actual): - repr_output = repr(image) - str_output = str(image) - assert repr_actual == repr_output - assert str_actual == str_output - - @pytest.mark.parametrize( - "const, actual", - [ - (Image.SNAKE, Image(CONSTANTS.IMAGE_PATTERNS["SNAKE"])), - (Image.PITCHFORK, Image(CONSTANTS.IMAGE_PATTERNS["PITCHFORK"])), - ], - ) - def test_image_constants(self, const, actual): - assert const._Image__LED == actual._Image__LED - with pytest.raises(TypeError, match=CONSTANTS.COPY_ERR_MESSAGE): - const.set_pixel(0, 0, 5) diff --git a/src/micropython/microbit/test/test_init.py b/src/micropython/microbit/test/test_init.py deleted file mode 100644 index aebbc805a..000000000 --- a/src/micropython/microbit/test/test_init.py +++ /dev/null @@ -1,45 +0,0 @@ -import time - -import pytest -from unittest import mock - -from .. import * -from ..__model.microbit_model import MicrobitModel - -# tests methods in __init__.py - - -class TestShim(object): - def test_sleep(self): - # Save pointer to function about to be mocked - real_function = MicrobitModel.sleep - - milliseconds = 100 - MicrobitModel.sleep = mock.Mock() - sleep(milliseconds) - MicrobitModel.sleep.assert_called_with(milliseconds) - - # Restore original function - MicrobitModel.sleep = real_function - - def test_running_time(self): - # Save pointer to function about to be mocked - real_function = MicrobitModel.running_time - - MicrobitModel.running_time = mock.Mock() - running_time() - MicrobitModel.running_time.assert_called_once() - - # Restore original function - MicrobitModel.running_time = real_function - - def test_temperature(self): - # Save pointer to function about to be mocked - real_function = MicrobitModel.temperature - - MicrobitModel.temperature = mock.Mock() - temperature() - MicrobitModel.temperature.asser_called_once() - - # Restore original function - MicrobitModel.temperature = real_function diff --git a/src/micropython/microbit/test/test_microbit_model.py b/src/micropython/microbit/test/test_microbit_model.py deleted file mode 100644 index 4e06c6c36..000000000 --- a/src/micropython/microbit/test/test_microbit_model.py +++ /dev/null @@ -1,48 +0,0 @@ -import time - -import pytest -from unittest import mock -from ..__model import constants as CONSTANTS -from ..__model.microbit_model import MicrobitModel - - -class TestMicrobitModel(object): - def setup_method(self): - self.__mb = MicrobitModel() - - @pytest.mark.parametrize("value", [9, 30, 1999]) - def test_sleep(self, value): - time.sleep = mock.Mock() - self.__mb.sleep(value) - time.sleep.assert_called_with(value / 1000) - - def test_running_time(self): - mock_start_time = 10 - mock_end_time = 300 - self.__mb._MicrobitModel__start_time = mock_start_time - time.time = mock.MagicMock(return_value=mock_end_time) - assert mock_end_time - mock_start_time == pytest.approx( - self.__mb.running_time() - ) - - @pytest.mark.parametrize( - "temperature", - [ - CONSTANTS.MIN_TEMPERATURE, - CONSTANTS.MIN_TEMPERATURE + 1, - 0, - CONSTANTS.MAX_TEMPERATURE - 1, - CONSTANTS.MAX_TEMPERATURE, - ], - ) - def test_temperature(self, temperature): - self.__mb._MicrobitModel__set_temperature(temperature) - assert temperature == self.__mb.temperature() - - @pytest.mark.parametrize( - "invalid_temperature", - [CONSTANTS.MIN_TEMPERATURE - 1, CONSTANTS.MAX_TEMPERATURE + 1], - ) - def test_invalid_temperature(self, invalid_temperature): - with pytest.raises(ValueError): - self.__mb._MicrobitModel__set_temperature(invalid_temperature) diff --git a/src/test/runTest.ts b/src/test/runTest.ts deleted file mode 100644 index 6d54aa78b..000000000 --- a/src/test/runTest.ts +++ /dev/null @@ -1,23 +0,0 @@ -import * as path from "path"; - -import { runTests } from "vscode-test"; - -async function main() { - try { - // The folder containing the Extension Manifest package.json - // Passed to `--extensionDevelopmentPath` - const extensionDevelopmentPath = path.resolve(__dirname, "../../"); - - // The path to the extension test script - // Passed to --extensionTestsPath - const extensionTestsPath = path.resolve(__dirname, "./suite/index"); - - // Download VS Code, unzip it and run the integration test - await runTests({ extensionDevelopmentPath, extensionTestsPath }); - } catch (err) { - console.error("Failed to run tests"); - process.exit(1); - } -} - -main(); diff --git a/src/test/suite/index.ts b/src/test/suite/index.ts deleted file mode 100644 index c223a6f0d..000000000 --- a/src/test/suite/index.ts +++ /dev/null @@ -1,50 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testsRoot: string, clb: (error: Error, failures?: number) => void): void -// that the extension host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -import * as glob from "glob"; -import * as Mocha from "mocha"; -import * as path from "path"; - -// tslint:disable-next-line: export-name -export function run(): Promise { - // Create the mocha test - const mocha = new Mocha({ - ui: "tdd", - }); - mocha.useColors(true); - - const testsRoot = path.resolve(__dirname, ".."); - - return new Promise((c, e) => { - glob("**/**.test.js", { cwd: testsRoot }, (err, files) => { - if (err) { - return e(err); - } - - // Add files to the test suite - files.forEach(f => mocha.addFile(path.resolve(testsRoot, f))); - - try { - // Run the mocha test - mocha.run(failures => { - if (failures > 0) { - e(new Error(`${failures} tests failed.`)); - } else { - c(); - } - }); - } catch (err) { - e(err); - } - }); - }); -} diff --git a/src/view/App.spec.tsx b/src/view/App.spec.tsx deleted file mode 100644 index 66d6fc9d5..000000000 --- a/src/view/App.spec.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import * as React from "react"; -import * as ReactDOM from "react-dom"; -import { IntlProvider } from "react-intl"; -import * as testRenderer from "react-test-renderer"; -import App from "./App"; - -describe("App component ", () => { - it("should render correctly", () => { - const component = testRenderer - .create( - - - - ) - .toJSON(); - expect(component).toMatchSnapshot(); - }); - it("should render without crashing", () => { - const div = document.createElement("div"); - ReactDOM.render( - - - , - div - ); - ReactDOM.unmountComponentAtNode(div); - }); -}); diff --git a/src/view/__snapshots__/App.spec.tsx.snap b/src/view/__snapshots__/App.spec.tsx.snap deleted file mode 100644 index 6343459f1..000000000 --- a/src/view/__snapshots__/App.spec.tsx.snap +++ /dev/null @@ -1,11 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`App component should render correctly 1`] = ` -
-
-
-`; diff --git a/src/view/components/clue/Clue.spec.tsx b/src/view/components/clue/Clue.spec.tsx deleted file mode 100644 index c69b4ebe7..000000000 --- a/src/view/components/clue/Clue.spec.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import * as React from "react"; -import * as ReactDOM from "react-dom"; -import { IntlProvider } from "react-intl"; -import * as testRenderer from "react-test-renderer"; -import { Clue } from "./Clue"; - -describe("Clue component", () => { - it("should render correctly", () => { - const component = testRenderer - .create( - - - - ) - .toJSON(); - expect(component).toMatchSnapshot(); - }); - - it("should render without crashing", () => { - const div = document.createElement("div"); - ReactDOM.render( - - - , - div - ); - ReactDOM.unmountComponentAtNode(div); - }); -}); diff --git a/src/view/components/clue/__snapshots__/Clue.spec.tsx.snap b/src/view/components/clue/__snapshots__/Clue.spec.tsx.snap deleted file mode 100644 index dce8f43ff..000000000 --- a/src/view/components/clue/__snapshots__/Clue.spec.tsx.snap +++ /dev/null @@ -1,2202 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Clue component should render correctly 1`] = ` -Array [ -
-
- The simulator will run the .py file you have focused on. -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A+B - - - - - - - - - - LIGHT - - - GESTURE - - - P - - R - - - O - - - XIMI - - - T - - - Y - - - - - - - - - - - - - - Red LED - - - - - Neopixel - - - - -
-
-
- - -
-
, -
-
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
, -] -`; diff --git a/src/view/components/cpx/Cpx.spec.tsx b/src/view/components/cpx/Cpx.spec.tsx deleted file mode 100644 index 24c53d551..000000000 --- a/src/view/components/cpx/Cpx.spec.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import * as React from "react"; -import * as ReactDOM from "react-dom"; -import { IntlProvider } from "react-intl"; -import * as testRenderer from "react-test-renderer"; -import { Cpx } from "./Cpx"; - -describe("CPX component", () => { - it("should render correctly", () => { - const component = testRenderer - .create( - - - - ) - .toJSON(); - expect(component).toMatchSnapshot(); - }); - - it("should render without crashing", () => { - const div = document.createElement("div"); - ReactDOM.render( - - - , - div - ); - ReactDOM.unmountComponentAtNode(div); - }); -}); diff --git a/src/view/components/cpx/__snapshots__/Cpx.spec.tsx.snap b/src/view/components/cpx/__snapshots__/Cpx.spec.tsx.snap deleted file mode 100644 index 960f9b501..000000000 --- a/src/view/components/cpx/__snapshots__/Cpx.spec.tsx.snap +++ /dev/null @@ -1,4666 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`CPX component should render correctly 1`] = ` -Array [ -
-
- The simulator will run the .py file you have focused on. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
, -
-
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
, -] -`; diff --git a/src/view/components/microbit/Microbit.spec.tsx b/src/view/components/microbit/Microbit.spec.tsx deleted file mode 100644 index e948a1988..000000000 --- a/src/view/components/microbit/Microbit.spec.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import * as React from "react"; -import * as ReactDOM from "react-dom"; -import { IntlProvider } from "react-intl"; -import * as testRenderer from "react-test-renderer"; -import { Microbit } from "./Microbit"; - -describe("Microbit component ", () => { - it("should render correctly", () => { - const component = testRenderer - .create( - - - - ) - .toJSON(); - expect(component).toMatchSnapshot(); - }); - - it("should render without crashing", () => { - const div = document.createElement("div"); - ReactDOM.render( - - - , - div - ); - ReactDOM.unmountComponentAtNode(div); - }); -}); diff --git a/src/view/components/microbit/__snapshots__/Microbit.spec.tsx.snap b/src/view/components/microbit/__snapshots__/Microbit.spec.tsx.snap deleted file mode 100644 index 9e167bbca..000000000 --- a/src/view/components/microbit/__snapshots__/Microbit.spec.tsx.snap +++ /dev/null @@ -1,3238 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Microbit component should render correctly 1`] = ` -Array [ -
-
- The simulator will run the .py file you have focused on. -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (0,0) - - - - - - (1,0) - - - - - - (2,0) - - - - - - (3,0) - - - - - - (4,0) - - - - - - (0,1) - - - - - - (1,1) - - - - - - (2,1) - - - - - - (3,1) - - - - - - (4,1) - - - - - - (0,2) - - - - - - (1,2) - - - - - - (2,2) - - - - - - (3,2) - - - - - - (4,2) - - - - - - (0,3) - - - - - - (1,3) - - - - - - (2,3) - - - - - - (3,3) - - - - - - (4,3) - - - - - - (0,4) - - - - - - (1,4) - - - - - - (2,4) - - - - - - (3,4) - - - - - - (4,4) - - - - - - - - - - - - P0, ANALOG IN - - - - - P1, ANALOG IN - - - - - P2, ANALOG IN - - - - - P3, ANALOG IN, LED Col 1 - - - - - P4, ANALOG IN, LED Col 2 - - - - - P5, BUTTON A - - - - - P6, LED Col 9 - - - - - P7, LED Col 8 - - - - - P8 - - - - - P9, LED Col 7 - - - - - P10, ANALOG IN, LED Col 3 - - - - - P11, BUTTON B - - - - - P12, RESERVED ACCESSIBILITY - - - - - P13, SPI - SCK - - - - - P14, SPI - MISO - - - - - P15, SPI - MOSI - - - - - P16, SPI - Chip Select - - - - - P17, +3v3 - - - - - P18, +3v3 - - - - - P19, I2C - SCL - - - - - P20, I2C - SDA - - - - - GND - - - - - GND - - - - - +3v3 - - - - - GND - - - - - - - - - - - - - - - - - - - - - - - A+B - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - -
-
, -
-
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
, -] -`; diff --git a/src/view/components/toolbar/Toolbar.spec.tsx b/src/view/components/toolbar/Toolbar.spec.tsx deleted file mode 100644 index bd122082e..000000000 --- a/src/view/components/toolbar/Toolbar.spec.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import * as React from "react"; -import * as ReactDOM from "react-dom"; -import { IntlProvider } from "react-intl"; -import * as testRenderer from "react-test-renderer"; -import { SENSOR_LIST } from "../../constants"; -import * as TOOLBAR_SVG from "../../svgs/toolbar_svg"; -import { MICROBIT_TOOLBAR_ICON_ID } from "./SensorModalUtils"; -import Toolbar from "./ToolBar"; - -const MOCK_TOOLBAR_BUTTONS: Array<{ label: string; image: JSX.Element }> = [ - { - image: TOOLBAR_SVG.LIGHT_SVG, - label: MICROBIT_TOOLBAR_ICON_ID.LIGHT, - }, - { - image: TOOLBAR_SVG.MOTION_SVG, - label: MICROBIT_TOOLBAR_ICON_ID.ACCELEROMETER, - }, -]; -const mockUpdateSensors = () => { - return; -}; -const mockInitialValues = { - [SENSOR_LIST.TEMPERATURE]: 0, - [SENSOR_LIST.LIGHT]: 0, -}; -describe("Toolbar component ", () => { - it("should render correctly", () => { - const component = testRenderer - .create( - - - - ) - .toJSON(); - expect(component).toMatchSnapshot(); - }); - - it("should render without crashing", () => { - const div = document.createElement("div"); - ReactDOM.render( - - - , - div - ); - ReactDOM.unmountComponentAtNode(div); - }); -}); diff --git a/src/view/components/toolbar/__snapshots__/Toolbar.spec.tsx.snap b/src/view/components/toolbar/__snapshots__/Toolbar.spec.tsx.snap deleted file mode 100644 index de9a7a42d..000000000 --- a/src/view/components/toolbar/__snapshots__/Toolbar.spec.tsx.snap +++ /dev/null @@ -1,143 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Toolbar component should render correctly 1`] = ` -
-
-
-
- -
-
- -
-
-
-
-`; diff --git a/src/view/container/device/Device.spec.tsx b/src/view/container/device/Device.spec.tsx deleted file mode 100644 index 491d4e2a5..000000000 --- a/src/view/container/device/Device.spec.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import * as React from "react"; -import * as ReactDOM from "react-dom"; -import { IntlProvider } from "react-intl"; -import * as testRenderer from "react-test-renderer"; -import { DEVICE_LIST_KEY } from "../../constants"; -import { Device } from "./Device"; - -describe("Device component ", () => { - it("should render correctly", () => { - const component = testRenderer - .create( - - - - ) - .toJSON(); - expect(component).toMatchSnapshot(); - }); - - it("should render without crashing", () => { - const div = document.createElement("div"); - ReactDOM.render( - - - , - div - ); - ReactDOM.unmountComponentAtNode(div); - }); -}); diff --git a/src/view/container/device/__snapshots__/Device.spec.tsx.snap b/src/view/container/device/__snapshots__/Device.spec.tsx.snap deleted file mode 100644 index cd2e25d19..000000000 --- a/src/view/container/device/__snapshots__/Device.spec.tsx.snap +++ /dev/null @@ -1,3240 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Device component should render correctly 1`] = ` -
-
-
- The simulator will run the .py file you have focused on. -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (0,0) - - - - - - (1,0) - - - - - - (2,0) - - - - - - (3,0) - - - - - - (4,0) - - - - - - (0,1) - - - - - - (1,1) - - - - - - (2,1) - - - - - - (3,1) - - - - - - (4,1) - - - - - - (0,2) - - - - - - (1,2) - - - - - - (2,2) - - - - - - (3,2) - - - - - - (4,2) - - - - - - (0,3) - - - - - - (1,3) - - - - - - (2,3) - - - - - - (3,3) - - - - - - (4,3) - - - - - - (0,4) - - - - - - (1,4) - - - - - - (2,4) - - - - - - (3,4) - - - - - - (4,4) - - - - - - - - - - - - P0, ANALOG IN - - - - - P1, ANALOG IN - - - - - P2, ANALOG IN - - - - - P3, ANALOG IN, LED Col 1 - - - - - P4, ANALOG IN, LED Col 2 - - - - - P5, BUTTON A - - - - - P6, LED Col 9 - - - - - P7, LED Col 8 - - - - - P8 - - - - - P9, LED Col 7 - - - - - P10, ANALOG IN, LED Col 3 - - - - - P11, BUTTON B - - - - - P12, RESERVED ACCESSIBILITY - - - - - P13, SPI - SCK - - - - - P14, SPI - MISO - - - - - P15, SPI - MOSI - - - - - P16, SPI - Chip Select - - - - - P17, +3v3 - - - - - P18, +3v3 - - - - - P19, I2C - SCL - - - - - P20, I2C - SDA - - - - - GND - - - - - GND - - - - - +3v3 - - - - - GND - - - - - - - - - - - - - - - - - - - - - - - A+B - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - -
-
-
-
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
-
-`; diff --git a/src/view/pages/__snapshots__/gettingStarted.spec.tsx.snap b/src/view/pages/__snapshots__/gettingStarted.spec.tsx.snap deleted file mode 100644 index 18dac92ce..000000000 --- a/src/view/pages/__snapshots__/gettingStarted.spec.tsx.snap +++ /dev/null @@ -1,901 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`GettingStartedPage component should render correctly 1`] = ` -
-

- Getting started -

- -

- Copy these snippets of code to a .py file and run the simulator -

-
-
-

- Tutorial for micro:bit -

-

- > Import the micro:bit library to use it (This is required) -

- -
-        from microbit import *
-      
-
-

- > Light up your micro:bit with love by showing a heart -

- -
-        display.show(Image.HEART)
-      
-
-

- > Use your micro:bit to tell the world how you’re feeling -

- -
-        while True:
-      
-
-            if button_a.is_pressed():
-      
-
-                display.show(Image.HAPPY)
-      
-
-            if button_b.is_pressed():
-      
-
-                display.show(Image.SAD)
-      
-
-

- > Read then display the temperature -

- -
-        while True:
-      
-
-            temp = temperature()
-      
-
-            display.show(temp)
-      
-
-

- > Display your name with the scroll functionality -

- -
-        while True:
-      
-
-            display.show("Your name")
-      
-
-

- And much more! These links have more tutorials: -

-

- - Microbit Tutorials - -

-

- - Microbit official documentation - -

-

- Keyboard Shortcuts -

-
    -
  • - Push Button: - - A - - for Button A, - - B - - for Button B, - - C - - for Buttons A & B -
  • -
  • - Refresh the simulator: - - Shift - - + - - R - -
  • -
  • - Run the simulator: - - Shift - - + - - F - -
  • -
-
-
-

- Tutorial for CLUE -

-

- > Import the the main CLUE library (This is required) -

- -
-        from adafruit_clue import clue
-      
-
-

- > Display text on the CLUE and change the text when a button is pressed -

- -
-        clue_data = clue.simple_text_display(title="CLUE!")
-      
-
-        while True:
-      
-
-            clue_data[1].text = "Hello World!"
-      
-
-            if clue.button_a:
-      
-
-                clue_data[5].text = "A is pressed!"
-      
-
-            else:
-      
-
-                clue_data[5].text = "A is not pressed!"
-      
-
-            clue_data.show()
-      
-
-

- > Create a slide show on the CLUE -

-

- Make sure there are bitmap (.bmp) pictures of your choice in the same directory as the code file. -

- -
-        import board
-      
-
-        from adafruit_slideshow import SlideShow
-      
-
-         
-      
-
-        slideshow = SlideShow(clue.display, auto_advance=True, dwell=3, fade_effect=True)
-      
-
-        while slideshow.update():
-      
-
-            pass
-      
-
-

- > Light up the neopixel green -

- -
-        clue.pixel.fill(clue.GREEN)
-      
-
-

- > Display sensor data on the CLUE -

- -
-        clue_data = clue.simple_text_display(title="CLUE Sensor Data!", title_scale=2)
-      
-
-        while True:
-      
-
-            clue_data[0].text = "Acceleration: 
-        {}
-         
-        {}
-         
-        {}
-        ".format(*clue.acceleration)
-      
-
-            clue_data[1].text = "Gyro: 
-        {}
-         
-        {}
-         
-        {}
-        ".format(*clue.gyro)
-      
-
-            clue_data[2].text = "Magnetic: 
-        {}
-         
-        {}
-         
-        {}
-        ".format(*clue.magnetic)
-      
-
-            clue_data[3].text = "Pressure: 
-        {}
-        hPa".format(clue.pressure)
-      
-
-            clue_data[4].text = "Altitude: 
-        {}
-        m".format(clue.altitude)
-      
-
-            clue_data[5].text = "Temperature: 
-        {}
-        C".format(clue.temperature)
-      
-
-            clue_data[6].text = "Humidity: 
-        {}
-        %".format(clue.humidity)
-      
-
-            clue_data[7].text = "Proximity: 
-        {}
-        ".format(clue.proximity)
-      
-
-            clue_data[8].text = "Gesture: 
-        {}
-        ".format(clue.gesture)
-      
-
-            clue_data[9].text = "Color: R: 
-        {}
-         G: 
-        {}
-         B: 
-        {}
-         C: 
-        {}
-        ".format(*clue.color)
-      
-
-            clue_data[10].text = "Button A: 
-        {}
-        ".format(clue.button_a)
-      
-
-            clue_data[11].text = "Button B: 
-        {}
-        ".format(clue.button_b)
-      
-
-            clue_data.show()
-      
-
-

- > Draw a blue rectangle on the screen -

- -
-        import board
-      
-
-        import displayio
-      
-
-        from adafruit_display_shapes.rect import Rect
-      
-
-         
-      
-
-        splash = displayio.Group(max_size=20)
-      
-
-        board.DISPLAY.show(splash)
-      
-
-         
-      
-
-        rect = Rect(80, 20, 41, 41, fill=0x0000FF)
-      
-
-        splash.append(rect)
-      
-
-

- And much more! These links have more tutorials: -

-

- - Getting started with CLUE and CircuitPython - -

-

- - More example code - -

-

- Keyboard Shortcuts -

-
    -
  • - Push Button: - - A - - for Button A, - - B - - for Button B, - - C - - for Buttons A & B -
  • -
  • - Refresh the simulator: - - Shift - - + - - R - -
  • -
  • - Run the simulator: - - Shift - - + - - F - -
  • -
  • - Capacitive Touch Sensor: - - Shift - - + - - 1 - - ~ - - 7 - - for GPIO pins A1 - A7 -
  • -
  • - Slider Switch: - - Shift - - + - - S - -
  • -
-
-
-

- Tutorial for using the debugger -

-

- > Enter debug mode -

-

- Press - - F5 - - or go to - - Run -> Start Debugging - -

- Start debugging -

- > Set a breakpoint or multiple breakpoints -

-

- Stopping at a breakpoint pauses the program at that particular place. -

-

- Use the debug toolbar or the shortcuts below -

- Debugger Toolbar -
    -
  • - - F5 - - to continue / pause -
  • -
  • - - F10 - - to step over (execute current statement and all functions that it calls and stop before the next statement) -
  • -
  • - - F11 - - to step into (stop at first statement of first function called from first line) -
  • -
  • - - Shift - - + - - F11 - - to step out (run current function to end) -
  • -
  • - - Ctrl - - + - - Shift - - + - - F11 - - to restart -
  • -
  • - - Shift - - + - - F5 - - to stop -
  • -
- debugging experience -

- > Observe the device's state on the "Variables" tab on the left when stopped at a breakpoint -

- Debugger Variables -

- And much more! These links have more tutorials: -

-

- - Learn more about debugging in VS Code - -

-
-
-`; diff --git a/src/view/pages/gettingStarted.spec.tsx b/src/view/pages/gettingStarted.spec.tsx deleted file mode 100644 index 278d5ed4b..000000000 --- a/src/view/pages/gettingStarted.spec.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import * as React from "react"; -import * as ReactDOM from "react-dom"; -import { IntlProvider } from "react-intl"; -import * as testRenderer from "react-test-renderer"; -import { GettingStartedPage } from "./gettingStarted"; - -describe("GettingStartedPage component ", () => { - it("should render correctly", () => { - const component = testRenderer - .create( - - - - ) - .toJSON(); - expect(component).toMatchSnapshot(); - }); - - it("should render without crashing", () => { - const div = document.createElement("div"); - ReactDOM.render( - - - , - div - ); - ReactDOM.unmountComponentAtNode(div); - }); -}); From dc773ea312898c7a31c7fe7d09cc1ea48297e1c9 Mon Sep 17 00:00:00 2001 From: Nikola Date: Mon, 15 Apr 2024 03:54:12 +0300 Subject: [PATCH 02/22] squash! --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 654876f07..c82b27e64 100644 --- a/package.json +++ b/package.json @@ -4,13 +4,13 @@ "version": "0.0.1", "private": false, "description": "__DESCRIPTION__", - "homepage": "https://github.com/CodeEditorLand/Foundation#readme", + "homepage": "HTTPS://github.com/CodeEditorLand/LandPythonDeviceSimulator#readme", "bugs": { - "url": "https://github.com/CodeEditorLand/Foundation/issues" + "url": "HTTPS://github.com/CodeEditorLand/LandPythonDeviceSimulator/issues" }, "repository": { "type": "git", - "url": "git+HTTPS://github.com/CodeEditorLand/Foundation.git" + "url": "git+HTTPS://github.com/CodeEditorLand/LandPythonDeviceSimulator.git" }, "license": "SEE LICENSE IN LICENSE", "author": { From a97950f2299fd90cbed2acca6065fdb95c5585b4 Mon Sep 17 00:00:00 2001 From: Nikola Date: Mon, 15 Apr 2024 18:39:04 +0300 Subject: [PATCH 03/22] squash! --- package.json | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index c82b27e64..d3c09477e 100644 --- a/package.json +++ b/package.json @@ -237,32 +237,32 @@ "onDebug" ], "dependencies": { - "@types/open": "^6.1.0", - "@types/socket.io": "^2.1.2", - "compare-versions": "^3.5.1", - "eventemitter2": "^5.0.1", - "glob": "^7.1.4", - "open": "^6.4.0", - "os": "^0.1.1", - "socket.io": "^2.4.0", - "usb-native": "^5.0.1", - "util": "^0.12.1" + "@types/open": "6.1.0", + "@types/socket.io": "2.1.2", + "compare-versions": "3.5.1", + "eventemitter2": "5.0.1", + "glob": "7.1.4", + "open": "6.4.0", + "os": "0.1.1", + "socket.io": "2.4.0", + "usb-native": "5.0.1", + "util": "0.12.1" }, "devDependencies": { "@playform/build": "0.0.5", "@playform/document": "0.0.6", - "@types/glob": "^7.1.1", - "@types/node": "^10.12.21", - "css-loader": "^1.0.0", - "del": "^4.0.0", - "event-stream": "^4.0.1", - "less": "^3.7.0", - "less-loader": "^4.1.0", - "npm-run-all": "^4.1.3", - "style-loader": "^0.21.0", - "ts-import-plugin": "^1.5.4", - "ts-loader": "^4.4.2", - "version-from-git": "^1.1.1" + "@types/glob": "7.1.1", + "@types/node": "10.12.21", + "css-loader": "1.0.0", + "del": "4.0.0", + "event-stream": "4.0.1", + "less": "3.7.0", + "less-loader": "4.1.0", + "npm-run-all": "4.1.3", + "style-loader": "0.21.0", + "ts-import-plugin": "1.5.4", + "ts-loader": "4.4.2", + "version-from-git": "1.1.1" }, "extensionDependencies": [ "ms-python.python" From 692d515326b66c8cc55f2706b32b9e98f0af5270 Mon Sep 17 00:00:00 2001 From: Nikola Date: Mon, 15 Apr 2024 19:37:10 +0300 Subject: [PATCH 04/22] squash! --- package.json | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index d3c09477e..172a48be9 100644 --- a/package.json +++ b/package.json @@ -238,30 +238,30 @@ ], "dependencies": { "@types/open": "6.1.0", - "@types/socket.io": "2.1.2", - "compare-versions": "3.5.1", - "eventemitter2": "5.0.1", - "glob": "7.1.4", - "open": "6.4.0", - "os": "0.1.1", - "socket.io": "2.4.0", - "usb-native": "5.0.1", - "util": "0.12.1" + "@types/socket.io": "3.0.1", + "compare-versions": "6.1.0", + "eventemitter2": "6.4.9", + "glob": "10.3.12", + "open": "10.1.0", + "os": "0.1.2", + "socket.io": "4.7.5", + "usb-native": "6.0.0", + "util": "0.12.5" }, "devDependencies": { - "@playform/build": "0.0.5", + "@playform/build": "0.0.7", "@playform/document": "0.0.6", - "@types/glob": "7.1.1", - "@types/node": "10.12.21", - "css-loader": "1.0.0", - "del": "4.0.0", + "@types/glob": "8.1.0", + "@types/node": "20.12.7", + "css-loader": "7.1.1", + "del": "7.1.0", "event-stream": "4.0.1", - "less": "3.7.0", - "less-loader": "4.1.0", - "npm-run-all": "4.1.3", - "style-loader": "0.21.0", - "ts-import-plugin": "1.5.4", - "ts-loader": "4.4.2", + "less": "4.2.0", + "less-loader": "12.2.0", + "npm-run-all": "4.1.5", + "style-loader": "4.0.0", + "ts-import-plugin": "3.0.0", + "ts-loader": "9.5.1", "version-from-git": "1.1.1" }, "extensionDependencies": [ From f347d7de0cc1a19f8291b782253ee7677832fac0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 16:43:42 +0000 Subject: [PATCH 05/22] Bump black from 19.10b0 to 24.3.0 in /Source Bumps [black](https://github.com/psf/black) from 19.10b0 to 24.3.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/commits/24.3.0) --- updated-dependencies: - dependency-name: black dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- Source/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/dev-requirements.txt b/Source/dev-requirements.txt index 26f334b51..4044760d7 100644 --- a/Source/dev-requirements.txt +++ b/Source/dev-requirements.txt @@ -1,3 +1,3 @@ -r ./requirements.txt -black==19.10b0 +black==24.3.0 pytest==5.0.1 \ No newline at end of file From 8d8554352ed79b07ed56b04b2e81bbad42407260 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 16:43:47 +0000 Subject: [PATCH 06/22] Bump pillow from 8.1.1 to 10.3.0 in /Source Bumps [pillow](https://github.com/python-pillow/Pillow) from 8.1.1 to 10.3.0. - [Release notes](https://github.com/python-pillow/Pillow/releases) - [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst) - [Commits](https://github.com/python-pillow/Pillow/compare/8.1.1...10.3.0) --- updated-dependencies: - dependency-name: pillow dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- Source/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/requirements.txt b/Source/requirements.txt index c13eef60b..2bb75d67a 100644 --- a/Source/requirements.txt +++ b/Source/requirements.txt @@ -6,7 +6,7 @@ pywin32==227; platform_system == "Windows" PyObjC; platform_system == "darwin" uflash==1.3.0 adafruit-circuitpython-fancyled==1.3.3 -Pillow==8.1.1 +Pillow==10.3.0 adafruit-circuitpython-bitmap_font==1.1.0 adafruit-circuitpython-display-shapes==1.2.0 adafruit-circuitpython-neopixel==5.0.0 \ No newline at end of file From 40c59469cd1a2552cd87086ad6e0746a538e2cee Mon Sep 17 00:00:00 2001 From: Nikola Date: Mon, 15 Apr 2024 21:02:08 +0300 Subject: [PATCH 07/22] squash! --- .github/dependabot.yml | 20 ------- .github/workflows/Dependabot.yml | 45 -------------- .github/workflows/GitHub.yml | 57 ------------------ .github/workflows/NPM.yml | 43 ------------- .github/workflows/Node.yml | 100 ------------------------------- 5 files changed, 265 deletions(-) delete mode 100644 .github/dependabot.yml delete mode 100644 .github/workflows/Dependabot.yml delete mode 100644 .github/workflows/GitHub.yml delete mode 100644 .github/workflows/NPM.yml delete mode 100644 .github/workflows/Node.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index ee41acd38..000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: 2 -enable-beta-ecosystems: true - -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "daily" - - - package-ecosystem: "pip" - directory: "/Source" - schedule: - interval: "daily" - versioning-strategy: increase - - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "daily" - versioning-strategy: increase diff --git a/.github/workflows/Dependabot.yml b/.github/workflows/Dependabot.yml deleted file mode 100644 index cfa5b9675..000000000 --- a/.github/workflows/Dependabot.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Dependabot - -concurrency: - group: Dependabot-${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - security-events: write - contents: write - pull-requests: write - -on: - workflow_dispatch: - pull_request: - -jobs: - Approve: - runs-on: ubuntu-latest - - if: ${{ github.actor == 'dependabot[bot]' }} - - steps: - - uses: dependabot/fetch-metadata@v2.0.0 - with: - github-token: "${{ secrets.GITHUB_TOKEN }}" - - - run: gh pr review --approve "$PR_URL" - env: - PR_URL: ${{github.event.pull_request.html_url}} - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - - Merge: - runs-on: ubuntu-latest - - if: ${{ github.actor == 'dependabot[bot]' }} - - steps: - - uses: dependabot/fetch-metadata@v2.0.0 - with: - github-token: "${{ secrets.GITHUB_TOKEN }}" - - - run: gh pr merge --auto --merge "$PR_URL" - env: - PR_URL: ${{github.event.pull_request.html_url}} - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/GitHub.yml b/.github/workflows/GitHub.yml deleted file mode 100644 index 0be30bac9..000000000 --- a/.github/workflows/GitHub.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: GitHub - -concurrency: - group: GitHub-${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - issues: write - pull-requests: write - -on: - issues: - types: [opened] - pull_request: - types: [opened] - -jobs: - Assign: - runs-on: ubuntu-latest - - env: - ADBLOCK: true - ASTRO_TELEMETRY_DISABLED: 1 - AUTOMATEDLAB_TELEMETRY_OPTOUT: 1 - AZURE_CORE_COLLECT_TELEMETRY: 0 - CHOOSENIM_NO_ANALYTICS: 1 - DIEZ_DO_NOT_TRACK: 1 - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - DOTNET_INTERACTIVE_CLI_TELEMETRY_OPTOUT: 1 - DO_NOT_TRACK: 1 - ET_NO_TELEMETRY: 1 - GATSBY_TELEMETRY_DISABLED: 1 - GATSBY_TELEMETRY_OPTOUT: 1 - GATSBY_TELEMETRY_OPT_OUT: 1 - GRIT_TELEMETRY_DISABLED: 1 - HASURA_GRAPHQL_ENABLE_TELEMETRY: false - HINT_TELEMETRY: off - HOMEBREW_NO_ANALYTICS: 1 - INFLUXD_REPORTING_DISABLED: true - ITERATIVE_DO_NOT_TRACK: 1 - NEXT_TELEMETRY_DEBUG: 1 - NEXT_TELEMETRY_DISABLED: 1 - NG_CLI_ANALYTICS: false - NUXT_TELEMETRY_DISABLED: 1 - PIN_DO_NOT_TRACK: 1 - POWERSHELL_TELEMETRY_OPTOUT: 1 - SAM_CLI_TELEMETRY: 0 - STNOUPGRADE: 1 - STRIPE_CLI_TELEMETRY_OPTOUT: 1 - TELEMETRY_DISABLED: 1 - - steps: - - uses: pozil/auto-assign-issue@v1.14.0 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - assignees: NikolaRHristov - numOfAssignee: 1 diff --git a/.github/workflows/NPM.yml b/.github/workflows/NPM.yml deleted file mode 100644 index b0332f1a0..000000000 --- a/.github/workflows/NPM.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: NPM - -concurrency: - group: NPM-${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - security-events: write - contents: write - pull-requests: write - -on: - workflow_dispatch: - release: - types: [created] - workflow_call: - -jobs: - Publish: - runs-on: ubuntu-latest - - permissions: - contents: read - id-token: write - - steps: - - uses: actions/checkout@v4.1.2 - - - uses: actions/setup-node@v4.0.2 - with: - node-version: "18" - registry-url: "https://registry.npmjs.org" - - - run: npm install -g npm - - - name: Publish . - continue-on-error: true - working-directory: . - run: | - npm install --legacy-peer-deps - npm publish --legacy-peer-deps --provenance - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/Node.yml b/.github/workflows/Node.yml deleted file mode 100644 index cd8ec65cf..000000000 --- a/.github/workflows/Node.yml +++ /dev/null @@ -1,100 +0,0 @@ -name: Node - -concurrency: - group: Node-${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - security-events: write - contents: write - pull-requests: write - -on: - workflow_dispatch: - push: - branches: [Current] - pull_request: - branches: [Current] - workflow_call: - -jobs: - Pre-Publish: - runs-on: ubuntu-latest - - env: - ADBLOCK: true - ASTRO_TELEMETRY_DISABLED: 1 - AUTOMATEDLAB_TELEMETRY_OPTOUT: 1 - AZURE_CORE_COLLECT_TELEMETRY: 0 - CHOOSENIM_NO_ANALYTICS: 1 - DIEZ_DO_NOT_TRACK: 1 - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - DOTNET_INTERACTIVE_CLI_TELEMETRY_OPTOUT: 1 - DO_NOT_TRACK: 1 - ET_NO_TELEMETRY: 1 - GATSBY_TELEMETRY_DISABLED: 1 - GATSBY_TELEMETRY_OPTOUT: 1 - GATSBY_TELEMETRY_OPT_OUT: 1 - GRIT_TELEMETRY_DISABLED: 1 - HASURA_GRAPHQL_ENABLE_TELEMETRY: false - HINT_TELEMETRY: off - HOMEBREW_NO_ANALYTICS: 1 - INFLUXD_REPORTING_DISABLED: true - ITERATIVE_DO_NOT_TRACK: 1 - NEXT_TELEMETRY_DEBUG: 1 - NEXT_TELEMETRY_DISABLED: 1 - NG_CLI_ANALYTICS: false - NUXT_TELEMETRY_DISABLED: 1 - PIN_DO_NOT_TRACK: 1 - POWERSHELL_TELEMETRY_OPTOUT: 1 - SAM_CLI_TELEMETRY: 0 - STNOUPGRADE: 1 - STRIPE_CLI_TELEMETRY_OPTOUT: 1 - TELEMETRY_DISABLED: 1 - - strategy: - matrix: - node-version: [18, 19, 20] - - steps: - - uses: actions/checkout@v4.1.2 - - - uses: pnpm/action-setup@v3.0.0 - with: - version: 8.15.5 - run_install: | - - recursive: true - args: [ - --link-workspace-packages=true, - --lockfile-only, - --prefer-frozen-lockfile=false, - --shamefully-hoist=false, - --shared-workspace-lockfile=true, - --strict-peer-dependencies=false, - --unsafe-perm=true - ] - - - uses: actions/setup-node@v4.0.2 - with: - node-version: ${{ matrix.node-version }} - cache: "pnpm" - cache-dependency-path: ./pnpm-lock.yaml - - - run: pnpm install - working-directory: . - - - run: pnpm run build - working-directory: . - - - uses: actions/upload-artifact@v4.3.1 - with: - name: .-Node-${{ matrix.node-version }}-Target - path: ./Target - - - run: pnpm run prepublishOnly - working-directory: . - - - uses: actions/upload-artifact@v4.3.1 - with: - name: .-Node-${{ matrix.node-version }}-Target - path: ./Target From 47ea1616d65ab868d28e92bf04c22dc91104261d Mon Sep 17 00:00:00 2001 From: Nikola Date: Mon, 15 Apr 2024 21:21:59 +0300 Subject: [PATCH 08/22] squash! --- package.json | 95 ++++++++++++++++++++-------------------------------- 1 file changed, 37 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index 172a48be9..98cd68eb0 100644 --- a/package.json +++ b/package.json @@ -1,46 +1,15 @@ { - "name": "__EXTENSIONNAME__", - "displayName": "__DISPLAYNAME__", - "version": "0.0.1", - "private": false, - "description": "__DESCRIPTION__", - "homepage": "HTTPS://github.com/CodeEditorLand/LandPythonDeviceSimulator#readme", - "bugs": { - "url": "HTTPS://github.com/CodeEditorLand/LandPythonDeviceSimulator/issues" - }, - "repository": { - "type": "git", - "url": "git+HTTPS://github.com/CodeEditorLand/LandPythonDeviceSimulator.git" - }, - "license": "SEE LICENSE IN LICENSE", - "author": { - "name": "Land", - "email": "Land@Playform.Cloud", - "url": "HTTPS://Land.Playform.Cloud" - }, - "type": "module", - "main": "./out/extension.js", - "scripts": { - "Document": "Document 'Source/**/*.ts'", - "build": "gulp build", - "check:python": "black src --check", - "check:ts": "prettier --config .prettierrc.yaml --check src/**/*.{css,ts,tsx}", - "clean": "gulp clean", - "compile": "npm-run-all compile:*", - "compile:extension": "gulp compile", - "compile:views": "webpack --mode development", - "format:python": "black src", - "format:ts": "prettier --config .prettierrc.yaml --write src/**/*.{css,ts,tsx}", - "lint:python": "pylint src", - "lint:ts": "tslint -c tslint.json src/**/*.{ts,tsx}", - "prepublishOnly": "Build 'Source/**/*.ts'", - "start": "webpack-dev-server", - "test:api-tests": "pytest src", - "test:extension-tests": "node ./out/test/runTest.js", - "test:ts": "jest", - "watch:extension": "tsc --watch", - "watch:views": "webpack --watch --mode development" - }, + "activationEvents": [ + "onCommand:deviceSimulatorExpress.common.installDependencies", + "onCommand:deviceSimulatorExpress.common.openSerialMonitor", + "onCommand:deviceSimulatorExpress.common.runSimulator", + "onCommand:deviceSimulatorExpress.common.selectSerialPort", + "onCommand:deviceSimulatorExpress.common.gettingStarted", + "onCommand:deviceSimulatorExpress.common.deployToDevice", + "onCommand:deviceSimulatorExpress.common.newFile", + "onCommand:deviceSimulatorExpress.common.openSimulator", + "onDebug" + ], "contributes": { "breakpoints": [ { @@ -225,17 +194,6 @@ } ] }, - "activationEvents": [ - "onCommand:deviceSimulatorExpress.common.installDependencies", - "onCommand:deviceSimulatorExpress.common.openSerialMonitor", - "onCommand:deviceSimulatorExpress.common.runSimulator", - "onCommand:deviceSimulatorExpress.common.selectSerialPort", - "onCommand:deviceSimulatorExpress.common.gettingStarted", - "onCommand:deviceSimulatorExpress.common.deployToDevice", - "onCommand:deviceSimulatorExpress.common.newFile", - "onCommand:deviceSimulatorExpress.common.openSimulator", - "onDebug" - ], "dependencies": { "@types/open": "6.1.0", "@types/socket.io": "3.0.1", @@ -248,9 +206,9 @@ "usb-native": "6.0.0", "util": "0.12.5" }, + "description": "__DESCRIPTION__", "devDependencies": { "@playform/build": "0.0.7", - "@playform/document": "0.0.6", "@types/glob": "8.1.0", "@types/node": "20.12.7", "css-loader": "7.1.1", @@ -264,13 +222,34 @@ "ts-loader": "9.5.1", "version-from-git": "1.1.1" }, + "displayName": "__DISPLAYNAME__", "extensionDependencies": [ "ms-python.python" ], - "publishConfig": { - "access": "public" - }, "icon": "assets/icon.png", + "instrumentationKey": "__AIKEY__", + "main": "./out/extension.js", + "name": "__EXTENSIONNAME__", "preview": true, - "instrumentationKey": "__AIKEY__" + "scripts": { + "Document": "Document 'Source/**/*.ts'", + "build": "gulp build", + "check:python": "black src --check", + "check:ts": "prettier --config .prettierrc.yaml --check src/**/*.{css,ts,tsx}", + "clean": "gulp clean", + "compile": "npm-run-all compile:*", + "compile:extension": "gulp compile", + "compile:views": "webpack --mode development", + "format:python": "black src", + "format:ts": "prettier --config .prettierrc.yaml --write src/**/*.{css,ts,tsx}", + "lint:python": "pylint src", + "lint:ts": "tslint -c tslint.json src/**/*.{ts,tsx}", + "prepublishOnly": "Build 'Source/**/*.ts'", + "start": "webpack-dev-server", + "test:api-tests": "pytest src", + "test:extension-tests": "node ./out/test/runTest.js", + "test:ts": "jest", + "watch:extension": "tsc --watch", + "watch:views": "webpack --watch --mode development" + } } From eb2abbe5b809f9aa717a4259a3db583240639a22 Mon Sep 17 00:00:00 2001 From: Nikola Date: Mon, 15 Apr 2024 21:31:09 +0300 Subject: [PATCH 09/22] squash! --- package.json | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 98cd68eb0..485be259f 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,14 @@ "onCommand:deviceSimulatorExpress.common.openSimulator", "onDebug" ], + "author": { + "email": "Land@Playform.Cloud", + "name": "Land", + "url": "HTTPS://Land.Playform.Cloud" + }, + "bugs": { + "url": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator/issues" + }, "contributes": { "breakpoints": [ { @@ -209,6 +217,7 @@ "description": "__DESCRIPTION__", "devDependencies": { "@playform/build": "0.0.7", + "@playform/document": "0.0.6", "@types/glob": "8.1.0", "@types/node": "20.12.7", "css-loader": "7.1.1", @@ -226,11 +235,21 @@ "extensionDependencies": [ "ms-python.python" ], + "homepage": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator#readme", "icon": "assets/icon.png", "instrumentationKey": "__AIKEY__", + "license": "SEE LICENSE IN LICENSE", "main": "./out/extension.js", "name": "__EXTENSIONNAME__", "preview": true, + "private": false, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+HTTPS://github.com/CodeEditorLand/LandPythonDeviceSimulator.git" + }, "scripts": { "Document": "Document 'Source/**/*.ts'", "build": "gulp build", @@ -251,5 +270,7 @@ "test:ts": "jest", "watch:extension": "tsc --watch", "watch:views": "webpack --watch --mode development" - } + }, + "type": "module", + "version": "0.0.1" } From d4a29b7fe5e835a11a9d28d5ab2950b0bd411401 Mon Sep 17 00:00:00 2001 From: Nikola Date: Mon, 15 Apr 2024 22:30:50 +0300 Subject: [PATCH 10/22] squash! --- package.json | 102 +++++++++++++++++++++++++-------------------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/package.json b/package.json index 485be259f..1fd395592 100644 --- a/package.json +++ b/package.json @@ -1,22 +1,45 @@ { - "activationEvents": [ - "onCommand:deviceSimulatorExpress.common.installDependencies", - "onCommand:deviceSimulatorExpress.common.openSerialMonitor", - "onCommand:deviceSimulatorExpress.common.runSimulator", - "onCommand:deviceSimulatorExpress.common.selectSerialPort", - "onCommand:deviceSimulatorExpress.common.gettingStarted", - "onCommand:deviceSimulatorExpress.common.deployToDevice", - "onCommand:deviceSimulatorExpress.common.newFile", - "onCommand:deviceSimulatorExpress.common.openSimulator", - "onDebug" - ], + "name": "__EXTENSIONNAME__", + "displayName": "__DISPLAYNAME__", + "version": "0.0.1", + "private": false, + "description": "__DESCRIPTION__", + "homepage": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator#readme", + "bugs": { + "url": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator/issues" + }, + "repository": { + "type": "git", + "url": "git+HTTPS://github.com/CodeEditorLand/LandPythonDeviceSimulator.git" + }, + "license": "SEE LICENSE IN LICENSE", "author": { - "email": "Land@Playform.Cloud", "name": "Land", + "email": "Land@Playform.Cloud", "url": "HTTPS://Land.Playform.Cloud" }, - "bugs": { - "url": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator/issues" + "type": "module", + "main": "./out/extension.js", + "scripts": { + "Document": "Document 'Source/**/*.ts'", + "build": "gulp build", + "check:python": "black src --check", + "check:ts": "prettier --config .prettierrc.yaml --check src/**/*.{css,ts,tsx}", + "clean": "gulp clean", + "compile": "npm-run-all compile:*", + "compile:extension": "gulp compile", + "compile:views": "webpack --mode development", + "format:python": "black src", + "format:ts": "prettier --config .prettierrc.yaml --write src/**/*.{css,ts,tsx}", + "lint:python": "pylint src", + "lint:ts": "tslint -c tslint.json src/**/*.{ts,tsx}", + "prepublishOnly": "Build 'Source/**/*.ts'", + "start": "webpack-dev-server", + "test:api-tests": "pytest src", + "test:extension-tests": "node ./out/test/runTest.js", + "test:ts": "jest", + "watch:extension": "tsc --watch", + "watch:views": "webpack --watch --mode development" }, "contributes": { "breakpoints": [ @@ -202,6 +225,17 @@ } ] }, + "activationEvents": [ + "onCommand:deviceSimulatorExpress.common.installDependencies", + "onCommand:deviceSimulatorExpress.common.openSerialMonitor", + "onCommand:deviceSimulatorExpress.common.runSimulator", + "onCommand:deviceSimulatorExpress.common.selectSerialPort", + "onCommand:deviceSimulatorExpress.common.gettingStarted", + "onCommand:deviceSimulatorExpress.common.deployToDevice", + "onCommand:deviceSimulatorExpress.common.newFile", + "onCommand:deviceSimulatorExpress.common.openSimulator", + "onDebug" + ], "dependencies": { "@types/open": "6.1.0", "@types/socket.io": "3.0.1", @@ -214,7 +248,6 @@ "usb-native": "6.0.0", "util": "0.12.5" }, - "description": "__DESCRIPTION__", "devDependencies": { "@playform/build": "0.0.7", "@playform/document": "0.0.6", @@ -231,46 +264,13 @@ "ts-loader": "9.5.1", "version-from-git": "1.1.1" }, - "displayName": "__DISPLAYNAME__", "extensionDependencies": [ "ms-python.python" ], - "homepage": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator#readme", - "icon": "assets/icon.png", - "instrumentationKey": "__AIKEY__", - "license": "SEE LICENSE IN LICENSE", - "main": "./out/extension.js", - "name": "__EXTENSIONNAME__", - "preview": true, - "private": false, "publishConfig": { "access": "public" }, - "repository": { - "type": "git", - "url": "git+HTTPS://github.com/CodeEditorLand/LandPythonDeviceSimulator.git" - }, - "scripts": { - "Document": "Document 'Source/**/*.ts'", - "build": "gulp build", - "check:python": "black src --check", - "check:ts": "prettier --config .prettierrc.yaml --check src/**/*.{css,ts,tsx}", - "clean": "gulp clean", - "compile": "npm-run-all compile:*", - "compile:extension": "gulp compile", - "compile:views": "webpack --mode development", - "format:python": "black src", - "format:ts": "prettier --config .prettierrc.yaml --write src/**/*.{css,ts,tsx}", - "lint:python": "pylint src", - "lint:ts": "tslint -c tslint.json src/**/*.{ts,tsx}", - "prepublishOnly": "Build 'Source/**/*.ts'", - "start": "webpack-dev-server", - "test:api-tests": "pytest src", - "test:extension-tests": "node ./out/test/runTest.js", - "test:ts": "jest", - "watch:extension": "tsc --watch", - "watch:views": "webpack --watch --mode development" - }, - "type": "module", - "version": "0.0.1" + "icon": "assets/icon.png", + "preview": true, + "instrumentationKey": "__AIKEY__" } From a7caff683ba646b64d6dfb83243bed2d3745b22c Mon Sep 17 00:00:00 2001 From: Nikola Date: Mon, 15 Apr 2024 22:52:10 +0300 Subject: [PATCH 11/22] squash! --- .github/dependabot.yml | 20 +++++++ .github/workflows/Dependabot.yml | 45 ++++++++++++++ .github/workflows/GitHub.yml | 57 ++++++++++++++++++ .github/workflows/NPM.yml | 43 +++++++++++++ .github/workflows/Node.yml | 100 +++++++++++++++++++++++++++++++ 5 files changed, 265 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/Dependabot.yml create mode 100644 .github/workflows/GitHub.yml create mode 100644 .github/workflows/NPM.yml create mode 100644 .github/workflows/Node.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..ee41acd38 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,20 @@ +version: 2 +enable-beta-ecosystems: true + +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + + - package-ecosystem: "pip" + directory: "/Source" + schedule: + interval: "daily" + versioning-strategy: increase + + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "daily" + versioning-strategy: increase diff --git a/.github/workflows/Dependabot.yml b/.github/workflows/Dependabot.yml new file mode 100644 index 000000000..cfa5b9675 --- /dev/null +++ b/.github/workflows/Dependabot.yml @@ -0,0 +1,45 @@ +name: Dependabot + +concurrency: + group: Dependabot-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + security-events: write + contents: write + pull-requests: write + +on: + workflow_dispatch: + pull_request: + +jobs: + Approve: + runs-on: ubuntu-latest + + if: ${{ github.actor == 'dependabot[bot]' }} + + steps: + - uses: dependabot/fetch-metadata@v2.0.0 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + + - run: gh pr review --approve "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + + Merge: + runs-on: ubuntu-latest + + if: ${{ github.actor == 'dependabot[bot]' }} + + steps: + - uses: dependabot/fetch-metadata@v2.0.0 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + + - run: gh pr merge --auto --merge "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/GitHub.yml b/.github/workflows/GitHub.yml new file mode 100644 index 000000000..0be30bac9 --- /dev/null +++ b/.github/workflows/GitHub.yml @@ -0,0 +1,57 @@ +name: GitHub + +concurrency: + group: GitHub-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + issues: write + pull-requests: write + +on: + issues: + types: [opened] + pull_request: + types: [opened] + +jobs: + Assign: + runs-on: ubuntu-latest + + env: + ADBLOCK: true + ASTRO_TELEMETRY_DISABLED: 1 + AUTOMATEDLAB_TELEMETRY_OPTOUT: 1 + AZURE_CORE_COLLECT_TELEMETRY: 0 + CHOOSENIM_NO_ANALYTICS: 1 + DIEZ_DO_NOT_TRACK: 1 + DOTNET_CLI_TELEMETRY_OPTOUT: 1 + DOTNET_INTERACTIVE_CLI_TELEMETRY_OPTOUT: 1 + DO_NOT_TRACK: 1 + ET_NO_TELEMETRY: 1 + GATSBY_TELEMETRY_DISABLED: 1 + GATSBY_TELEMETRY_OPTOUT: 1 + GATSBY_TELEMETRY_OPT_OUT: 1 + GRIT_TELEMETRY_DISABLED: 1 + HASURA_GRAPHQL_ENABLE_TELEMETRY: false + HINT_TELEMETRY: off + HOMEBREW_NO_ANALYTICS: 1 + INFLUXD_REPORTING_DISABLED: true + ITERATIVE_DO_NOT_TRACK: 1 + NEXT_TELEMETRY_DEBUG: 1 + NEXT_TELEMETRY_DISABLED: 1 + NG_CLI_ANALYTICS: false + NUXT_TELEMETRY_DISABLED: 1 + PIN_DO_NOT_TRACK: 1 + POWERSHELL_TELEMETRY_OPTOUT: 1 + SAM_CLI_TELEMETRY: 0 + STNOUPGRADE: 1 + STRIPE_CLI_TELEMETRY_OPTOUT: 1 + TELEMETRY_DISABLED: 1 + + steps: + - uses: pozil/auto-assign-issue@v1.14.0 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + assignees: NikolaRHristov + numOfAssignee: 1 diff --git a/.github/workflows/NPM.yml b/.github/workflows/NPM.yml new file mode 100644 index 000000000..b0332f1a0 --- /dev/null +++ b/.github/workflows/NPM.yml @@ -0,0 +1,43 @@ +name: NPM + +concurrency: + group: NPM-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + security-events: write + contents: write + pull-requests: write + +on: + workflow_dispatch: + release: + types: [created] + workflow_call: + +jobs: + Publish: + runs-on: ubuntu-latest + + permissions: + contents: read + id-token: write + + steps: + - uses: actions/checkout@v4.1.2 + + - uses: actions/setup-node@v4.0.2 + with: + node-version: "18" + registry-url: "https://registry.npmjs.org" + + - run: npm install -g npm + + - name: Publish . + continue-on-error: true + working-directory: . + run: | + npm install --legacy-peer-deps + npm publish --legacy-peer-deps --provenance + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/Node.yml b/.github/workflows/Node.yml new file mode 100644 index 000000000..cd8ec65cf --- /dev/null +++ b/.github/workflows/Node.yml @@ -0,0 +1,100 @@ +name: Node + +concurrency: + group: Node-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + security-events: write + contents: write + pull-requests: write + +on: + workflow_dispatch: + push: + branches: [Current] + pull_request: + branches: [Current] + workflow_call: + +jobs: + Pre-Publish: + runs-on: ubuntu-latest + + env: + ADBLOCK: true + ASTRO_TELEMETRY_DISABLED: 1 + AUTOMATEDLAB_TELEMETRY_OPTOUT: 1 + AZURE_CORE_COLLECT_TELEMETRY: 0 + CHOOSENIM_NO_ANALYTICS: 1 + DIEZ_DO_NOT_TRACK: 1 + DOTNET_CLI_TELEMETRY_OPTOUT: 1 + DOTNET_INTERACTIVE_CLI_TELEMETRY_OPTOUT: 1 + DO_NOT_TRACK: 1 + ET_NO_TELEMETRY: 1 + GATSBY_TELEMETRY_DISABLED: 1 + GATSBY_TELEMETRY_OPTOUT: 1 + GATSBY_TELEMETRY_OPT_OUT: 1 + GRIT_TELEMETRY_DISABLED: 1 + HASURA_GRAPHQL_ENABLE_TELEMETRY: false + HINT_TELEMETRY: off + HOMEBREW_NO_ANALYTICS: 1 + INFLUXD_REPORTING_DISABLED: true + ITERATIVE_DO_NOT_TRACK: 1 + NEXT_TELEMETRY_DEBUG: 1 + NEXT_TELEMETRY_DISABLED: 1 + NG_CLI_ANALYTICS: false + NUXT_TELEMETRY_DISABLED: 1 + PIN_DO_NOT_TRACK: 1 + POWERSHELL_TELEMETRY_OPTOUT: 1 + SAM_CLI_TELEMETRY: 0 + STNOUPGRADE: 1 + STRIPE_CLI_TELEMETRY_OPTOUT: 1 + TELEMETRY_DISABLED: 1 + + strategy: + matrix: + node-version: [18, 19, 20] + + steps: + - uses: actions/checkout@v4.1.2 + + - uses: pnpm/action-setup@v3.0.0 + with: + version: 8.15.5 + run_install: | + - recursive: true + args: [ + --link-workspace-packages=true, + --lockfile-only, + --prefer-frozen-lockfile=false, + --shamefully-hoist=false, + --shared-workspace-lockfile=true, + --strict-peer-dependencies=false, + --unsafe-perm=true + ] + + - uses: actions/setup-node@v4.0.2 + with: + node-version: ${{ matrix.node-version }} + cache: "pnpm" + cache-dependency-path: ./pnpm-lock.yaml + + - run: pnpm install + working-directory: . + + - run: pnpm run build + working-directory: . + + - uses: actions/upload-artifact@v4.3.1 + with: + name: .-Node-${{ matrix.node-version }}-Target + path: ./Target + + - run: pnpm run prepublishOnly + working-directory: . + + - uses: actions/upload-artifact@v4.3.1 + with: + name: .-Node-${{ matrix.node-version }}-Target + path: ./Target From baa61e6878e4bbb3c4b3b15129404703cf268edc Mon Sep 17 00:00:00 2001 From: Nikola Date: Wed, 17 Apr 2024 01:57:00 +0300 Subject: [PATCH 12/22] squash! --- .github/dependabot.yml | 20 ------- .github/workflows/Dependabot.yml | 45 -------------- .github/workflows/GitHub.yml | 57 ------------------ .github/workflows/NPM.yml | 43 ------------- .github/workflows/Node.yml | 100 ------------------------------- package.json | 95 ++++++++++++----------------- 6 files changed, 37 insertions(+), 323 deletions(-) delete mode 100644 .github/dependabot.yml delete mode 100644 .github/workflows/Dependabot.yml delete mode 100644 .github/workflows/GitHub.yml delete mode 100644 .github/workflows/NPM.yml delete mode 100644 .github/workflows/Node.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index ee41acd38..000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: 2 -enable-beta-ecosystems: true - -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "daily" - - - package-ecosystem: "pip" - directory: "/Source" - schedule: - interval: "daily" - versioning-strategy: increase - - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "daily" - versioning-strategy: increase diff --git a/.github/workflows/Dependabot.yml b/.github/workflows/Dependabot.yml deleted file mode 100644 index cfa5b9675..000000000 --- a/.github/workflows/Dependabot.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Dependabot - -concurrency: - group: Dependabot-${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - security-events: write - contents: write - pull-requests: write - -on: - workflow_dispatch: - pull_request: - -jobs: - Approve: - runs-on: ubuntu-latest - - if: ${{ github.actor == 'dependabot[bot]' }} - - steps: - - uses: dependabot/fetch-metadata@v2.0.0 - with: - github-token: "${{ secrets.GITHUB_TOKEN }}" - - - run: gh pr review --approve "$PR_URL" - env: - PR_URL: ${{github.event.pull_request.html_url}} - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - - Merge: - runs-on: ubuntu-latest - - if: ${{ github.actor == 'dependabot[bot]' }} - - steps: - - uses: dependabot/fetch-metadata@v2.0.0 - with: - github-token: "${{ secrets.GITHUB_TOKEN }}" - - - run: gh pr merge --auto --merge "$PR_URL" - env: - PR_URL: ${{github.event.pull_request.html_url}} - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/GitHub.yml b/.github/workflows/GitHub.yml deleted file mode 100644 index 0be30bac9..000000000 --- a/.github/workflows/GitHub.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: GitHub - -concurrency: - group: GitHub-${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - issues: write - pull-requests: write - -on: - issues: - types: [opened] - pull_request: - types: [opened] - -jobs: - Assign: - runs-on: ubuntu-latest - - env: - ADBLOCK: true - ASTRO_TELEMETRY_DISABLED: 1 - AUTOMATEDLAB_TELEMETRY_OPTOUT: 1 - AZURE_CORE_COLLECT_TELEMETRY: 0 - CHOOSENIM_NO_ANALYTICS: 1 - DIEZ_DO_NOT_TRACK: 1 - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - DOTNET_INTERACTIVE_CLI_TELEMETRY_OPTOUT: 1 - DO_NOT_TRACK: 1 - ET_NO_TELEMETRY: 1 - GATSBY_TELEMETRY_DISABLED: 1 - GATSBY_TELEMETRY_OPTOUT: 1 - GATSBY_TELEMETRY_OPT_OUT: 1 - GRIT_TELEMETRY_DISABLED: 1 - HASURA_GRAPHQL_ENABLE_TELEMETRY: false - HINT_TELEMETRY: off - HOMEBREW_NO_ANALYTICS: 1 - INFLUXD_REPORTING_DISABLED: true - ITERATIVE_DO_NOT_TRACK: 1 - NEXT_TELEMETRY_DEBUG: 1 - NEXT_TELEMETRY_DISABLED: 1 - NG_CLI_ANALYTICS: false - NUXT_TELEMETRY_DISABLED: 1 - PIN_DO_NOT_TRACK: 1 - POWERSHELL_TELEMETRY_OPTOUT: 1 - SAM_CLI_TELEMETRY: 0 - STNOUPGRADE: 1 - STRIPE_CLI_TELEMETRY_OPTOUT: 1 - TELEMETRY_DISABLED: 1 - - steps: - - uses: pozil/auto-assign-issue@v1.14.0 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - assignees: NikolaRHristov - numOfAssignee: 1 diff --git a/.github/workflows/NPM.yml b/.github/workflows/NPM.yml deleted file mode 100644 index b0332f1a0..000000000 --- a/.github/workflows/NPM.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: NPM - -concurrency: - group: NPM-${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - security-events: write - contents: write - pull-requests: write - -on: - workflow_dispatch: - release: - types: [created] - workflow_call: - -jobs: - Publish: - runs-on: ubuntu-latest - - permissions: - contents: read - id-token: write - - steps: - - uses: actions/checkout@v4.1.2 - - - uses: actions/setup-node@v4.0.2 - with: - node-version: "18" - registry-url: "https://registry.npmjs.org" - - - run: npm install -g npm - - - name: Publish . - continue-on-error: true - working-directory: . - run: | - npm install --legacy-peer-deps - npm publish --legacy-peer-deps --provenance - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/Node.yml b/.github/workflows/Node.yml deleted file mode 100644 index cd8ec65cf..000000000 --- a/.github/workflows/Node.yml +++ /dev/null @@ -1,100 +0,0 @@ -name: Node - -concurrency: - group: Node-${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - security-events: write - contents: write - pull-requests: write - -on: - workflow_dispatch: - push: - branches: [Current] - pull_request: - branches: [Current] - workflow_call: - -jobs: - Pre-Publish: - runs-on: ubuntu-latest - - env: - ADBLOCK: true - ASTRO_TELEMETRY_DISABLED: 1 - AUTOMATEDLAB_TELEMETRY_OPTOUT: 1 - AZURE_CORE_COLLECT_TELEMETRY: 0 - CHOOSENIM_NO_ANALYTICS: 1 - DIEZ_DO_NOT_TRACK: 1 - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - DOTNET_INTERACTIVE_CLI_TELEMETRY_OPTOUT: 1 - DO_NOT_TRACK: 1 - ET_NO_TELEMETRY: 1 - GATSBY_TELEMETRY_DISABLED: 1 - GATSBY_TELEMETRY_OPTOUT: 1 - GATSBY_TELEMETRY_OPT_OUT: 1 - GRIT_TELEMETRY_DISABLED: 1 - HASURA_GRAPHQL_ENABLE_TELEMETRY: false - HINT_TELEMETRY: off - HOMEBREW_NO_ANALYTICS: 1 - INFLUXD_REPORTING_DISABLED: true - ITERATIVE_DO_NOT_TRACK: 1 - NEXT_TELEMETRY_DEBUG: 1 - NEXT_TELEMETRY_DISABLED: 1 - NG_CLI_ANALYTICS: false - NUXT_TELEMETRY_DISABLED: 1 - PIN_DO_NOT_TRACK: 1 - POWERSHELL_TELEMETRY_OPTOUT: 1 - SAM_CLI_TELEMETRY: 0 - STNOUPGRADE: 1 - STRIPE_CLI_TELEMETRY_OPTOUT: 1 - TELEMETRY_DISABLED: 1 - - strategy: - matrix: - node-version: [18, 19, 20] - - steps: - - uses: actions/checkout@v4.1.2 - - - uses: pnpm/action-setup@v3.0.0 - with: - version: 8.15.5 - run_install: | - - recursive: true - args: [ - --link-workspace-packages=true, - --lockfile-only, - --prefer-frozen-lockfile=false, - --shamefully-hoist=false, - --shared-workspace-lockfile=true, - --strict-peer-dependencies=false, - --unsafe-perm=true - ] - - - uses: actions/setup-node@v4.0.2 - with: - node-version: ${{ matrix.node-version }} - cache: "pnpm" - cache-dependency-path: ./pnpm-lock.yaml - - - run: pnpm install - working-directory: . - - - run: pnpm run build - working-directory: . - - - uses: actions/upload-artifact@v4.3.1 - with: - name: .-Node-${{ matrix.node-version }}-Target - path: ./Target - - - run: pnpm run prepublishOnly - working-directory: . - - - uses: actions/upload-artifact@v4.3.1 - with: - name: .-Node-${{ matrix.node-version }}-Target - path: ./Target diff --git a/package.json b/package.json index 1fd395592..98cd68eb0 100644 --- a/package.json +++ b/package.json @@ -1,46 +1,15 @@ { - "name": "__EXTENSIONNAME__", - "displayName": "__DISPLAYNAME__", - "version": "0.0.1", - "private": false, - "description": "__DESCRIPTION__", - "homepage": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator#readme", - "bugs": { - "url": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator/issues" - }, - "repository": { - "type": "git", - "url": "git+HTTPS://github.com/CodeEditorLand/LandPythonDeviceSimulator.git" - }, - "license": "SEE LICENSE IN LICENSE", - "author": { - "name": "Land", - "email": "Land@Playform.Cloud", - "url": "HTTPS://Land.Playform.Cloud" - }, - "type": "module", - "main": "./out/extension.js", - "scripts": { - "Document": "Document 'Source/**/*.ts'", - "build": "gulp build", - "check:python": "black src --check", - "check:ts": "prettier --config .prettierrc.yaml --check src/**/*.{css,ts,tsx}", - "clean": "gulp clean", - "compile": "npm-run-all compile:*", - "compile:extension": "gulp compile", - "compile:views": "webpack --mode development", - "format:python": "black src", - "format:ts": "prettier --config .prettierrc.yaml --write src/**/*.{css,ts,tsx}", - "lint:python": "pylint src", - "lint:ts": "tslint -c tslint.json src/**/*.{ts,tsx}", - "prepublishOnly": "Build 'Source/**/*.ts'", - "start": "webpack-dev-server", - "test:api-tests": "pytest src", - "test:extension-tests": "node ./out/test/runTest.js", - "test:ts": "jest", - "watch:extension": "tsc --watch", - "watch:views": "webpack --watch --mode development" - }, + "activationEvents": [ + "onCommand:deviceSimulatorExpress.common.installDependencies", + "onCommand:deviceSimulatorExpress.common.openSerialMonitor", + "onCommand:deviceSimulatorExpress.common.runSimulator", + "onCommand:deviceSimulatorExpress.common.selectSerialPort", + "onCommand:deviceSimulatorExpress.common.gettingStarted", + "onCommand:deviceSimulatorExpress.common.deployToDevice", + "onCommand:deviceSimulatorExpress.common.newFile", + "onCommand:deviceSimulatorExpress.common.openSimulator", + "onDebug" + ], "contributes": { "breakpoints": [ { @@ -225,17 +194,6 @@ } ] }, - "activationEvents": [ - "onCommand:deviceSimulatorExpress.common.installDependencies", - "onCommand:deviceSimulatorExpress.common.openSerialMonitor", - "onCommand:deviceSimulatorExpress.common.runSimulator", - "onCommand:deviceSimulatorExpress.common.selectSerialPort", - "onCommand:deviceSimulatorExpress.common.gettingStarted", - "onCommand:deviceSimulatorExpress.common.deployToDevice", - "onCommand:deviceSimulatorExpress.common.newFile", - "onCommand:deviceSimulatorExpress.common.openSimulator", - "onDebug" - ], "dependencies": { "@types/open": "6.1.0", "@types/socket.io": "3.0.1", @@ -248,9 +206,9 @@ "usb-native": "6.0.0", "util": "0.12.5" }, + "description": "__DESCRIPTION__", "devDependencies": { "@playform/build": "0.0.7", - "@playform/document": "0.0.6", "@types/glob": "8.1.0", "@types/node": "20.12.7", "css-loader": "7.1.1", @@ -264,13 +222,34 @@ "ts-loader": "9.5.1", "version-from-git": "1.1.1" }, + "displayName": "__DISPLAYNAME__", "extensionDependencies": [ "ms-python.python" ], - "publishConfig": { - "access": "public" - }, "icon": "assets/icon.png", + "instrumentationKey": "__AIKEY__", + "main": "./out/extension.js", + "name": "__EXTENSIONNAME__", "preview": true, - "instrumentationKey": "__AIKEY__" + "scripts": { + "Document": "Document 'Source/**/*.ts'", + "build": "gulp build", + "check:python": "black src --check", + "check:ts": "prettier --config .prettierrc.yaml --check src/**/*.{css,ts,tsx}", + "clean": "gulp clean", + "compile": "npm-run-all compile:*", + "compile:extension": "gulp compile", + "compile:views": "webpack --mode development", + "format:python": "black src", + "format:ts": "prettier --config .prettierrc.yaml --write src/**/*.{css,ts,tsx}", + "lint:python": "pylint src", + "lint:ts": "tslint -c tslint.json src/**/*.{ts,tsx}", + "prepublishOnly": "Build 'Source/**/*.ts'", + "start": "webpack-dev-server", + "test:api-tests": "pytest src", + "test:extension-tests": "node ./out/test/runTest.js", + "test:ts": "jest", + "watch:extension": "tsc --watch", + "watch:views": "webpack --watch --mode development" + } } From 8f216dad8847147647e8b38b738bf43fcc8228da Mon Sep 17 00:00:00 2001 From: Nikola Date: Wed, 17 Apr 2024 02:01:25 +0300 Subject: [PATCH 13/22] squash! --- package.json | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 98cd68eb0..485be259f 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,14 @@ "onCommand:deviceSimulatorExpress.common.openSimulator", "onDebug" ], + "author": { + "email": "Land@Playform.Cloud", + "name": "Land", + "url": "HTTPS://Land.Playform.Cloud" + }, + "bugs": { + "url": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator/issues" + }, "contributes": { "breakpoints": [ { @@ -209,6 +217,7 @@ "description": "__DESCRIPTION__", "devDependencies": { "@playform/build": "0.0.7", + "@playform/document": "0.0.6", "@types/glob": "8.1.0", "@types/node": "20.12.7", "css-loader": "7.1.1", @@ -226,11 +235,21 @@ "extensionDependencies": [ "ms-python.python" ], + "homepage": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator#readme", "icon": "assets/icon.png", "instrumentationKey": "__AIKEY__", + "license": "SEE LICENSE IN LICENSE", "main": "./out/extension.js", "name": "__EXTENSIONNAME__", "preview": true, + "private": false, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+HTTPS://github.com/CodeEditorLand/LandPythonDeviceSimulator.git" + }, "scripts": { "Document": "Document 'Source/**/*.ts'", "build": "gulp build", @@ -251,5 +270,7 @@ "test:ts": "jest", "watch:extension": "tsc --watch", "watch:views": "webpack --watch --mode development" - } + }, + "type": "module", + "version": "0.0.1" } From 199ef5e77a03ff5847038e023fde9bf48b967df6 Mon Sep 17 00:00:00 2001 From: Nikola Date: Wed, 17 Apr 2024 03:06:31 +0300 Subject: [PATCH 14/22] squash! --- package.json | 102 +++++++++++++++++++++++++-------------------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/package.json b/package.json index 485be259f..1fd395592 100644 --- a/package.json +++ b/package.json @@ -1,22 +1,45 @@ { - "activationEvents": [ - "onCommand:deviceSimulatorExpress.common.installDependencies", - "onCommand:deviceSimulatorExpress.common.openSerialMonitor", - "onCommand:deviceSimulatorExpress.common.runSimulator", - "onCommand:deviceSimulatorExpress.common.selectSerialPort", - "onCommand:deviceSimulatorExpress.common.gettingStarted", - "onCommand:deviceSimulatorExpress.common.deployToDevice", - "onCommand:deviceSimulatorExpress.common.newFile", - "onCommand:deviceSimulatorExpress.common.openSimulator", - "onDebug" - ], + "name": "__EXTENSIONNAME__", + "displayName": "__DISPLAYNAME__", + "version": "0.0.1", + "private": false, + "description": "__DESCRIPTION__", + "homepage": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator#readme", + "bugs": { + "url": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator/issues" + }, + "repository": { + "type": "git", + "url": "git+HTTPS://github.com/CodeEditorLand/LandPythonDeviceSimulator.git" + }, + "license": "SEE LICENSE IN LICENSE", "author": { - "email": "Land@Playform.Cloud", "name": "Land", + "email": "Land@Playform.Cloud", "url": "HTTPS://Land.Playform.Cloud" }, - "bugs": { - "url": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator/issues" + "type": "module", + "main": "./out/extension.js", + "scripts": { + "Document": "Document 'Source/**/*.ts'", + "build": "gulp build", + "check:python": "black src --check", + "check:ts": "prettier --config .prettierrc.yaml --check src/**/*.{css,ts,tsx}", + "clean": "gulp clean", + "compile": "npm-run-all compile:*", + "compile:extension": "gulp compile", + "compile:views": "webpack --mode development", + "format:python": "black src", + "format:ts": "prettier --config .prettierrc.yaml --write src/**/*.{css,ts,tsx}", + "lint:python": "pylint src", + "lint:ts": "tslint -c tslint.json src/**/*.{ts,tsx}", + "prepublishOnly": "Build 'Source/**/*.ts'", + "start": "webpack-dev-server", + "test:api-tests": "pytest src", + "test:extension-tests": "node ./out/test/runTest.js", + "test:ts": "jest", + "watch:extension": "tsc --watch", + "watch:views": "webpack --watch --mode development" }, "contributes": { "breakpoints": [ @@ -202,6 +225,17 @@ } ] }, + "activationEvents": [ + "onCommand:deviceSimulatorExpress.common.installDependencies", + "onCommand:deviceSimulatorExpress.common.openSerialMonitor", + "onCommand:deviceSimulatorExpress.common.runSimulator", + "onCommand:deviceSimulatorExpress.common.selectSerialPort", + "onCommand:deviceSimulatorExpress.common.gettingStarted", + "onCommand:deviceSimulatorExpress.common.deployToDevice", + "onCommand:deviceSimulatorExpress.common.newFile", + "onCommand:deviceSimulatorExpress.common.openSimulator", + "onDebug" + ], "dependencies": { "@types/open": "6.1.0", "@types/socket.io": "3.0.1", @@ -214,7 +248,6 @@ "usb-native": "6.0.0", "util": "0.12.5" }, - "description": "__DESCRIPTION__", "devDependencies": { "@playform/build": "0.0.7", "@playform/document": "0.0.6", @@ -231,46 +264,13 @@ "ts-loader": "9.5.1", "version-from-git": "1.1.1" }, - "displayName": "__DISPLAYNAME__", "extensionDependencies": [ "ms-python.python" ], - "homepage": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator#readme", - "icon": "assets/icon.png", - "instrumentationKey": "__AIKEY__", - "license": "SEE LICENSE IN LICENSE", - "main": "./out/extension.js", - "name": "__EXTENSIONNAME__", - "preview": true, - "private": false, "publishConfig": { "access": "public" }, - "repository": { - "type": "git", - "url": "git+HTTPS://github.com/CodeEditorLand/LandPythonDeviceSimulator.git" - }, - "scripts": { - "Document": "Document 'Source/**/*.ts'", - "build": "gulp build", - "check:python": "black src --check", - "check:ts": "prettier --config .prettierrc.yaml --check src/**/*.{css,ts,tsx}", - "clean": "gulp clean", - "compile": "npm-run-all compile:*", - "compile:extension": "gulp compile", - "compile:views": "webpack --mode development", - "format:python": "black src", - "format:ts": "prettier --config .prettierrc.yaml --write src/**/*.{css,ts,tsx}", - "lint:python": "pylint src", - "lint:ts": "tslint -c tslint.json src/**/*.{ts,tsx}", - "prepublishOnly": "Build 'Source/**/*.ts'", - "start": "webpack-dev-server", - "test:api-tests": "pytest src", - "test:extension-tests": "node ./out/test/runTest.js", - "test:ts": "jest", - "watch:extension": "tsc --watch", - "watch:views": "webpack --watch --mode development" - }, - "type": "module", - "version": "0.0.1" + "icon": "assets/icon.png", + "preview": true, + "instrumentationKey": "__AIKEY__" } From fd7de85cdb54704970137d30f598686453edb4db Mon Sep 17 00:00:00 2001 From: Nikola Date: Wed, 17 Apr 2024 03:46:58 +0300 Subject: [PATCH 15/22] squash! --- .github/dependabot.yml | 20 +++++++ .github/workflows/Dependabot.yml | 45 ++++++++++++++ .github/workflows/GitHub.yml | 57 ++++++++++++++++++ .github/workflows/NPM.yml | 43 +++++++++++++ .github/workflows/Node.yml | 100 +++++++++++++++++++++++++++++++ 5 files changed, 265 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/Dependabot.yml create mode 100644 .github/workflows/GitHub.yml create mode 100644 .github/workflows/NPM.yml create mode 100644 .github/workflows/Node.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..ee41acd38 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,20 @@ +version: 2 +enable-beta-ecosystems: true + +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + + - package-ecosystem: "pip" + directory: "/Source" + schedule: + interval: "daily" + versioning-strategy: increase + + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "daily" + versioning-strategy: increase diff --git a/.github/workflows/Dependabot.yml b/.github/workflows/Dependabot.yml new file mode 100644 index 000000000..cfa5b9675 --- /dev/null +++ b/.github/workflows/Dependabot.yml @@ -0,0 +1,45 @@ +name: Dependabot + +concurrency: + group: Dependabot-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + security-events: write + contents: write + pull-requests: write + +on: + workflow_dispatch: + pull_request: + +jobs: + Approve: + runs-on: ubuntu-latest + + if: ${{ github.actor == 'dependabot[bot]' }} + + steps: + - uses: dependabot/fetch-metadata@v2.0.0 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + + - run: gh pr review --approve "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + + Merge: + runs-on: ubuntu-latest + + if: ${{ github.actor == 'dependabot[bot]' }} + + steps: + - uses: dependabot/fetch-metadata@v2.0.0 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + + - run: gh pr merge --auto --merge "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/GitHub.yml b/.github/workflows/GitHub.yml new file mode 100644 index 000000000..0be30bac9 --- /dev/null +++ b/.github/workflows/GitHub.yml @@ -0,0 +1,57 @@ +name: GitHub + +concurrency: + group: GitHub-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + issues: write + pull-requests: write + +on: + issues: + types: [opened] + pull_request: + types: [opened] + +jobs: + Assign: + runs-on: ubuntu-latest + + env: + ADBLOCK: true + ASTRO_TELEMETRY_DISABLED: 1 + AUTOMATEDLAB_TELEMETRY_OPTOUT: 1 + AZURE_CORE_COLLECT_TELEMETRY: 0 + CHOOSENIM_NO_ANALYTICS: 1 + DIEZ_DO_NOT_TRACK: 1 + DOTNET_CLI_TELEMETRY_OPTOUT: 1 + DOTNET_INTERACTIVE_CLI_TELEMETRY_OPTOUT: 1 + DO_NOT_TRACK: 1 + ET_NO_TELEMETRY: 1 + GATSBY_TELEMETRY_DISABLED: 1 + GATSBY_TELEMETRY_OPTOUT: 1 + GATSBY_TELEMETRY_OPT_OUT: 1 + GRIT_TELEMETRY_DISABLED: 1 + HASURA_GRAPHQL_ENABLE_TELEMETRY: false + HINT_TELEMETRY: off + HOMEBREW_NO_ANALYTICS: 1 + INFLUXD_REPORTING_DISABLED: true + ITERATIVE_DO_NOT_TRACK: 1 + NEXT_TELEMETRY_DEBUG: 1 + NEXT_TELEMETRY_DISABLED: 1 + NG_CLI_ANALYTICS: false + NUXT_TELEMETRY_DISABLED: 1 + PIN_DO_NOT_TRACK: 1 + POWERSHELL_TELEMETRY_OPTOUT: 1 + SAM_CLI_TELEMETRY: 0 + STNOUPGRADE: 1 + STRIPE_CLI_TELEMETRY_OPTOUT: 1 + TELEMETRY_DISABLED: 1 + + steps: + - uses: pozil/auto-assign-issue@v1.14.0 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + assignees: NikolaRHristov + numOfAssignee: 1 diff --git a/.github/workflows/NPM.yml b/.github/workflows/NPM.yml new file mode 100644 index 000000000..b0332f1a0 --- /dev/null +++ b/.github/workflows/NPM.yml @@ -0,0 +1,43 @@ +name: NPM + +concurrency: + group: NPM-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + security-events: write + contents: write + pull-requests: write + +on: + workflow_dispatch: + release: + types: [created] + workflow_call: + +jobs: + Publish: + runs-on: ubuntu-latest + + permissions: + contents: read + id-token: write + + steps: + - uses: actions/checkout@v4.1.2 + + - uses: actions/setup-node@v4.0.2 + with: + node-version: "18" + registry-url: "https://registry.npmjs.org" + + - run: npm install -g npm + + - name: Publish . + continue-on-error: true + working-directory: . + run: | + npm install --legacy-peer-deps + npm publish --legacy-peer-deps --provenance + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/Node.yml b/.github/workflows/Node.yml new file mode 100644 index 000000000..cd8ec65cf --- /dev/null +++ b/.github/workflows/Node.yml @@ -0,0 +1,100 @@ +name: Node + +concurrency: + group: Node-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + security-events: write + contents: write + pull-requests: write + +on: + workflow_dispatch: + push: + branches: [Current] + pull_request: + branches: [Current] + workflow_call: + +jobs: + Pre-Publish: + runs-on: ubuntu-latest + + env: + ADBLOCK: true + ASTRO_TELEMETRY_DISABLED: 1 + AUTOMATEDLAB_TELEMETRY_OPTOUT: 1 + AZURE_CORE_COLLECT_TELEMETRY: 0 + CHOOSENIM_NO_ANALYTICS: 1 + DIEZ_DO_NOT_TRACK: 1 + DOTNET_CLI_TELEMETRY_OPTOUT: 1 + DOTNET_INTERACTIVE_CLI_TELEMETRY_OPTOUT: 1 + DO_NOT_TRACK: 1 + ET_NO_TELEMETRY: 1 + GATSBY_TELEMETRY_DISABLED: 1 + GATSBY_TELEMETRY_OPTOUT: 1 + GATSBY_TELEMETRY_OPT_OUT: 1 + GRIT_TELEMETRY_DISABLED: 1 + HASURA_GRAPHQL_ENABLE_TELEMETRY: false + HINT_TELEMETRY: off + HOMEBREW_NO_ANALYTICS: 1 + INFLUXD_REPORTING_DISABLED: true + ITERATIVE_DO_NOT_TRACK: 1 + NEXT_TELEMETRY_DEBUG: 1 + NEXT_TELEMETRY_DISABLED: 1 + NG_CLI_ANALYTICS: false + NUXT_TELEMETRY_DISABLED: 1 + PIN_DO_NOT_TRACK: 1 + POWERSHELL_TELEMETRY_OPTOUT: 1 + SAM_CLI_TELEMETRY: 0 + STNOUPGRADE: 1 + STRIPE_CLI_TELEMETRY_OPTOUT: 1 + TELEMETRY_DISABLED: 1 + + strategy: + matrix: + node-version: [18, 19, 20] + + steps: + - uses: actions/checkout@v4.1.2 + + - uses: pnpm/action-setup@v3.0.0 + with: + version: 8.15.5 + run_install: | + - recursive: true + args: [ + --link-workspace-packages=true, + --lockfile-only, + --prefer-frozen-lockfile=false, + --shamefully-hoist=false, + --shared-workspace-lockfile=true, + --strict-peer-dependencies=false, + --unsafe-perm=true + ] + + - uses: actions/setup-node@v4.0.2 + with: + node-version: ${{ matrix.node-version }} + cache: "pnpm" + cache-dependency-path: ./pnpm-lock.yaml + + - run: pnpm install + working-directory: . + + - run: pnpm run build + working-directory: . + + - uses: actions/upload-artifact@v4.3.1 + with: + name: .-Node-${{ matrix.node-version }}-Target + path: ./Target + + - run: pnpm run prepublishOnly + working-directory: . + + - uses: actions/upload-artifact@v4.3.1 + with: + name: .-Node-${{ matrix.node-version }}-Target + path: ./Target From 88d322d26c378291ad8380379e401e580e4f941b Mon Sep 17 00:00:00 2001 From: "Nikola R. Hristov" Date: Wed, 17 Apr 2024 12:33:23 +0300 Subject: [PATCH 16/22] squash! --- Source/extension_utils/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/extension_utils/utils.ts b/Source/extension_utils/utils.ts index b7be3b71c..7e61e5d36 100644 --- a/Source/extension_utils/utils.ts +++ b/Source/extension_utils/utils.ts @@ -104,7 +104,7 @@ export function mkdirRecursivelySync(dirPath: string): void { export function directoryExistsSync(dirPath: string): boolean { try { return fs.statSync(dirPath).isDirectory(); - } catch (e) { + } catch (_Error) { return false; } } From f2179a0da579514b3fae1537100dff0781706549 Mon Sep 17 00:00:00 2001 From: "Nikola R. Hristov" Date: Fri, 19 Apr 2024 06:35:50 +0300 Subject: [PATCH 17/22] squash! --- .github/workflows/Node.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/Node.yml b/.github/workflows/Node.yml index cd8ec65cf..df4a1c7a0 100644 --- a/.github/workflows/Node.yml +++ b/.github/workflows/Node.yml @@ -86,7 +86,7 @@ jobs: - run: pnpm run build working-directory: . - - uses: actions/upload-artifact@v4.3.1 + - uses: actions/upload-artifact@v4.3.2 with: name: .-Node-${{ matrix.node-version }}-Target path: ./Target @@ -94,7 +94,7 @@ jobs: - run: pnpm run prepublishOnly working-directory: . - - uses: actions/upload-artifact@v4.3.1 + - uses: actions/upload-artifact@v4.3.2 with: name: .-Node-${{ matrix.node-version }}-Target path: ./Target From 1f88eed7af68ad55f8746623a1ec057b37a91d29 Mon Sep 17 00:00:00 2001 From: "Nikola R. Hristov" Date: Fri, 19 Apr 2024 16:42:47 +0300 Subject: [PATCH 18/22] squash! --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 1fd395592..e010787fe 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,9 @@ "version": "0.0.1", "private": false, "description": "__DESCRIPTION__", + "keywords": [ + "land" + ], "homepage": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator#readme", "bugs": { "url": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator/issues" From 537a7a6ceaecff5a2ed39a2ffb384fd1da8ae2a9 Mon Sep 17 00:00:00 2001 From: "Nikola R. Hristov" Date: Sat, 20 Apr 2024 04:49:40 +0300 Subject: [PATCH 19/22] squash! --- .github/dependabot.yml | 20 ------- .github/workflows/Dependabot.yml | 45 -------------- .github/workflows/GitHub.yml | 57 ------------------ .github/workflows/NPM.yml | 43 ------------- .github/workflows/Node.yml | 100 ------------------------------- 5 files changed, 265 deletions(-) delete mode 100644 .github/dependabot.yml delete mode 100644 .github/workflows/Dependabot.yml delete mode 100644 .github/workflows/GitHub.yml delete mode 100644 .github/workflows/NPM.yml delete mode 100644 .github/workflows/Node.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index ee41acd38..000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: 2 -enable-beta-ecosystems: true - -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "daily" - - - package-ecosystem: "pip" - directory: "/Source" - schedule: - interval: "daily" - versioning-strategy: increase - - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "daily" - versioning-strategy: increase diff --git a/.github/workflows/Dependabot.yml b/.github/workflows/Dependabot.yml deleted file mode 100644 index cfa5b9675..000000000 --- a/.github/workflows/Dependabot.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Dependabot - -concurrency: - group: Dependabot-${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - security-events: write - contents: write - pull-requests: write - -on: - workflow_dispatch: - pull_request: - -jobs: - Approve: - runs-on: ubuntu-latest - - if: ${{ github.actor == 'dependabot[bot]' }} - - steps: - - uses: dependabot/fetch-metadata@v2.0.0 - with: - github-token: "${{ secrets.GITHUB_TOKEN }}" - - - run: gh pr review --approve "$PR_URL" - env: - PR_URL: ${{github.event.pull_request.html_url}} - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - - Merge: - runs-on: ubuntu-latest - - if: ${{ github.actor == 'dependabot[bot]' }} - - steps: - - uses: dependabot/fetch-metadata@v2.0.0 - with: - github-token: "${{ secrets.GITHUB_TOKEN }}" - - - run: gh pr merge --auto --merge "$PR_URL" - env: - PR_URL: ${{github.event.pull_request.html_url}} - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/GitHub.yml b/.github/workflows/GitHub.yml deleted file mode 100644 index 0be30bac9..000000000 --- a/.github/workflows/GitHub.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: GitHub - -concurrency: - group: GitHub-${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - issues: write - pull-requests: write - -on: - issues: - types: [opened] - pull_request: - types: [opened] - -jobs: - Assign: - runs-on: ubuntu-latest - - env: - ADBLOCK: true - ASTRO_TELEMETRY_DISABLED: 1 - AUTOMATEDLAB_TELEMETRY_OPTOUT: 1 - AZURE_CORE_COLLECT_TELEMETRY: 0 - CHOOSENIM_NO_ANALYTICS: 1 - DIEZ_DO_NOT_TRACK: 1 - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - DOTNET_INTERACTIVE_CLI_TELEMETRY_OPTOUT: 1 - DO_NOT_TRACK: 1 - ET_NO_TELEMETRY: 1 - GATSBY_TELEMETRY_DISABLED: 1 - GATSBY_TELEMETRY_OPTOUT: 1 - GATSBY_TELEMETRY_OPT_OUT: 1 - GRIT_TELEMETRY_DISABLED: 1 - HASURA_GRAPHQL_ENABLE_TELEMETRY: false - HINT_TELEMETRY: off - HOMEBREW_NO_ANALYTICS: 1 - INFLUXD_REPORTING_DISABLED: true - ITERATIVE_DO_NOT_TRACK: 1 - NEXT_TELEMETRY_DEBUG: 1 - NEXT_TELEMETRY_DISABLED: 1 - NG_CLI_ANALYTICS: false - NUXT_TELEMETRY_DISABLED: 1 - PIN_DO_NOT_TRACK: 1 - POWERSHELL_TELEMETRY_OPTOUT: 1 - SAM_CLI_TELEMETRY: 0 - STNOUPGRADE: 1 - STRIPE_CLI_TELEMETRY_OPTOUT: 1 - TELEMETRY_DISABLED: 1 - - steps: - - uses: pozil/auto-assign-issue@v1.14.0 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - assignees: NikolaRHristov - numOfAssignee: 1 diff --git a/.github/workflows/NPM.yml b/.github/workflows/NPM.yml deleted file mode 100644 index b0332f1a0..000000000 --- a/.github/workflows/NPM.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: NPM - -concurrency: - group: NPM-${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - security-events: write - contents: write - pull-requests: write - -on: - workflow_dispatch: - release: - types: [created] - workflow_call: - -jobs: - Publish: - runs-on: ubuntu-latest - - permissions: - contents: read - id-token: write - - steps: - - uses: actions/checkout@v4.1.2 - - - uses: actions/setup-node@v4.0.2 - with: - node-version: "18" - registry-url: "https://registry.npmjs.org" - - - run: npm install -g npm - - - name: Publish . - continue-on-error: true - working-directory: . - run: | - npm install --legacy-peer-deps - npm publish --legacy-peer-deps --provenance - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/Node.yml b/.github/workflows/Node.yml deleted file mode 100644 index df4a1c7a0..000000000 --- a/.github/workflows/Node.yml +++ /dev/null @@ -1,100 +0,0 @@ -name: Node - -concurrency: - group: Node-${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - security-events: write - contents: write - pull-requests: write - -on: - workflow_dispatch: - push: - branches: [Current] - pull_request: - branches: [Current] - workflow_call: - -jobs: - Pre-Publish: - runs-on: ubuntu-latest - - env: - ADBLOCK: true - ASTRO_TELEMETRY_DISABLED: 1 - AUTOMATEDLAB_TELEMETRY_OPTOUT: 1 - AZURE_CORE_COLLECT_TELEMETRY: 0 - CHOOSENIM_NO_ANALYTICS: 1 - DIEZ_DO_NOT_TRACK: 1 - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - DOTNET_INTERACTIVE_CLI_TELEMETRY_OPTOUT: 1 - DO_NOT_TRACK: 1 - ET_NO_TELEMETRY: 1 - GATSBY_TELEMETRY_DISABLED: 1 - GATSBY_TELEMETRY_OPTOUT: 1 - GATSBY_TELEMETRY_OPT_OUT: 1 - GRIT_TELEMETRY_DISABLED: 1 - HASURA_GRAPHQL_ENABLE_TELEMETRY: false - HINT_TELEMETRY: off - HOMEBREW_NO_ANALYTICS: 1 - INFLUXD_REPORTING_DISABLED: true - ITERATIVE_DO_NOT_TRACK: 1 - NEXT_TELEMETRY_DEBUG: 1 - NEXT_TELEMETRY_DISABLED: 1 - NG_CLI_ANALYTICS: false - NUXT_TELEMETRY_DISABLED: 1 - PIN_DO_NOT_TRACK: 1 - POWERSHELL_TELEMETRY_OPTOUT: 1 - SAM_CLI_TELEMETRY: 0 - STNOUPGRADE: 1 - STRIPE_CLI_TELEMETRY_OPTOUT: 1 - TELEMETRY_DISABLED: 1 - - strategy: - matrix: - node-version: [18, 19, 20] - - steps: - - uses: actions/checkout@v4.1.2 - - - uses: pnpm/action-setup@v3.0.0 - with: - version: 8.15.5 - run_install: | - - recursive: true - args: [ - --link-workspace-packages=true, - --lockfile-only, - --prefer-frozen-lockfile=false, - --shamefully-hoist=false, - --shared-workspace-lockfile=true, - --strict-peer-dependencies=false, - --unsafe-perm=true - ] - - - uses: actions/setup-node@v4.0.2 - with: - node-version: ${{ matrix.node-version }} - cache: "pnpm" - cache-dependency-path: ./pnpm-lock.yaml - - - run: pnpm install - working-directory: . - - - run: pnpm run build - working-directory: . - - - uses: actions/upload-artifact@v4.3.2 - with: - name: .-Node-${{ matrix.node-version }}-Target - path: ./Target - - - run: pnpm run prepublishOnly - working-directory: . - - - uses: actions/upload-artifact@v4.3.2 - with: - name: .-Node-${{ matrix.node-version }}-Target - path: ./Target From 427f2af301f201b958b485477f76409c58c4407a Mon Sep 17 00:00:00 2001 From: "Nikola R. Hristov" Date: Sat, 20 Apr 2024 04:57:01 +0300 Subject: [PATCH 20/22] squash! --- package.json | 96 ++++++++++++++++++++-------------------------------- 1 file changed, 36 insertions(+), 60 deletions(-) diff --git a/package.json b/package.json index e010787fe..98cd68eb0 100644 --- a/package.json +++ b/package.json @@ -1,49 +1,15 @@ { - "name": "__EXTENSIONNAME__", - "displayName": "__DISPLAYNAME__", - "version": "0.0.1", - "private": false, - "description": "__DESCRIPTION__", - "keywords": [ - "land" + "activationEvents": [ + "onCommand:deviceSimulatorExpress.common.installDependencies", + "onCommand:deviceSimulatorExpress.common.openSerialMonitor", + "onCommand:deviceSimulatorExpress.common.runSimulator", + "onCommand:deviceSimulatorExpress.common.selectSerialPort", + "onCommand:deviceSimulatorExpress.common.gettingStarted", + "onCommand:deviceSimulatorExpress.common.deployToDevice", + "onCommand:deviceSimulatorExpress.common.newFile", + "onCommand:deviceSimulatorExpress.common.openSimulator", + "onDebug" ], - "homepage": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator#readme", - "bugs": { - "url": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator/issues" - }, - "repository": { - "type": "git", - "url": "git+HTTPS://github.com/CodeEditorLand/LandPythonDeviceSimulator.git" - }, - "license": "SEE LICENSE IN LICENSE", - "author": { - "name": "Land", - "email": "Land@Playform.Cloud", - "url": "HTTPS://Land.Playform.Cloud" - }, - "type": "module", - "main": "./out/extension.js", - "scripts": { - "Document": "Document 'Source/**/*.ts'", - "build": "gulp build", - "check:python": "black src --check", - "check:ts": "prettier --config .prettierrc.yaml --check src/**/*.{css,ts,tsx}", - "clean": "gulp clean", - "compile": "npm-run-all compile:*", - "compile:extension": "gulp compile", - "compile:views": "webpack --mode development", - "format:python": "black src", - "format:ts": "prettier --config .prettierrc.yaml --write src/**/*.{css,ts,tsx}", - "lint:python": "pylint src", - "lint:ts": "tslint -c tslint.json src/**/*.{ts,tsx}", - "prepublishOnly": "Build 'Source/**/*.ts'", - "start": "webpack-dev-server", - "test:api-tests": "pytest src", - "test:extension-tests": "node ./out/test/runTest.js", - "test:ts": "jest", - "watch:extension": "tsc --watch", - "watch:views": "webpack --watch --mode development" - }, "contributes": { "breakpoints": [ { @@ -228,17 +194,6 @@ } ] }, - "activationEvents": [ - "onCommand:deviceSimulatorExpress.common.installDependencies", - "onCommand:deviceSimulatorExpress.common.openSerialMonitor", - "onCommand:deviceSimulatorExpress.common.runSimulator", - "onCommand:deviceSimulatorExpress.common.selectSerialPort", - "onCommand:deviceSimulatorExpress.common.gettingStarted", - "onCommand:deviceSimulatorExpress.common.deployToDevice", - "onCommand:deviceSimulatorExpress.common.newFile", - "onCommand:deviceSimulatorExpress.common.openSimulator", - "onDebug" - ], "dependencies": { "@types/open": "6.1.0", "@types/socket.io": "3.0.1", @@ -251,9 +206,9 @@ "usb-native": "6.0.0", "util": "0.12.5" }, + "description": "__DESCRIPTION__", "devDependencies": { "@playform/build": "0.0.7", - "@playform/document": "0.0.6", "@types/glob": "8.1.0", "@types/node": "20.12.7", "css-loader": "7.1.1", @@ -267,13 +222,34 @@ "ts-loader": "9.5.1", "version-from-git": "1.1.1" }, + "displayName": "__DISPLAYNAME__", "extensionDependencies": [ "ms-python.python" ], - "publishConfig": { - "access": "public" - }, "icon": "assets/icon.png", + "instrumentationKey": "__AIKEY__", + "main": "./out/extension.js", + "name": "__EXTENSIONNAME__", "preview": true, - "instrumentationKey": "__AIKEY__" + "scripts": { + "Document": "Document 'Source/**/*.ts'", + "build": "gulp build", + "check:python": "black src --check", + "check:ts": "prettier --config .prettierrc.yaml --check src/**/*.{css,ts,tsx}", + "clean": "gulp clean", + "compile": "npm-run-all compile:*", + "compile:extension": "gulp compile", + "compile:views": "webpack --mode development", + "format:python": "black src", + "format:ts": "prettier --config .prettierrc.yaml --write src/**/*.{css,ts,tsx}", + "lint:python": "pylint src", + "lint:ts": "tslint -c tslint.json src/**/*.{ts,tsx}", + "prepublishOnly": "Build 'Source/**/*.ts'", + "start": "webpack-dev-server", + "test:api-tests": "pytest src", + "test:extension-tests": "node ./out/test/runTest.js", + "test:ts": "jest", + "watch:extension": "tsc --watch", + "watch:views": "webpack --watch --mode development" + } } From 630d1ac4ceffec9abcd9f2ef8a12c3ac9acae688 Mon Sep 17 00:00:00 2001 From: "Nikola R. Hristov" Date: Sat, 20 Apr 2024 09:36:22 +0300 Subject: [PATCH 21/22] squash! --- Source/view/tsconfig.json | 43 +++++++++++------- package.json | 96 ++++++++++++++++++++++++--------------- tsconfig.json | 33 +++++++++----- 3 files changed, 108 insertions(+), 64 deletions(-) diff --git a/Source/view/tsconfig.json b/Source/view/tsconfig.json index 28c6454e0..740d3d722 100644 --- a/Source/view/tsconfig.json +++ b/Source/view/tsconfig.json @@ -1,19 +1,28 @@ { - "compilerOptions": { - "module": "esnext", - "moduleResolution": "node", - "target": "es6", - "outDir": "out", - "lib": ["es6", "dom"], - "jsx": "react", - "sourceMap": true, - "rootDir": "..", - "strict": true, - "noUnusedLocals": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "experimentalDecorators": true - }, - "exclude": ["node_modules"], - "include": ["./index.tsx"] + "compilerOptions": { + "baseUrl": "./", + "experimentalDecorators": true, + "jsx": "react", + "lib": [ + "es6", + "dom" + ], + "module": "esnext", + "moduleResolution": "node", + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "noUnusedLocals": true, + "outDir": "Target", + "rootDir": "Source", + "sourceMap": true, + "strict": true, + "target": "es6" + }, + "exclude": [ + "node_modules" + ], + "extends": "@playform/build/tsconfig", + "include": [ + "Source" + ] } diff --git a/package.json b/package.json index 98cd68eb0..e010787fe 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,49 @@ { - "activationEvents": [ - "onCommand:deviceSimulatorExpress.common.installDependencies", - "onCommand:deviceSimulatorExpress.common.openSerialMonitor", - "onCommand:deviceSimulatorExpress.common.runSimulator", - "onCommand:deviceSimulatorExpress.common.selectSerialPort", - "onCommand:deviceSimulatorExpress.common.gettingStarted", - "onCommand:deviceSimulatorExpress.common.deployToDevice", - "onCommand:deviceSimulatorExpress.common.newFile", - "onCommand:deviceSimulatorExpress.common.openSimulator", - "onDebug" + "name": "__EXTENSIONNAME__", + "displayName": "__DISPLAYNAME__", + "version": "0.0.1", + "private": false, + "description": "__DESCRIPTION__", + "keywords": [ + "land" ], + "homepage": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator#readme", + "bugs": { + "url": "HTTPS://GitHub.Com/CodeEditorLand/LandPythonDeviceSimulator/issues" + }, + "repository": { + "type": "git", + "url": "git+HTTPS://github.com/CodeEditorLand/LandPythonDeviceSimulator.git" + }, + "license": "SEE LICENSE IN LICENSE", + "author": { + "name": "Land", + "email": "Land@Playform.Cloud", + "url": "HTTPS://Land.Playform.Cloud" + }, + "type": "module", + "main": "./out/extension.js", + "scripts": { + "Document": "Document 'Source/**/*.ts'", + "build": "gulp build", + "check:python": "black src --check", + "check:ts": "prettier --config .prettierrc.yaml --check src/**/*.{css,ts,tsx}", + "clean": "gulp clean", + "compile": "npm-run-all compile:*", + "compile:extension": "gulp compile", + "compile:views": "webpack --mode development", + "format:python": "black src", + "format:ts": "prettier --config .prettierrc.yaml --write src/**/*.{css,ts,tsx}", + "lint:python": "pylint src", + "lint:ts": "tslint -c tslint.json src/**/*.{ts,tsx}", + "prepublishOnly": "Build 'Source/**/*.ts'", + "start": "webpack-dev-server", + "test:api-tests": "pytest src", + "test:extension-tests": "node ./out/test/runTest.js", + "test:ts": "jest", + "watch:extension": "tsc --watch", + "watch:views": "webpack --watch --mode development" + }, "contributes": { "breakpoints": [ { @@ -194,6 +228,17 @@ } ] }, + "activationEvents": [ + "onCommand:deviceSimulatorExpress.common.installDependencies", + "onCommand:deviceSimulatorExpress.common.openSerialMonitor", + "onCommand:deviceSimulatorExpress.common.runSimulator", + "onCommand:deviceSimulatorExpress.common.selectSerialPort", + "onCommand:deviceSimulatorExpress.common.gettingStarted", + "onCommand:deviceSimulatorExpress.common.deployToDevice", + "onCommand:deviceSimulatorExpress.common.newFile", + "onCommand:deviceSimulatorExpress.common.openSimulator", + "onDebug" + ], "dependencies": { "@types/open": "6.1.0", "@types/socket.io": "3.0.1", @@ -206,9 +251,9 @@ "usb-native": "6.0.0", "util": "0.12.5" }, - "description": "__DESCRIPTION__", "devDependencies": { "@playform/build": "0.0.7", + "@playform/document": "0.0.6", "@types/glob": "8.1.0", "@types/node": "20.12.7", "css-loader": "7.1.1", @@ -222,34 +267,13 @@ "ts-loader": "9.5.1", "version-from-git": "1.1.1" }, - "displayName": "__DISPLAYNAME__", "extensionDependencies": [ "ms-python.python" ], + "publishConfig": { + "access": "public" + }, "icon": "assets/icon.png", - "instrumentationKey": "__AIKEY__", - "main": "./out/extension.js", - "name": "__EXTENSIONNAME__", "preview": true, - "scripts": { - "Document": "Document 'Source/**/*.ts'", - "build": "gulp build", - "check:python": "black src --check", - "check:ts": "prettier --config .prettierrc.yaml --check src/**/*.{css,ts,tsx}", - "clean": "gulp clean", - "compile": "npm-run-all compile:*", - "compile:extension": "gulp compile", - "compile:views": "webpack --mode development", - "format:python": "black src", - "format:ts": "prettier --config .prettierrc.yaml --write src/**/*.{css,ts,tsx}", - "lint:python": "pylint src", - "lint:ts": "tslint -c tslint.json src/**/*.{ts,tsx}", - "prepublishOnly": "Build 'Source/**/*.ts'", - "start": "webpack-dev-server", - "test:api-tests": "pytest src", - "test:extension-tests": "node ./out/test/runTest.js", - "test:ts": "jest", - "watch:extension": "tsc --watch", - "watch:views": "webpack --watch --mode development" - } + "instrumentationKey": "__AIKEY__" } diff --git a/tsconfig.json b/tsconfig.json index 8fd7e5501..47d21ba32 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,13 +1,24 @@ { - "compilerOptions": { - "module": "commonjs", - "target": "es6", - "outDir": "out", - "lib": ["es6", "dom"], - "sourceMap": true, - "rootDir": "src", - "jsx": "react", - "alwaysStrict": true - }, - "exclude": ["node_modules", ".vscode-test"] + "compilerOptions": { + "alwaysStrict": true, + "baseUrl": "./", + "jsx": "react", + "lib": [ + "es6", + "dom" + ], + "module": "commonjs", + "outDir": "Target", + "rootDir": "Source", + "sourceMap": true, + "target": "es6" + }, + "exclude": [ + "node_modules", + ".vscode-test" + ], + "extends": "@playform/build/tsconfig", + "include": [ + "Source" + ] } From 805e0beb4c7d0ccd51d19e8b79da6287509c9ba7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 13:28:36 +0000 Subject: [PATCH 22/22] Bump pillow from 8.1.1 to 10.3.0 in /src Bumps [pillow](https://github.com/python-pillow/Pillow) from 8.1.1 to 10.3.0. - [Release notes](https://github.com/python-pillow/Pillow/releases) - [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst) - [Commits](https://github.com/python-pillow/Pillow/compare/8.1.1...10.3.0) --- updated-dependencies: - dependency-name: pillow dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- src/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/requirements.txt b/src/requirements.txt index c13eef60b..2bb75d67a 100644 --- a/src/requirements.txt +++ b/src/requirements.txt @@ -6,7 +6,7 @@ pywin32==227; platform_system == "Windows" PyObjC; platform_system == "darwin" uflash==1.3.0 adafruit-circuitpython-fancyled==1.3.3 -Pillow==8.1.1 +Pillow==10.3.0 adafruit-circuitpython-bitmap_font==1.1.0 adafruit-circuitpython-display-shapes==1.2.0 adafruit-circuitpython-neopixel==5.0.0 \ No newline at end of file