From 0634951faeb796f0ccab03d0a0bb08a16ddd2c66 Mon Sep 17 00:00:00 2001 From: Auri Date: Wed, 30 Dec 2020 12:02:45 -0800 Subject: [PATCH] Refactor entire program -- react routing, better phaser code. --- app/.eslintrc.js | 167 + {client => app}/nodemon.json | 0 app/package-lock.json | 7109 ++ app/package.json | 53 + {public => app}/res/aesymatt.ttf | Bin {public => app}/res/cursor.png | Bin {public => app}/res/dice.png | Bin {public => app}/res/favicon.png | Bin {public => app}/res/grid_tile.png | Bin .../res/loader/kobold_loader_unfilled.png | Bin {public => app}/res/loader/loader_filled.png | Bin .../res/loader/loader_patching.png | Bin .../res/loader/loader_unfilled.png | Bin {public => app}/res/loader/logo.png | Bin {public => app}/res/logo.png | Bin {public => app}/res/shader/light_mask.png | Bin {public => app}/res/shader/outline.glsl | 0 {public => app}/res/tileset/0.png | Bin {public => app}/res/tileset/0.xcf | Bin .../res/tileset/floor_grass.attrib | 0 {public => app}/res/tileset/ground_cave.png | Bin {public => app}/res/tileset/ground_cave.xcf | Bin {public => app}/res/tileset/ground_grass.png | Bin {public => app}/res/tileset/ground_grass.xcf | Bin {public => app}/res/tileset/ground_wood.png | Bin {public => app}/res/tileset/ground_wood.xcf | Bin {public => app}/res/tileset/overlay_hole.png | Bin {public => app}/res/tileset/overlay_hole.xcf | Bin {public => app}/res/tileset/overlay_water.png | Bin {public => app}/res/tileset/overlay_water.xcf | Bin {public => app}/res/tileset/wall_dungeon.png | Bin {public => app}/res/tileset/wall_dungeon.xcf | Bin {public => app}/res/tileset/wall_shadow.png | Bin {public => app}/res/tileset/wall_shadow.xcf | Bin {public => app}/res/tileset/wall_wood.png | Bin {public => app}/res/tileset/wall_wood.xcf | Bin {public => app}/res/token/armor_1.png | Bin .../res/token/baby_amethyst_dragon.png | Bin .../res/token/baby_black_dragon.png | Bin .../res/token/baby_blue_dragon.png | Bin .../res/token/baby_gold_dragon.png | Bin .../res/token/baby_green_dragon.png | Bin {public => app}/res/token/baby_red_dragon.png | Bin {public => app}/res/token/baby_tin_dragon.png | Bin {public => app}/res/token/blue_slime.png | Bin {public => app}/res/token/bones.png | Bin {public => app}/res/token/cadin_1.png | Bin {public => app}/res/token/cadin_2.png | Bin {public => app}/res/token/cadin_3.png | Bin {public => app}/res/token/chest.png | Bin {public => app}/res/token/cleric_female.png | Bin {public => app}/res/token/cleric_male.png | Bin {public => app}/res/token/cloaked_person.png | Bin {public => app}/res/token/crab.png | Bin {public => app}/res/token/dino.png | Bin {public => app}/res/token/dragonfolk_1.png | Bin {public => app}/res/token/dragonfolk_2.png | Bin {public => app}/res/token/dragonfolk_3.png | Bin .../res/token/dragonfolk_knight_1.png | Bin .../res/token/dragonfolk_knight_2.png | Bin .../res/token/dragonfolk_knight_3.png | Bin {public => app}/res/token/drawf_m_1.png | Bin {public => app}/res/token/druid_male.png | Bin {public => app}/res/token/dwarf_m_1.png | Bin {public => app}/res/token/dwarf_m_2.png | Bin {public => app}/res/token/egg.png | Bin {public => app}/res/token/feline_1.png | Bin {public => app}/res/token/gnoll.png | Bin {public => app}/res/token/gnoll_leader.png | Bin {public => app}/res/token/green_goo.png | Bin {public => app}/res/token/knight_1.png | Bin {public => app}/res/token/lich.png | Bin {public => app}/res/token/mimic.png | Bin {public => app}/res/token/naexi_anthro.png | Bin .../res/token/naexi_human_noweapon.png | Bin .../res/token/naexi_human_yklwa.png | Bin {public => app}/res/token/orc.png | Bin {public => app}/res/token/orc_lord.png | Bin {public => app}/res/token/robot_1.png | Bin {public => app}/res/token/rockfriend_1.png | Bin {public => app}/res/token/rockfriend_2.png | Bin {public => app}/res/token/rockfriend_3.png | Bin {public => app}/res/token/rockfriend_4.png | Bin {public => app}/res/token/skeleton.png | Bin {public => app}/res/token/squidman.png | Bin {public => app}/res/token/tan_dog.png | Bin {public => app}/res/token/tiefling_1.png | Bin {public => app}/res/token/tori_1.png | Bin {public => app}/res/token/tori_2.png | Bin {public => app}/res/token/tori_3.png | Bin {public => app}/res/token/tori_4.png | Bin {public => app}/res/token/tori_5.png | Bin {public => app}/res/token/treasure.png | Bin {public => app}/res/token/water_slime.png | Bin {public => app}/res/token/white_ooze.png | Bin {public => app}/res/token/wizard_female.png | Bin {public => app}/res/token/wizard_male.png | Bin {public => app}/res/token/wolf_dark.png | Bin {public => app}/res/token/wolf_light.png | Bin {public => app}/res/ui/button_generic.png | Bin {public => app}/res/ui/button_grid.png | Bin {public => app}/res/ui/button_save_preset.png | Bin .../res/ui/button_select_cursor.png | Bin {public => app}/res/ui/button_side_menu.png | Bin .../res/ui/button_sidebar_toggle.png | Bin .../res/ui/button_token_type_toggle.png | Bin .../res/ui/history_manipulation.png | Bin app/res/ui/icon/add.png | Bin 0 -> 1501 bytes app/res/ui/icon/edit.png | Bin 0 -> 1491 bytes app/res/ui/icon/logout.png | Bin 0 -> 650 bytes app/res/ui/icon/nav_left.png | Bin 0 -> 1484 bytes app/res/ui/icon/nav_right.png | Bin 0 -> 1488 bytes app/res/ui/icon/play.png | Bin 0 -> 1508 bytes app/res/ui/icon/profile.png | Bin 0 -> 1553 bytes app/res/ui/icon/settings.png | Bin 0 -> 670 bytes {public => app}/res/ui/indicator_trash.png | Bin {public => app}/res/ui/mode_switch.png | Bin {public => app}/res/ui/quick_selector.png | Bin {public => app}/res/ui/sidebar_bg.png | Bin {public => app}/res/ui/sidebar_browse.png | Bin {public => app}/res/ui/sidebar_cursor.png | Bin {public => app}/res/ui/sidebar_folder.png | Bin {public => app}/res/ui/sidebar_overlay.png | Bin app/res/ui/slice/background.png | Bin 0 -> 4388 bytes app/res/ui/slice/button.png | Bin 0 -> 4396 bytes app/res/ui/slice/button_active.png | Bin 0 -> 4787 bytes app/res/ui/slice/button_disabled.png | Bin 0 -> 3965 bytes app/res/ui/slice/button_group_left.png | Bin 0 -> 4041 bytes app/res/ui/slice/button_group_left_active.png | Bin 0 -> 4675 bytes .../ui/slice/button_group_left_disabled.png | Bin 0 -> 3630 bytes app/res/ui/slice/button_group_middle.png | Bin 0 -> 3720 bytes .../ui/slice/button_group_middle_active.png | Bin 0 -> 4349 bytes .../ui/slice/button_group_middle_disabled.png | Bin 0 -> 3348 bytes app/res/ui/slice/button_group_right.png | Bin 0 -> 3953 bytes .../ui/slice/button_group_right_active.png | Bin 0 -> 4718 bytes .../ui/slice/button_group_right_disabled.png | Bin 0 -> 3643 bytes app/res/ui/slice/highlight.png | Bin 0 -> 1929 bytes app/res/ui/slice/outline.png | Bin 0 -> 4414 bytes {public => app}/res/ui/status_failed.png | Bin .../res/ui/status_failed_symbolic.png | Bin {public => app}/res/ui/status_pending.png | Bin {public => app}/res/ui/status_success.png | Bin .../res/ui/status_success_symbolic.png | Bin {public => app}/res/ui/text_box.png | Bin {public => app}/res/ui/text_input.png | Bin app/src/Hooks.ts | 35 + app/src/Main.ts | 5 + app/src/components/App.sass | 35 + app/src/components/App.tsx | 65 + app/src/components/AppDataContext.tsx | 29 + app/src/components/AppHeader.sass | 56 + app/src/components/AppHeader.tsx | 17 + app/src/components/Button.sass | 44 + app/src/components/Button.tsx | 35 + app/src/components/ButtonGroup.sass | 37 + app/src/components/ButtonGroup.tsx | 22 + app/src/components/Editor.sass | 8 + app/src/components/Editor.tsx | 66 + app/src/components/card/CampaignDetails.sass | 76 + app/src/components/card/CampaignDetails.tsx | 43 + app/src/components/card/CampaignList.sass | 46 + app/src/components/card/CampaignList.tsx | 63 + app/src/components/card/CampaignOverview.sass | 72 + app/src/components/card/CampaignOverview.tsx | 46 + app/src/components/card/MapList.sass | 46 + app/src/components/card/MapList.tsx | 63 + app/src/components/card/NewCampaignForm.sass | 32 + app/src/components/card/NewCampaignForm.tsx | 59 + app/src/components/route/CampaignRoute.sass | 15 + app/src/components/route/CampaignRoute.tsx | 25 + app/src/components/route/EditorRoute.sass | 2 + app/src/components/route/EditorRoute.tsx | 16 + app/src/components/route/HomeRoute.sass | 15 + app/src/components/route/HomeRoute.tsx | 29 + app/src/components/route/LoginRoute.tsx | 125 + app/src/components/route/MapRoute.tsx | 22 + app/src/components/route/Routes.ts | 7 + .../Modes => app/src/editor}/ArchitectMode.ts | 64 +- .../Util => app/src/editor}/InputManager.ts | 32 +- app/src/editor/Main.ts | 28 + .../Map => app/src/editor}/MapChunk.ts | 24 +- .../Map => app/src/editor}/MapData.ts | 45 +- app/src/editor/SmartTiler.ts | 323 + app/src/editor/TilesetManager.ts | 39 + {client/MapScene => app/src/editor}/Token.ts | 50 +- .../Modes => app/src/editor}/TokenMode.ts | 203 +- .../MapScene => app/src/editor}/WorldView.ts | 36 +- .../src/editor/history}/HistoryElement.ts | 60 +- .../src/editor/history}/HistoryManager.ts | 7 +- app/src/editor/interface/AssetUploader.ts | 225 + .../src/editor/interface}/Chat.ts | 6 +- .../src/editor/interface/ChatBox.ts | 46 +- .../src/editor/interface}/TextInput.ts | 8 +- .../src/editor/interface}/UIView.ts | 28 +- .../interface/components}/UIComponent.ts | 11 +- .../interface/components}/UIContainer.ts | 12 +- .../components}/UIHistoryManipulation.ts | 7 +- .../components}/UIModeSwitchButton.ts | 11 +- .../interface/components}/UISideMenuButton.ts | 7 +- .../editor/interface/components}/UISidebar.ts | 140 +- .../interface/components}/UISidebarToggle.ts | 7 +- .../interface/components}/UITileSidebar.ts | 44 +- .../interface/components/UITokenProps.ts | 51 + .../interface/components}/UITokenSidebar.ts | 22 +- .../src/editor/lighting}/LightChunk.ts | 9 +- .../src/editor/lighting}/LightSource.ts | 13 +- .../src/editor/lighting}/Lighting.ts | 31 +- app/src/editor/scene/InitScene.ts | 29 + app/src/editor/scene/LoadScene.ts | 73 + app/src/editor/scene/MapScene.ts | 89 + app/src/editor/scene/Scenes.ts | 9 + .../src/editor/shader}/BrightenPipeline.ts | 9 +- .../src/editor/shader}/OutlinePipeline.ts | 10 +- .../src/editor/util/Asset.ts | 8 +- app/src/editor/util/Helpers.ts | 20 + app/src/editor/util/Layer.ts | 7 + app/src/editor/util/Vec.ts | 88 + app/src/style/_def.sass | 48 + app/src/style/_grid.sass | 9 + app/src/style/_reset.sass | 24 + app/src/style/_slice.sass | 54 + app/src/style/_text.sass | 16 + {public => app/style}/style/editor.scss | 0 {public => app/style}/style/overview.scss | 0 {public => app/style}/style/reset.scss | 0 app/tsconfig.json | 26 + app/webpack.ts | 100 + assets/16x_fantasy_cadin_1.png | Bin 0 -> 1286 bytes assets/16x_fantasy_floor_rock.png | Bin 0 -> 3090 bytes assets/16x_fantasy_wall_dungeon.png | Bin 0 -> 4821 bytes client/@types/jquery.d.ts | 8560 -- client/@types/jscookie.d.ts | 99 - client/@types/libs.d.ts | 0 client/@types/p2.d.ts | 979 - client/@types/phaser.comments.d.ts | 35065 ------- client/@types/phaser.d.ts | 77681 ---------------- client/@types/pixi.comments.d.ts | 2303 - client/@types/pixi.d.ts | 913 - client/@types/socket.io.d.ts | 44 - client/InitScene.ts | 22 - client/LoadScene.ts | 69 - client/MapScene/FogOfWar.ts | 79 - client/MapScene/Interface/AssetUploader.ts | 222 - .../Interface/Components/UITileSelector.ts | 58 - .../Interface/Components/UITokenProps.ts | 47 - .../Interface/Components/UITokenSelector.ts | 57 - client/MapScene/Map/SmartTiler.ts | 325 - client/MapScene/Map/TilesetManager.ts | 33 - client/MapScene/MapScene.ts | 67 - client/Util/Util.ts | 20 - client/Util/Vector.ts | 88 - client/index.ts | 50 - client/tsconfig.json | 70 - common/AppData.ts | 8 + {server => common}/DBStructs.ts | 5 +- common/Format.ts | 43 + conf.json | 5 + package-lock.json | 1012 +- package.json | 37 +- public/editor/core.js | 3740 - public/editor/socket.js | 1 - public/lib/js.cookie.js | 162 - public/lib/phaser.min.js | 1 - public/res/ui/slice/background.png | Bin 405 -> 0 bytes public/res/ui/slice/button.png | Bin 405 -> 0 bytes public/res/ui/slice/button_active.png | Bin 422 -> 0 bytes public/res/ui/slice/button_disabled.png | Bin 382 -> 0 bytes public/res/ui/slice/highlight.png | Bin 209 -> 0 bytes public/res/ui/slice/outline.png | Bin 206 -> 0 bytes server/App.ts | 60 - server/index.ts | 5 - server/nodemon.json | 2 +- server/routers/AssetRouter.ts | 77 - server/routers/DataRouter.ts | 38 - server/routers/Router.ts | 22 - server/routers/Routers.ts | 11 - server/src/Config.ts | 29 + server/{ => src}/Database.ts | 295 +- server/src/Main.ts | 51 + server/src/ResolvePath.ts | 15 + server/src/Server.ts | 141 + server/src/routers/AppRouter.ts | 69 + server/{ => src}/routers/AuthRouter.ts | 0 server/{ => src}/routers/CampaignRouter.ts | 0 server/src/routers/DataRouter.ts | 118 + server/src/routers/Router.ts | 42 + server/tsconfig.json | 81 +- server/views/app.pug | 14 + {views => server/views}/asset.pug | 0 {views => server/views}/auth/login.pug | 0 {views => server/views}/auth/register.pug | 0 {views => server/views}/campaign.pug | 0 {views => server/views}/campaigns.pug | 0 {views => server/views}/editor.pug | 0 {views => server/views}/includes/head.pug | 0 views/map.pug | 51 - 296 files changed, 11644 insertions(+), 132135 deletions(-) create mode 100755 app/.eslintrc.js rename {client => app}/nodemon.json (100%) create mode 100644 app/package-lock.json create mode 100644 app/package.json rename {public => app}/res/aesymatt.ttf (100%) rename {public => app}/res/cursor.png (100%) rename {public => app}/res/dice.png (100%) rename {public => app}/res/favicon.png (100%) rename {public => app}/res/grid_tile.png (100%) rename {public => app}/res/loader/kobold_loader_unfilled.png (100%) rename {public => app}/res/loader/loader_filled.png (100%) rename {public => app}/res/loader/loader_patching.png (100%) rename {public => app}/res/loader/loader_unfilled.png (100%) rename {public => app}/res/loader/logo.png (100%) rename {public => app}/res/logo.png (100%) rename {public => app}/res/shader/light_mask.png (100%) rename {public => app}/res/shader/outline.glsl (100%) rename {public => app}/res/tileset/0.png (100%) rename {public => app}/res/tileset/0.xcf (100%) rename {public => app}/res/tileset/floor_grass.attrib (100%) rename {public => app}/res/tileset/ground_cave.png (100%) rename {public => app}/res/tileset/ground_cave.xcf (100%) rename {public => app}/res/tileset/ground_grass.png (100%) rename {public => app}/res/tileset/ground_grass.xcf (100%) rename {public => app}/res/tileset/ground_wood.png (100%) rename {public => app}/res/tileset/ground_wood.xcf (100%) rename {public => app}/res/tileset/overlay_hole.png (100%) rename {public => app}/res/tileset/overlay_hole.xcf (100%) rename {public => app}/res/tileset/overlay_water.png (100%) rename {public => app}/res/tileset/overlay_water.xcf (100%) rename {public => app}/res/tileset/wall_dungeon.png (100%) rename {public => app}/res/tileset/wall_dungeon.xcf (100%) rename {public => app}/res/tileset/wall_shadow.png (100%) rename {public => app}/res/tileset/wall_shadow.xcf (100%) rename {public => app}/res/tileset/wall_wood.png (100%) rename {public => app}/res/tileset/wall_wood.xcf (100%) rename {public => app}/res/token/armor_1.png (100%) rename {public => app}/res/token/baby_amethyst_dragon.png (100%) rename {public => app}/res/token/baby_black_dragon.png (100%) rename {public => app}/res/token/baby_blue_dragon.png (100%) rename {public => app}/res/token/baby_gold_dragon.png (100%) rename {public => app}/res/token/baby_green_dragon.png (100%) rename {public => app}/res/token/baby_red_dragon.png (100%) rename {public => app}/res/token/baby_tin_dragon.png (100%) rename {public => app}/res/token/blue_slime.png (100%) rename {public => app}/res/token/bones.png (100%) rename {public => app}/res/token/cadin_1.png (100%) rename {public => app}/res/token/cadin_2.png (100%) rename {public => app}/res/token/cadin_3.png (100%) rename {public => app}/res/token/chest.png (100%) rename {public => app}/res/token/cleric_female.png (100%) rename {public => app}/res/token/cleric_male.png (100%) rename {public => app}/res/token/cloaked_person.png (100%) rename {public => app}/res/token/crab.png (100%) rename {public => app}/res/token/dino.png (100%) rename {public => app}/res/token/dragonfolk_1.png (100%) rename {public => app}/res/token/dragonfolk_2.png (100%) rename {public => app}/res/token/dragonfolk_3.png (100%) rename {public => app}/res/token/dragonfolk_knight_1.png (100%) rename {public => app}/res/token/dragonfolk_knight_2.png (100%) rename {public => app}/res/token/dragonfolk_knight_3.png (100%) rename {public => app}/res/token/drawf_m_1.png (100%) rename {public => app}/res/token/druid_male.png (100%) rename {public => app}/res/token/dwarf_m_1.png (100%) rename {public => app}/res/token/dwarf_m_2.png (100%) rename {public => app}/res/token/egg.png (100%) rename {public => app}/res/token/feline_1.png (100%) rename {public => app}/res/token/gnoll.png (100%) rename {public => app}/res/token/gnoll_leader.png (100%) rename {public => app}/res/token/green_goo.png (100%) rename {public => app}/res/token/knight_1.png (100%) rename {public => app}/res/token/lich.png (100%) rename {public => app}/res/token/mimic.png (100%) rename {public => app}/res/token/naexi_anthro.png (100%) rename {public => app}/res/token/naexi_human_noweapon.png (100%) rename {public => app}/res/token/naexi_human_yklwa.png (100%) rename {public => app}/res/token/orc.png (100%) rename {public => app}/res/token/orc_lord.png (100%) rename {public => app}/res/token/robot_1.png (100%) rename {public => app}/res/token/rockfriend_1.png (100%) rename {public => app}/res/token/rockfriend_2.png (100%) rename {public => app}/res/token/rockfriend_3.png (100%) rename {public => app}/res/token/rockfriend_4.png (100%) rename {public => app}/res/token/skeleton.png (100%) rename {public => app}/res/token/squidman.png (100%) rename {public => app}/res/token/tan_dog.png (100%) rename {public => app}/res/token/tiefling_1.png (100%) rename {public => app}/res/token/tori_1.png (100%) rename {public => app}/res/token/tori_2.png (100%) rename {public => app}/res/token/tori_3.png (100%) rename {public => app}/res/token/tori_4.png (100%) rename {public => app}/res/token/tori_5.png (100%) rename {public => app}/res/token/treasure.png (100%) rename {public => app}/res/token/water_slime.png (100%) rename {public => app}/res/token/white_ooze.png (100%) rename {public => app}/res/token/wizard_female.png (100%) rename {public => app}/res/token/wizard_male.png (100%) rename {public => app}/res/token/wolf_dark.png (100%) rename {public => app}/res/token/wolf_light.png (100%) rename {public => app}/res/ui/button_generic.png (100%) rename {public => app}/res/ui/button_grid.png (100%) rename {public => app}/res/ui/button_save_preset.png (100%) rename {public => app}/res/ui/button_select_cursor.png (100%) rename {public => app}/res/ui/button_side_menu.png (100%) rename {public => app}/res/ui/button_sidebar_toggle.png (100%) rename {public => app}/res/ui/button_token_type_toggle.png (100%) rename {public => app}/res/ui/history_manipulation.png (100%) create mode 100644 app/res/ui/icon/add.png create mode 100644 app/res/ui/icon/edit.png create mode 100644 app/res/ui/icon/logout.png create mode 100644 app/res/ui/icon/nav_left.png create mode 100644 app/res/ui/icon/nav_right.png create mode 100644 app/res/ui/icon/play.png create mode 100644 app/res/ui/icon/profile.png create mode 100644 app/res/ui/icon/settings.png rename {public => app}/res/ui/indicator_trash.png (100%) rename {public => app}/res/ui/mode_switch.png (100%) rename {public => app}/res/ui/quick_selector.png (100%) rename {public => app}/res/ui/sidebar_bg.png (100%) rename {public => app}/res/ui/sidebar_browse.png (100%) rename {public => app}/res/ui/sidebar_cursor.png (100%) rename {public => app}/res/ui/sidebar_folder.png (100%) rename {public => app}/res/ui/sidebar_overlay.png (100%) create mode 100755 app/res/ui/slice/background.png create mode 100755 app/res/ui/slice/button.png create mode 100755 app/res/ui/slice/button_active.png create mode 100755 app/res/ui/slice/button_disabled.png create mode 100755 app/res/ui/slice/button_group_left.png create mode 100755 app/res/ui/slice/button_group_left_active.png create mode 100755 app/res/ui/slice/button_group_left_disabled.png create mode 100755 app/res/ui/slice/button_group_middle.png create mode 100755 app/res/ui/slice/button_group_middle_active.png create mode 100755 app/res/ui/slice/button_group_middle_disabled.png create mode 100755 app/res/ui/slice/button_group_right.png create mode 100755 app/res/ui/slice/button_group_right_active.png create mode 100755 app/res/ui/slice/button_group_right_disabled.png create mode 100755 app/res/ui/slice/highlight.png create mode 100755 app/res/ui/slice/outline.png rename {public => app}/res/ui/status_failed.png (100%) rename {public => app}/res/ui/status_failed_symbolic.png (100%) rename {public => app}/res/ui/status_pending.png (100%) rename {public => app}/res/ui/status_success.png (100%) rename {public => app}/res/ui/status_success_symbolic.png (100%) rename {public => app}/res/ui/text_box.png (100%) rename {public => app}/res/ui/text_input.png (100%) create mode 100644 app/src/Hooks.ts create mode 100755 app/src/Main.ts create mode 100644 app/src/components/App.sass create mode 100644 app/src/components/App.tsx create mode 100644 app/src/components/AppDataContext.tsx create mode 100644 app/src/components/AppHeader.sass create mode 100644 app/src/components/AppHeader.tsx create mode 100644 app/src/components/Button.sass create mode 100644 app/src/components/Button.tsx create mode 100644 app/src/components/ButtonGroup.sass create mode 100644 app/src/components/ButtonGroup.tsx create mode 100644 app/src/components/Editor.sass create mode 100644 app/src/components/Editor.tsx create mode 100644 app/src/components/card/CampaignDetails.sass create mode 100644 app/src/components/card/CampaignDetails.tsx create mode 100644 app/src/components/card/CampaignList.sass create mode 100644 app/src/components/card/CampaignList.tsx create mode 100644 app/src/components/card/CampaignOverview.sass create mode 100644 app/src/components/card/CampaignOverview.tsx create mode 100644 app/src/components/card/MapList.sass create mode 100644 app/src/components/card/MapList.tsx create mode 100644 app/src/components/card/NewCampaignForm.sass create mode 100644 app/src/components/card/NewCampaignForm.tsx create mode 100644 app/src/components/route/CampaignRoute.sass create mode 100644 app/src/components/route/CampaignRoute.tsx create mode 100644 app/src/components/route/EditorRoute.sass create mode 100644 app/src/components/route/EditorRoute.tsx create mode 100644 app/src/components/route/HomeRoute.sass create mode 100644 app/src/components/route/HomeRoute.tsx create mode 100644 app/src/components/route/LoginRoute.tsx create mode 100644 app/src/components/route/MapRoute.tsx create mode 100644 app/src/components/route/Routes.ts rename {client/MapScene/Interface/Modes => app/src/editor}/ArchitectMode.ts (84%) rename {client/Util => app/src/editor}/InputManager.ts (85%) create mode 100644 app/src/editor/Main.ts rename {client/MapScene/Map => app/src/editor}/MapChunk.ts (78%) rename {client/MapScene/Map => app/src/editor}/MapData.ts (81%) create mode 100755 app/src/editor/SmartTiler.ts create mode 100755 app/src/editor/TilesetManager.ts rename {client/MapScene => app/src/editor}/Token.ts (73%) rename {client/MapScene/Interface/Modes => app/src/editor}/TokenMode.ts (80%) rename {client/MapScene => app/src/editor}/WorldView.ts (68%) rename {client/MapScene/History => app/src/editor/history}/HistoryElement.ts (60%) rename {client/MapScene/History => app/src/editor/history}/HistoryManager.ts (89%) create mode 100755 app/src/editor/interface/AssetUploader.ts rename {client/MapScene/Interface => app/src/editor/interface}/Chat.ts (87%) rename client/MapScene/Interface/Chatbox.ts => app/src/editor/interface/ChatBox.ts (52%) rename {client/MapScene/Interface => app/src/editor/interface}/TextInput.ts (76%) rename {client/MapScene/Interface => app/src/editor/interface}/UIView.ts (81%) rename {client/MapScene/Interface/Components => app/src/editor/interface/components}/UIComponent.ts (66%) rename {client/MapScene/Interface/Components => app/src/editor/interface/components}/UIContainer.ts (80%) rename {client/MapScene/Interface/Components => app/src/editor/interface/components}/UIHistoryManipulation.ts (84%) rename {client/MapScene/Interface/Components => app/src/editor/interface/components}/UIModeSwitchButton.ts (66%) rename {client/MapScene/Interface/Components => app/src/editor/interface/components}/UISideMenuButton.ts (60%) rename {client/MapScene/Interface/Components => app/src/editor/interface/components}/UISidebar.ts (75%) rename {client/MapScene/Interface/Components => app/src/editor/interface/components}/UISidebarToggle.ts (70%) rename {client/MapScene/Interface/Components => app/src/editor/interface/components}/UITileSidebar.ts (68%) create mode 100755 app/src/editor/interface/components/UITokenProps.ts rename {client/MapScene/Interface/Components => app/src/editor/interface/components}/UITokenSidebar.ts (74%) rename {client/MapScene/Lighting => app/src/editor/lighting}/LightChunk.ts (84%) rename {client/MapScene/Lighting => app/src/editor/lighting}/LightSource.ts (88%) rename {client/MapScene/Lighting => app/src/editor/lighting}/Lighting.ts (81%) create mode 100755 app/src/editor/scene/InitScene.ts create mode 100755 app/src/editor/scene/LoadScene.ts create mode 100755 app/src/editor/scene/MapScene.ts create mode 100644 app/src/editor/scene/Scenes.ts rename {client/Shaders => app/src/editor/shader}/BrightenPipeline.ts (62%) rename {client/Shaders => app/src/editor/shader}/OutlinePipeline.ts (81%) rename client/Data/LoadedAssets.ts => app/src/editor/util/Asset.ts (62%) create mode 100755 app/src/editor/util/Helpers.ts create mode 100644 app/src/editor/util/Layer.ts create mode 100755 app/src/editor/util/Vec.ts create mode 100644 app/src/style/_def.sass create mode 100644 app/src/style/_grid.sass create mode 100644 app/src/style/_reset.sass create mode 100644 app/src/style/_slice.sass create mode 100644 app/src/style/_text.sass rename {public => app/style}/style/editor.scss (100%) rename {public => app/style}/style/overview.scss (100%) rename {public => app/style}/style/reset.scss (100%) create mode 100755 app/tsconfig.json create mode 100644 app/webpack.ts create mode 100644 assets/16x_fantasy_cadin_1.png create mode 100644 assets/16x_fantasy_floor_rock.png create mode 100644 assets/16x_fantasy_wall_dungeon.png delete mode 100755 client/@types/jquery.d.ts delete mode 100755 client/@types/jscookie.d.ts delete mode 100755 client/@types/libs.d.ts delete mode 100755 client/@types/p2.d.ts delete mode 100755 client/@types/phaser.comments.d.ts delete mode 100755 client/@types/phaser.d.ts delete mode 100755 client/@types/pixi.comments.d.ts delete mode 100755 client/@types/pixi.d.ts delete mode 100755 client/@types/socket.io.d.ts delete mode 100755 client/InitScene.ts delete mode 100755 client/LoadScene.ts delete mode 100755 client/MapScene/FogOfWar.ts delete mode 100755 client/MapScene/Interface/AssetUploader.ts delete mode 100755 client/MapScene/Interface/Components/UITileSelector.ts delete mode 100755 client/MapScene/Interface/Components/UITokenProps.ts delete mode 100755 client/MapScene/Interface/Components/UITokenSelector.ts delete mode 100755 client/MapScene/Map/SmartTiler.ts delete mode 100755 client/MapScene/Map/TilesetManager.ts delete mode 100755 client/MapScene/MapScene.ts delete mode 100755 client/Util/Util.ts delete mode 100755 client/Util/Vector.ts delete mode 100755 client/index.ts delete mode 100755 client/tsconfig.json create mode 100644 common/AppData.ts rename {server => common}/DBStructs.ts (94%) create mode 100644 common/Format.ts create mode 100644 conf.json delete mode 100755 public/editor/core.js delete mode 100755 public/editor/socket.js delete mode 100755 public/lib/js.cookie.js delete mode 100755 public/lib/phaser.min.js delete mode 100755 public/res/ui/slice/background.png delete mode 100755 public/res/ui/slice/button.png delete mode 100755 public/res/ui/slice/button_active.png delete mode 100755 public/res/ui/slice/button_disabled.png delete mode 100755 public/res/ui/slice/highlight.png delete mode 100755 public/res/ui/slice/outline.png delete mode 100755 server/App.ts delete mode 100755 server/index.ts delete mode 100755 server/routers/AssetRouter.ts delete mode 100755 server/routers/DataRouter.ts delete mode 100755 server/routers/Router.ts delete mode 100755 server/routers/Routers.ts create mode 100644 server/src/Config.ts rename server/{ => src}/Database.ts (57%) create mode 100755 server/src/Main.ts create mode 100644 server/src/ResolvePath.ts create mode 100755 server/src/Server.ts create mode 100755 server/src/routers/AppRouter.ts rename server/{ => src}/routers/AuthRouter.ts (100%) rename server/{ => src}/routers/CampaignRouter.ts (100%) create mode 100755 server/src/routers/DataRouter.ts create mode 100755 server/src/routers/Router.ts create mode 100755 server/views/app.pug rename {views => server/views}/asset.pug (100%) rename {views => server/views}/auth/login.pug (100%) rename {views => server/views}/auth/register.pug (100%) rename {views => server/views}/campaign.pug (100%) rename {views => server/views}/campaigns.pug (100%) rename {views => server/views}/editor.pug (100%) rename {views => server/views}/includes/head.pug (100%) delete mode 100755 views/map.pug diff --git a/app/.eslintrc.js b/app/.eslintrc.js new file mode 100755 index 0000000..d5efc2f --- /dev/null +++ b/app/.eslintrc.js @@ -0,0 +1,167 @@ +/* +👋 Hi! This file was autogenerated by tslint-to-eslint-config. +https://github.com/typescript-eslint/tslint-to-eslint-config + +It represents the closest reasonable ESLint configuration to this +project's original TSLint configuration. + +We recommend eventually switching this configuration to extend from +the recommended rulesets in typescript-eslint. +https://github.com/typescript-eslint/tslint-to-eslint-config/blob/master/docs/FAQs.md + +Happy linting! 💖 +*/ +module.exports = { + "env": { + "browser": true + }, + "extends": [ + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": "tsconfig.json", + "sourceType": "module" + }, + "plugins": [ + "@typescript-eslint", + "eslint-plugin-jsdoc" + ], + "rules": { + "@typescript-eslint/dot-notation": "error", + "@typescript-eslint/indent": [ + "error", + "tab", + { + "CallExpression": { + "arguments": 1 + }, + "FunctionDeclaration": { + "parameters": 1 + }, + "FunctionExpression": { + "parameters": 1 + } + } + ], + "@typescript-eslint/member-delimiter-style": [ + "error", + { + "multiline": { + "delimiter": "semi", + "requireLast": true + }, + "singleline": { + "delimiter": "semi", + "requireLast": false + } + } + ], + "@typescript-eslint/member-ordering": "error", + "@typescript-eslint/no-empty-function": "error", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-parameter-properties": "off", + "@typescript-eslint/no-require-imports": "off", + "@typescript-eslint/no-unused-expressions": "error", + "@typescript-eslint/no-use-before-define": "error", + "@typescript-eslint/no-var-requires": "off", + "@typescript-eslint/prefer-namespace-keyword": "error", + "@typescript-eslint/quotes": [ + "error", + "single" + ], + "@typescript-eslint/semi": [ + "error", + "always" + ], + "@typescript-eslint/type-annotation-spacing": "error", + "brace-style": [ + "error", + "stroustrup", + { "allowSingleLine": true } + ], + "comma-dangle": "error", + "curly": "off", + "default-case": "error", + "eol-last": "error", + "eqeqeq": [ + "error", + "smart" + ], + "guard-for-in": "error", + "id-blacklist": [ + "error", + "any", + "Number", + "number", + "String", + "string", + "Boolean", + "boolean", + "Undefined", + "undefined" + ], + "id-match": "error", + "jsdoc/check-alignment": "error", + "jsdoc/check-indentation": "error", + "jsdoc/newline-after-description": "error", + "max-len": [ + "error", { + "code": 150 + } + ], + "no-bitwise": "error", + "no-caller": "error", + "no-console": [ + "error", + { + "allow": [ + "log", + "dirxml", + "warn", + "error", + "dir", + "timeLog", + "assert", + "clear", + "count", + "countReset", + "group", + "groupCollapsed", + "groupEnd", + "table", + "Console", + "markTimeline", + "profile", + "profileEnd", + "timeline", + "timelineEnd", + "timeStamp", + "context" + ] + } + ], + "no-debugger": "error", + "no-empty": "error", + "no-eval": "error", + "no-fallthrough": "error", + "no-new-wrappers": "error", + "no-redeclare": "error", + "no-trailing-spaces": [ + "error", { + "skipBlankLines": true + } + ], + "no-unused-labels": "error", + "no-var": "error", + "radix": "error", + "spaced-comment": [ + "error", + "always", + { + "markers": [ + "/" + ] + } + ] + } +}; diff --git a/client/nodemon.json b/app/nodemon.json similarity index 100% rename from client/nodemon.json rename to app/nodemon.json diff --git a/app/package-lock.json b/app/package-lock.json new file mode 100644 index 0000000..937eeaf --- /dev/null +++ b/app/package-lock.json @@ -0,0 +1,7109 @@ +{ + "name": "virtual-dungeon-client", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", + "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==", + "dev": true + }, + "@babel/core": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", + "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "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 + } + } + }, + "@babel/generator": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.11", + "jsesc": "^2.5.1", + "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=", + "dev": true + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", + "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.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/helper-create-class-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", + "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-function-name": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-replace-supers": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", + "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.7", + "@babel/helper-optimise-call-expression": "^7.12.10", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "dev": true, + "requires": { + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz", + "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "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==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "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/parser": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz", + "integrity": "sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz", + "integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", + "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz", + "integrity": "sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz", + "integrity": "sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.12.tgz", + "integrity": "sha512-JDWGuzGNWscYcq8oJVCtSE61a5+XAOos+V0HrxnDieUus4UMnBEosDnY1VJqU5iZ4pA04QY7l0+JvHL1hZEfsw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.10", + "@babel/helper-module-imports": "^7.12.5", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.12.1", + "@babel/types": "^7.12.12" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", + "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", + "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz", + "integrity": "sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-typescript": "^7.12.1" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.11.tgz", + "integrity": "sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.7", + "@babel/helper-compilation-targets": "^7.12.5", + "@babel/helper-module-imports": "^7.12.5", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.11", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.7", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.7", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@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.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.11", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.7", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.10", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.12.11", + "core-js-compat": "^3.8.0", + "semver": "^5.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/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-typescript": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.7.tgz", + "integrity": "sha512-nOoIqIqBmHBSEgBXWR4Dv/XBehtIFcw9PqZw6rFYuKrzsZmOQm3PR5siLBnKZFEsDb03IegG8nSjU/iXXXYRmw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.1", + "@babel/plugin-transform-typescript": "^7.12.1" + } + }, + "@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "@babel/traverse": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", + "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.11", + "@babel/generator": "^7.12.11", + "@babel/helper-function-name": "^7.12.11", + "@babel/helper-split-export-declaration": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/types": "^7.12.12", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@discoveryjs/json-ext": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", + "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", + "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, + "@types/anymatch": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", + "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==", + "dev": true + }, + "@types/history": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.8.tgz", + "integrity": "sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA==", + "dev": true + }, + "@types/js-cookie": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.6.tgz", + "integrity": "sha512-+oY0FDTO2GYKEV0YPvSshGq9t7YozVkgvXLty7zogQNuCxBhT9/3INX9Q7H1aRZ4SUDRXAKlJuA4EA5nTt7SNw==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==" + }, + "@types/node": { + "version": "14.14.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.16.tgz", + "integrity": "sha512-naXYePhweTi+BMv11TgioE2/FXU4fSl29HAH1ffxVciNsH3rYXjNP2yM8wqmSm7jS20gM8TIklKiTen+1iVncw==", + "dev": true + }, + "@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==", + "dev": true + }, + "@types/react": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.0.tgz", + "integrity": "sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-router": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.9.tgz", + "integrity": "sha512-US6C0rq2Wt/7uje1roqO0R++Sr0jqplKaBChDY5sNg5k7GC/79YFK0ZsLEdemqUjW05wq1Y/9YYEUgfNZ8TlvA==", + "dev": true, + "requires": { + "@types/history": "*", + "@types/react": "*" + } + }, + "@types/react-router-dom": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.1.6.tgz", + "integrity": "sha512-gjrxYqxz37zWEdMVvQtWPFMFj1dRDb4TGOcgyOfSXTrEXdF92L00WE3C471O3TV/RF1oskcStkXsOU0Ete4s/g==", + "dev": true, + "requires": { + "@types/history": "*", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/tapable": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", + "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==", + "dev": true + }, + "@types/uglify-js": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.11.1.tgz", + "integrity": "sha512-7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "@types/webpack": { + "version": "4.41.25", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.25.tgz", + "integrity": "sha512-cr6kZ+4m9lp86ytQc1jPOJXgINQyz3kLLunZ57jznW+WIAL0JqZbGubQk4GlD42MuQL5JGOABrxdpqqWeovlVQ==", + "dev": true, + "requires": { + "@types/anymatch": "*", + "@types/node": "*", + "@types/tapable": "*", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "source-map": "^0.6.0" + } + }, + "@types/webpack-sources": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz", + "integrity": "sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "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==", + "dev": true + } + } + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.11.1.tgz", + "integrity": "sha512-fABclAX2QIEDmTMk6Yd7Muv1CzFLwWM4505nETzRHpP3br6jfahD9UUJkhnJ/g2m7lwfz8IlswcwGGPGiq9exw==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.11.1", + "@typescript-eslint/scope-manager": "4.11.1", + "debug": "^4.1.1", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.0.0", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.11.1.tgz", + "integrity": "sha512-mAlWowT4A6h0TC9F+J5pdbEhjNiEMO+kqPKQ4sc3fVieKL71dEqfkKgtcFVSX3cjSBwYwhImaQ/mXQF0oaI38g==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/scope-manager": "4.11.1", + "@typescript-eslint/types": "4.11.1", + "@typescript-eslint/typescript-estree": "4.11.1", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.11.1.tgz", + "integrity": "sha512-BJ3jwPQu1jeynJ5BrjLuGfK/UJu6uwHxJ/di7sanqmUmxzmyIcd3vz58PMR7wpi8k3iWq2Q11KMYgZbUpRoIPw==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.11.1", + "@typescript-eslint/types": "4.11.1", + "@typescript-eslint/typescript-estree": "4.11.1", + "debug": "^4.1.1" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.11.1.tgz", + "integrity": "sha512-Al2P394dx+kXCl61fhrrZ1FTI7qsRDIUiVSuN6rTwss6lUn8uVO2+nnF4AvO0ug8vMsy3ShkbxLu/uWZdTtJMQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.11.1", + "@typescript-eslint/visitor-keys": "4.11.1" + } + }, + "@typescript-eslint/types": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.11.1.tgz", + "integrity": "sha512-5kvd38wZpqGY4yP/6W3qhYX6Hz0NwUbijVsX2rxczpY6OXaMxh0+5E5uLJKVFwaBM7PJe1wnMym85NfKYIh6CA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.11.1.tgz", + "integrity": "sha512-tC7MKZIMRTYxQhrVAFoJq/DlRwv1bnqA4/S2r3+HuHibqvbrPcyf858lNzU7bFmy4mLeIHFYr34ar/1KumwyRw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.11.1", + "@typescript-eslint/visitor-keys": "4.11.1", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.11.1.tgz", + "integrity": "sha512-IrlBhD9bm4bdYcS8xpWarazkKXlE7iYb1HzRuyBP114mIaj5DJPo11Us1HgH60dTt41TCZXMaTCAW+OILIYPOg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.11.1", + "eslint-visitor-keys": "^2.0.0" + } + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/info": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.0.tgz", + "integrity": "sha512-+wA8lBKopgKmN76BSGJVJby5ZXDlsrO6p/nm7fUBsHznRNWB/ozotJP7Yfcz8JPfqeG2LxwYlTH2u6D9a/0XAw==", + "dev": true, + "requires": { + "envinfo": "^7.7.3" + } + }, + "@webpack-cli/serve": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.2.0.tgz", + "integrity": "sha512-jI3P7jMp/AXDSPkM+ClwRcJZbxnlvNC8bVZBmyRr4scMMZ4p5WQcXkw3Q+Hc7RQekomJlBMN+UQGliT4hhG8Vw==", + "dev": true + }, + "@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 + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.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.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "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" + } + }, + "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" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "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==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "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" + } + } + } + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "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-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, + "optional": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "babel-loader": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", + "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.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" + } + }, + "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" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "dev": true + }, + "body": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", + "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", + "dev": true, + "requires": { + "continuable-cache": "^0.3.1", + "error": "^7.0.0", + "raw-body": "~1.1.0", + "safe-json-parse": "~1.0.1" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "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.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "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" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.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.16.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.0.tgz", + "integrity": "sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001165", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.621", + "escalade": "^3.1.1", + "node-releases": "^1.1.67" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "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-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": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", + "dev": true + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "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" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "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-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001170", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001170.tgz", + "integrity": "sha512-Dd4d/+0tsK0UNLrZs3CvNukqalnVTRrxb5mcQm8rHL49t7V5ZaTygwXkrq+FB+dVDf++4ri8eJnFEJAB8332PA==", + "dev": true + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "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.5.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "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" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "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==", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "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" + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.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==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "comment-parser": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.6.tgz", + "integrity": "sha512-GKNxVA7/iuTnAqGADlTWX4tkhzxZKXp5fLJqKTlQLHkE65XDUKutZ3BHaJC5IGcper2tT3QRD1xr4o3jNpgXXg==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "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==", + "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=", + "dev": true + }, + "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" + } + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "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 + }, + "continuable-cache": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", + "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=", + "dev": true + }, + "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" + }, + "dependencies": { + "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==", + "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=", + "dev": true + }, + "core-js-compat": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.1.tgz", + "integrity": "sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ==", + "dev": true, + "requires": { + "browserslist": "^4.15.0", + "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=", + "dev": true + }, + "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" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "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" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "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-loader": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.0.1.tgz", + "integrity": "sha512-cXc2ti9V234cq7rJzFKhirb2L2iPy8ZjALeVJAozXYz9te3r4eqLSixNAbMDJSgJEQywqXzs8gonxaboeKqwiw==", + "dev": true, + "requires": { + "camelcase": "^6.2.0", + "cssesc": "^3.0.0", + "icss-utils": "^5.0.0", + "loader-utils": "^2.0.0", + "postcss": "^8.1.4", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.2" + } + }, + "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 + }, + "csstype": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.5.tgz", + "integrity": "sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ==", + "dev": true + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "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=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "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 + }, + "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" + } + }, + "electron-to-chromium": { + "version": "1.3.633", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.633.tgz", + "integrity": "sha512-bsVCsONiVX1abkWdH7KtpuDAhsQ3N3bjPYhROSAXE78roJKet0Y5wznA14JE9pzbwSZmSMAW6KiKYf1RvbTJkA==", + "dev": true + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "envinfo": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.3.tgz", + "integrity": "sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", + "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", + "dev": true, + "requires": { + "string-template": "~0.2.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==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.16.0.tgz", + "integrity": "sha512-iVWPS785RuDA4dWuhhgXTNrGxHHK3a8HLSMBgbbU59ruJDubUraXN8N5rn7kb8tG6sjg74eE0RA3YWT51eusEw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^0.2.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^6.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.4", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "eslint-plugin-jsdoc": { + "version": "30.7.9", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-30.7.9.tgz", + "integrity": "sha512-qMM0fNx7/6OCnIh3jRpIrEBAhTG1THNXXbr3yfJ8yqLrDbzJR98xsstX25xt9GCPlrjNc/bBpTHfJQOvn7nVMA==", + "dev": true, + "requires": { + "comment-parser": "^0.7.6", + "debug": "^4.3.1", + "jsdoctypeparser": "^9.0.0", + "lodash": "^4.17.20", + "regextras": "^0.7.1", + "semver": "^7.3.4", + "spdx-expression-parse": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true + }, + "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" + } + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "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", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true + } + } + }, + "exports-loader": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-1.1.1.tgz", + "integrity": "sha512-CmyhIR2sJ3KOfVsHjsR0Yvo+0lhRhRMAevCbB8dhTVLHsZPs0lCQTvRmR9YNvBXDBxUuhmCE2f54KqEjZUaFrg==", + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "dependencies": { + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "fastq": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", + "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "file-entry-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz", + "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-cache-dir": { + "version": "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" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", + "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "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" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fork-ts-checker-webpack-plugin": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.0.8.tgz", + "integrity": "sha512-2K6Ozamm6TSL5heFIwPhX5+VsOBiiKf9PzaPFS7kwzrILKX+jlN3DBQc5v/6YYZ2oKJyImg3bY0/uZc7cDbDYQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "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=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "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-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "fs-monkey": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.1.tgz", + "integrity": "sha512-fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA==", + "dev": true + }, + "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=", + "dev": true + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "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==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", + "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "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=", + "dev": true + }, + "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" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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 + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "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" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "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" + } + }, + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "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.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "http-parser-js": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz", + "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==", + "dev": true + }, + "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 + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "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 + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "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 + } + } + }, + "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==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "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" + } + } + } + }, + "imports-loader": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-1.2.0.tgz", + "integrity": "sha512-zPvangKEgrrPeqeUqH0Uhc59YqK07JqZBi9a9cQ3v/EKUIqrbJHY4CvUrDus2lgQa5AmPyXuGrWP8JJTqzE5RQ==", + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "source-map": "^0.6.1", + "strip-comments": "^2.0.1" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "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=", + "dev": true, + "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=" + }, + "interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "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=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "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-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 + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "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==", + "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=", + "dev": true + }, + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-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-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-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==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "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==", + "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==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsdoctypeparser": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz", + "integrity": "sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "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==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "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 + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "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 + }, + "klona": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", + "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "livereload-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", + "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==", + "dev": true + }, + "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": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "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" + }, + "dependencies": { + "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 + } + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "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": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "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=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "memfs": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.0.tgz", + "integrity": "sha512-f/xxz2TpdKv6uDn6GtHee8ivFyxwxmPuXatBb1FBwxYNuVpbM3k/Y1Z+vC0mH/dIXXrukYfe3qe5J32Dfjg93A==", + "dev": true, + "requires": { + "fs-monkey": "1.0.1" + } + }, + "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" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "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": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.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=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "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=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "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 + }, + "mini-create-react-context": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", + "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", + "requires": { + "@babel/runtime": "^7.12.1", + "tiny-warning": "^1.0.3" + } + }, + "mini-css-extract-plugin": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.3.tgz", + "integrity": "sha512-7lvliDSMiuZc81kI+5/qxvn47SCM7BehXex3f2c6l/pR3Goj58IQxZh9nuPQ3AkGQgoETyXuIqLDaO5Oa0TyBw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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==", + "dev": true, + "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==" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "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.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "nanoid": { + "version": "3.1.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", + "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "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" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "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" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "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-releases": { + "version": "1.1.67", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", + "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "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=", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "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 + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "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-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", + "requires": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, + "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-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true, + "optional": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + } + } + }, + "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 + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "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" + } + }, + "phaser": { + "version": "3.50.1", + "resolved": "https://registry.npmjs.org/phaser/-/phaser-3.50.1.tgz", + "integrity": "sha512-64kAwrpuKR7CGi2koqzDG+PYNQG9BO6Wp6fUCJLgDFpfFOfEw4Q3m32ihT190gycq3L/X/6v5YboHk/XBD+rPg==", + "requires": { + "eventemitter3": "^4.0.7", + "exports-loader": "^1.1.1", + "imports-loader": "^1.2.0", + "path": "^0.12.7" + } + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "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 + }, + "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" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + } + }, + "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=", + "dev": true + }, + "postcss": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.1.tgz", + "integrity": "sha512-RhsqOOAQzTgh1UB/IZdca7F9WDb7SUCR2Vnv1x7DbvuuggQIpoDwjK+q0rzoPffhYvWNKX5JSwS4so4K3UC6vA==", + "dev": true, + "requires": { + "colorette": "^1.2.1", + "nanoid": "^3.1.20", + "source-map": "^0.6.1" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "preact": { + "version": "10.5.7", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.5.7.tgz", + "integrity": "sha512-4oEpz75t/0UNcwmcsjk+BIcDdk68oao+7kxcpc1hQPNs2Oo3ZL9xFz8UBf350mxk/VEdD41L5b4l2dE3Ug3RYg==" + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "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" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "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==" + }, + "qs": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", + "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", + "dev": true + }, + "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 + }, + "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" + } + }, + "raw-body": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", + "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", + "dev": true, + "requires": { + "bytes": "1", + "string_decoder": "0.10" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-router": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", + "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.4.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, + "react-router-dom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz", + "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.2.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": 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" + }, + "dependencies": { + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", + "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", + "dev": true, + "requires": { + "resolve": "^1.9.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regextras": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.7.1.tgz", + "integrity": "sha512-9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==", + "dev": true + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "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=", + "dev": true, + "optional": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "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" + } + }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, + "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" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-json-parse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", + "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "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==", + "dev": true + }, + "sass": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.30.0.tgz", + "integrity": "sha512-26EUhOXRLaUY7+mWuRFqGeGGNmhB1vblpTENO1Z7mAzzIZeVxZr9EZoaY1kyGLFWdSOZxRMAufiN2mkbO6dAlw==", + "dev": true, + "requires": { + "chokidar": ">=2.0.0 <4.0.0" + } + }, + "sass-loader": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.1.0.tgz", + "integrity": "sha512-ZCKAlczLBbFd3aGAhowpYEy69Te3Z68cg8bnHHl6WnSCvnKpbM6pQrz957HWMa8LKVuhnD9uMplmMAHwGQtHeg==", + "dev": true, + "requires": { + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0", + "semver": "^7.3.2" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "set-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==", + "dev": true, + "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=", + "dev": true, + "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 + }, + "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": "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" + } + }, + "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 + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "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 + } + } + }, + "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==", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "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.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "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=", + "dev": true + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "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==", + "dev": true, + "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=", + "dev": true + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", + "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" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "table": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.4.tgz", + "integrity": "sha512-sBT4xRLdALd+NFBvwOz8bw4b15htyythha+q+DVZqy2RS08PPC8O2sZFgJYEY7bJvbCFKccs+WIZ/cd+xxTWCw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "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": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.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" + } + } + } + }, + "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 + }, + "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" + } + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tiny-invariant": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", + "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" + }, + "tiny-lr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", + "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", + "dev": true, + "requires": { + "body": "^5.1.0", + "debug": "^3.1.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.3.0", + "object-assign": "^4.1.0", + "qs": "^6.4.0" + } + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "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=", + "dev": true + }, + "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=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "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": "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" + } + }, + "ts-node": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "dev": true, + "requires": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + }, + "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" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "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 + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typescript": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", + "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.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "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==", + "dev": true, + "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 + }, + "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.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true + }, + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "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 + } + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "requires": { + "inherits": "2.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "dev": true + }, + "value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, + "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 + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": 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" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": 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, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "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, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "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, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "webpack": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", + "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "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.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "webpack-cli": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.3.0.tgz", + "integrity": "sha512-gve+BBKrzMPTOYDjupzV8JchUznhVWMKtWM1hFIQWi6XoeLvGNoQwkrtMWVb+aJ437GgCKdta7sIn10v621pKA==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/info": "^1.2.0", + "@webpack-cli/serve": "^1.2.0", + "colorette": "^1.2.1", + "commander": "^6.2.0", + "enquirer": "^2.3.6", + "execa": "^4.1.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "v8-compile-cache": "^2.2.0", + "webpack-merge": "^4.2.2" + }, + "dependencies": { + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + } + } + }, + "webpack-livereload-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/webpack-livereload-plugin/-/webpack-livereload-plugin-2.3.0.tgz", + "integrity": "sha512-vVBLQLlNpElt2sfsBG+XLDeVbQFS4RrniVU8Hi1/hX5ycSfx6mtW8MEEITr2g0Cvo36kuPWShFFDuy+DS7KFMA==", + "dev": true, + "requires": { + "anymatch": "^3.1.1", + "portfinder": "^1.0.17", + "tiny-lr": "^1.1.1" + } + }, + "webpack-merge": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", + "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.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" + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "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 + }, + "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" + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + } + } +} diff --git a/app/package.json b/app/package.json new file mode 100644 index 0000000..1699b4a --- /dev/null +++ b/app/package.json @@ -0,0 +1,53 @@ +{ + "name": "virtual-dungeon-client", + "version": "0.0.1", + "description": "Client-side-application for Virtual Dungeon.", + "scripts": { + "dev": "webpack --watch --progress --config webpack.ts", + "build": "webpack --mode=production --progress --config webpack.ts" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Aurailus/VirtualDungeonClient.git" + }, + "author": "Auri Collings", + "license": "UNLICENSED", + "bugs": { + "url": "https://github.com/Aurailus/VirtualDungeonClient/issues" + }, + "homepage": "https://github.com/Aurailus/VirtualDungeonClient#readme", + "dependencies": { + "js-cookie": "^2.2.1", + "phaser": "^3.50.1", + "preact": "^10.5.7", + "react-router-dom": "^5.2.0", + "tslib": "^2.0.3" + }, + "devDependencies": { + "@babel/core": "^7.12.10", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-transform-react-jsx": "^7.12.12", + "@babel/preset-env": "^7.12.11", + "@babel/preset-typescript": "^7.12.7", + "@types/js-cookie": "^2.2.6", + "@types/node": "^14.14.16", + "@types/react-router-dom": "^5.1.6", + "@types/webpack": "^4.41.25", + "@typescript-eslint/eslint-plugin": "^4.11.1", + "@typescript-eslint/parser": "^4.11.1", + "babel-loader": "^8.2.2", + "css-loader": "^5.0.1", + "eslint": "^7.16.0", + "eslint-plugin-jsdoc": "^30.7.9", + "fork-ts-checker-webpack-plugin": "^6.0.8", + "mini-css-extract-plugin": "^1.3.3", + "sass": "^1.30.0", + "sass-loader": "^10.1.0", + "ts-node": "^9.1.1", + "typescript": "^4.1.3", + "webpack": "^4.44.2", + "webpack-cli": "^4.3.0", + "webpack-livereload-plugin": "^2.3.0", + "webpack-merge": "^5.7.3" + } +} diff --git a/public/res/aesymatt.ttf b/app/res/aesymatt.ttf similarity index 100% rename from public/res/aesymatt.ttf rename to app/res/aesymatt.ttf diff --git a/public/res/cursor.png b/app/res/cursor.png similarity index 100% rename from public/res/cursor.png rename to app/res/cursor.png diff --git a/public/res/dice.png b/app/res/dice.png similarity index 100% rename from public/res/dice.png rename to app/res/dice.png diff --git a/public/res/favicon.png b/app/res/favicon.png similarity index 100% rename from public/res/favicon.png rename to app/res/favicon.png diff --git a/public/res/grid_tile.png b/app/res/grid_tile.png similarity index 100% rename from public/res/grid_tile.png rename to app/res/grid_tile.png diff --git a/public/res/loader/kobold_loader_unfilled.png b/app/res/loader/kobold_loader_unfilled.png similarity index 100% rename from public/res/loader/kobold_loader_unfilled.png rename to app/res/loader/kobold_loader_unfilled.png diff --git a/public/res/loader/loader_filled.png b/app/res/loader/loader_filled.png similarity index 100% rename from public/res/loader/loader_filled.png rename to app/res/loader/loader_filled.png diff --git a/public/res/loader/loader_patching.png b/app/res/loader/loader_patching.png similarity index 100% rename from public/res/loader/loader_patching.png rename to app/res/loader/loader_patching.png diff --git a/public/res/loader/loader_unfilled.png b/app/res/loader/loader_unfilled.png similarity index 100% rename from public/res/loader/loader_unfilled.png rename to app/res/loader/loader_unfilled.png diff --git a/public/res/loader/logo.png b/app/res/loader/logo.png similarity index 100% rename from public/res/loader/logo.png rename to app/res/loader/logo.png diff --git a/public/res/logo.png b/app/res/logo.png similarity index 100% rename from public/res/logo.png rename to app/res/logo.png diff --git a/public/res/shader/light_mask.png b/app/res/shader/light_mask.png similarity index 100% rename from public/res/shader/light_mask.png rename to app/res/shader/light_mask.png diff --git a/public/res/shader/outline.glsl b/app/res/shader/outline.glsl similarity index 100% rename from public/res/shader/outline.glsl rename to app/res/shader/outline.glsl diff --git a/public/res/tileset/0.png b/app/res/tileset/0.png similarity index 100% rename from public/res/tileset/0.png rename to app/res/tileset/0.png diff --git a/public/res/tileset/0.xcf b/app/res/tileset/0.xcf similarity index 100% rename from public/res/tileset/0.xcf rename to app/res/tileset/0.xcf diff --git a/public/res/tileset/floor_grass.attrib b/app/res/tileset/floor_grass.attrib similarity index 100% rename from public/res/tileset/floor_grass.attrib rename to app/res/tileset/floor_grass.attrib diff --git a/public/res/tileset/ground_cave.png b/app/res/tileset/ground_cave.png similarity index 100% rename from public/res/tileset/ground_cave.png rename to app/res/tileset/ground_cave.png diff --git a/public/res/tileset/ground_cave.xcf b/app/res/tileset/ground_cave.xcf similarity index 100% rename from public/res/tileset/ground_cave.xcf rename to app/res/tileset/ground_cave.xcf diff --git a/public/res/tileset/ground_grass.png b/app/res/tileset/ground_grass.png similarity index 100% rename from public/res/tileset/ground_grass.png rename to app/res/tileset/ground_grass.png diff --git a/public/res/tileset/ground_grass.xcf b/app/res/tileset/ground_grass.xcf similarity index 100% rename from public/res/tileset/ground_grass.xcf rename to app/res/tileset/ground_grass.xcf diff --git a/public/res/tileset/ground_wood.png b/app/res/tileset/ground_wood.png similarity index 100% rename from public/res/tileset/ground_wood.png rename to app/res/tileset/ground_wood.png diff --git a/public/res/tileset/ground_wood.xcf b/app/res/tileset/ground_wood.xcf similarity index 100% rename from public/res/tileset/ground_wood.xcf rename to app/res/tileset/ground_wood.xcf diff --git a/public/res/tileset/overlay_hole.png b/app/res/tileset/overlay_hole.png similarity index 100% rename from public/res/tileset/overlay_hole.png rename to app/res/tileset/overlay_hole.png diff --git a/public/res/tileset/overlay_hole.xcf b/app/res/tileset/overlay_hole.xcf similarity index 100% rename from public/res/tileset/overlay_hole.xcf rename to app/res/tileset/overlay_hole.xcf diff --git a/public/res/tileset/overlay_water.png b/app/res/tileset/overlay_water.png similarity index 100% rename from public/res/tileset/overlay_water.png rename to app/res/tileset/overlay_water.png diff --git a/public/res/tileset/overlay_water.xcf b/app/res/tileset/overlay_water.xcf similarity index 100% rename from public/res/tileset/overlay_water.xcf rename to app/res/tileset/overlay_water.xcf diff --git a/public/res/tileset/wall_dungeon.png b/app/res/tileset/wall_dungeon.png similarity index 100% rename from public/res/tileset/wall_dungeon.png rename to app/res/tileset/wall_dungeon.png diff --git a/public/res/tileset/wall_dungeon.xcf b/app/res/tileset/wall_dungeon.xcf similarity index 100% rename from public/res/tileset/wall_dungeon.xcf rename to app/res/tileset/wall_dungeon.xcf diff --git a/public/res/tileset/wall_shadow.png b/app/res/tileset/wall_shadow.png similarity index 100% rename from public/res/tileset/wall_shadow.png rename to app/res/tileset/wall_shadow.png diff --git a/public/res/tileset/wall_shadow.xcf b/app/res/tileset/wall_shadow.xcf similarity index 100% rename from public/res/tileset/wall_shadow.xcf rename to app/res/tileset/wall_shadow.xcf diff --git a/public/res/tileset/wall_wood.png b/app/res/tileset/wall_wood.png similarity index 100% rename from public/res/tileset/wall_wood.png rename to app/res/tileset/wall_wood.png diff --git a/public/res/tileset/wall_wood.xcf b/app/res/tileset/wall_wood.xcf similarity index 100% rename from public/res/tileset/wall_wood.xcf rename to app/res/tileset/wall_wood.xcf diff --git a/public/res/token/armor_1.png b/app/res/token/armor_1.png similarity index 100% rename from public/res/token/armor_1.png rename to app/res/token/armor_1.png diff --git a/public/res/token/baby_amethyst_dragon.png b/app/res/token/baby_amethyst_dragon.png similarity index 100% rename from public/res/token/baby_amethyst_dragon.png rename to app/res/token/baby_amethyst_dragon.png diff --git a/public/res/token/baby_black_dragon.png b/app/res/token/baby_black_dragon.png similarity index 100% rename from public/res/token/baby_black_dragon.png rename to app/res/token/baby_black_dragon.png diff --git a/public/res/token/baby_blue_dragon.png b/app/res/token/baby_blue_dragon.png similarity index 100% rename from public/res/token/baby_blue_dragon.png rename to app/res/token/baby_blue_dragon.png diff --git a/public/res/token/baby_gold_dragon.png b/app/res/token/baby_gold_dragon.png similarity index 100% rename from public/res/token/baby_gold_dragon.png rename to app/res/token/baby_gold_dragon.png diff --git a/public/res/token/baby_green_dragon.png b/app/res/token/baby_green_dragon.png similarity index 100% rename from public/res/token/baby_green_dragon.png rename to app/res/token/baby_green_dragon.png diff --git a/public/res/token/baby_red_dragon.png b/app/res/token/baby_red_dragon.png similarity index 100% rename from public/res/token/baby_red_dragon.png rename to app/res/token/baby_red_dragon.png diff --git a/public/res/token/baby_tin_dragon.png b/app/res/token/baby_tin_dragon.png similarity index 100% rename from public/res/token/baby_tin_dragon.png rename to app/res/token/baby_tin_dragon.png diff --git a/public/res/token/blue_slime.png b/app/res/token/blue_slime.png similarity index 100% rename from public/res/token/blue_slime.png rename to app/res/token/blue_slime.png diff --git a/public/res/token/bones.png b/app/res/token/bones.png similarity index 100% rename from public/res/token/bones.png rename to app/res/token/bones.png diff --git a/public/res/token/cadin_1.png b/app/res/token/cadin_1.png similarity index 100% rename from public/res/token/cadin_1.png rename to app/res/token/cadin_1.png diff --git a/public/res/token/cadin_2.png b/app/res/token/cadin_2.png similarity index 100% rename from public/res/token/cadin_2.png rename to app/res/token/cadin_2.png diff --git a/public/res/token/cadin_3.png b/app/res/token/cadin_3.png similarity index 100% rename from public/res/token/cadin_3.png rename to app/res/token/cadin_3.png diff --git a/public/res/token/chest.png b/app/res/token/chest.png similarity index 100% rename from public/res/token/chest.png rename to app/res/token/chest.png diff --git a/public/res/token/cleric_female.png b/app/res/token/cleric_female.png similarity index 100% rename from public/res/token/cleric_female.png rename to app/res/token/cleric_female.png diff --git a/public/res/token/cleric_male.png b/app/res/token/cleric_male.png similarity index 100% rename from public/res/token/cleric_male.png rename to app/res/token/cleric_male.png diff --git a/public/res/token/cloaked_person.png b/app/res/token/cloaked_person.png similarity index 100% rename from public/res/token/cloaked_person.png rename to app/res/token/cloaked_person.png diff --git a/public/res/token/crab.png b/app/res/token/crab.png similarity index 100% rename from public/res/token/crab.png rename to app/res/token/crab.png diff --git a/public/res/token/dino.png b/app/res/token/dino.png similarity index 100% rename from public/res/token/dino.png rename to app/res/token/dino.png diff --git a/public/res/token/dragonfolk_1.png b/app/res/token/dragonfolk_1.png similarity index 100% rename from public/res/token/dragonfolk_1.png rename to app/res/token/dragonfolk_1.png diff --git a/public/res/token/dragonfolk_2.png b/app/res/token/dragonfolk_2.png similarity index 100% rename from public/res/token/dragonfolk_2.png rename to app/res/token/dragonfolk_2.png diff --git a/public/res/token/dragonfolk_3.png b/app/res/token/dragonfolk_3.png similarity index 100% rename from public/res/token/dragonfolk_3.png rename to app/res/token/dragonfolk_3.png diff --git a/public/res/token/dragonfolk_knight_1.png b/app/res/token/dragonfolk_knight_1.png similarity index 100% rename from public/res/token/dragonfolk_knight_1.png rename to app/res/token/dragonfolk_knight_1.png diff --git a/public/res/token/dragonfolk_knight_2.png b/app/res/token/dragonfolk_knight_2.png similarity index 100% rename from public/res/token/dragonfolk_knight_2.png rename to app/res/token/dragonfolk_knight_2.png diff --git a/public/res/token/dragonfolk_knight_3.png b/app/res/token/dragonfolk_knight_3.png similarity index 100% rename from public/res/token/dragonfolk_knight_3.png rename to app/res/token/dragonfolk_knight_3.png diff --git a/public/res/token/drawf_m_1.png b/app/res/token/drawf_m_1.png similarity index 100% rename from public/res/token/drawf_m_1.png rename to app/res/token/drawf_m_1.png diff --git a/public/res/token/druid_male.png b/app/res/token/druid_male.png similarity index 100% rename from public/res/token/druid_male.png rename to app/res/token/druid_male.png diff --git a/public/res/token/dwarf_m_1.png b/app/res/token/dwarf_m_1.png similarity index 100% rename from public/res/token/dwarf_m_1.png rename to app/res/token/dwarf_m_1.png diff --git a/public/res/token/dwarf_m_2.png b/app/res/token/dwarf_m_2.png similarity index 100% rename from public/res/token/dwarf_m_2.png rename to app/res/token/dwarf_m_2.png diff --git a/public/res/token/egg.png b/app/res/token/egg.png similarity index 100% rename from public/res/token/egg.png rename to app/res/token/egg.png diff --git a/public/res/token/feline_1.png b/app/res/token/feline_1.png similarity index 100% rename from public/res/token/feline_1.png rename to app/res/token/feline_1.png diff --git a/public/res/token/gnoll.png b/app/res/token/gnoll.png similarity index 100% rename from public/res/token/gnoll.png rename to app/res/token/gnoll.png diff --git a/public/res/token/gnoll_leader.png b/app/res/token/gnoll_leader.png similarity index 100% rename from public/res/token/gnoll_leader.png rename to app/res/token/gnoll_leader.png diff --git a/public/res/token/green_goo.png b/app/res/token/green_goo.png similarity index 100% rename from public/res/token/green_goo.png rename to app/res/token/green_goo.png diff --git a/public/res/token/knight_1.png b/app/res/token/knight_1.png similarity index 100% rename from public/res/token/knight_1.png rename to app/res/token/knight_1.png diff --git a/public/res/token/lich.png b/app/res/token/lich.png similarity index 100% rename from public/res/token/lich.png rename to app/res/token/lich.png diff --git a/public/res/token/mimic.png b/app/res/token/mimic.png similarity index 100% rename from public/res/token/mimic.png rename to app/res/token/mimic.png diff --git a/public/res/token/naexi_anthro.png b/app/res/token/naexi_anthro.png similarity index 100% rename from public/res/token/naexi_anthro.png rename to app/res/token/naexi_anthro.png diff --git a/public/res/token/naexi_human_noweapon.png b/app/res/token/naexi_human_noweapon.png similarity index 100% rename from public/res/token/naexi_human_noweapon.png rename to app/res/token/naexi_human_noweapon.png diff --git a/public/res/token/naexi_human_yklwa.png b/app/res/token/naexi_human_yklwa.png similarity index 100% rename from public/res/token/naexi_human_yklwa.png rename to app/res/token/naexi_human_yklwa.png diff --git a/public/res/token/orc.png b/app/res/token/orc.png similarity index 100% rename from public/res/token/orc.png rename to app/res/token/orc.png diff --git a/public/res/token/orc_lord.png b/app/res/token/orc_lord.png similarity index 100% rename from public/res/token/orc_lord.png rename to app/res/token/orc_lord.png diff --git a/public/res/token/robot_1.png b/app/res/token/robot_1.png similarity index 100% rename from public/res/token/robot_1.png rename to app/res/token/robot_1.png diff --git a/public/res/token/rockfriend_1.png b/app/res/token/rockfriend_1.png similarity index 100% rename from public/res/token/rockfriend_1.png rename to app/res/token/rockfriend_1.png diff --git a/public/res/token/rockfriend_2.png b/app/res/token/rockfriend_2.png similarity index 100% rename from public/res/token/rockfriend_2.png rename to app/res/token/rockfriend_2.png diff --git a/public/res/token/rockfriend_3.png b/app/res/token/rockfriend_3.png similarity index 100% rename from public/res/token/rockfriend_3.png rename to app/res/token/rockfriend_3.png diff --git a/public/res/token/rockfriend_4.png b/app/res/token/rockfriend_4.png similarity index 100% rename from public/res/token/rockfriend_4.png rename to app/res/token/rockfriend_4.png diff --git a/public/res/token/skeleton.png b/app/res/token/skeleton.png similarity index 100% rename from public/res/token/skeleton.png rename to app/res/token/skeleton.png diff --git a/public/res/token/squidman.png b/app/res/token/squidman.png similarity index 100% rename from public/res/token/squidman.png rename to app/res/token/squidman.png diff --git a/public/res/token/tan_dog.png b/app/res/token/tan_dog.png similarity index 100% rename from public/res/token/tan_dog.png rename to app/res/token/tan_dog.png diff --git a/public/res/token/tiefling_1.png b/app/res/token/tiefling_1.png similarity index 100% rename from public/res/token/tiefling_1.png rename to app/res/token/tiefling_1.png diff --git a/public/res/token/tori_1.png b/app/res/token/tori_1.png similarity index 100% rename from public/res/token/tori_1.png rename to app/res/token/tori_1.png diff --git a/public/res/token/tori_2.png b/app/res/token/tori_2.png similarity index 100% rename from public/res/token/tori_2.png rename to app/res/token/tori_2.png diff --git a/public/res/token/tori_3.png b/app/res/token/tori_3.png similarity index 100% rename from public/res/token/tori_3.png rename to app/res/token/tori_3.png diff --git a/public/res/token/tori_4.png b/app/res/token/tori_4.png similarity index 100% rename from public/res/token/tori_4.png rename to app/res/token/tori_4.png diff --git a/public/res/token/tori_5.png b/app/res/token/tori_5.png similarity index 100% rename from public/res/token/tori_5.png rename to app/res/token/tori_5.png diff --git a/public/res/token/treasure.png b/app/res/token/treasure.png similarity index 100% rename from public/res/token/treasure.png rename to app/res/token/treasure.png diff --git a/public/res/token/water_slime.png b/app/res/token/water_slime.png similarity index 100% rename from public/res/token/water_slime.png rename to app/res/token/water_slime.png diff --git a/public/res/token/white_ooze.png b/app/res/token/white_ooze.png similarity index 100% rename from public/res/token/white_ooze.png rename to app/res/token/white_ooze.png diff --git a/public/res/token/wizard_female.png b/app/res/token/wizard_female.png similarity index 100% rename from public/res/token/wizard_female.png rename to app/res/token/wizard_female.png diff --git a/public/res/token/wizard_male.png b/app/res/token/wizard_male.png similarity index 100% rename from public/res/token/wizard_male.png rename to app/res/token/wizard_male.png diff --git a/public/res/token/wolf_dark.png b/app/res/token/wolf_dark.png similarity index 100% rename from public/res/token/wolf_dark.png rename to app/res/token/wolf_dark.png diff --git a/public/res/token/wolf_light.png b/app/res/token/wolf_light.png similarity index 100% rename from public/res/token/wolf_light.png rename to app/res/token/wolf_light.png diff --git a/public/res/ui/button_generic.png b/app/res/ui/button_generic.png similarity index 100% rename from public/res/ui/button_generic.png rename to app/res/ui/button_generic.png diff --git a/public/res/ui/button_grid.png b/app/res/ui/button_grid.png similarity index 100% rename from public/res/ui/button_grid.png rename to app/res/ui/button_grid.png diff --git a/public/res/ui/button_save_preset.png b/app/res/ui/button_save_preset.png similarity index 100% rename from public/res/ui/button_save_preset.png rename to app/res/ui/button_save_preset.png diff --git a/public/res/ui/button_select_cursor.png b/app/res/ui/button_select_cursor.png similarity index 100% rename from public/res/ui/button_select_cursor.png rename to app/res/ui/button_select_cursor.png diff --git a/public/res/ui/button_side_menu.png b/app/res/ui/button_side_menu.png similarity index 100% rename from public/res/ui/button_side_menu.png rename to app/res/ui/button_side_menu.png diff --git a/public/res/ui/button_sidebar_toggle.png b/app/res/ui/button_sidebar_toggle.png similarity index 100% rename from public/res/ui/button_sidebar_toggle.png rename to app/res/ui/button_sidebar_toggle.png diff --git a/public/res/ui/button_token_type_toggle.png b/app/res/ui/button_token_type_toggle.png similarity index 100% rename from public/res/ui/button_token_type_toggle.png rename to app/res/ui/button_token_type_toggle.png diff --git a/public/res/ui/history_manipulation.png b/app/res/ui/history_manipulation.png similarity index 100% rename from public/res/ui/history_manipulation.png rename to app/res/ui/history_manipulation.png diff --git a/app/res/ui/icon/add.png b/app/res/ui/icon/add.png new file mode 100644 index 0000000000000000000000000000000000000000..bdd28f36c0677bb1cef0d492b56c57bd9a0c5ec5 GIT binary patch literal 1501 zcmV<31tR*1P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U=K7lH({0hTl2G9sx;!#Bs2Js=2`)e||7=C+V)9 zOp={_8B+!TkZs_NpmkZtR01Zgn^+I_;l^?w{RdE5j#lLgHs{hnI5P z1rkQjlCh5@V(ulN50Ykly#q410L^*Dw)r!fH?cXXe0{k`j7$xb_b4BS{TGVd%?W?+$dmjOMD zMx9l%R52vOj#Lpyxp%jGp=mcydpj8{SHe~%C>uHS%jO>0^j+(H)Dn?fHA4qr9%&CZ z2D#B=8;DR}L5(xOmv)X`F&mQ);r(Jj3^Ij@fsi@e&mGLWD+-36W_*c=NQq;HZ+P%!4Q|F$u-##t5 z*ZlYx-D`e)xZz&sb&T$LKW_2-cle(j-3$41b8Pn>f4aGM)Y*|o4|919|HE-|&)I+1 zXXJ};xK}?PZ~lzD75`sF|AV5AzdZ2osQU@hZO~Wu^IUWQ00D$)LqkwWLqi~Na&Km7 zY-Iodc$|HaJxIeq9K~N#MUjew1w|ABRwoOhB92;xB2);qLaPoYmwrK$h9t$sQE)9d z__0`ZaB$Iq$N-Gs9*oIZqrW7V|Bvv@k1}8u1iyMAdZ47t$W9oVPe@ zr3!1@lfN*O)mN6ePIC}(EMf@~L@21Bh!Si>Y1K)wkfi;XkAJ}ROXO0>RRkl)0?N=J zyMFLL_}#6Qo1E~HLNTEI#c@7HfR0_DUUi)BW5=nV0KsSAN^knhHDKnG^lDR!905Js zz{Pb_Q}%$%9iacokWJZ@f;5F(4tPJKZ^{6@w?NmL*IQ#Brw>4ix=P#t2Zz9Dp0d|{ z-rd>S+rMWT{rv!D-g2VZ^T#y+000JJOGiWi;s5{u|Atk-O#lD@32;bRa{vGf6951U z69E94oEQKA00(qQO+^Rf3>_B)E{9RI literal 0 HcmV?d00001 diff --git a/app/res/ui/icon/edit.png b/app/res/ui/icon/edit.png new file mode 100644 index 0000000000000000000000000000000000000000..8c9a5e470524de6ceda1a11a6297c2c7bd4f0852 GIT binary patch literal 1491 zcmV;^1uXiBP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U=HYlH4c^hW~SlJpz&diQ`~Cs`dtZ{Jdb=>F#t* zW-?Qi%2rGnu)vbgBe~o4|Nb5BA6)EXav`dvoRY^Ca>!gTF@IiV_2k3q_k+Jp9^~#? zV2A{xoR5~ayhF~|&s$!%o&tHiQZaq+$?TGLZ<=WwxY5X32)2cd_K12 zluhrC&~7KNEwS@Ob1AEn!F*o)>5w|uS6tn(hD*%QX ztk)8n;*OZ>Y8lN?E)}Soul_)*l!<|OP@qPIhNHeFl`4D;+*vU)SC%C+u*h7I0wiHJ z8my9~i6IFpQbi!;G2HfrmfgJURWev^gsn_aMk{lE(%gGCz17B;wM680&Cm&$SDw-g zqs$)LK!nB)YFq)nwa0|qUyh<4n6G1N2y4k8fvVmYPFhcY22itj$3NltmRfZb)-@c zJ-VK{cI&y9fm|Ch!iXac9X9eP7qw0GhxP$#w5jnTHTUU74N}!}bSqz=WHJLW4g}&l z2_T_)GV?|u@FX{x`OK(_$Z#@FHjR9t#KB4E#BtEY?mM{;adRoW$&KGj&P{ZmB)7P^ z9`Crlpw{Nkc3s5IDx5L(g6hM1x58HDuV`_%$!EvEivB-}#&Mq_Z;r#xsrwp#9u|2I*4GV6Yo()0K`sJ#uv{YpGu zjqY=Pye`@=tNy=={v<^M|2eYz1~cx>`@11exc~qGglR)VP)S2WAaHVTW@&6?004NL zeUUv#!$2IxUsFYqih~736arQ!3!);9T7@E12(?114knj=L6e3g#l=x@EjakGSaoo5 z*44pP5ClI!oE)7LU8KbSC509-9vt`M-Mz=%J3y$Fm}a$&1DbA|$#_gmXI90ISA;Nx zJ_s0=nPtpLQUbo?>mC8V-bHzq|G7U$x0D&>*{h@IUz7 zt(BXc@RC9?p#8;hK1P6!U7%idobO}Dsh_CX>@2HM@dak zSAh-}0000&NklFYjg06VLzv002ovPDHLkV1jgVs3QOX literal 0 HcmV?d00001 diff --git a/app/res/ui/icon/logout.png b/app/res/ui/icon/logout.png new file mode 100644 index 0000000000000000000000000000000000000000..3336c9e14b3f82ee365b7475b8d275e80f68dd38 GIT binary patch literal 650 zcmV;50(Jd~P)EX>4Tx04R}tkv&MmKpe$iQ?()$2aAY^WT;LSL`B3&t5Adrp;l;lcSTOidx`&UicM+cDeeTcEt!69+_(bAaW|%hd2JzIU zZE)Tv4zawf5}y-~nshTx=Gntqt4iSsF7FJrA*{h@IUz7t(Bb^uO|hgK>Lg1d<+ADU7%KRobO}Dsht4+XW&Y2`b$+{`jhlZ zQwtvfJ=?&=byHLJfXf}A|H+U|*_He>g=`jhKcjC-1HHFE*IK=|#y(CTfFyMlzX1*o zfsq_#uY0_^v$eN>&ouh`0jfW8y+$aoTmS$724YJ`L;&Id0094nRlrRE000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2jmPM2NV_CX>@2HM@dakSAh-}0001CNkl2BVQ-|E+URoD+2A{jtENuks^oKlUqsh3bg`&hkDDN74Y{&V!Z07*qoM6N<$f=!4J3;+NC literal 0 HcmV?d00001 diff --git a/app/res/ui/icon/nav_left.png b/app/res/ui/icon/nav_left.png new file mode 100644 index 0000000000000000000000000000000000000000..0a261a4b66b4458ed1cc18e651834d4414d462f0 GIT binary patch literal 1484 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 KMNUMnLSTZVeZB7h literal 0 HcmV?d00001 diff --git a/app/res/ui/icon/profile.png b/app/res/ui/icon/profile.png new file mode 100644 index 0000000000000000000000000000000000000000..77ff0bdf51be9a8527a9c3b195b545986dbf3437 GIT binary patch literal 1553 zcmV+s2JZQZP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+P#-+lIti8M*p*lSpt%Hh~;1&RkMRx{(NBK&Z|1< zxbHP(zyeExBjLof|NiafA6#rB8|R~j6oSR&l1rS?QM+Gx)@0qR*Mq%uZsg_|V2A{* z?2j6jyg|;G&r4pGo(#FaQk2>n*lq{%QpCCpTr4g_Lc0N5m!iBB2`|fTf8LhmkThN| zpf%G3?D*(p@uqvOUAEpuU+G6jpo1*l2fDAYMh zk}8S-CATYV$R#4Pa)x%mJi;Ds405B! zG!UV_Hr3A!zLeX5TwnzV{oH270<+zA6`QB8*pdlaFwdjibBto$-yez`YDf=!YPSk8IG zPjreH%3i$l-UlDO`s8zv;0!V>gc!zgo1;V*eGD;1jVWdob?P-}RMn(8aT1)yJ|P{G zrj&Aq%?!;sn2h-ul8ran+~&8i#Z9-g<$~}juJ{s4ELu{@m8(?baSb(At*Pcl4WZOr z^QMIso3_+)N33<}uKON(?AlY$2en1@q5OavEowYTjd}5)25F3YYi7Ja$zTRz>EX>4Tx0C=2zkv&Mm zKpe$iQ?()$2aAY^WT;LSL`B3&t5Adrp;l;lcSTOidx`&UicM+cDeeTcEt!69+_(bAaW|%hd2JzIUZE)Tv4zawf5}y-~nsh

Tx=Gntqt4iSsF7FJrA*{h@IUz7t(Bb^ zuO|hgK>Lg1d<+ADU7%KRobO}Dsht4+XW&Y2`b$+{`jhlZQwtvfJ=?&=byHLJfXf}A z|H+U|*_He>g=`jhKcjC-1HHFE*IK=|#y(CTfFyMlzX1*ofsq_#uY0_^v$eN>&ouh` z0jfW8y-xdjn*aa+24YJ`L;&Id0094nRlrRE000SaNLh0L01FcU01FcV0GgZ_00007 zbV*G`2jmPM2NX3)WjksB000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-} z0000`NklUxyq6$T0zv8)g6iDvVUxn07>*00000NkvXXu0mjf D#?{nJ literal 0 HcmV?d00001 diff --git a/app/res/ui/icon/settings.png b/app/res/ui/icon/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..0c9b9b55542a5f0970d8a0759639d4421c08fdd5 GIT binary patch literal 670 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 e+)nxQjyeN&k#U4#!BVpT0000 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 literal 0 HcmV?d00001 diff --git a/app/res/ui/slice/button_group_left_active.png b/app/res/ui/slice/button_group_left_active.png new file mode 100755 index 0000000000000000000000000000000000000000..c95e18b30b5b25ac13843c6eaf982162ee70c169 GIT binary patch literal 4675 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 FV1jv>4#ofg literal 0 HcmV?d00001 diff --git a/app/res/ui/slice/button_group_left_disabled.png b/app/res/ui/slice/button_group_left_disabled.png new file mode 100755 index 0000000000000000000000000000000000000000..51504dff2fc3fc9377d3df2cdb21c15ffdd84db4 GIT binary patch literal 3630 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 mL}a?yG&ZEm=}@3ePyYcmcWIG+Eeq2C0000 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 literal 0 HcmV?d00001 diff --git a/app/res/ui/slice/button_group_middle_disabled.png b/app/res/ui/slice/button_group_middle_disabled.png new file mode 100755 index 0000000000000000000000000000000000000000..01ecd86ba70508229a0e43eb62deaa98ede3b391 GIT binary patch literal 3348 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 LNkvXXu0mjfFq@W6 literal 0 HcmV?d00001 diff --git a/app/res/ui/slice/button_group_right_active.png b/app/res/ui/slice/button_group_right_active.png new file mode 100755 index 0000000000000000000000000000000000000000..76fa90b58cb8f2b3013a493ad3d57cda3615812f GIT binary patch literal 4718 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 wtKCcIwr(V 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 N002ovPDHLkV1l;F+yejr literal 0 HcmV?d00001 diff --git a/app/res/ui/slice/highlight.png b/app/res/ui/slice/highlight.png new file mode 100755 index 0000000000000000000000000000000000000000..62f72549705e10c5e43ec7403303f76f7e1c0342 GIT binary patch literal 1929 zcmV;42X^?0P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U-|ca_lG!{bv=k1WQ5)mcz4Zb}-AIBTV|Hllw>} zUsIK)ZLo}m&=Kem=0AV0@E3j@DTb()Q%UK3Iy=XOR; zCEM#MobP=4bn1NtzeO=ln#dyVkuS4U(9V2CgWrZ5Dz?Xe4D|LnymV#Q#8XJFeb2X* za$gk^#+{|0ABpUCy6@Y+R{&%%0h-J4?Yth|eDcjp{fl4t$h1y4Ji+~FoiGURUc3o| zG>=@~pqC!?mWQ`55LZ8idt>^_B8!iK`N^Us?x|P5{Nq|{y$C_AarGdGLNA@mhh2Izbk9`S|SQ(&Cm@n zd)UJaN6zo)21IBbr|Nd_OL-2+1FQf--EPj9V7=O{qAC4|E!jW|`YGyrjggJ}dsh@O zw!#<^KyW1zr9_u88xb6t0Z^qYvqWw{fK++FNRA>2*kBQ0=zwpGc3)P$<=7>Ggkn(| zuqjdjR*Z`Hv6vAq4w8S#jw~%T``x)dy+^)pz9+sL?@2?i;at6}nF^!Ro{NnJc$szD)&L&153vXMtWT(risFbM^`O zl)-hDAw@w8a-;+&4#wn@s5M+vmM`fXe0z-19~M%G*GUx?TPp?N&8jrhO1VN}6HZhu z74F4$srXw>iM|lA`&3IiOufu0Q z*fqh2dBHV_Zi|P68}K@X+bA%22_nv|Pc?6};WM{Bj!JN}z6bt>D|{XJZ$;mVz7>5d z`d0M+Rb;sjFs$k424ptF(F>^>nWgpKWhPJ-=Tz3gp1^2u1QDb}o(fh{MhW99S@BgJ zKJ|gVPmC{l5yvbyJ%TvR4l?1Ug9shdvof+dXrLyfegc8>&p0X$A3KNJ42{`ok2ACh z+H)8hsO|VgqW%@p`mZ&77o3^drcruzXJ*@65MNB?CU9Wkl0l!rRBe>jbb1e*1JsGV z&I$ju6^;WZ`mF81jAOJxeT!q14qBTH)0I81Y|1!Q)rc2qsZ?d>?tl=d?1Gcczl)JO zYV!k(>i_@&glR)VP)S2WAaHVTW@&6?004NLeUUv#!$2IxUsFYqibE@iC}gNk7DPoH zwF*V35Nd^19ZW9$f+h_~ii@M*T5#}VvFhOBtgC~oAP9bdI5|2gx=4xtOA0MwJUH&h zyL*qjcYshYGtKH42Q=L_Q;E2k$*ziBuLxln{Rks0Gs~Ehq$GUD*F6G!y^HZI|8swi zUNvViARrRYGQ+fqH;AVFVHWr1f#%yep=I6^EI z+E{60Rx~x@DdMQA>69;IJXSexan{OJ*1RWwVJN4sEOVXa5E59#5+sOFP(=x4*oe`p zlVTx7`*9!tpzD{&rI4!xMvetkph0&1;D7MDTPr^~;U$IQKMWw&%l-5@>lA>%qQu!mKHq%`nG|K>z1bM0hc?#z>^`HvMU8?3i&+nen#Jv1;V#L z&zjd;b04P_CX>@2HM@dakSAh-}0000yNkl=%}HihK@i(X;bpkqK*OpB`Ok`xp%}) P00000NkvXXu0mjf33z*t literal 0 HcmV?d00001 diff --git a/app/res/ui/slice/outline.png b/app/res/ui/slice/outline.png new file mode 100755 index 0000000000000000000000000000000000000000..dd586a2ea14222aa785723203dafb50d6d8eedf2 GIT binary patch literal 4414 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, (refresh: AppDataSpecifier | AppDataSpecifier[]) => Promise>, + (data: Partial) => void ] { + + const ctx = useContext(AppDataContext); + + useEffect(() => { + if (refresh) updateAppData(ctx.mergeData, refresh); + }, dependents ?? []); + + return [ ctx.data, updateAppData.bind(undefined, ctx.mergeData), ctx.mergeData ]; +} diff --git a/app/src/Main.ts b/app/src/Main.ts new file mode 100755 index 0000000..1a53b68 --- /dev/null +++ b/app/src/Main.ts @@ -0,0 +1,5 @@ +import * as Preact from 'preact'; + +import App from './components/App'; + +Preact.render(Preact.h(App, null), document.body); diff --git a/app/src/components/App.sass b/app/src/components/App.sass new file mode 100644 index 0000000..8824fe1 --- /dev/null +++ b/app/src/components/App.sass @@ -0,0 +1,35 @@ +@use '../style/reset' +@use '../style/def' as * + +.App + display: grid + height: 100% + overflow: auto + position: relative + grid-template-rows: auto 1fr + + color: $accent-050 + font-family: $font-main + background-color: $neutral-1000 + + -webkit-tap-highlight-color: rgba(255, 255, 255, 0) + + ::selection + background-color: transparentize($neutral-300, 0.5) + + h1, h2, h3, h4, h5, h6 + font-family: $font-header + + @media (pointer: fine) + &::-webkit-scrollbar, *::-webkit-scrollbar + width: 8px + height: 8px + + &::-webkit-scrollbar-thumb, *::-webkit-scrollbar-thumb + background-color: rgba(87, 87, 87, .38) + + &:hover + background-color: rgba(87, 87, 87, .6) + + .App-Main + display: grid diff --git a/app/src/components/App.tsx b/app/src/components/App.tsx new file mode 100644 index 0000000..f871eb9 --- /dev/null +++ b/app/src/components/App.tsx @@ -0,0 +1,65 @@ +import Cookie from 'js-cookie'; +import * as Preact from 'preact'; +import { useState, useEffect, useCallback } from 'preact/hooks'; +import { BrowserRouter as Router, Switch, Route, Redirect } from 'react-router-dom'; + +import './App.sass'; + +import AppHeader from './AppHeader'; +import * as Routes from './route/Routes'; + +import { AppData } from '../../../common/AppData'; +import { AppDataContext, updateAppData } from './AppDataContext'; + +type AppState = 'QUERYING' | 'LOGIN' | 'AUTH'; + +/** + * The main entry point for the Preact app. + * Handles routing and data. + */ + +export default function App() { + const [ data, setData ] = useState>({}); + const [ state, setState ] = useState(() => Cookie.get('tkn') ? 'QUERYING' : 'LOGIN'); + + const mergeData = useCallback((data: Partial) => { + setData((prevData: Partial) => { return { ...prevData, ...data }; }); + }, []); + + useEffect(() => { + if (state === 'QUERYING') updateAppData(mergeData, ['user']).then(() => setState('AUTH')); + }, [ state ]); + + return ( + + {state === 'LOGIN' && +

+
+
+ setState('AUTH')} /> +
+
+ } + {state === 'AUTH' && +
+
+ + + + + + + + + {/* */} + + + + + +
+
+ } + + ); +} diff --git a/app/src/components/AppDataContext.tsx b/app/src/components/AppDataContext.tsx new file mode 100644 index 0000000..476a07b --- /dev/null +++ b/app/src/components/AppDataContext.tsx @@ -0,0 +1,29 @@ +import Cookie from 'js-cookie'; +import * as Preact from 'preact'; +import { AppData, AppDataSpecifier } from '../../../common/AppData'; + +export interface AppDataContextData { + data: Partial; + mergeData(data: Partial): void; +} + +export const AppDataContext = Preact.createContext({ + data: {}, mergeData: () => { throw 'Accessed default AppContext'; }}); + +export async function updateAppData(mergeData: (data: Partial) => void, + refresh: AppDataSpecifier | AppDataSpecifier[]) { + + const refreshArray = Array.isArray(refresh) ? refresh : [ refresh ]; + const res = await fetch('/data/app/' + refreshArray.join('&'), { cache: 'no-cache' }); + + if (res.status !== 200) { + Cookie.remove('tkn'); + location.href = '/app'; + throw 'Invalid token'; + } + else { + const data = await res.json(); + mergeData(data); + return data; + } +}; diff --git a/app/src/components/AppHeader.sass b/app/src/components/AppHeader.sass new file mode 100644 index 0000000..bb8e0b0 --- /dev/null +++ b/app/src/components/AppHeader.sass @@ -0,0 +1,56 @@ +.AppHeader + display: flex + flex-direction: row + align-items: center + justify-content: space-between + + height: 64px + width: 100% + max-width: 1000px + + margin: 0 auto + padding: 12px 16px + + user-select: none + + h1 + margin: 0 + + color: white + font-size: 39px + + a + text-decoration: none + + &:hover, &:focus-visible + text-decoration: underline + + .AppHeader-Buttons + display: flex + flex-direction: row + gap: 6px + + button + display: block + width: 54px + height: 54px + + margin: 0 + padding: 0 + outline: 0 + background: transparent + border: 3px solid transparent + + &:hover, &:focus-visible + background-color: transparentize(white, 0.9) + + &:focus-visible + border-color: white + + &:active + background-color: transparentize(white, 0.8) + + img + width: 100% + height: 100% + image-rendering: pixelated diff --git a/app/src/components/AppHeader.tsx b/app/src/components/AppHeader.tsx new file mode 100644 index 0000000..d6d4c15 --- /dev/null +++ b/app/src/components/AppHeader.tsx @@ -0,0 +1,17 @@ +import * as Preact from 'preact'; +import { NavLink as Link } from 'react-router-dom'; + +import './AppHeader.sass'; + +export default function AppHeader() { + return ( +
+

Virtual Dungeon

+
+ + + +
+
+ ); +} diff --git a/app/src/components/Button.sass b/app/src/components/Button.sass new file mode 100644 index 0000000..29a9e33 --- /dev/null +++ b/app/src/components/Button.sass @@ -0,0 +1,44 @@ +@use '../style/def' as * +@use '../style/slice' + +.Button + @extend .slice_button + + padding: 0 + height: 54px + display: inline-block + + outline: none + user-select: none + vertical-align: top + + .Button-Icon + width: 48px + height: 48px + margin: -15px -12px + + object-fit: contain + pointer-events: none + image-rendering: pixelated !important + + &:disabled, &.Disabled + pointer-events: none + + .Button-Icon + filter: brightness(45%) sepia(1) contrast(2.25) hue-rotate(185deg) + + .Button-Label + color: $accent-200 + + .Button-Label + display: inline-block + margin: 6px + margin-top: -2px + + font-size: 20px + vertical-align: 15% + color: $accent-000 + + .Button-Icon + .Button-Label + margin-left: 9px + vertical-align: top diff --git a/app/src/components/Button.tsx b/app/src/components/Button.tsx new file mode 100644 index 0000000..41c9bb3 --- /dev/null +++ b/app/src/components/Button.tsx @@ -0,0 +1,35 @@ +import * as Preact from 'preact'; +import { NavLink as Link } from 'react-router-dom'; + +import './Button.sass'; + +interface Props { + label?: string; + icon?: string; + alt?: string; + + disabled?: boolean; + + to?: string; + onClick?: (evt: MouseEvent) => void; + + style?: any; + class?: string; +} + +/** + * Custom button that applies button styling, + * and allows for icons as well as labels. + */ + +export default function Button(props: Props) { + const icon = props.icon && {props.alt; + const label = props.label && {props.label}; + + const classes = ('Button ' + (props.class ?? '') + (props.disabled ? ' Disabled' : '')).trim(); + + if (props.to) return {icon}{label}; + return ; +} diff --git a/app/src/components/ButtonGroup.sass b/app/src/components/ButtonGroup.sass new file mode 100644 index 0000000..7245554 --- /dev/null +++ b/app/src/components/ButtonGroup.sass @@ -0,0 +1,37 @@ +@use '../style/slice' + +.ButtonGroup + @mixin button_group($sect) + position: relative + + @include slice.slice('button_group_' + $sect) + + &:active, &:focus-visible + @include slice.slice('button_group_' + $sect + '_active') + z-index: 2 + + &:disabled, &.Disabled + @include slice.slice('button_group_' + $sect + '_disabled') + z-index: 1 + + %button_group_left + @include button_group('left') + + %button_group_middle + @include button_group('middle') + + %button_group_right + @include button_group('right') + + .Button + @extend %button_group_middle + + display: inline-block + margin-right: -3px + + .Button:first-child + @extend %button_group_left + + .Button:last-child + @extend %button_group_right + margin-right: 0 diff --git a/app/src/components/ButtonGroup.tsx b/app/src/components/ButtonGroup.tsx new file mode 100644 index 0000000..564f370 --- /dev/null +++ b/app/src/components/ButtonGroup.tsx @@ -0,0 +1,22 @@ +import * as Preact from 'preact'; + +import './ButtonGroup.sass'; + +interface Props { + style?: any; + class?: string; + children: Preact.ComponentChildren; +} + +/** + * Wrapper for multiple buttons, styles them as a button group. + * Undefined behavior if anything other than buttons are provided as children. + */ + +export default function ButtonGroup(props: Props) { + return ( +
+ {props.children} +
+ ); +} diff --git a/app/src/components/Editor.sass b/app/src/components/Editor.sass new file mode 100644 index 0000000..36314be --- /dev/null +++ b/app/src/components/Editor.sass @@ -0,0 +1,8 @@ +.Editor + position: relative + width: 100% + height: 100% + + canvas + display: block + image-rendering: pixelated diff --git a/app/src/components/Editor.tsx b/app/src/components/Editor.tsx new file mode 100644 index 0000000..5d131ce --- /dev/null +++ b/app/src/components/Editor.tsx @@ -0,0 +1,66 @@ +import * as Preact from 'preact'; +import type Phaser from 'phaser'; +import { useRef, useEffect } from 'preact/hooks'; + +import './Editor.sass'; + +// // Prevent scrolling hotkeys as the app implements its own scrolling. +// document.addEventListener('keydown', (e: KeyboardEvent) => { +// if (e.ctrlKey +// &&(e.which == 61 // +/= key +// || e.which == 107 // Numpad + +// || e.which == 173 // -/_ key +// || e.which == 109 // Numpad - +// || e.which == 187 // Numpad = +// || e.which == 189 // Numpad - +// )) e.preventDefault(); +// }); + +// window.addEventListener('wheel', (e) => { +// if (e.ctrlKey) e.preventDefault(); +// }, { passive: false }); + +export default function Editor() { + const rootRef = useRef(null); + const editorRef = useRef(null); + + /** + * Lazy-load the editor, display it when ready, + * and destroy it when complete. + */ + + useEffect(() => { + let ignore = false; + import('../editor/Main').then(({ default: create }) => { + if (ignore || !rootRef.current) return; + editorRef.current = create(rootRef.current); + }); + + return () => { + ignore = true; + if (!editorRef.current) return; + editorRef.current.destroy(true); + editorRef.current = null; + }; + }, []); + + /** + * Block context menu on right-click within the root editor node. + */ + + useEffect(() => { + const blockContextMenu = (evt: Event) => { + evt.preventDefault(); + evt.stopPropagation(); + return false; + }; + + const root = rootRef.current; + root.addEventListener('contextmenu', blockContextMenu); + return () => root.removeEventListener('contextmenu', blockContextMenu); + }, []); + + return ( +
+ ); +} diff --git a/app/src/components/card/CampaignDetails.sass b/app/src/components/card/CampaignDetails.sass new file mode 100644 index 0000000..ee46569 --- /dev/null +++ b/app/src/components/card/CampaignDetails.sass @@ -0,0 +1,76 @@ +@use '../../style/def' as * +@use '../../style/text' +@use '../../style/slice' + +.CampaignDetails + + .CampaignDetails-Split + display: grid + grid-gap: 12px + padding-top: 6px + grid-template-columns: 300px 1fr + + .CampaignDetails-ImageWrap + @extend .slice_highlight + + display: grid + height: 200px + + .CampaignDetails-Image + @include slice.slice_invert + + img + width: 100% + height: 100% + display: block + + object-fit: cover + user-select: none + pointer-events: none + + .CampaignDetails-Right + display: flex + overflow: hidden + flex-direction: column + justify-content: space-between + + .CampaignDetails-Details + .CampaignDetails-Title + @include text.line_clamp + + margin-top: 0 + margin-bottom: 8px + padding-right: 6px + + font-weight: 500 + font-size: 34px + font-family: $font-header + + .CampaignDetails-Description + margin-top: 0 + color: $accent-200 + + .CampaignDetails-Actions + float: right + + .CampaignDetails-CharactersWrap + @extend .slice_highlight + + height: 64px + + .CampaignDetails-Characters + @include slice.slice_invert + + display: flex + padding: 6px + + .CampaignDetails-Character + width: #{18px * 3} + height: #{18px * 3} + margin-right: 16px + + background-size: #{18px * 3 * 2} #{18px * 3 * 2} + background-position: top left + image-rendering: pixelated + + diff --git a/app/src/components/card/CampaignDetails.tsx b/app/src/components/card/CampaignDetails.tsx new file mode 100644 index 0000000..38f8566 --- /dev/null +++ b/app/src/components/card/CampaignDetails.tsx @@ -0,0 +1,43 @@ +import * as Preact from 'preact'; + +import './CampaignDetails.sass'; + +// import Button from '../Button'; +// import ButtonGroup from '../ButtonGroup'; + +import MapList from './MapList'; + +import { Campaign } from '../../../../common/DBStructs'; + +interface Props { + campaign: Campaign; +} + +export default function CampaignDetails({ campaign }: Props) { + return ( +
+
+
+
+ +
+
+
+
+ {/*
+ +
*/} + +

{campaign.title || 'Untitled'}

+

{campaign.description || 'Lorem ipsum dolor sit amet...'}

+
+
+
+ + +
+ ); +} diff --git a/app/src/components/card/CampaignList.sass b/app/src/components/card/CampaignList.sass new file mode 100644 index 0000000..0f9d7c4 --- /dev/null +++ b/app/src/components/card/CampaignList.sass @@ -0,0 +1,46 @@ +@use '../../style/grid' +@use '../../style/slice' +@use '../../style/text' + +.CampaignList + & > h2 + margin-top: 8px + margin-bottom: 16px + + font-size: 34px + user-select: none + + .CampaignList-Grid + @include grid.auto_width(220px) + + .CampaignList-CampaignWrap + .CampaignList-Campaign + @extend .slice_outline_button + + display: grid + user-select: none + text-decoration: none + + .CampaignList-CampaignInner + @include slice.slice_invert + + display: grid + grid-template-rows: 120px auto + + .CampaignList-CampaignPreview + width: 100% + height: 100% + object-fit: cover + user-select: none + pointer-events: none + + .CampaignList-CampaignTitle + @include text.line_clamp + + margin: 0 + padding: 9px 6px + + .CampaignList-Actions + display: flex + margin-top: 12px + justify-content: space-between diff --git a/app/src/components/card/CampaignList.tsx b/app/src/components/card/CampaignList.tsx new file mode 100644 index 0000000..cbccdf7 --- /dev/null +++ b/app/src/components/card/CampaignList.tsx @@ -0,0 +1,63 @@ +import * as Preact from 'preact'; +import { useState } from 'preact/hooks'; +import { useAppData } from '../../Hooks'; +import { NavLink as Link } from 'react-router-dom'; + +import './CampaignList.sass'; + +import Button from '../Button'; +import ButtonGroup from '../ButtonGroup'; + +interface Props { + allowNew?: boolean; +} + +export default function CampaignsCard({ allowNew }: Props) { + const [ { campaigns } ] = useAppData('campaigns'); + + const [ page, setPage ] = useState(0); + + const currentCampaigns = (campaigns || []).slice(page * 4, (page + 1) * 4); + + return ( +
+

Campaigns

+ + {campaigns === undefined &&

Loading Campaigns...

} + {campaigns !== undefined && + +
    + {currentCampaigns.map(c =>
  • + +
    + +

    {c.title || 'Untitled'}

    +
    + +
  • )} +
+
+
+
+ } +
+ ); +} diff --git a/app/src/components/card/CampaignOverview.sass b/app/src/components/card/CampaignOverview.sass new file mode 100644 index 0000000..906c133 --- /dev/null +++ b/app/src/components/card/CampaignOverview.sass @@ -0,0 +1,72 @@ +@use '../../style/def' as * +@use '../../style/text' +@use '../../style/slice' + +.CampaignOverview + display: grid + grid-gap: 12px + padding-top: 6px + grid-template-columns: 300px 1fr + + .CampaignOverview-ImageWrap + @extend .slice_highlight + + display: grid + height: 200px + + .CampaignOverview-Image + @include slice.slice_invert + + img + width: 100% + height: 100% + display: block + + object-fit: cover + user-select: none + pointer-events: none + + .CampaignOverview-Right + display: flex + overflow: hidden + flex-direction: column + justify-content: space-between + + .CampaignOverview-Details + .CampaignOverview-Title + @include text.line_clamp + + margin-top: 0 + margin-bottom: 8px + padding-right: 6px + + font-weight: 500 + font-size: 34px + font-family: $font-header + + .CampaignOverview-Description + margin-top: 0 + color: $accent-200 + + .CampaignOverview-Actions + float: right + + .CampaignOverview-CharactersWrap + @extend .slice_highlight + + height: 64px + + .CampaignOverview-Characters + @include slice.slice_invert + + display: flex + padding: 6px + + .CampaignOverview-Character + width: #{18px * 3} + height: #{18px * 3} + margin-right: 16px + + background-size: #{18px * 3 * 2} #{18px * 3 * 2} + background-position: top left + image-rendering: pixelated diff --git a/app/src/components/card/CampaignOverview.tsx b/app/src/components/card/CampaignOverview.tsx new file mode 100644 index 0000000..2ae3b7f --- /dev/null +++ b/app/src/components/card/CampaignOverview.tsx @@ -0,0 +1,46 @@ +import * as Preact from 'preact'; + +import './CampaignOverview.sass'; + +import Button from '../Button'; +import ButtonGroup from '../ButtonGroup'; + +import { Campaign } from '../../../../common/DBStructs'; + +interface Props { + campaign: Campaign; +} + +export default function CampaignOverview({ campaign }: Props) { + return ( +
+
+
+ +
+
+
+
+
+ +
+ +

{campaign.title || 'Untitled'}

+

{campaign.description || 'Lorem ipsum dolor sit amet...'}

+
+
+
+
+
+
+
+
+
+
+
+
+ ); +} diff --git a/app/src/components/card/MapList.sass b/app/src/components/card/MapList.sass new file mode 100644 index 0000000..eb922b6 --- /dev/null +++ b/app/src/components/card/MapList.sass @@ -0,0 +1,46 @@ +@use '../../style/grid' +@use '../../style/slice' +@use '../../style/text' + +.MapList + & > h2 + margin-top: 8px + margin-bottom: 16px + + font-size: 34px + user-select: none + + .MapList-Grid + @include grid.auto_width(220px) + + .MapList-MapWrap + .MapList-Map + @extend .slice_outline_button + + display: grid + user-select: none + text-decoration: none + + .MapList-MapInner + @include slice.slice_invert + + display: grid + grid-template-rows: 120px auto + + .MapList-MapPreview + width: 100% + height: 100% + object-fit: cover + user-select: none + pointer-events: none + + .MapList-MapTitle + @include text.line_clamp + + margin: 0 + padding: 9px 6px + + .MapList-Actions + display: flex + margin-top: 12px + justify-content: space-between diff --git a/app/src/components/card/MapList.tsx b/app/src/components/card/MapList.tsx new file mode 100644 index 0000000..10c4b9d --- /dev/null +++ b/app/src/components/card/MapList.tsx @@ -0,0 +1,63 @@ +import * as Preact from 'preact'; +import { useState } from 'preact/hooks'; +import { NavLink as Link, useRouteMatch } from 'react-router-dom'; + +import './MapList.sass'; + +import Button from '../Button'; +import ButtonGroup from '../ButtonGroup'; + +import { Map } from '../../../../common/DBStructs'; + +const ITEMS_PER_PAGE = 8; + +interface Props { + maps: Map[]; + allowNew?: boolean; +} + +export default function CampaignsCard({ maps, allowNew }: Props) { + const match = useRouteMatch(); + + const [ page, setPage ] = useState(0); + + const currentMaps = maps.slice(page * ITEMS_PER_PAGE, (page + 1) * ITEMS_PER_PAGE); + + return ( +
+

Maps

+ +
    + {currentMaps.map(m =>
  • + +
    + +

    {m.name || 'Untitled'}

    +
    + +
  • )} +
+ +
+
+
+ ); +} diff --git a/app/src/components/card/NewCampaignForm.sass b/app/src/components/card/NewCampaignForm.sass new file mode 100644 index 0000000..416afcc --- /dev/null +++ b/app/src/components/card/NewCampaignForm.sass @@ -0,0 +1,32 @@ +@use '../../style/def' as * + +.NewCampaignForm + label + span + display: inline-block + margin-top: 6px + + color: $accent-100 + + input, textarea + width: 100% + padding: 6px + display: block + margin: 6px 0 + + outline: 0 + border: 3px solid $accent-500 + background-color: transparent + + &::placeholder + color: $accent-400 + + &:focus, &:focus-within + border-color: $accent-300 + + .NewCampaignForm-Title + font-family: $font-header + font-size: 27px + + .NewCampaignForm-Submit + margin-top: 12px diff --git a/app/src/components/card/NewCampaignForm.tsx b/app/src/components/card/NewCampaignForm.tsx new file mode 100644 index 0000000..1428d39 --- /dev/null +++ b/app/src/components/card/NewCampaignForm.tsx @@ -0,0 +1,59 @@ +import * as Preact from 'preact'; +import { useState } from 'preact/hooks'; +import { useAppData } from '../../Hooks'; +import { useHistory } from 'react-router-dom'; + +import './NewCampaignForm.sass'; + +import Button from '../Button'; + +import * as Format from '../../../../common/Format'; + +export default function NewCampaignForm() { + const [ ,, mergeData ] = useAppData(); + const history = useHistory(); + + const [ queryState, setQueryState ] = useState<'idle' | 'querying'>('idle'); + + const [ title, setTitle ] = useState(''); + const [ description, setDescription ] = useState(''); + + const createCampaign = async () => { + if (queryState !== 'idle') return; + setQueryState('querying'); + + const res = await fetch('/data/campaign/new', { + method: 'POST', cache: 'no-cache', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({ title, description }) + }); + + setQueryState('idle'); + + if (res.status !== 200) console.error(await res.text()); + else { + const data = await res.json(); + await mergeData(data); + history.push('/' + Format.identifier(title)); + } + }; + + return ( +
+ +