From 585a092bb8cee2e839c9fe094300e1624530b766 Mon Sep 17 00:00:00 2001 From: Waldir Pimenta Date: Thu, 9 Sep 2021 10:39:49 +0100 Subject: [PATCH 001/409] Normalize extension naming (#738) * Rename Java Extensions Guide * Minor phrasing corrections * Normalize name of the redhat.java extension --- package.json | 2 +- .../components/Exception.tsx | 4 ++-- src/ext-guide/assets/index.html | 4 ++-- src/ext-guide/index.ts | 2 +- src/getting-started/assets/index.html | 4 ++-- src/java-runtime/index.ts | 2 +- src/java-runtime/utils/upstreamApi.ts | 2 +- src/overview/assets/index.html | 20 +++++++++---------- 8 files changed, 20 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index c7766182..7a75a8ec 100644 --- a/package.json +++ b/package.json @@ -212,7 +212,7 @@ { "command": "java.extGuide", "category": "Java", - "title": "Extension Guide" + "title": "Extensions Guide" }, { "command": "java.formatterSettings", diff --git a/src/classpath/assets/features/classpathConfiguration/components/Exception.tsx b/src/classpath/assets/features/classpathConfiguration/components/Exception.tsx index 20df2aa9..ce36694e 100644 --- a/src/classpath/assets/features/classpathConfiguration/components/Exception.tsx +++ b/src/classpath/assets/features/classpathConfiguration/components/Exception.tsx @@ -26,14 +26,14 @@ const Exception = (): JSX.Element | null => { case ClasspathViewException.JavaExtensionNotInstalled: content = (
- The required extension Language Support for Java(TM) by Red Hat is not installed or it's disabled. Please install it in Visual Studio Code and reload the page after installation. + The required extension Language Support for Java™ by Red Hat is not installed or it's disabled. Please install it in Visual Studio Code and reload the page after installation.
); break; case ClasspathViewException.StaleJavaExtension: content = (
- The version of required extension Language Support for Java(TM) by Red Hat is too stale. Please update it and reload the page. + The version of required extension Language Support for Java™ by Red Hat is too stale. Please update it and reload the page.
); break; diff --git a/src/ext-guide/assets/index.html b/src/ext-guide/assets/index.html index 1ebbf632..11d75ddb 100644 --- a/src/ext-guide/assets/index.html +++ b/src/ext-guide/assets/index.html @@ -4,14 +4,14 @@ - Java Extension Guide + Java Extensions Guide
-

Java Extension Guide

+

Java Extensions Guide

Recommended extensions for Java development.
diff --git a/src/ext-guide/index.ts b/src/ext-guide/index.ts index 0b928d4a..9a702676 100644 --- a/src/ext-guide/index.ts +++ b/src/ext-guide/index.ts @@ -14,7 +14,7 @@ export async function javaExtGuideCmdHandler(context: vscode.ExtensionContext, o return; } - javaExtGuideView = vscode.window.createWebviewPanel("java.extGuide", "Java Extension Guide", { + javaExtGuideView = vscode.window.createWebviewPanel("java.extGuide", "Java Extensions Guide", { viewColumn: vscode.ViewColumn.One, }, { enableScripts: true, diff --git a/src/getting-started/assets/index.html b/src/getting-started/assets/index.html index 1d840e0e..f7b7d788 100644 --- a/src/getting-started/assets/index.html +++ b/src/getting-started/assets/index.html @@ -319,11 +319,11 @@
Feedback Channels

Why do I see the JDK errors?

- JDK 11+ is required to run VS Code Java! You see this error because we failed to find one on your machine. The Configure Java Runtime guide can help you understand how JDK path is searched and provides download links if you need to install one. + JDK 11+ is required to run the Java language support (redhat.java) extension! You see this error because we failed to find one on your machine. The Configure Java Runtime guide can help you understand how JDK path is searched and provides download links if you need to install one.

Can I run my Java 8 project with JDK 1.8?

- Yes. JDK 11 requirement is just for running VS Code Java extension itself, you can still configure a different runtime JDK for your project via user setting "java.configuration.runtimes". The extension will pick a mapping JDK to compile/run your project according to the compiler version specified by the project build file. + Yes. The JDK 11 requirement is just for running the Java language support (redhat.java) extension itself. You can still configure a different runtime JDK for your project via the user setting "java.configuration.runtimes". The extension will pick a matching JDK to compile/run your project according to the compiler version specified by the project build file.

 "java.configuration.runtimes": [
   {
diff --git a/src/java-runtime/index.ts b/src/java-runtime/index.ts
index 9614f19b..58428ab2 100644
--- a/src/java-runtime/index.ts
+++ b/src/java-runtime/index.ts
@@ -206,7 +206,7 @@ export async function findJavaRuntimeEntries(): Promise<{
     javaDotHome = runtime.java_home;
     const javaVersion = runtime.java_version;
     if (!javaVersion || javaVersion < 11) {
-      javaHomeError = `Java 11 or more recent is required to run the Java extension. Preferred JDK "${javaDotHome}" (version ${javaVersion}) doesn't meet the requirement. Please specify or install a recent JDK.`;
+      javaHomeError = `Java 11 or more recent is required by the Java language support (redhat.java) extension. Preferred JDK "${javaDotHome}" (version ${javaVersion}) doesn't meet the requirement. Please specify or install a recent JDK.`;
     }
   } catch (error) {
     javaHomeError = error.message;
diff --git a/src/java-runtime/utils/upstreamApi.ts b/src/java-runtime/utils/upstreamApi.ts
index 8aa80bdf..3c5f6283 100644
--- a/src/java-runtime/utils/upstreamApi.ts
+++ b/src/java-runtime/utils/upstreamApi.ts
@@ -49,7 +49,7 @@ export async function resolveRequirements(): Promise {
         }
 
         if (javaVersion < REQUIRED_JDK_VERSION) {
-            let message = `Java ${REQUIRED_JDK_VERSION} or more recent is required to run the Java extension.`;
+            let message = `Java ${REQUIRED_JDK_VERSION} or more recent is required by the Java language support (redhat.java) extension.`;
             if (javaHome) {
                 message += `(Current JDK: ${javaHome})`;
             }
diff --git a/src/overview/assets/index.html b/src/overview/assets/index.html
index fbb2cd11..465f5198 100644
--- a/src/overview/assets/index.html
+++ b/src/overview/assets/index.html
@@ -47,32 +47,32 @@ 

Key Bindings

@@ -171,8 +171,8 @@

Configuration

Configure Java Runtime

Setup JDKs for projects and VS Code Java. - -

Extension Guide

+
+

Extensions Guide

Recommended extensions for Java development.
From 15978215c5daf9ad249a2a9e1d5dad2e2cda8767 Mon Sep 17 00:00:00 2001 From: Sheng Chen Date: Wed, 15 Sep 2021 17:40:44 +0800 Subject: [PATCH 002/409] Rename to 'Test Runner for Java' (#741) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 86d1284d..a10beec0 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ By installing Extension Pack for Java, the following extensions are installed: - Code Snippets - [📦 Debugger for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-debug) - Debugging -- [📦 Java Test Runner](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-test) +- [📦 Test Runner for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-test) - Run & Debug JUnit/TestNG Test Cases - [📦 Maven for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-maven) - Project Scaffolding From 72b923698af083c0d9eb4ce4ee7c605e223aaf01 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Sep 2021 16:32:38 +0800 Subject: [PATCH 003/409] Bump axios from 0.21.1 to 0.21.2 (#739) --- package-lock.json | 46 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index 26a3daca..58a209b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,7 +37,7 @@ "@types/xmldom": "^0.1.30", "arch": "^2.1.2", "autoprefixer": "^8.5.1", - "axios": "^0.21.1", + "axios": "^0.21.2", "bootstrap": "^4.5.2", "bytes": "^3.1.0", "css-loader": "^3.6.0", @@ -797,7 +797,7 @@ }, "node_modules/assert/node_modules/util": { "version": "0.10.3", - "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "dependencies": { @@ -911,12 +911,12 @@ "dev": true }, "node_modules/axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.2.tgz", + "integrity": "sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg==", "dev": true, "dependencies": { - "follow-redirects": "^1.10.0" + "follow-redirects": "^1.14.0" } }, "node_modules/balanced-match": { @@ -3132,9 +3132,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", - "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==", + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.3.tgz", + "integrity": "sha512-3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw==", "dev": true, "funding": [ { @@ -4378,7 +4378,7 @@ }, "node_modules/json5": { "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true, "bin": { @@ -4985,7 +4985,7 @@ }, "node_modules/node-sass/node_modules/chalk": { "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "dependencies": { @@ -7144,7 +7144,7 @@ }, "node_modules/strip-ansi": { "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "dependencies": { @@ -9317,7 +9317,7 @@ }, "util": { "version": "0.10.3", - "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { @@ -9412,12 +9412,12 @@ "dev": true }, "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.2.tgz", + "integrity": "sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg==", "dev": true, "requires": { - "follow-redirects": "^1.10.0" + "follow-redirects": "^1.14.0" } }, "balanced-match": { @@ -11262,9 +11262,9 @@ } }, "follow-redirects": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", - "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==", + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.3.tgz", + "integrity": "sha512-3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw==", "dev": true }, "for-in": { @@ -12247,7 +12247,7 @@ }, "json5": { "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, @@ -12755,7 +12755,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { @@ -14527,7 +14527,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { diff --git a/package.json b/package.json index 7a75a8ec..8dcef79e 100644 --- a/package.json +++ b/package.json @@ -335,7 +335,7 @@ "@types/vscode": "1.52.0", "@types/winreg": "^1.2.30", "@types/xmldom": "^0.1.30", - "axios": "^0.21.1", + "axios": "^0.21.2", "arch": "^2.1.2", "autoprefixer": "^8.5.1", "bootstrap": "^4.5.2", From dfe13d41075e85a11fcaee6040e0b4045cda3662 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Wed, 22 Sep 2021 16:54:20 +0800 Subject: [PATCH 004/409] don't show first view on Codespaces (#753) Signed-off-by: Yan Zhang --- src/extension.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/extension.ts b/src/extension.ts index 0a54985d..a269fe50 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -50,7 +50,10 @@ async function initializeExtension(_operationId: string, context: vscode.Extensi // for control group where walkthrough is not enabled, present first view for once. const walkthroughEnabled = await isWalkthroughEnabled(); - if (walkthroughEnabled === false && !context.globalState.get(KEY_IS_WELCOME_PAGE_VIEWED)) { + if (walkthroughEnabled === false // control group + && !context.globalState.get(KEY_IS_WELCOME_PAGE_VIEWED) // first time + && vscode.env.uiKind === vscode.UIKind.Desktop // desktop only (no popups on Codespaces) + ) { presentFirstView(context); } From 730fde60406759af0de8e16aacf5c697b3999f60 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 23 Sep 2021 16:50:53 +0800 Subject: [PATCH 005/409] upversion to 0.18.5 (#754) Signed-off-by: Yan Zhang --- CHANGELOG.md | 6 ++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a68daa1..f9fbb939 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log +## 0.18.5 +### Fixed +- Fix broken link: "Check out our blogs to see what's new". [#734](https://github.com/microsoft/vscode-java-pack/issues/734) +- Fix bug: getting started page was wrongly presented in Codespaces. [#753](https://github.com/microsoft/vscode-java-pack/pull/753) +- Normalize extension naming. [#738](https://github.com/microsoft/vscode-java-pack/pull/738) [#741](https://github.com/microsoft/vscode-java-pack/pull/741) + ## 0.18.4 ### Changed - Rename extension to `Extension Pack for Java`. [#721](https://github.com/microsoft/vscode-java-pack/pull/721) diff --git a/package-lock.json b/package-lock.json index 58a209b6..b6eb21c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "vscode-java-pack", - "version": "0.18.4", + "version": "0.18.5", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "0.18.4", + "version": "0.18.5", "license": "MIT", "dependencies": { "@types/fs-extra": "^9.0.1", diff --git a/package.json b/package.json index 8dcef79e..86caa036 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "Extension Pack for Java", "description": "Popular extensions for Java development that provides Java IntelliSense, debugging, testing, Maven/Gradle support, project management and more", "license": "MIT", - "version": "0.18.4", + "version": "0.18.5", "publisher": "vscjava", "preview": true, "engines": { From 87c635575eb52f44adae0992fc4643e6c6e86e5d Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Mon, 18 Oct 2021 11:12:36 +0800 Subject: [PATCH 006/409] adopt adoptium v3 API to download JDK 17 (#765) Signed-off-by: Yan Zhang --- src/java-runtime/assets/index.ts | 18 ++- src/java-runtime/assets/jdk.installation.tsx | 20 ++- src/java-runtime/index.ts | 11 +- src/java-runtime/utils/adoptiumApi.ts | 124 +++++++++++++++++++ 4 files changed, 148 insertions(+), 25 deletions(-) create mode 100644 src/java-runtime/utils/adoptiumApi.ts diff --git a/src/java-runtime/assets/index.ts b/src/java-runtime/assets/index.ts index 279473f5..3ca6a1d1 100644 --- a/src/java-runtime/assets/index.ts +++ b/src/java-runtime/assets/index.ts @@ -11,6 +11,7 @@ import { JdkInstallationPanel } from "./jdk.installation"; import { onWillListRuntimes, requestJdkInfo } from "./vscode.api"; import bytes = require("bytes"); import "./style.scss"; +import { AdoptiumAsset } from "../utils/adoptiumApi"; const onInitialize = (event: any) => { const { data } = event; @@ -44,16 +45,21 @@ function showJavaRuntimeEntries(args: any) { registerTabSwitchEvents(); } -function applyJdkInfo(jdkInfo: any) { - let binary = jdkInfo.binaries[0]; - let downloadLink = binary.installer_link || binary.binary_link; +// now use v3 API +function applyJdkInfo(jdkInfo?: AdoptiumAsset) { + let binary = jdkInfo?.binary?.installer || jdkInfo?.binary?.package; + if (jdkInfo === undefined || binary === undefined) { + return; + } + + let downloadLink = binary.link; let encodedLink = `command:java.helper.openUrl?${encodeURIComponent(JSON.stringify(downloadLink))}`; const jdkData = { name: jdkInfo.release_name, - os: binary.os, - arch: binary.architecture, - size: bytes(binary.binary_size, { unitSeparator: " " }), + os: jdkInfo.binary.os, + arch: jdkInfo.binary.architecture, + size: bytes(binary.size, { unitSeparator: " " }), downloadLink: encodedLink }; diff --git a/src/java-runtime/assets/jdk.installation.tsx b/src/java-runtime/assets/jdk.installation.tsx index f31538c1..b40865e3 100644 --- a/src/java-runtime/assets/jdk.installation.tsx +++ b/src/java-runtime/assets/jdk.installation.tsx @@ -38,7 +38,7 @@ export class JdkInstallationPanel extends React.Component
- +
- -
@@ -117,13 +117,7 @@ export class JdkInstallationPanel extends React.Component - -
- -
diff --git a/src/java-runtime/index.ts b/src/java-runtime/index.ts index 58428ab2..c9578c4d 100644 --- a/src/java-runtime/index.ts +++ b/src/java-runtime/index.ts @@ -3,7 +3,6 @@ import * as _ from "lodash"; import * as path from "path"; -import * as request from "request-promise-native"; import * as vscode from "vscode"; import { getExtensionContext, loadTextFromFile } from "../utils"; import { findJavaHomes, JavaRuntime } from "./utils/findJavaRuntime"; @@ -13,6 +12,7 @@ import { JavaRuntimeEntry, ProjectRuntimeEntry } from "./types"; import { sourceLevelDisplayName } from "./utils/misc"; import { ProjectType } from "../utils/webview"; import { getProjectNameFromUri, getProjectType } from "../utils/jdt"; +import { latestAssets } from "./utils/adoptiumApi"; let javaRuntimeView: vscode.WebviewPanel | undefined; let javaHomes: JavaRuntime[]; @@ -299,7 +299,7 @@ async function getRuntimeSpec(projectRootUri: string) { }; } -export async function suggestOpenJdk(jdkVersion: string = "openjdk11", impl: string = "hotspot") { +export async function suggestOpenJdk(jdkVersion: string = "openjdk17", impl: string = "hotspot") { let os: string = process.platform; if (os === "win32") { os = "windows"; @@ -314,8 +314,7 @@ export async function suggestOpenJdk(jdkVersion: string = "openjdk11", impl: str arch = "x32"; } - return await request.get({ - uri: `https://api.adoptopenjdk.net/v2/info/releases/${jdkVersion}?openjdk_impl=${impl}&arch=${arch}&os=${os}&type=jdk&release=latest`, - json: true - }); + const majorVersion = jdkVersion.replace(/^openjdk/, ""); + const assets = await latestAssets(majorVersion, impl); + return assets.find(a => a.binary.image_type === "jdk" && a.binary.architecture === arch && a.binary.os === os); } diff --git a/src/java-runtime/utils/adoptiumApi.ts b/src/java-runtime/utils/adoptiumApi.ts new file mode 100644 index 00000000..2cab7074 --- /dev/null +++ b/src/java-runtime/utils/adoptiumApi.ts @@ -0,0 +1,124 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import * as request from "request-promise-native"; + +/** + * + * @returns information about available releases + * + * Sample Response: + * { + * "available_lts_releases": [ + * 8, + * 11, + * 17 + * ], + * "available_releases": [ + * 8, + * 11, + * 16, + * 17 + * ], + * "most_recent_feature_release": 17, + * "most_recent_feature_version": 17, + * "most_recent_lts": 17, + * "tip_version": 18 + * } + */ +export async function availableReleases(): Promise { + const uri = "https://api.adoptium.net/v3/info/available_releases"; + const response = await request.get({ + uri, + json: true + }) + return response; +} + + +/** + * + * @returns list of latest assets for given feature version and jvm impl + * + * Sample Response: + * [ + * { + * "binary": { + * "architecture": "x64", + * "download_count": 15116, + * "heap_size": "normal", + * "image_type": "jdk", + * "installer": { + * "checksum": "a45c33691f0508a95ff291c88713088e060376e7b4e9cac03d083225b68d8f78", + * "checksum_link": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17%2B35/OpenJDK17-jdk_x64_mac_hotspot_17_35.pkg.sha256.txt", + * "download_count": 8857, + * "link": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17%2B35/OpenJDK17-jdk_x64_mac_hotspot_17_35.pkg", + * "metadata_link": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17%2B35/OpenJDK17-jdk_x64_mac_hotspot_17_35.pkg.json", + * "name": "OpenJDK17-jdk_x64_mac_hotspot_17_35.pkg", + * "size": 192821728 + * }, + * "jvm_impl": "hotspot", + * "os": "mac", + * "package": { + * "checksum": "e9de8b1b62780fe99270a5b30f0645d7a91eded60438bcf836a05fa7b93c182f", + * "checksum_link": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17%2B35/OpenJDK17-jdk_x64_mac_hotspot_17_35.tar.gz.sha256.txt", + * "download_count": 6259, + * "link": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17%2B35/OpenJDK17-jdk_x64_mac_hotspot_17_35.tar.gz", + * "metadata_link": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17%2B35/OpenJDK17-jdk_x64_mac_hotspot_17_35.tar.gz.json", + * "name": "OpenJDK17-jdk_x64_mac_hotspot_17_35.tar.gz", + * "size": 192417649 + * }, + * "project": "jdk", + * "scm_ref": "jdk-17+35_adopt", + * "updated_at": "2021-09-22T07:48:28Z" + * }, + * "release_name": "jdk-17+35", + * "vendor": "eclipse", + * "version": { + * "build": 35, + * "major": 17, + * "minor": 0, + * "openjdk_version": "17+35", + * "security": 0, + * "semver": "17.0.0+35" + * } + * }, + * ... + * ] + */ +export async function latestAssets(featureVersion: string, jvmImpl: string): Promise { + let uri = `https://api.adoptium.net/v3/assets/latest/${featureVersion}/${jvmImpl}`; + const response = await request.get({ + uri, + json: true, + // workaround: certificate expired, fixed in Electron v15.1.0 + // see: https://github.com/node-fetch/node-fetch/issues/568#issuecomment-932435180 + rejectUnauthorized: false + }) + return response; +} + + + +interface AdoptiumReleaseInfo { + available_lts_releases: number[]; + available_releases: number[]; +}; + +export interface AdoptiumAsset { + release_name: string; + binary: { + architecture: string; + os: string; + image_type: string; + installer?: AdoptiumFileMetadata; + package?: AdoptiumFileMetadata; + } +} + +export interface AdoptiumFileMetadata { + name: string; + link: string; + checksum: string; + size: number; +} From 4f5ed7bbc484f5dfbd0cff4e92ec2c4df6417e03 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Tue, 19 Oct 2021 15:27:47 +0800 Subject: [PATCH 007/409] upversion to 0.18.6 (#770) Signed-off-by: Yan Zhang --- CHANGELOG.md | 4 ++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9fbb939..ab32e27e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 0.18.6 +### Changed +- Adopt Adoptium API v3 to download JDK 17. [#765](https://github.com/microsoft/vscode-java-pack/pull/765) + ## 0.18.5 ### Fixed - Fix broken link: "Check out our blogs to see what's new". [#734](https://github.com/microsoft/vscode-java-pack/issues/734) diff --git a/package-lock.json b/package-lock.json index b6eb21c7..03f0aaf7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "vscode-java-pack", - "version": "0.18.5", + "version": "0.18.6", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "0.18.5", + "version": "0.18.6", "license": "MIT", "dependencies": { "@types/fs-extra": "^9.0.1", diff --git a/package.json b/package.json index 86caa036..9e0e628d 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "Extension Pack for Java", "description": "Popular extensions for Java development that provides Java IntelliSense, debugging, testing, Maven/Gradle support, project management and more", "license": "MIT", - "version": "0.18.5", + "version": "0.18.6", "publisher": "vscjava", "preview": true, "engines": { From 44b047e1a907e4531bfc57cdb00d285b5e161406 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 21 Oct 2021 09:46:54 +0800 Subject: [PATCH 008/409] update third party notices (#784) Signed-off-by: Yan Zhang --- .vscodeignore | 1 + ThirdPartyNotices.txt | 625 ++ package-lock.json | 9940 ++------------------------ package.json | 51 +- scripts/update-third-party-notice.js | 64 + 5 files changed, 1348 insertions(+), 9333 deletions(-) create mode 100644 ThirdPartyNotices.txt create mode 100644 scripts/update-third-party-notice.js diff --git a/.vscodeignore b/.vscodeignore index d27e7f6d..976334c0 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -14,3 +14,4 @@ webpack.config.js out/**/*.map out/assets/**/*.js *.vsix +scripts diff --git a/ThirdPartyNotices.txt b/ThirdPartyNotices.txt new file mode 100644 index 00000000..d8ea55fc --- /dev/null +++ b/ThirdPartyNotices.txt @@ -0,0 +1,625 @@ +THIRD-PARTY SOFTWARE NOTICES AND INFORMATION +For vscode-java-pack package + +This extension uses Open Source components. You can find the source code of their +open source projects along with the license information below. We acknowledge and +are grateful to these developers for their contribution to open source. + + +1. @iconify/react (https://github.com/iconify/iconify-react) +2. @reduxjs/toolkit (https://github.com/reduxjs/redux-toolkit) +3. axios (https://github.com/axios/axios) +4. arch (https://github.com/feross/arch) +5. bootstrap (https://github.com/twbs/bootstrap) +6. react (https://github.com/facebook/react) +7. react-bootstrap (https://github.com/react-bootstrap/react-bootstrap) +8. react-dom (https://github.com/facebook/react) +9. react-redux (https://github.com/reduxjs/react-redux) +10. request (https://github.com/request/request) +11. request-promise-native (https://github.com/request/request-promise-native) +12. minimatch (https://github.com/isaacs/minimatch) +13. lodash (https://github.com/lodash/lodash) +14. find-java-home (https://github.com/jsdevel/node-find-java-home) +15. jquery (https://github.com/jquery/jquery) +16. highlight.js (https://github.com/highlightjs/highlight.js) +17. expand-tilde (https://github.com/jonschlinkert/expand-tilde) +18. compare-versions (https://github.com/omichelsen/compare-versions) +19. fs-extra (https://github.com/jprichardson/node-fs-extra) +20. semver (https://github.com/npm/node-semver) +21. vscode-extension-telemetry-wrapper (https://github.com/Eskibear/vscode-extension-telemetry-wrapper) +22. xmldom (https://github.com/xmldom/xmldom) + +@iconify/react NOTICES BEGIN HERE +============================= +MIT License + +Copyright (c) 2019 Vjacheslav Trushkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +========================================= +END OF @iconify/react NOTICES AND INFORMATION + +@reduxjs/toolkit NOTICES BEGIN HERE +============================= +MIT License + +Copyright (c) 2018 Mark Erikson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +========================================= +END OF @reduxjs/toolkit NOTICES AND INFORMATION + +axios NOTICES BEGIN HERE +============================= +Copyright (c) 2014-present Matt Zabriskie + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +========================================= +END OF axios NOTICES AND INFORMATION + +arch NOTICES BEGIN HERE +============================= +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +========================================= +END OF arch NOTICES AND INFORMATION + +bootstrap NOTICES BEGIN HERE +============================= +The MIT License (MIT) + +Copyright (c) 2011-2020 Twitter, Inc. +Copyright (c) 2011-2020 The Bootstrap Authors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +========================================= +END OF bootstrap NOTICES AND INFORMATION + +react NOTICES BEGIN HERE +============================= +MIT License + +Copyright (c) Facebook, Inc. and its affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +========================================= +END OF react NOTICES AND INFORMATION + +react-bootstrap NOTICES BEGIN HERE +============================= +The MIT License (MIT) + +Copyright (c) 2014-present Stephen J. Collings, Matthew Honnibal, Pieter Vanderwerff + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +========================================= +END OF react-bootstrap NOTICES AND INFORMATION + +react-dom NOTICES BEGIN HERE +============================= +MIT License + +Copyright (c) Facebook, Inc. and its affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +========================================= +END OF react-dom NOTICES AND INFORMATION + +react-redux NOTICES BEGIN HERE +============================= +The MIT License (MIT) + +Copyright (c) 2015-present Dan Abramov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +========================================= +END OF react-redux NOTICES AND INFORMATION + +request NOTICES BEGIN HERE +============================= +Apache License + +Version 2.0, January 2004 + +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and + +You must cause any modified files to carry prominent notices stating that You changed the files; and + +You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + +If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS +========================================= +END OF request NOTICES AND INFORMATION + +request-promise-native NOTICES BEGIN HERE +============================= +ISC License + +Copyright (c) 2020, Nicolai Kamenzky and contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +========================================= +END OF request-promise-native NOTICES AND INFORMATION + +minimatch NOTICES BEGIN HERE +============================= +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +========================================= +END OF minimatch NOTICES AND INFORMATION + +lodash NOTICES BEGIN HERE +============================= +Copyright OpenJS Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. + +========================================= +END OF lodash NOTICES AND INFORMATION + +find-java-home NOTICES BEGIN HERE +============================= +Copyright 2013 Joseph Spencer. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +========================================= +END OF find-java-home NOTICES AND INFORMATION + +jquery NOTICES BEGIN HERE +============================= +Copyright JS Foundation and other contributors, https://js.foundation/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +========================================= +END OF jquery NOTICES AND INFORMATION + +highlight.js NOTICES BEGIN HERE +============================= +BSD 3-Clause License + +Copyright (c) 2006, Ivan Sagalaev. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +========================================= +END OF highlight.js NOTICES AND INFORMATION + +expand-tilde NOTICES BEGIN HERE +============================= +The MIT License (MIT) + +Copyright (c) 2015-2016, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +========================================= +END OF expand-tilde NOTICES AND INFORMATION + +compare-versions NOTICES BEGIN HERE +============================= +The MIT License (MIT) + +Copyright (c) 2015-2017 Ole Michelsen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +========================================= +END OF compare-versions NOTICES AND INFORMATION + +fs-extra NOTICES BEGIN HERE +============================= +(The MIT License) + +Copyright (c) 2011-2017 JP Richardson + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files +(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, + merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +========================================= +END OF fs-extra NOTICES AND INFORMATION + +semver NOTICES BEGIN HERE +============================= +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +========================================= +END OF semver NOTICES AND INFORMATION + +vscode-extension-telemetry-wrapper NOTICES BEGIN HERE +============================= +Copyright 2018 Yan Zhang + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +========================================= +END OF vscode-extension-telemetry-wrapper NOTICES AND INFORMATION + +xmldom NOTICES BEGIN HERE +============================= +Copyright 2019 - present Christopher J. Brody and other contributors, as listed in: https://github.com/xmldom/xmldom/graphs/contributors +Copyright 2012 - 2017 @jindw and other contributors, as listed in: https://github.com/jindw/xmldom/graphs/contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +========================================= +END OF xmldom NOTICES AND INFORMATION diff --git a/package-lock.json b/package-lock.json index 03f0aaf7..8abc7b4f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8669 +1,8 @@ { "name": "vscode-java-pack", "version": "0.18.6", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "version": "0.18.6", - "license": "MIT", - "dependencies": { - "@types/fs-extra": "^9.0.1", - "compare-versions": "^3.6.0", - "expand-home-dir": "0.0.3", - "fs-extra": "^9.0.1", - "semver": "^5.7.1", - "vscode-extension-telemetry-wrapper": "^0.9.0", - "winreg-utf8": "^0.1.1" - }, - "devDependencies": { - "@iconify-icons/codicon": "^1.1.8", - "@iconify/react": "^1.1.3", - "@reduxjs/toolkit": "^1.5.0", - "@types/bytes": "^3.1.0", - "@types/expand-tilde": "^2.0.0", - "@types/lodash": "^4.14.161", - "@types/minimatch": "^3.0.3", - "@types/node": "^8.10.63", - "@types/path-exists": "^3.0.0", - "@types/react": "^17.0.0", - "@types/react-dom": "^16.9.8", - "@types/react-redux": "^7.1.16", - "@types/request": "^2.48.5", - "@types/request-promise-native": "^1.0.17", - "@types/semver": "^5.5.0", - "@types/vscode": "1.52.0", - "@types/winreg": "^1.2.30", - "@types/xmldom": "^0.1.30", - "arch": "^2.1.2", - "autoprefixer": "^8.5.1", - "axios": "^0.21.2", - "bootstrap": "^4.5.2", - "bytes": "^3.1.0", - "css-loader": "^3.6.0", - "expand-tilde": "^2.0.2", - "file-loader": "^6.2.0", - "find-java-home": "^1.1.0", - "highlight.js": "10.5.0", - "html-webpack-inline-source-plugin": "0.0.10", - "html-webpack-plugin": "^3.2.0", - "jquery": "^3.5.1", - "lodash": "^4.17.21", - "minimatch": "^3.0.4", - "node-sass": "^4.14.1", - "path-exists": "^3.0.0", - "popper.js": "^1.16.1", - "postcss-loader": "^2.1.5", - "react": "^17.0.1", - "react-bootstrap": "^1.4.3", - "react-dom": "^17.0.1", - "react-redux": "^7.2.2", - "request": "^2.88.2", - "request-promise-native": "^1.0.9", - "sass-loader": "^7.3.1", - "style-loader": "^0.21.0", - "ts-loader": "^4.3.0", - "tslint": "^5.20.1", - "typescript": "^3.7.5", - "url-loader": "^4.1.1", - "vscode-tas-client": "^0.1.22", - "webpack": "^4.44.1", - "webpack-cli": "^3.3.12", - "xmldom": "^0.6.0" - }, - "engines": { - "vscode": "^1.52.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.12.13" - } - }, - "node_modules/@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 - }, - "node_modules/@babel/highlight": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@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==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, - "node_modules/@iconify-icons/codicon": { - "version": "1.1.8", - "resolved": "https://devdiv.pkgs.visualstudio.com/_packaging/CloudKernel/npm/registry/@iconify-icons/codicon/-/codicon-1.1.8.tgz", - "integrity": "sha1-chYidLCKt241LclUD7D2Xt61NsE=", - "dev": true - }, - "node_modules/@iconify/react": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@iconify/react/-/react-1.1.3.tgz", - "integrity": "sha512-ReZNJyr89AfED6XZIXkhsJiNv2taT3j1cTo1HVPHMsrKOz6gAYdXtD2kDWF6+GVoFUxpmnO0fMcA6yCyTf6Tow==", - "dev": true, - "peerDependencies": { - "react": "^16.0.0" - } - }, - "node_modules/@popperjs/core": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.6.0.tgz", - "integrity": "sha512-cPqjjzuFWNK3BSKLm0abspP0sp/IGOli4p5I5fKFAzdS8fvjdOwDCfZqAaIiXd9lPkOWi3SUUfZof3hEb7J/uw==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@reduxjs/toolkit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.5.0.tgz", - "integrity": "sha512-E/FUraRx+8guw9Hlg/Ja8jI/hwCrmIKed8Annt9YsZw3BQp+F24t5I5b2OWR6pkEHY4hn1BgP08FrTZFRKsdaQ==", - "dev": true, - "dependencies": { - "immer": "^8.0.0", - "redux": "^4.0.0", - "redux-thunk": "^2.3.0", - "reselect": "^4.0.0" - } - }, - "node_modules/@restart/context": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", - "integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==", - "dev": true, - "peerDependencies": { - "react": ">=16.3.2" - } - }, - "node_modules/@restart/hooks": { - "version": "0.3.26", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.26.tgz", - "integrity": "sha512-7Hwk2ZMYm+JLWcb7R9qIXk1OoUg1Z+saKWqZXlrvFwT3w6UArVNWgxYOzf+PJoK9zZejp8okPAKTctthhXLt5g==", - "dev": true, - "dependencies": { - "lodash": "^4.17.20", - "lodash-es": "^4.17.20" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@types/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-5YG1AiIC8HPPXRvYAIa7ehK3YMAwd0DWiPCtpuL9sgKceWLyWsVtLRA+lT4NkoanDNF9slwQ66lPizWDpgRlWA==", - "dev": true - }, - "node_modules/@types/caseless": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz", - "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==", - "dev": true - }, - "node_modules/@types/classnames": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.11.tgz", - "integrity": "sha512-2koNhpWm3DgWRp5tpkiJ8JGc1xTn2q0l+jUNUE7oMKXUf5NpI9AIdC4kbjGNFBdHtcxBD18LAksoudAVhFKCjw==", - "dev": true - }, - "node_modules/@types/expand-tilde": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/expand-tilde/-/expand-tilde-2.0.0.tgz", - "integrity": "sha512-17h/6MRHoetV2QVUVnUfrmaFCXNIFJ3uDJmXlklX2xDtlEb1W0OXLgP+qwND2Ibg/PtQfQi0vx19KGuPayjLiw==", - "dev": true - }, - "node_modules/@types/fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", - "dev": true, - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "node_modules/@types/invariant": { - "version": "2.2.34", - "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.34.tgz", - "integrity": "sha512-lYUtmJ9BqUN688fGY1U1HZoWT1/Jrmgigx2loq4ZcJpICECm/Om3V314BxdzypO0u5PORKGMM6x0OXaljV1YFg==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", - "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==", - "dev": true - }, - "node_modules/@types/lodash": { - "version": "4.14.161", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.161.tgz", - "integrity": "sha512-EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "3.0.3", - "resolved": "https://devdiv.pkgs.visualstudio.com/_packaging/CloudKernel/npm/registry/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=", - "dev": true - }, - "node_modules/@types/node": { - "version": "8.10.63", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.63.tgz", - "integrity": "sha512-g+nSkeHFDd2WOQChfmy9SAXLywT47WZBrGS/NC5ym5PJ8c8RC6l4pbGaUW/X0+eZJnXw6/AVNEouXWhV4iz72Q==" - }, - "node_modules/@types/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-ApUp/Eo/D4lQ/8yI+dlNVz1LslAdvycBbKmsr77sw2Ovymyj0nYowS+xuTChzfGdnEdcqBTPM2OtKmvTFKIXPA==", - "dev": true - }, - "node_modules/@types/prop-types": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", - "dev": true - }, - "node_modules/@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, - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "16.9.8", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.8.tgz", - "integrity": "sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-redux": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.16.tgz", - "integrity": "sha512-f/FKzIrZwZk7YEO9E1yoxIuDNRiDducxkFlkw/GNMGEnK9n4K8wJzlJBghpSuOVDgEUHoDkDF7Gi9lHNQR4siw==", - "dev": true, - "dependencies": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" - } - }, - "node_modules/@types/react-transition-group": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.0.tgz", - "integrity": "sha512-/QfLHGpu+2fQOqQaXh8MG9q03bFENooTb/it4jr5kKaZlDQfWvjqWZg48AwzPVMBHlRuTRAY7hRHCEOXz5kV6w==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/request": { - "version": "2.48.5", - "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.5.tgz", - "integrity": "sha512-/LO7xRVnL3DxJ1WkPGDQrp4VTV1reX9RkC85mJ+Qzykj2Bdw+mG15aAfDahc76HtknjzE16SX/Yddn6MxVbmGQ==", - "dev": true, - "dependencies": { - "@types/caseless": "*", - "@types/node": "*", - "@types/tough-cookie": "*", - "form-data": "^2.5.0" - } - }, - "node_modules/@types/request-promise-native": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/@types/request-promise-native/-/request-promise-native-1.0.17.tgz", - "integrity": "sha512-05/d0WbmuwjtGMYEdHIBZ0tqMJJQ2AD9LG2F6rKNBGX1SSFR27XveajH//2N/XYtual8T9Axwl+4v7oBtPUZqg==", - "dev": true, - "dependencies": { - "@types/request": "*" - } - }, - "node_modules/@types/request/node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/@types/semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", - "dev": true - }, - "node_modules/@types/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A==", - "dev": true - }, - "node_modules/@types/vscode": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.52.0.tgz", - "integrity": "sha512-Kt3bvWzAvvF/WH9YEcrCICDp0Z7aHhJGhLJ1BxeyNP6yRjonWqWnAIh35/pXAjswAnWOABrYlF7SwXR9+1nnLA==", - "dev": true - }, - "node_modules/@types/warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=", - "dev": true - }, - "node_modules/@types/winreg": { - "version": "1.2.30", - "resolved": "https://registry.npmjs.org/@types/winreg/-/winreg-1.2.30.tgz", - "integrity": "sha1-kdZxDlNtNFucmwF8V0z2qNpkxRg=", - "dev": true - }, - "node_modules/@types/xmldom": { - "version": "0.1.30", - "resolved": "https://registry.npmjs.org/@types/xmldom/-/xmldom-0.1.30.tgz", - "integrity": "sha512-edqgAFXMEtVvaBZ3YnhamvmrHjoYpuxETmnb0lbTZmf/dXpAsO9ZKotUO4K2rn2SIZBDFCMOuA7fOe0H6dRZcA==", - "dev": true - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dev": true, - "dependencies": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ajv": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", - "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true, - "peerDependencies": { - "ajv": ">=5.0.0" - } - }, - "node_modules/ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true, - "peerDependencies": { - "ajv": "^6.0.0" - } - }, - "node_modules/amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true, - "engines": { - "node": ">=0.4.2" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "optional": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/applicationinsights": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/applicationinsights/-/applicationinsights-1.7.4.tgz", - "integrity": "sha512-XFLsNlcanpjFhHNvVWEfcm6hr7lu9znnb6Le1Lk5RE03YUV9X2B2n2MfM4kJZRrUdV+C0hdHxvWyv+vWoLfY7A==", - "dependencies": { - "cls-hooked": "^4.2.2", - "continuation-local-storage": "^3.2.1", - "diagnostic-channel": "0.2.0", - "diagnostic-channel-publishers": "^0.3.3" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "node_modules/arch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.2.tgz", - "integrity": "sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true, - "optional": true - }, - "node_modules/async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/async-hook-jl": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/async-hook-jl/-/async-hook-jl-1.7.6.tgz", - "integrity": "sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==", - "dependencies": { - "stack-chain": "^1.3.7" - }, - "engines": { - "node": "^4.7 || >=6.9 || >=7.3" - } - }, - "node_modules/async-listener": { - "version": "0.6.10", - "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz", - "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==", - "dependencies": { - "semver": "^5.3.0", - "shimmer": "^1.1.0" - }, - "engines": { - "node": "<=0.11.8 || >0.11.10" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "8.6.5", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.6.5.tgz", - "integrity": "sha512-PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig==", - "dev": true, - "dependencies": { - "browserslist": "^3.2.8", - "caniuse-lite": "^1.0.30000864", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^6.0.23", - "postcss-value-parser": "^3.2.3" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", - "dev": true - }, - "node_modules/axios": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.2.tgz", - "integrity": "sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "dependencies": { - "inherits": "~2.0.0" - }, - "engines": { - "node": "0.4 || >=0.5.8" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", - "dev": true - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "node_modules/bootstrap": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.2.tgz", - "integrity": "sha512-vlGn0bcySYl/iV+BGA544JkkZP5LB3jsmkeKLFQakCOwCM3AOk7VkldBz4jrzSe+Z0Ezn99NVXa1o45cQY4R6A==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - }, - "peerDependencies": { - "jquery": "1.9.1 - 3", - "popper.js": "^1.16.1" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "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" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.0.1", - "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-rsa/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "dependencies": { - "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" - } - }, - "node_modules/browserify-sign/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/browserify-sign/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - }, - "bin": { - "browserslist": "cli.js" - } - }, - "node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "dependencies": { - "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" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/cacache/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/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, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "dependencies": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30000907", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000907.tgz", - "integrity": "sha512-No5sQ/OB2Nmka8MNOOM6nJx+Hxt6MQ6h7t7kgJFu9oTuwjykyKRSBP/+i/QAyFHxeHB+ddE0Da1CG5ihx9oehQ==", - "dev": true - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", - "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", - "dev": true, - "optional": true, - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.1.2" - } - }, - "node_modules/chokidar/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/chokidar/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==", - "dev": true - }, - "node_modules/clean-css": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", - "dev": true, - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/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, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cls-hooked": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/cls-hooked/-/cls-hooked-4.2.2.tgz", - "integrity": "sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw==", - "dependencies": { - "async-hook-jl": "^1.7.6", - "emitter-listener": "^1.0.1", - "semver": "^5.4.1" - }, - "engines": { - "node": "^4.7 || >=6.9 || >=7.3 || >=8.2.1" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==" - }, - "node_modules/component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "node_modules/continuation-local-storage": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz", - "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==", - "dependencies": { - "async-listener": "^0.6.0", - "emitter-listener": "^1.1.1" - } - }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "dependencies": { - "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" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", - "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", - "dev": true, - "dependencies": { - "is-directory": "^0.3.1", - "js-yaml": "^3.9.0", - "parse-json": "^4.0.0", - "require-from-string": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cosmiconfig/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "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" - } - }, - "node_modules/cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "dependencies": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": "*" - } - }, - "node_modules/css-loader": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", - "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "cssesc": "^3.0.0", - "icss-utils": "^4.1.1", - "loader-utils": "^1.2.3", - "normalize-path": "^3.0.0", - "postcss": "^7.0.32", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.2", - "postcss-modules-scope": "^2.2.0", - "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^2.7.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/css-loader/node_modules/ajv": { - "version": "6.12.4", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", - "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/css-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/css-loader/node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/css-loader/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-loader/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-loader/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/css-loader/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/css-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/css-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/css-loader/node_modules/postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/css-loader/node_modules/postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "node_modules/css-loader/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/css-loader/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/css-loader/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", - "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==", - "dev": true - }, - "node_modules/currently-unhandled": { - "version": "0.4.1", - "resolved": "https://mseng.pkgs.visualstudio.com/DefaultCollection/_packaging/85c70207-5d33-4063-9f7f-3eb497df4d33/npm/registry/currently-unhandled/upstream/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "dependencies": { - "array-find-index": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/diagnostic-channel": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz", - "integrity": "sha1-zJmvlhLCP7H/8TYSxy8sv6qNWhc=", - "dependencies": { - "semver": "^5.3.0" - } - }, - "node_modules/diagnostic-channel-publishers": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.3.5.tgz", - "integrity": "sha512-AOIjw4T7Nxl0G2BoBPhkQ6i7T4bUd9+xvdYizwvG7vVAM1dvr+SDrcUudlmzwH0kbEwdR2V1EcnKT0wAeYLQNQ==", - "peerDependencies": { - "diagnostic-channel": "*" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-helpers": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", - "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", - "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", - "dev": true, - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", - "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", - "dev": true, - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.3.84", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.84.tgz", - "integrity": "sha512-IYhbzJYOopiTaNWMBp7RjbecUBsbnbDneOP86f3qvS0G0xfzwNSvMJpTrvi5/Y1gU7tg2NAgeg8a8rCYvW9Whw==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/elliptic/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/emitter-listener": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz", - "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==", - "dependencies": { - "shimmer": "^1.2.0" - } - }, - "node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/enhanced-resolve/node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "dependencies": { - "estraverse": "^4.1.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-home-dir": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/expand-home-dir/-/expand-home-dir-0.0.3.tgz", - "integrity": "sha1-ct6KBIbMKKO71wRjU5iCW1tign0=" - }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-loader/node_modules/@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==", - "dev": true - }, - "node_modules/file-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/file-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/file-loader/node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/file-loader/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/file-loader/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/file-loader/node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/file-loader/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-java-home": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-java-home/-/find-java-home-1.1.0.tgz", - "integrity": "sha512-bSTCKNZ193UM/+ZZoNDzICAEHcVywovkhsWCkZALjCvRXQ+zXTe/XATrrP4CpxkaP6YFhQJOpyRpH0P2U/woDA==", - "dev": true, - "dependencies": { - "which": "~1.0.5", - "winreg": "~1.2.2" - } - }, - "node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/find-up/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/follow-redirects": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.3.tgz", - "integrity": "sha512-3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/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==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs-extra/node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, - "node_modules/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, - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "deprecated": "\"Please update to latest v2.3 or v2.2\"", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "dependencies": { - "globule": "^1.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "optional": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-modules/node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-modules/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globule": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz", - "integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==", - "dev": true, - "dependencies": { - "glob": "~7.1.1", - "lodash": "~4.17.12", - "minimatch": "~3.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "devOptional": true - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/hash-base/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/highlight.js": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.5.0.tgz", - "integrity": "sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dev": true, - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", - "dev": true, - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/html-minifier": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", - "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", - "dev": true, - "dependencies": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - }, - "bin": { - "html-minifier": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/html-webpack-inline-source-plugin": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/html-webpack-inline-source-plugin/-/html-webpack-inline-source-plugin-0.0.10.tgz", - "integrity": "sha512-0ZNU57u7283vrXSF5a4VDnVOMWiSwypKIp1z/XfXWoVHLA1r3Xmyxx5+Lz+mnthz/UvxL1OAf41w5UIF68Jngw==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5", - "slash": "^1.0.0", - "source-map-url": "^0.4.0" - } - }, - "node_modules/html-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", - "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", - "deprecated": "3.x is no longer supported", - "dev": true, - "dependencies": { - "html-minifier": "^3.2.3", - "loader-utils": "^0.2.16", - "lodash": "^4.17.3", - "pretty-error": "^2.0.2", - "tapable": "^1.0.0", - "toposort": "^1.0.0", - "util.promisify": "1.0.0" - }, - "engines": { - "node": ">=6.9" - }, - "peerDependencies": { - "webpack": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/html-webpack-plugin/node_modules/loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "dependencies": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "node_modules/icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.14" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/icss-utils/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/icss-utils/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/icss-utils/node_modules/postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/icss-utils/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "node_modules/immer": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/immer/-/immer-8.0.1.tgz", - "integrity": "sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "dependencies": { - "import-from": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "dependencies": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/in-publish": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", - "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", - "dev": true, - "bin": { - "in-install": "in-install.js", - "in-publish": "in-publish.js", - "not-in-install": "not-in-install.js", - "not-in-publish": "not-in-publish.js" - } - }, - "node_modules/indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "dev": true, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "dependencies": { - "has": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "node_modules/jquery": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==", - "dev": true - }, - "node_modules/js-base64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz", - "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "node_modules/json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/jsonfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", - "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", - "dependencies": { - "universalify": "^1.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "dependencies": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash-es": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.20.tgz", - "integrity": "sha512-JD1COMZsq8maT6mnuz1UMV0jvYD0E0aUsSOdrr1/nAG3dhqQXwRRgeW0cSqH1U43INKcqxaiVIQNOUDld7gRDA==", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/loud-rejection": { - "version": "1.6.0", - "resolved": "https://mseng.pkgs.visualstudio.com/DefaultCollection/_packaging/85c70207-5d33-4063-9f7f-3eb497df4d33/npm/registry/loud-rejection/upstream/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "dependencies": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true - }, - "node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "dependencies": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/mime-db": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", - "dev": true, - "dependencies": { - "mime-db": "~1.38.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://devdiv.pkgs.visualstudio.com/_packaging/CloudKernel/npm/registry/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", - "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "dependencies": { - "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" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", - "dev": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.1" - } - }, - "node_modules/node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "dependencies": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/node-gyp/node_modules/semver": { - "version": "5.3.0", - "resolved": "https://mseng.pkgs.visualstudio.com/_packaging/85c70207-5d33-4063-9f7f-3eb497df4d33/npm/registry/semver/upstream/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "node_modules/node-libs-browser/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/node-libs-browser/node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/node-sass": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", - "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash": "^4.17.15", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.13.2", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "2.2.5", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "bin": { - "node-sass": "bin/node-sass" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-sass/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-sass/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-sass/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/nth-check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", - "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "dependencies": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "dev": true, - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "node_modules/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 - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", - "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-load-config": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", - "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", - "dev": true, - "dependencies": { - "cosmiconfig": "^4.0.0", - "import-cwd": "^2.0.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/postcss-loader": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz", - "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0", - "postcss": "^6.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^0.4.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-extract-imports/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-extract-imports/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-extract-imports/node_modules/postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-modules-extract-imports/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", - "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", - "dev": true, - "dependencies": { - "icss-utils": "^4.1.1", - "postcss": "^7.0.32", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "node_modules/postcss-modules-local-by-default/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-scope/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-scope/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-scope/node_modules/postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-modules-scope/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-modules-values": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", - "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", - "dev": true, - "dependencies": { - "icss-utils": "^4.0.0", - "postcss": "^7.0.6" - } - }, - "node_modules/postcss-modules-values/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-values/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-values/node_modules/postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-modules-values/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", - "dev": true, - "dependencies": { - "renderkid": "^2.0.1", - "utila": "~0.4" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dev": true, - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "node_modules/prop-types-extra": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", - "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", - "dev": true, - "dependencies": { - "react-is": "^16.3.2", - "warning": "^4.0.0" - }, - "peerDependencies": { - "react": ">=0.14.0" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "node_modules/psl": { - "version": "1.1.31", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "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" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/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, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/react": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", - "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", - "dev": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-bootstrap": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.4.3.tgz", - "integrity": "sha512-4tYhk26KRnK0myMEp2wvNjOvnHMwWfa6pWFIiCtj9wewYaTxP7TrCf7MwcIMBgUzyX0SJXx6UbbDG0+hObiXNg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.4.2", - "@restart/context": "^2.1.4", - "@restart/hooks": "^0.3.21", - "@types/classnames": "^2.2.10", - "@types/invariant": "^2.2.33", - "@types/prop-types": "^15.7.3", - "@types/react": ">=16.9.35", - "@types/react-transition-group": "^4.4.0", - "@types/warning": "^3.0.0", - "classnames": "^2.2.6", - "dom-helpers": "^5.1.2", - "invariant": "^2.2.4", - "prop-types": "^15.7.2", - "prop-types-extra": "^1.1.0", - "react-overlays": "^4.1.0", - "react-transition-group": "^4.4.1", - "uncontrollable": "^7.0.0", - "warning": "^4.0.3" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/react-dom": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz", - "integrity": "sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==", - "dev": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.1" - }, - "peerDependencies": { - "react": "17.0.1" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", - "dev": true - }, - "node_modules/react-overlays": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-4.1.1.tgz", - "integrity": "sha512-WtJifh081e6M24KnvTQoNjQEpz7HoLxqt8TwZM7LOYIkYJ8i/Ly1Xi7RVte87ZVnmqQ4PFaFiNHZhSINPSpdBQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.12.1", - "@popperjs/core": "^2.5.3", - "@restart/hooks": "^0.3.25", - "@types/warning": "^3.0.0", - "dom-helpers": "^5.2.0", - "prop-types": "^15.7.2", - "uncontrollable": "^7.0.0", - "warning": "^4.0.3" - }, - "peerDependencies": { - "react": ">=16.3.0", - "react-dom": ">=16.3.0" - } - }, - "node_modules/react-redux": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.2.tgz", - "integrity": "sha512-8+CQ1EvIVFkYL/vu6Olo7JFLWop1qRUeb46sGtIMDCSpgwPQq8fPLpirIB0iTqFe9XYEFPHssdX8/UwN6pAkEA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.12.1", - "hoist-non-react-statics": "^3.3.2", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-is": "^16.13.1" - }, - "peerDependencies": { - "react": "^16.8.3 || ^17", - "redux": "^2.0.0 || ^3.0.0 || ^4.0.0-0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/react-transition-group": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", - "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", - "dev": true, - "optional": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redux": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", - "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", - "dev": true, - "dependencies": { - "loose-envify": "^1.4.0", - "symbol-observable": "^1.2.0" - } - }, - "node_modules/redux-thunk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", - "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==", - "dev": true - }, - "node_modules/regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true, - "optional": true - }, - "node_modules/renderkid": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", - "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", - "dev": true, - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" - } - }, - "node_modules/repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "dependencies": { - "is-finite": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.19" - }, - "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "request": "^2.34" - } - }, - "node_modules/request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, - "engines": { - "node": ">=0.12.0" - }, - "peerDependencies": { - "request": "^2.34" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/reselect": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.0.0.tgz", - "integrity": "sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz", - "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==", - "dev": true, - "dependencies": { - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-dir/node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sass-graph": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", - "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^13.3.2" - }, - "bin": { - "sassgraph": "bin/sassgraph" - } - }, - "node_modules/sass-loader": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.3.1.tgz", - "integrity": "sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.0.1", - "neo-async": "^2.5.0", - "pify": "^4.0.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^3.0.0 || ^4.0.0" - } - }, - "node_modules/sass-loader/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/sass-loader/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/scheduler": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.1.tgz", - "integrity": "sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==", - "dev": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "dependencies": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - } - }, - "node_modules/scss-tokenizer/node_modules/source-map": { - "version": "0.4.4", - "resolved": "https://mseng.pkgs.visualstudio.com/DefaultCollection/_packaging/85c70207-5d33-4063-9f7f-3eb497df4d33/npm/registry/source-map/upstream/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/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, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "node_modules/signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "node_modules/slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "dependencies": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "node_modules/spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/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 - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", - "dev": true - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/stack-chain": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/stack-chain/-/stack-chain-1.3.7.tgz", - "integrity": "sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU=" - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.1" - } - }, - "node_modules/stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/style-loader": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.21.0.tgz", - "integrity": "sha512-T+UNsAcl3Yg+BsPKs1vd22Fr8sVT+CJMtzqc6LEw9bbJZb43lm9GoeIfUcDEefBSWC0BhYbcdupV1GtI4DGzxg==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0", - "schema-utils": "^0.4.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "dev": true, - "dependencies": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } - }, - "node_modules/tas-client": { - "version": "0.1.21", - "resolved": "https://registry.npmjs.org/tas-client/-/tas-client-0.1.21.tgz", - "integrity": "sha512-7UuIwOXarCYoCTrQHY5n7M+63XuwMC0sVUdbPQzxqDB9wMjIW0JF39dnp3yoJnxr4jJUVhPtvkkXZbAD0BxCcA==", - "dev": true, - "dependencies": { - "axios": "^0.21.1" - } - }, - "node_modules/terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "dev": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/toposort": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", - "dev": true - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "dev": true, - "dependencies": { - "glob": "^7.1.2" - } - }, - "node_modules/ts-loader": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-4.5.0.tgz", - "integrity": "sha512-ihgVaSmgrX4crGV4n7yuoHPoCHbDzj9aepCZR9TgIx4SgJ9gdnB6xLHgUBb7bsFM/f0K6x9iXa65KY/Fu1Klkw==", - "dev": true, - "dependencies": { - "chalk": "^2.3.0", - "enhanced-resolve": "^4.0.0", - "loader-utils": "^1.0.2", - "micromatch": "^3.1.4", - "semver": "^5.0.1" - }, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", - "dev": true - }, - "node_modules/tslint": { - "version": "5.20.1", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", - "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.29.0" - }, - "bin": { - "tslint": "bin/tslint" - }, - "engines": { - "node": ">=4.8.0" - }, - "peerDependencies": { - "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev" - } - }, - "node_modules/tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "peerDependencies": { - "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" - } - }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "node_modules/typescript": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", - "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uglify-js": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", - "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", - "dev": true, - "dependencies": { - "commander": "~2.17.1", - "source-map": "~0.6.1" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/uncontrollable": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.1.1.tgz", - "integrity": "sha512-EcPYhot3uWTS3w00R32R2+vS8Vr53tttrvMj/yA1uYRhf8hbTG2GyugGqWDY0qIskxn0uTTojVd6wPYW9ZEf8Q==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.6.3", - "@types/react": "^16.9.11", - "invariant": "^2.2.4", - "react-lifecycles-compat": "^3.0.4" - }, - "peerDependencies": { - "react": ">=15.0.0" - } - }, - "node_modules/uncontrollable/node_modules/@types/react": { - "version": "16.14.2", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.2.tgz", - "integrity": "sha512-BzzcAlyDxXl2nANlabtT4thtvbbnhee8hMmH/CcJrISDBVcJS1iOsP1f0OAgSdGE0MsY9tqcrb9YoZcOFv9dbQ==", - "dev": true, - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", - "dev": true - }, - "node_modules/uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "file-loader": "*", - "webpack": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "file-loader": { - "optional": true - } - } - }, - "node_modules/url-loader/node_modules/@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", - "dev": true - }, - "node_modules/url-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/url-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/url-loader/node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/url-loader/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/url-loader/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/url-loader/node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/url-loader/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/url-loader/node_modules/mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/url-loader/node_modules/mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", - "dev": true, - "dependencies": { - "mime-db": "1.45.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/url-loader/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true - }, - "node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", - "dev": true - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "node_modules/vscode-extension-telemetry": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/vscode-extension-telemetry/-/vscode-extension-telemetry-0.1.6.tgz", - "integrity": "sha512-rbzSg7k4NnsCdF4Lz0gI4jl3JLXR0hnlmfFgsY8CSDYhXgdoIxcre8jw5rjkobY0xhSDhbG7xCjP8zxskySJ/g==", - "dependencies": { - "applicationinsights": "1.7.4" - }, - "engines": { - "vscode": "^1.5.0" - } - }, - "node_modules/vscode-extension-telemetry-wrapper": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/vscode-extension-telemetry-wrapper/-/vscode-extension-telemetry-wrapper-0.9.0.tgz", - "integrity": "sha512-QQvCn40hryS1U0Vob/fxqDX+kc7oYn+viiYpq0QOMp7q6aNaFFmjL9Wv5QfBIC/h2Jb083LFF0Xz38hhX8nCVQ==", - "dependencies": { - "uuid": "^3.4.0", - "vscode-extension-telemetry": "^0.1.6" - }, - "engines": { - "vscode": "^1.14.0" - } - }, - "node_modules/vscode-extension-telemetry-wrapper/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/vscode-tas-client": { - "version": "0.1.22", - "resolved": "https://registry.npmjs.org/vscode-tas-client/-/vscode-tas-client-0.1.22.tgz", - "integrity": "sha512-1sYH73nhiSRVQgfZkLQNJW7VzhKM9qNbCe8QyXgiKkLhH4GflDXRPAK4yy4P41jUgula+Fc9G7i5imj1dlKfaw==", - "dev": true, - "dependencies": { - "tas-client": "0.1.21" - }, - "engines": { - "vscode": "^1.19.1" - } - }, - "node_modules/warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "optionalDependencies": { - "chokidar": "^3.4.1", - "watchpack-chokidar2": "^2.0.1" - } - }, - "node_modules/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, - "dependencies": { - "chokidar": "^2.1.8" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", - "dev": true, - "optional": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "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" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "optional": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/webpack": { - "version": "4.46.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", - "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.5.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" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - }, - "webpack-command": { - "optional": true - } - } - }, - "node_modules/webpack-cli": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", - "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.1", - "findup-sync": "^3.0.0", - "global-modules": "^2.0.0", - "import-local": "^2.0.0", - "interpret": "^1.4.0", - "loader-utils": "^1.4.0", - "supports-color": "^6.1.0", - "v8-compile-cache": "^2.1.1", - "yargs": "^13.3.2" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=6.11.5" - }, - "peerDependencies": { - "webpack": "4.x.x" - } - }, - "node_modules/webpack-cli/node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/webpack-cli/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/webpack-cli/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/webpack-cli/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/webpack-cli/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webpack-cli/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.4", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", - "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/webpack/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/webpack/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/webpack/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/webpack/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/which": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", - "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=", - "dev": true, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/winreg": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/winreg/-/winreg-1.2.4.tgz", - "integrity": "sha1-ugZWKbepJRMOFXeRCM9UCZDpjRs=", - "dev": true - }, - "node_modules/winreg-utf8": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/winreg-utf8/-/winreg-utf8-0.1.1.tgz", - "integrity": "sha512-A4tBCO0bx3FCA/s8RowK40h3BQhKOWRFmsn6gYrXj6WjRAbOGnNJkTOpVmtA82UeGNMtpn3Wr0TWb742C1AS+g==" - }, - "node_modules/worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/xmldom": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz", - "integrity": "sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - } - }, "dependencies": { "@babel/code-frame": { "version": "7.12.13", @@ -8695,7 +34,6 @@ "version": "7.12.5", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", - "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } @@ -8703,30 +41,25 @@ "@iconify-icons/codicon": { "version": "1.1.8", "resolved": "https://devdiv.pkgs.visualstudio.com/_packaging/CloudKernel/npm/registry/@iconify-icons/codicon/-/codicon-1.1.8.tgz", - "integrity": "sha1-chYidLCKt241LclUD7D2Xt61NsE=", - "dev": true + "integrity": "sha1-chYidLCKt241LclUD7D2Xt61NsE=" }, "@iconify/react": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@iconify/react/-/react-1.1.3.tgz", - "integrity": "sha512-ReZNJyr89AfED6XZIXkhsJiNv2taT3j1cTo1HVPHMsrKOz6gAYdXtD2kDWF6+GVoFUxpmnO0fMcA6yCyTf6Tow==", - "dev": true, - "requires": {} + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@iconify/react/-/react-1.1.4.tgz", + "integrity": "sha512-oxq8IMOq8q3nKGiDHbQPC8FcFuBsKve68JWBo140d5LRnj0bv5TB/FE/y01ZSvEZ7PlI2HIrnb2qivPN8kTDgw==" }, "@popperjs/core": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.6.0.tgz", - "integrity": "sha512-cPqjjzuFWNK3BSKLm0abspP0sp/IGOli4p5I5fKFAzdS8fvjdOwDCfZqAaIiXd9lPkOWi3SUUfZof3hEb7J/uw==", - "dev": true + "integrity": "sha512-cPqjjzuFWNK3BSKLm0abspP0sp/IGOli4p5I5fKFAzdS8fvjdOwDCfZqAaIiXd9lPkOWi3SUUfZof3hEb7J/uw==" }, "@reduxjs/toolkit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.5.0.tgz", - "integrity": "sha512-E/FUraRx+8guw9Hlg/Ja8jI/hwCrmIKed8Annt9YsZw3BQp+F24t5I5b2OWR6pkEHY4hn1BgP08FrTZFRKsdaQ==", - "dev": true, + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.6.2.tgz", + "integrity": "sha512-HbfI/hOVrAcMGAYsMWxw3UJyIoAS9JTdwddsjlr5w3S50tXhWb+EMyhIw+IAvCVCLETkzdjgH91RjDSYZekVBA==", "requires": { - "immer": "^8.0.0", - "redux": "^4.0.0", + "immer": "^9.0.6", + "redux": "^4.1.0", "redux-thunk": "^2.3.0", "reselect": "^4.0.0" } @@ -8734,15 +67,12 @@ "@restart/context": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", - "integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==", - "dev": true, - "requires": {} + "integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==" }, "@restart/hooks": { "version": "0.3.26", "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.26.tgz", "integrity": "sha512-7Hwk2ZMYm+JLWcb7R9qIXk1OoUg1Z+saKWqZXlrvFwT3w6UArVNWgxYOzf+PJoK9zZejp8okPAKTctthhXLt5g==", - "dev": true, "requires": { "lodash": "^4.17.20", "lodash-es": "^4.17.20" @@ -8763,8 +93,7 @@ "@types/classnames": { "version": "2.2.11", "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.11.tgz", - "integrity": "sha512-2koNhpWm3DgWRp5tpkiJ8JGc1xTn2q0l+jUNUE7oMKXUf5NpI9AIdC4kbjGNFBdHtcxBD18LAksoudAVhFKCjw==", - "dev": true + "integrity": "sha512-2koNhpWm3DgWRp5tpkiJ8JGc1xTn2q0l+jUNUE7oMKXUf5NpI9AIdC4kbjGNFBdHtcxBD18LAksoudAVhFKCjw==" }, "@types/expand-tilde": { "version": "2.0.0", @@ -8776,6 +105,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.1.tgz", "integrity": "sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg==", + "dev": true, "requires": { "@types/node": "*" } @@ -8793,13 +123,12 @@ "@types/invariant": { "version": "2.2.34", "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.34.tgz", - "integrity": "sha512-lYUtmJ9BqUN688fGY1U1HZoWT1/Jrmgigx2loq4ZcJpICECm/Om3V314BxdzypO0u5PORKGMM6x0OXaljV1YFg==", - "dev": true + "integrity": "sha512-lYUtmJ9BqUN688fGY1U1HZoWT1/Jrmgigx2loq4ZcJpICECm/Om3V314BxdzypO0u5PORKGMM6x0OXaljV1YFg==" }, "@types/json-schema": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", - "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, "@types/lodash": { @@ -8817,7 +146,8 @@ "@types/node": { "version": "8.10.63", "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.63.tgz", - "integrity": "sha512-g+nSkeHFDd2WOQChfmy9SAXLywT47WZBrGS/NC5ym5PJ8c8RC6l4pbGaUW/X0+eZJnXw6/AVNEouXWhV4iz72Q==" + "integrity": "sha512-g+nSkeHFDd2WOQChfmy9SAXLywT47WZBrGS/NC5ym5PJ8c8RC6l4pbGaUW/X0+eZJnXw6/AVNEouXWhV4iz72Q==", + "dev": true }, "@types/path-exists": { "version": "3.0.0", @@ -8828,14 +158,12 @@ "@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 + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" }, "@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" @@ -8866,7 +194,6 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.0.tgz", "integrity": "sha512-/QfLHGpu+2fQOqQaXh8MG9q03bFENooTb/it4jr5kKaZlDQfWvjqWZg48AwzPVMBHlRuTRAY7hRHCEOXz5kV6w==", - "dev": true, "requires": { "@types/react": "*" } @@ -8926,8 +253,7 @@ "@types/warning": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=", - "dev": true + "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=" }, "@types/winreg": { "version": "1.2.30", @@ -9135,18 +461,17 @@ "dev": true }, "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true }, "ajv": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", - "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", - "dev": true, + "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": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -9156,15 +481,13 @@ "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, - "requires": {} + "dev": true }, "ajv-keywords": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true, - "requires": {} + "dev": true }, "amdefine": { "version": "1.0.1", @@ -9188,9 +511,9 @@ } }, "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "optional": true, "requires": { @@ -9218,13 +541,12 @@ "arch": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.2.tgz", - "integrity": "sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ==", - "dev": true + "integrity": "sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ==" }, "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", "dev": true, "requires": { "delegates": "^1.0.0", @@ -9274,7 +596,6 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, "requires": { "safer-buffer": "~2.1.0" } @@ -9292,9 +613,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true } } @@ -9329,8 +650,7 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assign-symbols": { "version": "1.0.0", @@ -9371,8 +691,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "at-least-node": { "version": "1.0.0", @@ -9402,20 +721,17 @@ "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", - "dev": true + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" }, "axios": { "version": "0.21.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.2.tgz", "integrity": "sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg==", - "dev": true, "requires": { "follow-redirects": "^1.14.0" } @@ -9423,8 +739,7 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", @@ -9482,16 +797,15 @@ } }, "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, "requires": { "tweetnacl": "^0.14.3" } @@ -9503,22 +817,12 @@ "dev": true }, "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==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, "optional": true }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "block-stream": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", @@ -9535,9 +839,9 @@ "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==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", "dev": true }, "boolbase": { @@ -9549,15 +853,12 @@ "bootstrap": { "version": "4.5.2", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.2.tgz", - "integrity": "sha512-vlGn0bcySYl/iV+BGA544JkkZP5LB3jsmkeKLFQakCOwCM3AOk7VkldBz4jrzSe+Z0Ezn99NVXa1o45cQY4R6A==", - "dev": true, - "requires": {} + "integrity": "sha512-vlGn0bcySYl/iV+BGA544JkkZP5LB3jsmkeKLFQakCOwCM3AOk7VkldBz4jrzSe+Z0Ezn99NVXa1o45cQY4R6A==" }, "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" @@ -9636,21 +937,13 @@ } }, "browserify-rsa": { - "version": "4.0.1", - "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "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": "^4.1.0", + "bn.js": "^5.0.0", "randombytes": "^2.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 - } } }, "browserify-sign": { @@ -9692,15 +985,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "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" - } } } }, @@ -9735,9 +1019,9 @@ } }, "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==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "buffer-xor": { @@ -9821,6 +1105,16 @@ "unset-value": "^1.0.0" } }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "camel-case": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", @@ -9864,8 +1158,7 @@ "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chalk": { "version": "2.4.1", @@ -9879,20 +1172,20 @@ } }, "chokidar": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", - "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "dev": true, "optional": true, "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" + "readdirp": "~3.6.0" }, "dependencies": { "braces": { @@ -9941,13 +1234,10 @@ "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" - } + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true }, "cipher-base": { "version": "1.0.4", @@ -9985,13 +1275,12 @@ "classnames": { "version": "2.2.6", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==", - "dev": true + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" }, "clean-css": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", "dev": true, "requires": { "source-map": "~0.6.0" @@ -10098,7 +1387,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -10121,16 +1409,15 @@ "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==" }, "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "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 + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", @@ -10194,8 +1481,7 @@ "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 + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { "version": "4.0.0", @@ -10232,9 +1518,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true } } @@ -10327,24 +1613,11 @@ "semver": "^6.3.0" }, "dependencies": { - "ajv": { - "version": "6.12.4", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", - "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "big.js": { "version": "5.2.2", @@ -10380,12 +1653,6 @@ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, "json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", @@ -10432,6 +1699,20 @@ "@types/json-schema": "^7.0.4", "ajv": "^6.12.2", "ajv-keywords": "^3.4.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + } } }, "semver": { @@ -10465,9 +1746,9 @@ } }, "css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", "dev": true }, "cssesc": { @@ -10479,12 +1760,11 @@ "csstype": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", - "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==", - "dev": true + "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==" }, "currently-unhandled": { "version": "0.4.1", - "resolved": "https://mseng.pkgs.visualstudio.com/DefaultCollection/_packaging/85c70207-5d33-4063-9f7f-3eb497df4d33/npm/registry/currently-unhandled/upstream/currently-unhandled-0.4.1.tgz", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { @@ -10501,7 +1781,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -10580,8 +1859,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", @@ -10616,8 +1894,7 @@ "diagnostic-channel-publishers": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.3.5.tgz", - "integrity": "sha512-AOIjw4T7Nxl0G2BoBPhkQ6i7T4bUd9+xvdYizwvG7vVAM1dvr+SDrcUudlmzwH0kbEwdR2V1EcnKT0wAeYLQNQ==", - "requires": {} + "integrity": "sha512-AOIjw4T7Nxl0G2BoBPhkQ6i7T4bUd9+xvdYizwvG7vVAM1dvr+SDrcUudlmzwH0kbEwdR2V1EcnKT0wAeYLQNQ==" }, "diff": { "version": "4.0.2", @@ -10637,9 +1914,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true } } @@ -10657,7 +1934,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==", - "dev": true, "requires": { "@babel/runtime": "^7.8.7", "csstype": "^3.0.2" @@ -10687,18 +1963,18 @@ "dev": true }, "domhandler": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", - "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", + "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", "dev": true, "requires": { "domelementtype": "^2.2.0" } }, "domutils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", - "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, "requires": { "dom-serializer": "^1.0.1", @@ -10722,16 +1998,15 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, "electron-to-chromium": { - "version": "1.3.84", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.84.tgz", - "integrity": "sha512-IYhbzJYOopiTaNWMBp7RjbecUBsbnbDneOP86f3qvS0G0xfzwNSvMJpTrvi5/Y1gU7tg2NAgeg8a8rCYvW9Whw==", + "version": "1.3.873", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.873.tgz", + "integrity": "sha512-TiHlCgl2uP26Z0c67u442c0a2MZCWZNCRnPTQDPhVJ4h9G6z2zU0lApD9H0K9R5yFL5SfdaiVsVD2izOY24xBQ==", "dev": true }, "elliptic": { @@ -10801,18 +2076,6 @@ "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" - } - } } }, "entities": { @@ -10822,9 +2085,9 @@ "dev": true }, "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "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" @@ -10840,22 +2103,37 @@ } }, "es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "dev": true, "requires": { - "es-to-primitive": "^1.1.1", + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" } }, "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { "is-callable": "^1.1.4", @@ -10886,12 +2164,20 @@ "dev": true }, "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "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": "^4.1.0" + "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": { @@ -10901,9 +2187,9 @@ "dev": true }, "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true }, "evp_bytestokey": { @@ -10960,7 +2246,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, "requires": { "homedir-polyfill": "^1.0.1" } @@ -10968,8 +2253,7 @@ "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extend-shallow": { "version": "3.0.2", @@ -11060,20 +2344,17 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true + "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-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true + "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==" }, "figgy-pudding": { "version": "3.5.2", @@ -11091,30 +2372,16 @@ "schema-utils": "^3.0.0" }, "dependencies": { - "@types/json-schema": { + "@types/.json-schema-MuCDH4TQ": { "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==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==" }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "big.js": { "version": "5.2.2", @@ -11128,12 +2395,6 @@ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, "json5": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", @@ -11163,17 +2424,24 @@ "@types/json-schema": "^7.0.6", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + } } } } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -11212,7 +2480,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-java-home/-/find-java-home-1.1.0.tgz", "integrity": "sha512-bSTCKNZ193UM/+ZZoNDzICAEHcVywovkhsWCkZALjCvRXQ+zXTe/XATrrP4CpxkaP6YFhQJOpyRpH0P2U/woDA==", - "dev": true, "requires": { "which": "~1.0.5", "winreg": "~1.2.2" @@ -11262,10 +2529,9 @@ } }, "follow-redirects": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.3.tgz", - "integrity": "sha512-3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw==", - "dev": true + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz", + "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==" }, "for-in": { "version": "1.0.2", @@ -11276,14 +2542,12 @@ "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -11318,13 +2582,6 @@ "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^1.0.0" - }, - "dependencies": { - "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==" - } } }, "fs-write-stream-atomic": { @@ -11346,9 +2603,9 @@ "dev": true }, "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true }, @@ -11401,12 +2658,33 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", "dev": true }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -11417,7 +2695,6 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -11502,33 +2779,30 @@ } }, "globule": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz", - "integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz", + "integrity": "sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg==", "dev": true, "requires": { "glob": "~7.1.1", - "lodash": "~4.17.12", + "lodash": "~4.17.10", "minimatch": "~3.0.2" } }, "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "devOptional": true + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, "requires": { "ajv": "^6.5.5", "har-schema": "^2.0.0" @@ -11552,6 +2826,12 @@ "ansi-regex": "^2.0.0" } }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -11559,11 +2839,20 @@ "dev": true }, "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -11635,15 +2924,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "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" - } } } }, @@ -11666,8 +2946,7 @@ "highlight.js": { "version": "10.5.0", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.5.0.tgz", - "integrity": "sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw==", - "dev": true + "integrity": "sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw==" }, "hmac-drbg": { "version": "1.0.1", @@ -11684,7 +2963,6 @@ "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==", - "dev": true, "requires": { "react-is": "^16.7.0" } @@ -11693,7 +2971,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", - "dev": true, "requires": { "parse-passwd": "^1.0.0" } @@ -11775,7 +3052,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -11842,9 +3118,9 @@ } }, "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true }, "iferr": { @@ -11854,10 +3130,9 @@ "dev": true }, "immer": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/immer/-/immer-8.0.1.tgz", - "integrity": "sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA==", - "dev": true + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.6.tgz", + "integrity": "sha512-G95ivKpy+EvVAnAab4fVa4YGYn24J1SpEktnJX7JJ45Bd7xqME/SCplFzYFmTbrkwZbQ4xJK1xMTUYBkN6pWsQ==" }, "import-cwd": { "version": "2.1.0", @@ -11937,11 +3212,22 @@ "dev": true }, "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, "interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", @@ -11952,7 +3238,6 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, "requires": { "loose-envify": "^1.0.0" } @@ -11983,6 +3268,15 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -11993,6 +3287,16 @@ "binary-extensions": "^2.0.0" } }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", @@ -12000,11 +3304,20 @@ "dev": true }, "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, + "is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "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", @@ -12025,12 +3338,15 @@ } } }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -12084,14 +3400,20 @@ } }, "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==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -12112,6 +3434,15 @@ } } }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -12122,28 +3453,43 @@ } }, "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { - "has": "^1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" } }, "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "^1.0.2" } }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-utf8": { "version": "0.2.1", @@ -12151,6 +3497,15 @@ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -12184,26 +3539,23 @@ "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "jquery": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==", - "dev": true + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" }, "js-base64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz", - "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", "dev": true }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { "version": "3.14.1", @@ -12218,8 +3570,7 @@ "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "json-parse-better-errors": { "version": "1.0.2", @@ -12230,24 +3581,21 @@ "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json5": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, @@ -12264,7 +3612,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -12321,27 +3668,24 @@ "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash-es": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.20.tgz", - "integrity": "sha512-JD1COMZsq8maT6mnuz1UMV0jvYD0E0aUsSOdrr1/nAG3dhqQXwRRgeW0cSqH1U43INKcqxaiVIQNOUDld7gRDA==", - "dev": true + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" }, "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==", - "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } }, "loud-rejection": { "version": "1.6.0", - "resolved": "https://mseng.pkgs.visualstudio.com/DefaultCollection/_packaging/85c70207-5d33-4063-9f7f-3eb497df4d33/npm/registry/loud-rejection/upstream/loud-rejection-1.6.0.tgz", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { @@ -12416,9 +3760,9 @@ } }, "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=", + "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", @@ -12475,26 +3819,24 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true } } }, "mime-db": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==", - "dev": true + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==" }, "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", - "dev": true, + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", + "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", "requires": { - "mime-db": "~1.38.0" + "mime-db": "1.50.0" } }, "minimalistic-assert": { @@ -12513,7 +3855,6 @@ "version": "3.0.4", "resolved": "https://devdiv.pkgs.visualstudio.com/_packaging/CloudKernel/npm/registry/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -12618,9 +3959,9 @@ } }, "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "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 }, "nice-try": { @@ -12660,7 +4001,7 @@ "dependencies": { "semver": { "version": "5.3.0", - "resolved": "https://mseng.pkgs.visualstudio.com/_packaging/85c70207-5d33-4063-9f7f-3eb497df4d33/npm/registry/semver/upstream/semver-5.3.0.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true } @@ -12702,23 +4043,6 @@ "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" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } } } }, @@ -12820,9 +4144,9 @@ } }, "nth-check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", - "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", "dev": true, "requires": { "boolbase": "^1.0.0" @@ -12843,14 +4167,12 @@ "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", @@ -12883,10 +4205,16 @@ } } }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true + }, "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "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": { @@ -12898,14 +4226,27 @@ "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.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", + "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" } }, "object.pick": { @@ -13029,8 +4370,7 @@ "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, "pascalcase": { "version": "0.1.1", @@ -13070,9 +4410,9 @@ "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==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-type": { @@ -13087,9 +4427,9 @@ } }, "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dev": true, "requires": { "create-hash": "^1.1.2", @@ -13102,13 +4442,12 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true, "optional": true }, @@ -13153,12 +4492,6 @@ } } }, - "popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", - "dev": true - }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -13439,13 +4772,13 @@ "dev": true }, "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", "dev": true, "requires": { - "renderkid": "^2.0.1", - "utila": "~0.4" + "lodash": "^4.17.20", + "renderkid": "^2.0.4" } }, "process": { @@ -13455,9 +4788,9 @@ "dev": true }, "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "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 }, "promise-inflight": { @@ -13470,7 +4803,6 @@ "version": "15.7.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dev": true, "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -13481,7 +4813,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", - "dev": true, "requires": { "react-is": "^16.3.2", "warning": "^4.0.0" @@ -13502,8 +4833,7 @@ "psl": { "version": "1.1.31", "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", - "dev": true + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" }, "public-encrypt": { "version": "4.0.3", @@ -13520,9 +4850,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true } } @@ -13563,14 +4893,12 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "querystring": { "version": "0.2.0", @@ -13607,7 +4935,6 @@ "version": "17.0.1", "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", - "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -13617,7 +4944,6 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.4.3.tgz", "integrity": "sha512-4tYhk26KRnK0myMEp2wvNjOvnHMwWfa6pWFIiCtj9wewYaTxP7TrCf7MwcIMBgUzyX0SJXx6UbbDG0+hObiXNg==", - "dev": true, "requires": { "@babel/runtime": "^7.4.2", "@restart/context": "^2.1.4", @@ -13643,7 +4969,6 @@ "version": "17.0.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz", "integrity": "sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==", - "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -13653,20 +4978,17 @@ "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==", - "dev": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "react-lifecycles-compat": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", - "dev": true + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "react-overlays": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-4.1.1.tgz", "integrity": "sha512-WtJifh081e6M24KnvTQoNjQEpz7HoLxqt8TwZM7LOYIkYJ8i/Ly1Xi7RVte87ZVnmqQ4PFaFiNHZhSINPSpdBQ==", - "dev": true, "requires": { "@babel/runtime": "^7.12.1", "@popperjs/core": "^2.5.3", @@ -13682,7 +5004,6 @@ "version": "7.2.2", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.2.tgz", "integrity": "sha512-8+CQ1EvIVFkYL/vu6Olo7JFLWop1qRUeb46sGtIMDCSpgwPQq8fPLpirIB0iTqFe9XYEFPHssdX8/UwN6pAkEA==", - "dev": true, "requires": { "@babel/runtime": "^7.12.1", "hoist-non-react-statics": "^3.3.2", @@ -13695,7 +5016,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", - "dev": true, "requires": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", @@ -13740,9 +5060,9 @@ } }, "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "optional": true, "requires": { @@ -13760,26 +5080,22 @@ } }, "redux": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", - "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", - "dev": true, + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.1.tgz", + "integrity": "sha512-hZQZdDEM25UY2P493kPYuKqviVwZ58lEmGQNeQ+gXa+U0gYPUBf7NKYazbe3m+bs/DzM/ahN12DbF+NG8i0CWw==", "requires": { - "loose-envify": "^1.4.0", - "symbol-observable": "^1.2.0" + "@babel/runtime": "^7.9.2" } }, "redux-thunk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", - "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==", - "dev": true + "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==" }, "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==", - "dev": true + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" }, "regex-not": { "version": "1.0.2", @@ -13818,9 +5134,9 @@ } }, "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", "dev": true }, "repeat-string": { @@ -13842,7 +5158,6 @@ "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -13870,7 +5185,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "dev": true, "requires": { "lodash": "^4.17.19" } @@ -13879,7 +5193,6 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "dev": true, "requires": { "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", @@ -13907,15 +5220,15 @@ "reselect": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.0.0.tgz", - "integrity": "sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA==", - "dev": true + "integrity": "sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA==" }, "resolve": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz", - "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==", + "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" } }, @@ -14000,8 +5313,7 @@ "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 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safe-regex": { "version": "1.1.0", @@ -14015,8 +5327,7 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sass-graph": { "version": "2.2.5", @@ -14061,7 +5372,6 @@ "version": "0.20.1", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.1.tgz", "integrity": "sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==", - "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -14089,7 +5399,7 @@ "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://mseng.pkgs.visualstudio.com/DefaultCollection/_packaging/85c70207-5d33-4063-9f7f-3eb497df4d33/npm/registry/source-map/upstream/source-map-0.4.4.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { @@ -14186,10 +5496,21 @@ "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", + "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", "dev": true }, "slash": { @@ -14324,12 +5645,12 @@ "dev": true }, "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "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.1", + "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", @@ -14337,9 +5658,9 @@ } }, "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==", + "version": "0.5.20", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", + "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -14347,15 +5668,15 @@ } }, "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=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "dev": true }, "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -14369,9 +5690,9 @@ "dev": true }, "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "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", @@ -14379,9 +5700,9 @@ } }, "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", "dev": true }, "split-string": { @@ -14403,7 +5724,6 @@ "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -14463,8 +5783,7 @@ "stealthy-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" }, "stream-browserify": { "version": "2.0.2", @@ -14505,15 +5824,6 @@ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "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" - } - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -14525,9 +5835,38 @@ "strip-ansi": "^3.0.0" } }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "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" + } + }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { @@ -14571,12 +5910,6 @@ "has-flag": "^3.0.0" } }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true - }, "tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", @@ -14598,7 +5931,6 @@ "version": "0.1.21", "resolved": "https://registry.npmjs.org/tas-client/-/tas-client-0.1.21.tgz", "integrity": "sha512-7UuIwOXarCYoCTrQHY5n7M+63XuwMC0sVUdbPQzxqDB9wMjIW0JF39dnp3yoJnxr4jJUVhPtvkkXZbAD0BxCcA==", - "dev": true, "requires": { "axios": "^0.21.1" } @@ -14663,9 +5995,9 @@ } }, "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "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" @@ -14729,7 +6061,6 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -14761,12 +6092,31 @@ "loader-utils": "^1.0.2", "micromatch": "^3.1.4", "semver": "^5.0.1" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tslint": { @@ -14809,7 +6159,6 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -14817,8 +6166,7 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "typedarray": { "version": "0.0.6", @@ -14833,20 +6181,39 @@ "dev": true }, "uglify-js": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", - "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", "dev": true, "requires": { - "commander": "~2.17.1", + "commander": "~2.19.0", "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + } + } + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" } }, "uncontrollable": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.1.1.tgz", "integrity": "sha512-EcPYhot3uWTS3w00R32R2+vS8Vr53tttrvMj/yA1uYRhf8hbTG2GyugGqWDY0qIskxn0uTTojVd6wPYW9ZEf8Q==", - "dev": true, "requires": { "@babel/runtime": "^7.6.3", "@types/react": "^16.9.11", @@ -14858,7 +6225,6 @@ "version": "16.14.2", "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.2.tgz", "integrity": "sha512-BzzcAlyDxXl2nANlabtT4thtvbbnhee8hMmH/CcJrISDBVcJS1iOsP1f0OAgSdGE0MsY9tqcrb9YoZcOFv9dbQ==", - "dev": true, "requires": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -14961,10 +6327,9 @@ "dev": true }, "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "requires": { "punycode": "^2.1.0" } @@ -15004,30 +6369,16 @@ "schema-utils": "^3.0.0" }, "dependencies": { - "@types/json-schema": { + "@types/.json-schema-WTVcaBP1": { "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==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==" }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "big.js": { "version": "5.2.2", @@ -15041,12 +6392,6 @@ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, "json5": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", @@ -15067,21 +6412,6 @@ "json5": "^2.1.2" } }, - "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", - "dev": true - }, - "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", - "dev": true, - "requires": { - "mime-db": "1.45.0" - } - }, "schema-utils": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", @@ -15135,13 +6465,12 @@ "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, "validate-npm-package-license": { @@ -15158,7 +6487,6 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -15199,7 +6527,6 @@ "version": "0.1.22", "resolved": "https://registry.npmjs.org/vscode-tas-client/-/vscode-tas-client-0.1.22.tgz", "integrity": "sha512-1sYH73nhiSRVQgfZkLQNJW7VzhKM9qNbCe8QyXgiKkLhH4GflDXRPAK4yy4P41jUgula+Fc9G7i5imj1dlKfaw==", - "dev": true, "requires": { "tas-client": "0.1.21" } @@ -15208,7 +6535,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "dev": true, "requires": { "loose-envify": "^1.0.0" } @@ -15293,7 +6619,6 @@ "dev": true, "optional": true, "requires": { - "bindings": "^1.5.0", "nan": "^2.12.1" } }, @@ -15375,24 +6700,11 @@ "webpack-sources": "^1.4.1" }, "dependencies": { - "ajv": { - "version": "6.12.4", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", - "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "big.js": { "version": "5.2.2", @@ -15406,12 +6718,6 @@ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, "json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", @@ -15432,6 +6738,16 @@ "json5": "^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" + } + }, "schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", @@ -15564,8 +6880,20 @@ "which": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", - "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=", - "dev": true + "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=" + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } }, "which-module": { "version": "2.0.0", @@ -15574,19 +6902,18 @@ "dev": true }, "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, "requires": { - "string-width": "^1.0.2 || 2" + "string-width": "^1.0.2 || 2 || 3 || 4" } }, "winreg": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/winreg/-/winreg-1.2.4.tgz", - "integrity": "sha1-ugZWKbepJRMOFXeRCM9UCZDpjRs=", - "dev": true + "integrity": "sha1-ugZWKbepJRMOFXeRCM9UCZDpjRs=" }, "winreg-utf8": { "version": "0.1.1", @@ -15656,8 +6983,7 @@ "xmldom": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz", - "integrity": "sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==", - "dev": true + "integrity": "sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==" }, "xtend": { "version": "4.0.2", diff --git a/package.json b/package.json index 9e0e628d..f4a06ee2 100644 --- a/package.json +++ b/package.json @@ -314,14 +314,13 @@ "vscode:prepublish": "npm run build", "compile": "webpack --config webpack.config.js", "watch": "webpack --config webpack.config.js --watch --info-verbosity verbose", - "build": "webpack --config webpack.config.js --mode=\"production\"" + "build": "webpack --config webpack.config.js --mode=\"production\"", + "update-tpn": "node scripts/update-third-party-notice.js" }, "devDependencies": { - "@iconify-icons/codicon": "^1.1.8", - "@iconify/react": "^1.1.3", - "@reduxjs/toolkit": "^1.5.0", "@types/bytes": "^3.1.0", "@types/expand-tilde": "^2.0.0", + "@types/fs-extra": "^9.0.1", "@types/lodash": "^4.14.161", "@types/minimatch": "^3.0.3", "@types/node": "^8.10.63", @@ -335,41 +334,22 @@ "@types/vscode": "1.52.0", "@types/winreg": "^1.2.30", "@types/xmldom": "^0.1.30", - "axios": "^0.21.2", - "arch": "^2.1.2", "autoprefixer": "^8.5.1", - "bootstrap": "^4.5.2", "bytes": "^3.1.0", "css-loader": "^3.6.0", - "expand-tilde": "^2.0.2", "file-loader": "^6.2.0", - "find-java-home": "^1.1.0", - "highlight.js": "10.5.0", "html-webpack-inline-source-plugin": "0.0.10", "html-webpack-plugin": "^3.2.0", - "jquery": "^3.5.1", - "lodash": "^4.17.21", - "minimatch": "^3.0.4", "node-sass": "^4.14.1", - "path-exists": "^3.0.0", - "popper.js": "^1.16.1", "postcss-loader": "^2.1.5", - "react": "^17.0.1", - "react-bootstrap": "^1.4.3", - "react-dom": "^17.0.1", - "react-redux": "^7.2.2", - "request": "^2.88.2", - "request-promise-native": "^1.0.9", "sass-loader": "^7.3.1", "style-loader": "^0.21.0", "ts-loader": "^4.3.0", "tslint": "^5.20.1", "typescript": "^3.7.5", "url-loader": "^4.1.1", - "vscode-tas-client": "^0.1.22", "webpack": "^4.44.1", - "webpack-cli": "^3.3.12", - "xmldom": "^0.6.0" + "webpack-cli": "^3.3.12" }, "extensionPack": [ "redhat.java", @@ -380,12 +360,31 @@ "VisualStudioExptTeam.vscodeintellicode" ], "dependencies": { - "@types/fs-extra": "^9.0.1", + "@iconify-icons/codicon": "^1.1.8", + "@iconify/react": "^1.1.4", + "@reduxjs/toolkit": "^1.5.0", + "arch": "^2.1.2", + "axios": "^0.21.2", + "bootstrap": "^4.5.2", "compare-versions": "^3.6.0", "expand-home-dir": "0.0.3", + "expand-tilde": "^2.0.2", + "find-java-home": "^1.1.0", "fs-extra": "^9.0.1", + "highlight.js": "10.5.0", + "jquery": "^3.5.1", + "lodash": "^4.17.21", + "minimatch": "^3.0.4", + "react": "^17.0.1", + "react-bootstrap": "^1.4.3", + "react-dom": "^17.0.1", + "react-redux": "^7.2.2", + "request": "^2.88.2", + "request-promise-native": "^1.0.9", "semver": "^5.7.1", "vscode-extension-telemetry-wrapper": "^0.9.0", - "winreg-utf8": "^0.1.1" + "vscode-tas-client": "^0.1.22", + "winreg-utf8": "^0.1.1", + "xmldom": "^0.6.0" } } diff --git a/scripts/update-third-party-notice.js b/scripts/update-third-party-notice.js new file mode 100644 index 00000000..cc042dbe --- /dev/null +++ b/scripts/update-third-party-notice.js @@ -0,0 +1,64 @@ +const fs = require('fs'); +const path = require('path'); +const formatRepositoryUrl = (url) => { + if (!url) return url; + url = url.replace(/\/$/, ""); + url = url.replace(/\.git$/, ""); + url = url.replace(/^git\+/, ""); + url = url.replace(/^git:github\.com:/, "https://github.com/"); + url = url.replace(/^git:\/\//, "https://"); + url = url.replace(/^ssh:\/\/git@/, "https://"); + return url; +} + +const packageJSON = require(path.join(__dirname, "..", "package.json")); + +const header = `THIRD-PARTY SOFTWARE NOTICES AND INFORMATION +For ${packageJSON.name} package + +This extension uses Open Source components. You can find the source code of their +open source projects along with the license information below. We acknowledge and +are grateful to these developers for their contribution to open source. + +`; + +const entries = Object.keys(packageJSON.dependencies).map((name, idx) => { + console.log("===>>>"); + console.log(name); + // url + const manifestFile = require(path.join(__dirname, "..", "node_modules", name, "package.json")); + let url = manifestFile.repository?.url ?? manifestFile.repository; + console.log(url, "\t", formatRepositoryUrl(url)); + url = formatRepositoryUrl(url); + + // license + const packageRoot = path.join(__dirname, "..", "node_modules", name); + const files = fs.readdirSync(packageRoot); + const licenseFile = files.find(f => f.match(/^license/i)); + const license = licenseFile ? fs.readFileSync(path.join(packageRoot, licenseFile)) : undefined; + console.log("<<<==="); + return { + name, + url, + license + } + +}); + +const depsWithLicense = entries.filter(e => e.name !== undefined && e.license !== undefined); + +const toc = depsWithLicense.map((dep, idx) => { + return `${idx + 1}. ${dep.name} (${dep.url})`; +}).join("\n") + "\n"; + +const licenses = depsWithLicense.map(dep => { + return `${dep.name} NOTICES BEGIN HERE +============================= +${dep.license} +========================================= +END OF ${dep.name} NOTICES AND INFORMATION +`; +}).join("\n"); + +const content = [header, toc, licenses].join("\n"); +fs.writeFileSync(path.join(__dirname, "..", "ThirdPartyNotices.txt"), content); From ee85908d09b70cffab5aa28bf1a66cdf8ca64e72 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Tue, 2 Nov 2021 13:54:22 +0800 Subject: [PATCH 009/409] simplify command registration (#795) Signed-off-by: Yan Zhang --- src/commands/index.ts | 66 ++++++++++++++++++++------------- src/formatter-settings/index.ts | 4 +- src/recommendation/handler.ts | 8 ++-- src/recommendation/index.ts | 4 +- src/utils/command.ts | 15 -------- src/utils/index.ts | 1 - 6 files changed, 48 insertions(+), 50 deletions(-) delete mode 100644 src/utils/command.ts diff --git a/src/commands/index.ts b/src/commands/index.ts index c8717f0f..219777c8 100644 --- a/src/commands/index.ts +++ b/src/commands/index.ts @@ -2,34 +2,50 @@ // Licensed under the MIT license. import * as vscode from "vscode"; -import { instrumentCommand, webviewCmdLinkHandler } from "../utils"; -import { createMavenProjectCmdHandler, createSpringBootProjectCmdHandler, createQuarkusProjectCmdHandler, createMicroProfileStarterProjectCmdHandler, showExtensionCmdHandler, openUrlCmdHandler, showReleaseNotesHandler, installExtensionCmdHandler } from "./handler"; -import { overviewCmdHandler } from "../overview"; -import { javaRuntimeCmdHandler } from "../java-runtime"; -import { javaGettingStartedCmdHandler } from "../getting-started"; -import { javaExtGuideCmdHandler } from "../ext-guide"; -import { instrumentOperationAsVsCodeCommand } from "vscode-extension-telemetry-wrapper"; -import { showWelcomeWebview, showWelcomeWebviewBeside } from "../welcome"; +import { instrumentOperation, instrumentOperationAsVsCodeCommand } from "vscode-extension-telemetry-wrapper"; import { showClasspathConfigurationPage } from "../classpath/classpathConfigurationView"; +import { javaExtGuideCmdHandler } from "../ext-guide"; import { javaFormatterSettingsEditorProvider } from "../formatter-settings"; +import { javaGettingStartedCmdHandler } from "../getting-started"; +import { javaRuntimeCmdHandler } from "../java-runtime"; +import { overviewCmdHandler } from "../overview"; +import { webviewCmdLinkHandler } from "../utils"; +import { showWelcomeWebview, showWelcomeWebviewBeside } from "../welcome"; +import { createMavenProjectCmdHandler, createMicroProfileStarterProjectCmdHandler, createQuarkusProjectCmdHandler, createSpringBootProjectCmdHandler, installExtensionCmdHandler, openUrlCmdHandler, showExtensionCmdHandler, showReleaseNotesHandler } from "./handler"; export function initialize(context: vscode.ExtensionContext) { - context.subscriptions.push(vscode.commands.registerCommand("java.overview", instrumentCommand(context, "java.overview", instrumentCommand(context, "java.helper.overview", overviewCmdHandler)))); - context.subscriptions.push(vscode.commands.registerCommand("java.helper.createMavenProject", instrumentCommand(context, "java.helper.createMavenProject", createMavenProjectCmdHandler))); - context.subscriptions.push(vscode.commands.registerCommand("java.helper.createSpringBootProject", instrumentCommand(context, "java.helper.createSpringBootProject", createSpringBootProjectCmdHandler))); - context.subscriptions.push(vscode.commands.registerCommand("java.helper.createQuarkusProject", instrumentCommand(context, "java.helper.createQuarkusProject", createQuarkusProjectCmdHandler))); - context.subscriptions.push(vscode.commands.registerCommand("java.helper.createMicroProfileStarterProject", instrumentCommand(context, "java.helper.createMicroProfileStarterProject", createMicroProfileStarterProjectCmdHandler))); - context.subscriptions.push(vscode.commands.registerCommand("java.helper.showExtension", instrumentCommand(context, "java.helper.showExtension", showExtensionCmdHandler))); - context.subscriptions.push(vscode.commands.registerCommand("java.helper.openUrl", instrumentCommand(context, "java.helper.openUrl", openUrlCmdHandler))); - context.subscriptions.push(vscode.commands.registerCommand("java.showReleaseNotes", instrumentCommand(context, "java.showReleaseNotes", showReleaseNotesHandler))); - context.subscriptions.push(vscode.commands.registerCommand("java.runtime", instrumentCommand(context, "java.runtime", javaRuntimeCmdHandler))); - context.subscriptions.push(vscode.commands.registerCommand("java.helper.installExtension", instrumentCommand(context, "java.helper.installExtension", installExtensionCmdHandler))); - context.subscriptions.push(vscode.commands.registerCommand("java.gettingStarted", instrumentCommand(context, "java.gettingStarted", javaGettingStartedCmdHandler))); - context.subscriptions.push(vscode.commands.registerCommand("java.extGuide", instrumentCommand(context, "java.extGuide", javaExtGuideCmdHandler))); + registerCommandHandler(context, "java.overview", overviewCmdHandler); + registerCommandHandler(context, "java.helper.createMavenProject", createMavenProjectCmdHandler); + registerCommandHandler(context, "java.helper.createSpringBootProject", createSpringBootProjectCmdHandler); + registerCommandHandler(context, "java.helper.createQuarkusProject", createQuarkusProjectCmdHandler); + registerCommandHandler(context, "java.helper.createMicroProfileStarterProject", createMicroProfileStarterProjectCmdHandler); + registerCommandHandler(context, "java.helper.showExtension", showExtensionCmdHandler); + registerCommandHandler(context, "java.helper.openUrl", openUrlCmdHandler); + registerCommandHandler(context, "java.showReleaseNotes", showReleaseNotesHandler); + registerCommandHandler(context, "java.runtime", javaRuntimeCmdHandler); + registerCommandHandler(context, "java.helper.installExtension", installExtensionCmdHandler); + registerCommandHandler(context, "java.gettingStarted", javaGettingStartedCmdHandler); + registerCommandHandler(context, "java.extGuide", javaExtGuideCmdHandler); context.subscriptions.push(instrumentOperationAsVsCodeCommand("java.webview.runCommand", webviewCmdLinkHandler)); - context.subscriptions.push(vscode.commands.registerCommand("java.welcome", instrumentCommand(context, "java.welcome", showWelcomeWebviewBeside))); - context.subscriptions.push(vscode.commands.registerCommand("java.welcome.fromWalkthrough", instrumentCommand(context, "java.welcome.fromWalkthrough", showWelcomeWebview))); - context.subscriptions.push(vscode.commands.registerCommand("java.formatterSettings", instrumentCommand(context, "java.formatterSettings", () => javaFormatterSettingsEditorProvider.showFormatterSettingsEditor()))); - context.subscriptions.push(vscode.commands.registerCommand("java.formatterSettings.showTextEditor", instrumentCommand(context, "java.formatterSettings.showTextEditor", javaFormatterSettingsEditorProvider.reopenWithTextEditor))); - context.subscriptions.push(vscode.commands.registerCommand("java.classpathConfiguration", instrumentCommand(context, "java.classpathConfiguration", showClasspathConfigurationPage))); + registerCommandHandler(context, "java.welcome", showWelcomeWebviewBeside); + registerCommandHandler(context, "java.welcome.fromWalkthrough", showWelcomeWebview); + context.subscriptions.push(instrumentOperationAsVsCodeCommand("java.formatterSettings", javaFormatterSettingsEditorProvider.showFormatterSettingsEditor)); + context.subscriptions.push(instrumentOperationAsVsCodeCommand("java.formatterSettings.showTextEditor", javaFormatterSettingsEditorProvider.reopenWithTextEditor)); + registerCommandHandler(context, "java.classpathConfiguration", showClasspathConfigurationPage); } + +type CommandHandler = (context: vscode.ExtensionContext, operationId: string, ...args: any[]) => any; + +/** + * Register command handlers as vscode commands. + * @param context + * @param operationName + * @param callback MUST be a CommandHandler + */ +function registerCommandHandler(context: vscode.ExtensionContext, operationName: string, callback: CommandHandler): void{ + const stub = async (operationId: string, ...args: any[]) => { + return await callback(context, operationId, ...args); + }; + + context.subscriptions.push(vscode.commands.registerCommand(operationName, instrumentOperation(operationName, stub))); +} \ No newline at end of file diff --git a/src/formatter-settings/index.ts b/src/formatter-settings/index.ts index 512c69a8..7f4a51c4 100644 --- a/src/formatter-settings/index.ts +++ b/src/formatter-settings/index.ts @@ -12,7 +12,7 @@ import { Example, getSupportedVSCodeSettings, JavaConstants, SupportedSettings, import { FormatterConverter } from "./FormatterConverter"; import { remoteProfileProvider, RemoteProfileProvider } from "./RemoteProfileProvider"; import { DOMElement, ExampleKind, ProfileContent } from "./types"; -import { addDefaultProfile, downloadFile, getProfilePath, getAbsoluteTargetPath, getVSCodeSetting, isRemote, openFormatterSettings, parseProfile } from "./utils"; +import { addDefaultProfile, downloadFile, getAbsoluteTargetPath, getProfilePath, getVSCodeSetting, isRemote, openFormatterSettings, parseProfile } from "./utils"; export class JavaFormatterSettingsEditorProvider implements vscode.CustomTextEditorProvider { public static readonly viewType = "java.formatterSettingsEditor"; @@ -63,7 +63,7 @@ export class JavaFormatterSettingsEditorProvider implements vscode.CustomTextEdi vscode.commands.executeCommand("vscode.openWith", filePath, "java.formatterSettingsEditor"); } - public reopenWithTextEditor(_context: vscode.ExtensionContext, _operationId: string, uri: any) { + public reopenWithTextEditor(uri: any) { if (uri instanceof vscode.Uri) { vscode.commands.executeCommand("vscode.openWith", uri, "default"); } diff --git a/src/recommendation/handler.ts b/src/recommendation/handler.ts index ac79a347..0b9d2ac5 100644 --- a/src/recommendation/handler.ts +++ b/src/recommendation/handler.ts @@ -2,16 +2,14 @@ // Licensed under the MIT license. import * as vscode from "vscode"; -import { sendInfo } from "vscode-extension-telemetry-wrapper"; -import { instrumentCommand } from "../utils"; +import { instrumentOperation, sendInfo } from "vscode-extension-telemetry-wrapper"; import { isExtensionInstalled, recommendExtension } from "../utils"; import { KEY_RECOMMENDATION_TIMESTAMP_MAP } from "../utils/globalState"; - let handler: (...args: any[]) => any; -export function initialize(context: vscode.ExtensionContext) { - handler = instrumentCommand(context, "recommendExtension", async (_context: vscode.ExtensionContext, operationId: string, extName: string, message: string) => { +export function initialize() { + handler = instrumentOperation("recommendExtension", async (operationId: string, extName: string, message: string) => { sendInfo(operationId, { extName: extName }, {}); diff --git a/src/recommendation/index.ts b/src/recommendation/index.ts index 23f6413f..14d0ba68 100644 --- a/src/recommendation/index.ts +++ b/src/recommendation/index.ts @@ -6,8 +6,8 @@ import { initialize as initHandler, extensionRecommendationHandler } from "./han import { initialize as initXml } from "./xml"; import { isExtensionInstalled, getExtensionContext } from "../utils"; -export function initialize (context: vscode.ExtensionContext) { - initHandler(context); +export function initialize(context: vscode.ExtensionContext) { + initHandler(); initXml(context); } diff --git a/src/utils/command.ts b/src/utils/command.ts deleted file mode 100644 index a14cf0b7..00000000 --- a/src/utils/command.ts +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -import * as vscode from "vscode"; -import { instrumentOperation } from "vscode-extension-telemetry-wrapper"; - -export type CommandHandler = (context: vscode.ExtensionContext, operationId: string, ...args: any[]) => any; - -export function instrumentCommand(context: vscode.ExtensionContext, operationName: string, callback: CommandHandler): (...args: any[]) => any { - const stub = async (operationId: string, ...args: any[]) => { - return await callback(context, operationId, ...args); - }; - - return instrumentOperation(operationName, stub); -} diff --git a/src/utils/index.ts b/src/utils/index.ts index 606779de..c8eb5719 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -47,7 +47,6 @@ export async function loadTextFromFile(resourceUri: string) { return buffer.toString(); } -export * from "./command"; export * from "./release-notes"; export * from "./extension"; From 24b0c79c369e6815fc74602b6a3f18401d89f1ad Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Wed, 3 Nov 2021 12:21:50 +0800 Subject: [PATCH 010/409] Exp: rollout getting started walkthrough (#796) Signed-off-by: Yan Zhang --- src/extension.ts | 30 +++++++------------ src/utils/walkthrough.ts | 28 ----------------- .../assets/components/GetStartedPage.tsx | 5 ++-- .../assets/components/QuickActionPanel.tsx | 10 ++----- src/welcome/index.ts | 11 ++----- 5 files changed, 17 insertions(+), 67 deletions(-) delete mode 100644 src/utils/walkthrough.ts diff --git a/src/extension.ts b/src/extension.ts index a269fe50..8dcce667 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -3,23 +3,22 @@ import * as vscode from "vscode"; import { dispose as disposeTelemetryWrapper, initialize, instrumentOperation } from "vscode-extension-telemetry-wrapper"; -import { initialize as initUtils } from "./utils"; +import { ClassPathConfigurationViewSerializer } from "./classpath/classpathConfigurationView"; import { initialize as initCommands } from "./commands"; -import { initialize as initRecommendations } from "./recommendation"; -import { showReleaseNotesOnStart, HelpViewType } from "./misc"; import { initialize as initExp } from "./exp"; -import { OverviewViewSerializer } from "./overview"; -import { JavaRuntimeViewSerializer, validateJavaRuntime } from "./java-runtime"; -import { scheduleAction } from "./utils/scheduler"; -import { showWelcomeWebview, WelcomeViewSerializer } from "./welcome"; -import { JavaGettingStartedViewSerializer } from "./getting-started"; import { JavaExtGuideViewSerializer } from "./ext-guide"; -import { ClassPathConfigurationViewSerializer } from "./classpath/classpathConfigurationView"; import { initFormatterSettingsEditorProvider } from "./formatter-settings"; import { initRemoteProfileProvider } from "./formatter-settings/RemoteProfileProvider"; +import { JavaGettingStartedViewSerializer } from "./getting-started"; +import { JavaRuntimeViewSerializer, validateJavaRuntime } from "./java-runtime"; +import { HelpViewType, showReleaseNotesOnStart } from "./misc"; +import { OverviewViewSerializer } from "./overview"; import { CodeActionProvider } from "./providers/CodeActionProvider"; -import { KEY_IS_WELCOME_PAGE_VIEWED, KEY_SHOW_WHEN_USING_JAVA } from "./utils/globalState"; -import { isWalkthroughEnabled } from "./utils/walkthrough"; +import { initialize as initRecommendations } from "./recommendation"; +import { initialize as initUtils } from "./utils"; +import { KEY_SHOW_WHEN_USING_JAVA } from "./utils/globalState"; +import { scheduleAction } from "./utils/scheduler"; +import { showWelcomeWebview, WelcomeViewSerializer } from "./welcome"; export async function activate(context: vscode.ExtensionContext) { syncState(context); @@ -48,15 +47,6 @@ async function initializeExtension(_operationId: string, context: vscode.Extensi const config = vscode.workspace.getConfiguration("java.help"); - // for control group where walkthrough is not enabled, present first view for once. - const walkthroughEnabled = await isWalkthroughEnabled(); - if (walkthroughEnabled === false // control group - && !context.globalState.get(KEY_IS_WELCOME_PAGE_VIEWED) // first time - && vscode.env.uiKind === vscode.UIKind.Desktop // desktop only (no popups on Codespaces) - ) { - presentFirstView(context); - } - if (config.get("firstView") !== HelpViewType.None && context.globalState.get(KEY_SHOW_WHEN_USING_JAVA)) { scheduleAction("showFirstView", true).then(() => { presentFirstView(context); diff --git a/src/utils/walkthrough.ts b/src/utils/walkthrough.ts deleted file mode 100644 index cb8c1734..00000000 --- a/src/utils/walkthrough.ts +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -import { workspace } from "vscode"; -import { getExpService } from "../exp"; -import { TreatmentVariables } from "../exp/TreatmentVariables"; - -// local cache before EXP starts, otherwise it always returns undefined, and keeps querying service. -let enabledByExp: boolean; - -export async function isWalkthroughEnabled() { - // can be overridden by local settings "experiments.override.gettingStarted.overrideCategory.vscjava.vscode-java-pack.javaWelcome.when": "true" - // '#' -> '.' since https://github.com/microsoft/vscode/commit/fe671f300845ca5161885125b1e12d43fc25ccf8 - const fromSettings: string | undefined = workspace.getConfiguration("experiments.override.gettingStarted.overrideCategory").get("vscjava.vscode-java-pack.javaWelcome.when"); - switch (fromSettings) { - case "true": - return true; - case "false": - return false; - default: - } - - if (enabledByExp === undefined) { - const flightValue = await getExpService()?.getTreatmentVariableAsync(TreatmentVariables.VSCodeConfig, TreatmentVariables.JavaWalkthroughEnabled, true /* checkCache */); - enabledByExp = (flightValue === "true"); - } - return enabledByExp; -} diff --git a/src/welcome/assets/components/GetStartedPage.tsx b/src/welcome/assets/components/GetStartedPage.tsx index a311e4fe..efcc7493 100644 --- a/src/welcome/assets/components/GetStartedPage.tsx +++ b/src/welcome/assets/components/GetStartedPage.tsx @@ -13,7 +13,6 @@ import TourPage from "./TourPage"; export class GetStartedPage extends React.Component<{ showWhenUsingJava: boolean, firstTimeRun: boolean, - walkthrough?: boolean }> { render() { @@ -26,7 +25,7 @@ export class GetStartedPage extends React.Component<{ } renderWelcomePage() { - const {showWhenUsingJava, walkthrough} = this.props; + const {showWhenUsingJava} = this.props; return ( @@ -36,7 +35,7 @@ export class GetStartedPage extends React.Component<{ - + diff --git a/src/welcome/assets/components/QuickActionPanel.tsx b/src/welcome/assets/components/QuickActionPanel.tsx index 56ceb162..4264b1cb 100644 --- a/src/welcome/assets/components/QuickActionPanel.tsx +++ b/src/welcome/assets/components/QuickActionPanel.tsx @@ -6,9 +6,7 @@ import { ListGroup } from "react-bootstrap"; import { encodeCommandUriWithTelemetry, supportedByNavigator } from "../../../utils/webview"; import { WEBVIEW_ID } from "../utils"; -export default class QuickActionPanel extends React.Component<{ - walkthrough?: boolean -}, {}> { +export default class QuickActionPanel extends React.Component<{}, {}> { render() { const newProjectElement = {"Create a "} @@ -27,12 +25,8 @@ export default class QuickActionPanel extends React.Component<{ { name: "Open an Existing Project", command: "workbench.action.files.openFolder", os: "win", element: existingProjectElement }, { name: "Open an Existing Project", command: "workbench.action.files.openFolder", os: "linux", element: existingProjectElement }, { name: "Open an Existing Project", command: "workbench.action.files.openFileFolder", os: "mac", element: existingProjectElement }, + { name: "Take a Tour", command: "workbench.action.openWalkthrough", args: ["vscjava.vscode-java-pack#javaWelcome"], element: tourElement } ]; - // EXP: walkthrough v.s. previous feature tour - actions.push(this.props.walkthrough ? - { name: "Take a Tour", command: "workbench.action.openWalkthrough", args: ["vscjava.vscode-java-pack#javaWelcome"], element: tourElement } : - { name: "Take a Tour", command: "java.welcome", args: [{ firstTimeRun: true }], element: tourElement } - ); const actionItems = actions.filter(action => !action.os || supportedByNavigator(action.os)).map(action => ( { - const walkthrough = await isWalkthroughEnabled(); welcomeView?.webview.postMessage({ command: "onDidFetchInitProps", props: { showWhenUsingJava: context.globalState.get(KEY_SHOW_WHEN_USING_JAVA), firstTimeRun: context.globalState.get(KEY_IS_WELCOME_PAGE_VIEWED) !== true, - walkthrough } }); setFirstTimeRun(context, false); }; const showTourPage = async (context: vscode.ExtensionContext) => { - const walkthrough = await isWalkthroughEnabled(); welcomeView?.webview.postMessage({ command: "onDidFetchInitProps", props: { showWhenUsingJava: context.globalState.get(KEY_SHOW_WHEN_USING_JAVA), firstTimeRun: true, - walkthrough } }); setFirstTimeRun(context, false); From 359de03462247cf133fb0c643dcd83239416bd04 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 4 Nov 2021 10:50:19 +0800 Subject: [PATCH 011/409] new UX to configure java runtime (#791) --- package-lock.json | 202 +++++++++++++++--- package.json | 9 +- src/java-runtime/assets/ProjectJDKPanel.tsx | 122 +++++++++++ src/java-runtime/assets/ToolingJDKPanel.tsx | 51 +++++ .../assets/components/DefaultJDKSelector.tsx | 67 ++++++ .../assets/components/ProjectTypeHint.tsx | 60 ++++++ src/java-runtime/assets/index.html | 41 +--- src/java-runtime/assets/index.ts | 81 ++----- .../assets/jdk.configure.installed.tsx | 69 ------ src/java-runtime/assets/jdk.configure.ls.tsx | 78 ------- .../assets/jdk.configure.project.tsx | 107 ---------- src/java-runtime/assets/jdk.configure.tsx | 83 ------- src/java-runtime/assets/jdk.installation.tsx | 162 -------------- src/java-runtime/assets/project.invisible.tsx | 50 ----- src/java-runtime/assets/project.managed.tsx | 64 ------ src/java-runtime/assets/style.scss | 82 +++++-- src/java-runtime/assets/vscode.api.ts | 6 + src/java-runtime/index.ts | 21 +- src/java-runtime/utils/findJavaRuntime.ts | 10 +- src/welcome/assets/style.scss | 2 +- webpack.config.js | 5 +- 21 files changed, 607 insertions(+), 765 deletions(-) create mode 100644 src/java-runtime/assets/ProjectJDKPanel.tsx create mode 100644 src/java-runtime/assets/ToolingJDKPanel.tsx create mode 100644 src/java-runtime/assets/components/DefaultJDKSelector.tsx create mode 100644 src/java-runtime/assets/components/ProjectTypeHint.tsx delete mode 100644 src/java-runtime/assets/jdk.configure.installed.tsx delete mode 100644 src/java-runtime/assets/jdk.configure.ls.tsx delete mode 100644 src/java-runtime/assets/jdk.configure.project.tsx delete mode 100644 src/java-runtime/assets/jdk.configure.tsx delete mode 100644 src/java-runtime/assets/jdk.installation.tsx delete mode 100644 src/java-runtime/assets/project.invisible.tsx delete mode 100644 src/java-runtime/assets/project.managed.tsx diff --git a/package-lock.json b/package-lock.json index 8abc7b4f..1dbe5fd6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48,6 +48,78 @@ "resolved": "https://registry.npmjs.org/@iconify/react/-/react-1.1.4.tgz", "integrity": "sha512-oxq8IMOq8q3nKGiDHbQPC8FcFuBsKve68JWBo140d5LRnj0bv5TB/FE/y01ZSvEZ7PlI2HIrnb2qivPN8kTDgw==" }, + "@microsoft/fast-element": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-1.6.1.tgz", + "integrity": "sha512-6wCL1yj5SSfqEq/GAkWeKdcE50NTx3VLINpSYG9cpxckgNGXHErsjDwbqwX3399e/O04BVwyIjILip11DFJP9w==" + }, + "@microsoft/fast-foundation": { + "version": "1.24.8", + "resolved": "https://registry.npmjs.org/@microsoft/fast-foundation/-/fast-foundation-1.24.8.tgz", + "integrity": "sha512-n4O9jPh8BBliF/Yl9FAVhrSoopsRCnva2L432s/fHwLelY9WUeswjO3DidVBFbzXD5u/gzC4LGWJScNe/ZGU4Q==", + "requires": { + "@microsoft/fast-element": "^1.4.0", + "@microsoft/fast-web-utilities": "^4.8.0", + "@microsoft/tsdoc-config": "^0.13.4", + "tabbable": "^5.2.0", + "tslib": "^1.13.0" + } + }, + "@microsoft/fast-react-wrapper": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@microsoft/fast-react-wrapper/-/fast-react-wrapper-0.1.8.tgz", + "integrity": "sha512-2U30GpuNYeXIvZCWOOXb6+EzamuMmyHka2hoGrM0k6Wxv8di3MSNuzKDvd83UttmbEJvr0SOyhYUAgBJyUf+Eg==", + "requires": { + "@microsoft/fast-element": "^1.6.1", + "@microsoft/fast-foundation": "^2.23.0" + }, + "dependencies": { + "@microsoft/fast-foundation": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/@microsoft/fast-foundation/-/fast-foundation-2.23.0.tgz", + "integrity": "sha512-71/oN+Mi6ZTgDcJ9EJlCLoUOUN+YyUSkek2VIR1uP5ezYlGutVj5M/t3/XAtENSg59x2pQV/Jk9Ix1uxY1iGfw==", + "requires": { + "@microsoft/fast-element": "^1.6.1", + "@microsoft/fast-web-utilities": "^5.0.1", + "@microsoft/tsdoc-config": "^0.13.4", + "tabbable": "^5.2.0", + "tslib": "^1.13.0" + } + }, + "@microsoft/fast-web-utilities": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@microsoft/fast-web-utilities/-/fast-web-utilities-5.0.1.tgz", + "integrity": "sha512-WvQXkNzlwh3n7tD0xb6seSy5U2rAnPE/+AFkJis56F7PE52qcd8PDqnbR1KIyshZlpnAm88cGCTRN6hxoi9ZoA==", + "requires": { + "exenv-es6": "^1.0.0" + } + } + } + }, + "@microsoft/fast-web-utilities": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/@microsoft/fast-web-utilities/-/fast-web-utilities-4.8.1.tgz", + "integrity": "sha512-P3xeyUwQ9nPkFrgAdmkOzaXxIq8YqMU5K+LXcoHgJddJCBCKfGWW9OZQOTigLddItTyVyfO8qsJpDQb1TskKHA==", + "requires": { + "exenv-es6": "^1.0.0" + } + }, + "@microsoft/tsdoc": { + "version": "0.12.24", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.12.24.tgz", + "integrity": "sha512-Mfmij13RUTmHEMi9vRUhMXD7rnGR2VvxeNYtaGtaJ4redwwjT4UXYJ+nzmVJF7hhd4pn/Fx5sncDKxMVFJSWPg==" + }, + "@microsoft/tsdoc-config": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.13.9.tgz", + "integrity": "sha512-VqqZn+rT9f6XujFPFR2aN9XKF/fuir/IzKVzoxI0vXIzxysp4ee6S2jCakmlGFHEasibifFTsJr7IYmRPxfzYw==", + "requires": { + "@microsoft/tsdoc": "0.12.24", + "ajv": "~6.12.6", + "jju": "~1.4.0", + "resolve": "~1.19.0" + } + }, "@popperjs/core": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.6.0.tgz", @@ -267,6 +339,21 @@ "integrity": "sha512-edqgAFXMEtVvaBZ3YnhamvmrHjoYpuxETmnb0lbTZmf/dXpAsO9ZKotUO4K2rn2SIZBDFCMOuA7fOe0H6dRZcA==", "dev": true }, + "@vscode/codicons": { + "version": "0.0.25", + "resolved": "https://registry.npmjs.org/@vscode/codicons/-/codicons-0.0.25.tgz", + "integrity": "sha512-uqPhTdADjwoCh5Ufbv0M6TZiiP2mqbfJVB4grhVx1k+YeP03LDMOHBWPsNwGKn4/0S5Mq9o1w1GeftvR031Gzg==" + }, + "@vscode/webview-ui-toolkit": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@vscode/webview-ui-toolkit/-/webview-ui-toolkit-0.8.2.tgz", + "integrity": "sha512-2X3nRgrUxCELucsUg9Kd4tKgJX6JKK63uDhwn9+3wTHl49VaErBWeNv1tkGlFzG8+Mr/43y/sccQ+42WsIazIg==", + "requires": { + "@microsoft/fast-element": "^1.2.0", + "@microsoft/fast-foundation": "^1.24.7", + "lodash-es": "^4.17.21" + } + }, "@webassemblyjs/ast": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", @@ -2202,6 +2289,11 @@ "safe-buffer": "^5.1.1" } }, + "exenv-es6": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/exenv-es6/-/exenv-es6-1.0.0.tgz", + "integrity": "sha512-fcG/TX8Ruv9Ma6PBaiNsUrHRJzVzuFMP6LtPn/9iqR+nr9mcLeEOGzXQGLC5CVQSXGE98HtzW2mTZkrCA3XrDg==" + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -2624,8 +2716,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "gauge": { "version": "2.7.4", @@ -2779,13 +2870,13 @@ } }, "globule": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz", - "integrity": "sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz", + "integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==", "dev": true, "requires": { "glob": "~7.1.1", - "lodash": "~4.17.10", + "lodash": "~4.17.12", "minimatch": "~3.0.2" } }, @@ -2812,7 +2903,6 @@ "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" } @@ -3313,7 +3403,6 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "dev": true, "requires": { "has": "^1.0.3" } @@ -3541,15 +3630,20 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, + "jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=" + }, "jquery": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" }, "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz", + "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==", "dev": true }, "js-tokens": { @@ -4004,6 +4098,15 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -4117,6 +4220,14 @@ "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "normalize-path": { @@ -4412,8 +4523,7 @@ "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-type": { "version": "1.1.0", @@ -4932,12 +5042,13 @@ } }, "react": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", - "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.9.0.tgz", + "integrity": "sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w==", "requires": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" } }, "react-bootstrap": { @@ -4966,13 +5077,14 @@ } }, "react-dom": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz", - "integrity": "sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==", + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz", + "integrity": "sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", - "scheduler": "^0.20.1" + "prop-types": "^15.6.2", + "scheduler": "^0.15.0" } }, "react-is": { @@ -5032,6 +5144,20 @@ "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", "path-type": "^1.0.0" + }, + "dependencies": { + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + } } }, "read-pkg-up": { @@ -5226,7 +5352,6 @@ "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" @@ -5369,9 +5494,9 @@ } }, "scheduler": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.1.tgz", - "integrity": "sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz", + "integrity": "sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -5833,6 +5958,17 @@ "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } } }, "string.prototype.trimend": { @@ -5910,6 +6046,11 @@ "has-flag": "^3.0.0" } }, + "tabbable": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.2.1.tgz", + "integrity": "sha512-40pEZ2mhjaZzK0BnI+QGNjJO8UYx9pP5v7BGe17SORTO0OEuuaAwQTkAp8whcZvqon44wKFOikD+Al11K3JICQ==" + }, "tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", @@ -6116,8 +6257,7 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "tslint": { "version": "5.20.1", @@ -6902,12 +7042,12 @@ "dev": true }, "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" + "string-width": "^1.0.2 || 2" } }, "winreg": { diff --git a/package.json b/package.json index f4a06ee2..fe1d85ba 100644 --- a/package.json +++ b/package.json @@ -348,7 +348,7 @@ "tslint": "^5.20.1", "typescript": "^3.7.5", "url-loader": "^4.1.1", - "webpack": "^4.44.1", + "webpack": "^4.46.0", "webpack-cli": "^3.3.12" }, "extensionPack": [ @@ -362,7 +362,10 @@ "dependencies": { "@iconify-icons/codicon": "^1.1.8", "@iconify/react": "^1.1.4", + "@microsoft/fast-react-wrapper": "^0.1.8", "@reduxjs/toolkit": "^1.5.0", + "@vscode/codicons": "0.0.25", + "@vscode/webview-ui-toolkit": "^0.8.2", "arch": "^2.1.2", "axios": "^0.21.2", "bootstrap": "^4.5.2", @@ -375,9 +378,9 @@ "jquery": "^3.5.1", "lodash": "^4.17.21", "minimatch": "^3.0.4", - "react": "^17.0.1", + "react": "^16.9.0", "react-bootstrap": "^1.4.3", - "react-dom": "^17.0.1", + "react-dom": "^16.9.0", "react-redux": "^7.2.2", "request": "^2.88.2", "request-promise-native": "^1.0.9", diff --git a/src/java-runtime/assets/ProjectJDKPanel.tsx b/src/java-runtime/assets/ProjectJDKPanel.tsx new file mode 100644 index 00000000..e804a63f --- /dev/null +++ b/src/java-runtime/assets/ProjectJDKPanel.tsx @@ -0,0 +1,122 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import { DataGridRowTypes, GenerateHeaderOptions } from "@microsoft/fast-foundation"; +import { provideReactWrapper } from '@microsoft/fast-react-wrapper'; +import * as webviewUI from "@vscode/webview-ui-toolkit"; +import * as React from "react"; +import { encodeCommandUriWithTelemetry, ProjectType } from "../../utils/webview"; +import { JavaRuntimeEntry, ProjectRuntimeEntry } from "../types"; +import { DefaultJDKSelector } from "./components/DefaultJDKSelector"; +import { ProjectTypeHint } from "./components/ProjectTypeHint"; +import { onWillListRuntimes, openBuildScript } from "./vscode.api"; + +const { wrap } = provideReactWrapper(React); +const DataGrid = wrap(webviewUI.VSCodeDataGrid); +const DataRow = wrap(webviewUI.VSCodeDataGridRow); +const DataCell = wrap(webviewUI.VSCodeDataGridCell); +const Button = wrap(webviewUI.VSCodeButton); + +interface Props { + jdkEntries: JavaRuntimeEntry[]; + projectRuntimes: ProjectRuntimeEntry[]; +}; +interface State { + showHintFor?: "Maven" | "Gradle" | "Others"; +} + +export class ProjectJDKPanel extends React.Component { + constructor(props: any) { + super(props); + this.state = { + }; + } + render = () => { + const { jdkEntries, projectRuntimes } = this.props; + const { showHintFor } = this.state; + + + const projectTypeHint = (projectType: ProjectType) => { + switch (projectType) { + case "Maven": + return + case "Gradle": + return + default: + return + } + } + + const projectEntries = projectRuntimes + .filter(p => p.projectType !== ProjectType.Default) + .map((p, index) => ( + + {p.name} +
{p.projectType}{projectTypeHint(p.projectType)}
+ + { + hasBuildTool(p) ? +
+ {p.sourceLevel} + +
+ : + + } +
+
+ )); + const downloadJDKCommand = encodeCommandUriWithTelemetry("java.runtime", "download from adoptium", "java.helper.openUrl", ["https://adoptium.net"]); + return ( +
+

Configure Java Project Runtime

+ {projectEntries.length > 0 &&

Manage Java runtime for your projects. If you don't have a valid Java runtime, you can download one.

} + { + projectEntries.length > 0 ? + + + Project Name + Type + Java Version + + {projectEntries} + + : +
+

No project detected yet. Please refresh later if Java extension is importing your projects.

+ +
+ } + +
+ ); + } + + onClickEdit = (p: ProjectRuntimeEntry) => { + let scriptFile; + if (p.projectType === ProjectType.Maven) { + scriptFile = "pom.xml"; + } else if (p.projectType === ProjectType.Gradle) { + scriptFile = "build.gradle"; + } + + if (scriptFile) { + openBuildScript(p.rootPath, scriptFile); + } + } + + showHint = (projectType: any) => { + this.setState({ + showHintFor: projectType + }); + } + + refresh = () => { + onWillListRuntimes(); + } + +} + +function hasBuildTool(p: ProjectRuntimeEntry) { + return (p.projectType === ProjectType.Maven || p.projectType === ProjectType.Gradle); +} \ No newline at end of file diff --git a/src/java-runtime/assets/ToolingJDKPanel.tsx b/src/java-runtime/assets/ToolingJDKPanel.tsx new file mode 100644 index 00000000..b1bf460f --- /dev/null +++ b/src/java-runtime/assets/ToolingJDKPanel.tsx @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import { provideReactWrapper } from '@microsoft/fast-react-wrapper'; +import * as webviewUI from "@vscode/webview-ui-toolkit"; +import * as React from "react"; +import { encodeCommandUriWithTelemetry } from '../../utils/webview'; +import { JavaRuntimeEntry } from "../types"; +import { onWillBrowseForJDK } from './vscode.api'; + +const { wrap } = provideReactWrapper(React); +const Button = wrap(webviewUI.VSCodeButton); + +interface Props { + jdkEntries?: JavaRuntimeEntry[]; + javaDotHome?: string; + javaHomeError?: any; +} + +interface State { + isDirty?: boolean; +} + +export class ToolingJDKPanel extends React.Component { + render = () => { + const { javaHomeError } = this.props; + const downloadJDKCommand = encodeCommandUriWithTelemetry("java.runtime", "Install a new JDK", "java.helper.openUrl", ["https://adoptium.net"]); + + return ( +
+

Configure Runtime for Language Server

+
Java Langauge Server requires a JDK 11+ to launch itself.
+ + {javaHomeError && (

{javaHomeError}

)} + +
+ + {this?.state?.isDirty && } +
+ +
+ ); + } + + onClickBrowseJDKButton = () => { + onWillBrowseForJDK(); + this.setState({ isDirty: true }); + } +} diff --git a/src/java-runtime/assets/components/DefaultJDKSelector.tsx b/src/java-runtime/assets/components/DefaultJDKSelector.tsx new file mode 100644 index 00000000..739c3e06 --- /dev/null +++ b/src/java-runtime/assets/components/DefaultJDKSelector.tsx @@ -0,0 +1,67 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import { provideReactWrapper } from '@microsoft/fast-react-wrapper'; +import * as webviewUI from "@vscode/webview-ui-toolkit"; +import * as React from "react"; +import { JavaRuntimeEntry, ProjectRuntimeEntry } from "../../types"; +import { setDefaultRuntime } from "../vscode.api"; + +const { wrap } = provideReactWrapper(React); +const Button = wrap(webviewUI.VSCodeButton); + +interface Props { + jdkEntries: JavaRuntimeEntry[]; + projectRuntime: ProjectRuntimeEntry; +} + +interface State { + isEditing: boolean; +} + +export class DefaultJDKSelector extends React.Component { + constructor(props: any) { + super(props); + this.state = { + isEditing: false + }; + } + + render = () => { + const { jdkEntries, projectRuntime: p } = this.props; + const { isEditing } = this.state; + return ( +
+ { isEditing ? + + : + {p.sourceLevel} + } + +
+ ); + } + + onSelectionChange = (event: React.ChangeEvent) => { + this.setIsEditing(false); + const { value } = event.target; + const targetJdk = this.props.jdkEntries.find(jdk => jdk.fspath === value); + if (targetJdk) { + setDefaultRuntime(targetJdk.fspath, targetJdk.majorVersion); + } + } + + onClickEdit = () => { + this.setIsEditing(true); + } + + setIsEditing = (isEditing: boolean) => { + this.setState({ + isEditing + }) + } +} \ No newline at end of file diff --git a/src/java-runtime/assets/components/ProjectTypeHint.tsx b/src/java-runtime/assets/components/ProjectTypeHint.tsx new file mode 100644 index 00000000..ce486a71 --- /dev/null +++ b/src/java-runtime/assets/components/ProjectTypeHint.tsx @@ -0,0 +1,60 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import * as React from "react"; + +interface Props { + projectType: "Maven" | "Gradle" | "Others" | undefined; +} + +export class ProjectTypeHint extends React.Component { + + render = () => { + return ( +
+ {this.hintContent()} +
+ ); + } + + hintContent = () => { + const { projectType } = this.props; + switch (projectType) { + case "Maven": + return ( +
+

For projects managed by build tools, Java version is specified in build scripts. E.g. to use Java 8, add below lines in pom.xml:

+
+ + <properties>
+   <maven.compiler.source>1.8</maven.compiler.source>
+   <maven.compiler.target>1.8</maven.compiler.target>
+ </properties> +
+
+
+ ); + case "Gradle": + return ( +
+

For projects managed by build tools, Java version is specified in build scripts. E.g. to use Java 8, add below lines in build.gradle:

+
+ + sourceCompatibility = 1.8
+ targetCompatibility = 1.8
+
+
+
+ ); + + case "Others": + return ( +
+

For folders containing .java files, but not managed by build tools like Maven/Gradle, a default JDK is used.

+
+ ); + default: + return undefined; + } + } +} \ No newline at end of file diff --git a/src/java-runtime/assets/index.html b/src/java-runtime/assets/index.html index d0cdfb0f..97f2a675 100644 --- a/src/java-runtime/assets/index.html +++ b/src/java-runtime/assets/index.html @@ -2,44 +2,13 @@ - - - Configure Java Runtime + + + Configure Java Runtime -
-
-
-

Configure Java Runtime

-
-
- - -
-
-
-
-
-
-
- - -
-
-
-
-
-
-

Install A JDK

-
-
-
-
-
-
-
-
+
- + \ No newline at end of file diff --git a/src/java-runtime/assets/index.ts b/src/java-runtime/assets/index.ts index 3ca6a1d1..443ef9bb 100644 --- a/src/java-runtime/assets/index.ts +++ b/src/java-runtime/assets/index.ts @@ -1,81 +1,38 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. -import "bootstrap/js/src/tab"; -const $ = require("jquery"); import * as React from "react"; import * as ReactDOM from "react-dom"; -import "../../assets/vscode.scss"; -import { JdkConfigurationPanel } from "./jdk.configure"; -import { JdkInstallationPanel } from "./jdk.installation"; -import { onWillListRuntimes, requestJdkInfo } from "./vscode.api"; -import bytes = require("bytes"); import "./style.scss"; -import { AdoptiumAsset } from "../utils/adoptiumApi"; +import { ProjectJDKPanel } from "./ProjectJDKPanel"; +import "@vscode/webview-ui-toolkit/dist/toolkit" +import { onWillListRuntimes } from "./vscode.api"; +import { ToolingJDKPanel } from "./ToolingJDKPanel"; const onInitialize = (event: any) => { const { data } = event; - if (data.command === "applyJdkInfo") { - applyJdkInfo(data.jdkInfo); - } else if (data.command === "showJavaRuntimeEntries") { + if (data.command === "showJavaRuntimeEntries") { showJavaRuntimeEntries(data.args); } }; window.addEventListener("message", onInitialize); -renderLoadingPage(); onWillListRuntimes(); -/** - * Listing runtime can be slow, show loading page immediately after opening webview - */ -function renderLoadingPage() { - ReactDOM.render(React.createElement(JdkConfigurationPanel), document.getElementById("jdkConfigurationPanel")); - ReactDOM.render(React.createElement(JdkInstallationPanel), document.getElementById("jdkInstallationPanel")); -} - function showJavaRuntimeEntries(args: any) { - const props = { - jdkEntries: args.javaRuntimes, - projectRuntimes: args.projectRuntimes, - javaHomeError: args.javaHomeError, - javaDotHome: args.javaDotHome - }; - ReactDOM.render(React.createElement(JdkConfigurationPanel, props), document.getElementById("jdkConfigurationPanel")); - registerTabSwitchEvents(); -} - -// now use v3 API -function applyJdkInfo(jdkInfo?: AdoptiumAsset) { - let binary = jdkInfo?.binary?.installer || jdkInfo?.binary?.package; - if (jdkInfo === undefined || binary === undefined) { - return; + if (args.javaHomeError) { + // TODO: remove after tooling JDK is embedded + const props = { + jdkEntries: args.javaRuntimes, + javaHomeError: args.javaHomeError, + javaDotHome: args.javaDotHome + }; + ReactDOM.render(React.createElement(ToolingJDKPanel, props), document.getElementById("content")); + } else { + const props = { + jdkEntries: args.javaRuntimes, + projectRuntimes: args.projectRuntimes, + } + ReactDOM.render(React.createElement(ProjectJDKPanel, props), document.getElementById("content")); } - - let downloadLink = binary.link; - let encodedLink = `command:java.helper.openUrl?${encodeURIComponent(JSON.stringify(downloadLink))}`; - - const jdkData = { - name: jdkInfo.release_name, - os: jdkInfo.binary.os, - arch: jdkInfo.binary.architecture, - size: bytes(binary.size, { unitSeparator: " " }), - downloadLink: encodedLink - }; - - const props = { - jdkData, - onRequestJdk: requestJdkInfo - }; - - ReactDOM.render(React.createElement(JdkInstallationPanel, props), document.getElementById("jdkInstallationPanel")); -} - -/** - * To remove after we retire jQuery from this page/ - */ -function registerTabSwitchEvents() { - $("a.navigation").click((e: any) => { - ($($(e.target).attr("href") || "") as any).tab("show"); - }); } diff --git a/src/java-runtime/assets/jdk.configure.installed.tsx b/src/java-runtime/assets/jdk.configure.installed.tsx deleted file mode 100644 index 1a98d31e..00000000 --- a/src/java-runtime/assets/jdk.configure.installed.tsx +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -import * as _ from "lodash"; -import * as React from "react"; -import { JavaRuntimeEntry } from "../types"; - -export interface InstalledJDKPanelProps { - jdkEntries?: JavaRuntimeEntry[]; -} - -export const InstalledJDKPanel = (props: InstalledJDKPanelProps) => { - return ( -
-
-
-

Detected JDKs

-

- JDKs installed on this machine are listed below: -

- -
-
-
- ); -}; - - -const JDKTablePanel = (props: InstalledJDKPanelProps) => { - const isLoading = _.isEmpty(props && props.jdkEntries); - - if (isLoading) { - return (
- Loading... -
); - } - - const entryData = (props && props.jdkEntries) || []; - const entries = entryData.map((entry, index) => { - return ( - - {index + 1} - - {entry.fspath} - - - {entry.majorVersion} - - - ); - }); - - return ( -
- - - - - - - - - - {entries} - -
#PathVersion
-
- ); -}; diff --git a/src/java-runtime/assets/jdk.configure.ls.tsx b/src/java-runtime/assets/jdk.configure.ls.tsx deleted file mode 100644 index c925a275..00000000 --- a/src/java-runtime/assets/jdk.configure.ls.tsx +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -import * as React from "react"; -import { JavaRuntimeEntry } from "../types"; -import { udpateJavaHome } from "./vscode.api"; - -export interface ConfigureLSPanelProps { - jdkEntries?: JavaRuntimeEntry[]; - javaDotHome?: string; - javaHomeError?: any; -} - -interface ConfigureLSPanelStates { - isDirty: boolean; -} - -export class ConfigureLSPanel extends React.Component { - constructor(props: ConfigureLSPanelProps) { - super(props); - this.state = { - isDirty: false - }; - } - - render = () => { - const { jdkEntries, javaHomeError, javaDotHome } = this.props; - if (!jdkEntries) { - return ( -
- Loading... -
- ); - } - - const jdks = jdkEntries.map(e => ({ - name: e.fspath, - fspath: e.fspath, - majorVersion: e.majorVersion, - version: e.majorVersion, - })); - - return ( -
-

Java Language Server

-

Language Server requires JDK 11+ to launch itself. If you change the entry below, you need to reload VS Code to make it effective.

-
-
-
-
- -
- - {this.state.isDirty && ()} -
- {javaHomeError !== undefined && (

{javaHomeError}

)} -
-
- - Note: to run your projects with a different Java version, you can configure Project JDKs. - -
- ); - } - - onSelectionChange = (event: React.ChangeEvent) => { - const { value } = event.target; - udpateJavaHome(value); - this.setState({ isDirty: true }); - } - -} - diff --git a/src/java-runtime/assets/jdk.configure.project.tsx b/src/java-runtime/assets/jdk.configure.project.tsx deleted file mode 100644 index d6f03a42..00000000 --- a/src/java-runtime/assets/jdk.configure.project.tsx +++ /dev/null @@ -1,107 +0,0 @@ -import * as _ from "lodash"; -import * as React from "react"; -import { ProjectType } from "../../utils/webview"; -import { JavaRuntimeEntry, ProjectRuntimeEntry } from "../types"; -import { InvisibleProjectsRuntimePanel } from "./project.invisible"; -import { ManagedProjectRuntimePanel } from "./project.managed"; -import { openBuildScript } from "./vscode.api"; - -export const ProjectRuntimePanel = (props: { - jdkEntries: JavaRuntimeEntry[]; - projectRuntimes: ProjectRuntimeEntry[]; -}) => { - const { jdkEntries, projectRuntimes } = props; - - const sourceLevelEntries = _.uniqBy( - projectRuntimes - .filter(p => p.projectType === ProjectType.Maven || p.projectType === ProjectType.Gradle) - .map(p => ({ sourceLevel: p.sourceLevel, runtimePath: p.runtimePath })), - "sourceLevel" - ); - const unmanagedProject = projectRuntimes.find(p => p.projectType === ProjectType.UnmanagedFolder); - const defaultJDK = unmanagedProject ? unmanagedProject.runtimePath : undefined; - - const sourceLevelRuntimePanels = !_.isEmpty(sourceLevelEntries) && ; - const invisibleProjectsRuntimePanel = unmanagedProject && defaultJDK && ; - - const projectEntries = projectRuntimes - .filter(p => p.projectType !== ProjectType.Default) - .map((p, index) => ( - - {p.name} - {p.sourceLevel} - {(p.projectType === ProjectType.Maven || p.projectType === ProjectType.Gradle) && onClickType(p)}>{p.projectType}} - {(p.projectType !== ProjectType.Maven && p.projectType !== ProjectType.Gradle) && {p.projectType}} - - )); - const projectRuntimesTable = ( - - - - - - - - - - - {projectEntries} - -
To use a different Java version for your projects, please specify it in build scripts.
ProjectJava VersionType
- ); - - return ( -
-
-
-

Workspace Overview

- {projectRuntimesTable} -
- Click to see how - -

For example, if you want to use Java 8, add below lines

-

In pom.xml of a Maven project:

-
- - <properties>
-   <maven.compiler.source>1.8</maven.compiler.source>
-   <maven.compiler.target>1.8</maven.compiler.target>
- </properties> -
-
- -

In build.gradle of a Gradle project:

-
- - sourceCompatibility = 1.8
- targetCompatibility = 1.8
-
-
-
-
- -
- {/* Managed Projects */} - {sourceLevelRuntimePanels} - - {/* invisible projects */} - {invisibleProjectsRuntimePanel} -
-
-
- ); -}; - -function onClickType(p: ProjectRuntimeEntry) { - let scriptFile; - if (p.projectType === ProjectType.Maven) { - scriptFile = "pom.xml"; - } else if (p.projectType === ProjectType.Gradle) { - scriptFile = "build.gradle"; - } - - if (scriptFile) { - openBuildScript(p.rootPath, scriptFile); - } - -} diff --git a/src/java-runtime/assets/jdk.configure.tsx b/src/java-runtime/assets/jdk.configure.tsx deleted file mode 100644 index 64e67e64..00000000 --- a/src/java-runtime/assets/jdk.configure.tsx +++ /dev/null @@ -1,83 +0,0 @@ - -import * as React from "react"; -import { JavaRuntimeEntry, ProjectRuntimeEntry } from "../types"; -import { InstalledJDKPanel } from "./jdk.configure.installed"; -import { ConfigureLSPanel } from "./jdk.configure.ls"; -import { ProjectRuntimePanel } from "./jdk.configure.project"; - -interface JdkConfigurationPanelProps { - jdkEntries?: JavaRuntimeEntry[]; - projectRuntimes?: ProjectRuntimeEntry[]; - javaDotHome?: string; - javaHomeError?: any; -} - -export class JdkConfigurationPanel extends React.Component { - - render = () => { - const { javaHomeError, jdkEntries, projectRuntimes } = this.props; - if (!projectRuntimes || !jdkEntries) { - return ( -
- Loading... -
- ); - } - - const projectRuntimePanel = React.createElement(ProjectRuntimePanel, { jdkEntries, projectRuntimes }); - const configureLsPanel = React.createElement(ConfigureLSPanel, this.props); - const installedJdkPanel = React.createElement(InstalledJDKPanel, this.props); - - return ( -
-
- -
-
-
-
- {/* */} -
-
- {projectRuntimePanel} -
-
- - {/* */} -
-
- {configureLsPanel} -
-
- - {/* */} -
-
- {installedJdkPanel} -
-
-
-
-
-
- ); - } -} diff --git a/src/java-runtime/assets/jdk.installation.tsx b/src/java-runtime/assets/jdk.installation.tsx deleted file mode 100644 index b40865e3..00000000 --- a/src/java-runtime/assets/jdk.installation.tsx +++ /dev/null @@ -1,162 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -import * as _ from "lodash"; -import * as React from "react"; -import { JdkData } from "../types"; - -export type JdkRquestHandler = (jdkVersion: string, jvmImpl: string) => void; - -export interface JdkInstallationPanelProps { - jdkData?: JdkData; - onRequestJdk: JdkRquestHandler; -} - -interface JdkInstallationPanelState { - isLoading: boolean; - jdkData?: JdkData; - jdkVersion: string; - jvmImpl: string; -} - -export class JdkInstallationPanel extends React.Component { - constructor(props: JdkInstallationPanelProps) { - super(props); - this.state = { - isLoading: _.isEmpty(props && props.jdkData), - jdkVersion: "openjdk11", - jvmImpl: "hotspot" - }; - } - - static getDerivedStateFromProps(props: JdkInstallationPanelProps, state: JdkInstallationPanelState) { - // only alter state when the props change for real - if (_.isEqual(state.jdkData, props.jdkData)) { - return null; - } - - return { - isLoading: _.isEmpty(props && props.jdkData), - data: props.jdkData - }; - } - - handleChange(event: any) { - let newState = { - ...this.state, - isLoading: true, - data: this.props.jdkData, - }; - - const target = event.target; - if (target) { - if (target.name === "jdkVersion") { - newState = { - ...newState, - jdkVersion: target.value - }; - } else if (target.name === "jvmImpl") { - newState = { - ...newState, - jvmImpl: target.value - }; - } - } - - this.props?.onRequestJdk(newState.jdkVersion, newState.jvmImpl); - this.setState(newState); - } - - render() { - return ( -
- -
-
-
-
-
-
- Download for  - {this.props.jdkData && this.props.jdkData.os}  - {this.props.jdkData && this.props.jdkData.arch} -
-
-
-
this.handleChange(event)}> -
- -
- - -
-
- - -
-
- - -
-
-
- -
- - -
-
-
- -
-
- -
-

When you are finished, please reload Visual Studio Code to make it effective.

-

- Reload Window  - Having Trouble? -

-
- ); - } -} diff --git a/src/java-runtime/assets/project.invisible.tsx b/src/java-runtime/assets/project.invisible.tsx deleted file mode 100644 index 69805b21..00000000 --- a/src/java-runtime/assets/project.invisible.tsx +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -import * as React from "react"; -import { JavaRuntimeEntry } from "../types"; -import { setDefaultRuntime } from "./vscode.api"; - -interface InvisibleProjectsRuntimePanelProps { - jdks: JavaRuntimeEntry[]; - defaultJDK?: string; -} - -export class InvisibleProjectsRuntimePanel extends React.Component { - render = () => { - const { jdks, defaultJDK } = this.props; - return ( -
-

Unmanaged Folders

-

For folders containing .java files, but NOT managed by build tools like Maven/Gradle, a default JDK is used.

-
-
-
-
-
-
- -
- -
-
-
-
-
-
- ); - } - - onSelectionChange = (event: React.ChangeEvent) => { - const { value } = event.target; - const targetJdk = this.props.jdks.find(jdk => jdk.fspath === value); - if (targetJdk) { - setDefaultRuntime(targetJdk.fspath, targetJdk.majorVersion); - } - } -} diff --git a/src/java-runtime/assets/project.managed.tsx b/src/java-runtime/assets/project.managed.tsx deleted file mode 100644 index dac5a8a1..00000000 --- a/src/java-runtime/assets/project.managed.tsx +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -import * as React from "react"; -import { JavaRuntimeEntry } from "../types"; -import { sourceLevelDisplayName, sourceLevelMajorVersion } from "../utils/misc"; -import { updateRuntimePath } from "./vscode.api"; - -interface ManagedProjectRuntimePanelProps { - entries: { - sourceLevel: string; - runtimePath: string; - }[]; - jdks: JavaRuntimeEntry[]; -} - -export class ManagedProjectRuntimePanel extends React.Component { - - render = () => { - return ( -
-

Maven/Gradle Projects

-

For projects managed by build tools, Java version is specified in build scripts. Here you can change the mapping between Java version and JDK used.

- {this.props.entries.map(this.getRuntimeSelectorComponent)} -
- ); - } - - getRuntimeSelectorComponent = (entry: { - sourceLevel: string; - runtimePath: string; - }) => { - const { sourceLevel, runtimePath } = entry; - - return ( -
-
-
-
-
-
- -
- -
-
-
-
-
- ); - } - - onSelectionChange = (event: React.ChangeEvent) => { - const { id, value } = event.target; - updateRuntimePath(sourceLevelDisplayName(id), value); - } - -} diff --git a/src/java-runtime/assets/style.scss b/src/java-runtime/assets/style.scss index 1a81c1b1..c157b966 100644 --- a/src/java-runtime/assets/style.scss +++ b/src/java-runtime/assets/style.scss @@ -1,19 +1,77 @@ -div.container { +div#content { min-width: 550px; + padding: 0 24px 0 24px; } -sup.newtag { - color: var(--vscode-terminal-ansiRed); +div.container { + margin-top: 1.5rem; + padding: 0 20px 0 20px; +} + +vscode-data-grid-row.sticky-header vscode-data-grid-cell { font-weight: bold; - margin-left: 0.2rem; } -span.red-dot { - height: 0.5rem; - width: 0.5rem; - background-color: var(--vscode-terminal-ansiRed); - border-radius: 50%; - display: inline-block; - margin-left: 0.2rem; - margin-bottom: 0.2rem; +select#jdkDropdown { + background-color: var(--dropdown-background); + color: var(--dropdown-foreground); + + align-items: center; + box-sizing: border-box; + border: calc(var(--border-width) * 1px) solid var(--dropdown-border); + border-radius: calc(var(--corner-radius) * 1px); + cursor: pointer; + display: flex; + font-family: inherit; + font-size: var(--type-ramp-base-font-size); + line-height: var(--type-ramp-base-line-height); + min-height: 100%; + width: 100%; +} + +@import "~@vscode/codicons/dist/codicon.css"; +@import "~@vscode/codicons/dist/codicon.ttf"; + +div.warning-box { + display: flex; + border: solid 1px; + border-color: var(--vscode-list-warningForeground); + background: var(--vscode-inputValidation-warningBackground); + padding: 0.5rem; + + .codicon { + color: var(--vscode-list-warningForeground); + margin-left: 0.2rem; + margin-right: 0.2rem; + } +} + +div.jdk-action { + display: flex; + margin-top: 0.5rem; + a { + text-decoration: none; + color: var(--button-primary-foreground); + } + vscode-button { + width: 100%; + margin-right: 0.5rem + } +} + +.java-home-error { + color: var(--vscode-list-warningForeground); +} + +div.inline-flex { + display: inline-flex; +} + +div.hintPanel { + margin-top: 2rem; + margin: 0 7px 0 5px; + padding: 0 16px 0 10px; + border-left: 5px solid; + border-color: rgba(0, 122, 204, 0.5); + background: rgba(127, 127, 127, 0.1); } \ No newline at end of file diff --git a/src/java-runtime/assets/vscode.api.ts b/src/java-runtime/assets/vscode.api.ts index c1b6900b..e5e97f62 100644 --- a/src/java-runtime/assets/vscode.api.ts +++ b/src/java-runtime/assets/vscode.api.ts @@ -48,3 +48,9 @@ export function onWillListRuntimes() { command: "onWillListRuntimes" }); } + +export function onWillBrowseForJDK() { + vscode.postMessage({ + command: "onWillBrowseForJDK" + }); +} diff --git a/src/java-runtime/index.ts b/src/java-runtime/index.ts index c9578c4d..69837668 100644 --- a/src/java-runtime/index.ts +++ b/src/java-runtime/index.ts @@ -5,7 +5,7 @@ import * as _ from "lodash"; import * as path from "path"; import * as vscode from "vscode"; import { getExtensionContext, loadTextFromFile } from "../utils"; -import { findJavaHomes, JavaRuntime } from "./utils/findJavaRuntime"; +import { findJavaHomes, JAVAC_FILENAME, JavaRuntime, verifyJavaHome } from "./utils/findJavaRuntime"; import architecture = require("arch"); import { resolveRequirements } from "./utils/upstreamApi"; import { JavaRuntimeEntry, ProjectRuntimeEntry } from "./types"; @@ -123,6 +123,23 @@ async function initializeJavaRuntimeView(context: vscode.ExtensionContext, webvi vscode.commands.executeCommand("vscode.open", vscode.Uri.file(fullPath)); break; } + case "onWillBrowseForJDK": { + const javaHomeUri: vscode.Uri[] | undefined = await vscode.window.showOpenDialog({ + canSelectFiles: false, + canSelectMany: false, + canSelectFolders: true, + title: "Specify Java Home" + }); + if (javaHomeUri) { + const javaHome = javaHomeUri[0].fsPath; + if (await verifyJavaHome(javaHome, JAVAC_FILENAME)) { + await vscode.workspace.getConfiguration("java").update("home", javaHome, vscode.ConfigurationTarget.Global); + } else { + await vscode.window.showWarningMessage(`${javaHome} is not a valid JDK home directory.`); + } + } + break; + } default: break; } @@ -209,7 +226,7 @@ export async function findJavaRuntimeEntries(): Promise<{ javaHomeError = `Java 11 or more recent is required by the Java language support (redhat.java) extension. Preferred JDK "${javaDotHome}" (version ${javaVersion}) doesn't meet the requirement. Please specify or install a recent JDK.`; } } catch (error) { - javaHomeError = error.message; + javaHomeError = (error as Error).message; } let projectRuntimes = await getProjectRuntimesFromPM(); diff --git a/src/java-runtime/utils/findJavaRuntime.ts b/src/java-runtime/utils/findJavaRuntime.ts index be952ab8..5e035a02 100644 --- a/src/java-runtime/utils/findJavaRuntime.ts +++ b/src/java-runtime/utils/findJavaRuntime.ts @@ -11,8 +11,8 @@ const WinReg = require("winreg-utf8"); const isWindows: boolean = process.platform.indexOf("win") === 0; const isMac: boolean = process.platform.indexOf("darwin") === 0; const isLinux: boolean = process.platform.indexOf("linux") === 0; -const JAVAC_FILENAME = "javac" + (isWindows ? ".exe" : ""); -const JAVA_FILENAME = "java" + (isWindows ? ".exe" : ""); +export const JAVAC_FILENAME = "javac" + (isWindows ? ".exe" : ""); +export const JAVA_FILENAME = "java" + (isWindows ? ".exe" : ""); export interface JavaRuntime { home: string; @@ -218,7 +218,13 @@ async function fromCommonPlaces(): Promise { process.env.ProgramW6432 && path.join(process.env.ProgramW6432, "Java"), // Oracle JDK per machine process.env.ProgramFiles && path.join(process.env.ProgramFiles, "AdoptOpenJDK"), // AdoptOpenJDK per machine process.env.ProgramW6432 && path.join(process.env.ProgramW6432, "AdoptOpenJDK"), // AdoptOpenJDK per machine + process.env.ProgramFiles && path.join(process.env.ProgramFiles, "Eclipse Foundation"), // AdoptOpenJDK (Eclipse Foundation) per machine + process.env.ProgramW6432 && path.join(process.env.ProgramW6432, "Eclipse Foundation"), // AdoptOpenJDK (Eclipse Foundation) per machine + process.env.ProgramFiles && path.join(process.env.ProgramFiles, "Eclipse Adoptium"), // AdoptOpenJDK (Eclipse Adoptium) per machine + process.env.ProgramW6432 && path.join(process.env.ProgramW6432, "Eclipse Adoptium"), // AdoptOpenJDK (Eclipse Adoptium) per machine path.join(localAppDataFolder, "Programs", "AdoptOpenJDK"), // AdoptOpenJDK per user + path.join(localAppDataFolder, "Programs", "Eclipse Foundation"), // AdoptOpenJDK per user (After joining Eclipse Foundation) + path.join(localAppDataFolder, "Programs", "Eclipse Adoptium"), // AdoptOpenJDK per user (After joining Eclipse Adoptium) ].filter(Boolean) as string[]; const jvmStores = _.uniq(possibleLocations); for (const jvmStore of jvmStores) { diff --git a/src/welcome/assets/style.scss b/src/welcome/assets/style.scss index 3903cd2e..3cc72d48 100644 --- a/src/welcome/assets/style.scss +++ b/src/welcome/assets/style.scss @@ -127,4 +127,4 @@ div.page-content { width: 360px; height: 270px; } -} +} \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index 93faec70..efb447cc 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -52,10 +52,9 @@ module.exports = function (env, argv) { loader: 'css-loader' }] }, { - test: /\.woff2$/, + test: /\.(woff2|ttf)$/, loader: 'url-loader', - }, - ] + }] }, output: { filename: 'assets/[name]/index.js', From 39998a0c71b4b5c94f45c5cf9c0c844cf372c128 Mon Sep 17 00:00:00 2001 From: Shi Chen Date: Mon, 8 Nov 2021 10:52:05 +0800 Subject: [PATCH 012/409] fix: Add thisArg to instrumentOperation of formatter preview (#801) --- src/commands/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/index.ts b/src/commands/index.ts index 219777c8..b84ed9fb 100644 --- a/src/commands/index.ts +++ b/src/commands/index.ts @@ -29,7 +29,7 @@ export function initialize(context: vscode.ExtensionContext) { context.subscriptions.push(instrumentOperationAsVsCodeCommand("java.webview.runCommand", webviewCmdLinkHandler)); registerCommandHandler(context, "java.welcome", showWelcomeWebviewBeside); registerCommandHandler(context, "java.welcome.fromWalkthrough", showWelcomeWebview); - context.subscriptions.push(instrumentOperationAsVsCodeCommand("java.formatterSettings", javaFormatterSettingsEditorProvider.showFormatterSettingsEditor)); + context.subscriptions.push(instrumentOperationAsVsCodeCommand("java.formatterSettings", javaFormatterSettingsEditorProvider.showFormatterSettingsEditor, javaFormatterSettingsEditorProvider)); context.subscriptions.push(instrumentOperationAsVsCodeCommand("java.formatterSettings.showTextEditor", javaFormatterSettingsEditorProvider.reopenWithTextEditor)); registerCommandHandler(context, "java.classpathConfiguration", showClasspathConfigurationPage); } From a5a8d0817c7cc93e146450675392f383d6c6d5ee Mon Sep 17 00:00:00 2001 From: Shi Chen Date: Tue, 9 Nov 2021 09:53:44 +0800 Subject: [PATCH 013/409] Add configure formatter settings entry in help center (#802) --- src/welcome/assets/components/NavigationPanel.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/welcome/assets/components/NavigationPanel.tsx b/src/welcome/assets/components/NavigationPanel.tsx index fa70d893..1e32fd16 100644 --- a/src/welcome/assets/components/NavigationPanel.tsx +++ b/src/welcome/assets/components/NavigationPanel.tsx @@ -21,7 +21,8 @@ export default class NavigationPanel extends React.Component { actions: [ { name: "Configure Java Runtime", command: "java.runtime" }, { name: "Open Java Settings", command: "workbench.action.openSettings", args: ["java."] }, - { name: "Install Extensions...", command: "java.extGuide" } + { name: "Install Extensions...", command: "java.extGuide" }, + { name: "Configure Formatter Settings", command: "java.formatterSettings" } ] }, { From a656bd303b633bd0542b1acb090d224018e93b50 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Wed, 10 Nov 2021 20:57:55 +0800 Subject: [PATCH 014/409] add webview to install new JDK (#803) --- .vscodeignore | 1 + package-lock.json | 30 ++-- package.json | 5 + src/commands/index.ts | 2 + src/extension.ts | 2 + src/install-jdk/asset/App.scss | 34 ++++ src/install-jdk/asset/App.tsx | 16 ++ src/install-jdk/asset/app/hooks.ts | 9 + src/install-jdk/asset/app/store.ts | 18 ++ .../asset/features/InstallJDKView.tsx | 50 ++++++ .../features/components/AdoptiumJDKPanel.tsx | 125 ++++++++++++++ .../features/components/OtherJDKsPanel.tsx | 36 ++++ .../asset/features/installJDKViewSlice.ts | 41 +++++ src/install-jdk/asset/index.tsx | 15 ++ src/install-jdk/asset/vscode.api.ts | 36 ++++ src/install-jdk/constants.ts | 4 + src/install-jdk/index.ts | 157 ++++++++++++++++++ src/java-runtime/assets/vscode.api.ts | 8 - src/java-runtime/index.ts | 17 +- src/{java-runtime => }/utils/adoptiumApi.ts | 26 ++- src/utils/index.ts | 9 + src/utils/webview.ts | 3 + webpack.config.js | 3 +- 23 files changed, 605 insertions(+), 42 deletions(-) create mode 100644 src/install-jdk/asset/App.scss create mode 100644 src/install-jdk/asset/App.tsx create mode 100644 src/install-jdk/asset/app/hooks.ts create mode 100644 src/install-jdk/asset/app/store.ts create mode 100644 src/install-jdk/asset/features/InstallJDKView.tsx create mode 100644 src/install-jdk/asset/features/components/AdoptiumJDKPanel.tsx create mode 100644 src/install-jdk/asset/features/components/OtherJDKsPanel.tsx create mode 100644 src/install-jdk/asset/features/installJDKViewSlice.ts create mode 100644 src/install-jdk/asset/index.tsx create mode 100644 src/install-jdk/asset/vscode.api.ts create mode 100644 src/install-jdk/constants.ts create mode 100644 src/install-jdk/index.ts rename src/{java-runtime => }/utils/adoptiumApi.ts (83%) diff --git a/.vscodeignore b/.vscodeignore index 976334c0..a97cff05 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -13,5 +13,6 @@ webpack.config.ext.js webpack.config.js out/**/*.map out/assets/**/*.js +!out/assets/install-jdk/index.js *.vsix scripts diff --git a/package-lock.json b/package-lock.json index 1dbe5fd6..e5730b3f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -988,7 +988,7 @@ }, "browserify-aes": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "requires": { @@ -1220,7 +1220,7 @@ }, "camelcase-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { @@ -1614,7 +1614,7 @@ }, "create-hash": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "requires": { @@ -1627,7 +1627,7 @@ }, "create-hmac": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "requires": { @@ -1991,7 +1991,7 @@ }, "diffie-hellman": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { @@ -3099,7 +3099,7 @@ }, "html-webpack-plugin": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", + "resolved": "http://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", "dev": true, "requires": { @@ -3689,7 +3689,7 @@ }, "json5": { "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, @@ -3721,7 +3721,7 @@ }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { @@ -3865,7 +3865,7 @@ }, "meow": { "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { @@ -4386,13 +4386,13 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, @@ -4510,7 +4510,7 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, @@ -5442,7 +5442,7 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { @@ -5584,7 +5584,7 @@ }, "sha.js": { "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { @@ -6002,7 +6002,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { diff --git a/package.json b/package.json index fe1d85ba..e10584c2 100644 --- a/package.json +++ b/package.json @@ -174,6 +174,11 @@ } ], "commands": [ + { + "command": "java.installJdk", + "category": "Java", + "title": "Install New JDK" + }, { "command": "java.welcome", "category": "Java", diff --git a/src/commands/index.ts b/src/commands/index.ts index b84ed9fb..c2d86337 100644 --- a/src/commands/index.ts +++ b/src/commands/index.ts @@ -1,6 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. +import { installJDKCmdHandler } from "../install-jdk"; import * as vscode from "vscode"; import { instrumentOperation, instrumentOperationAsVsCodeCommand } from "vscode-extension-telemetry-wrapper"; import { showClasspathConfigurationPage } from "../classpath/classpathConfigurationView"; @@ -32,6 +33,7 @@ export function initialize(context: vscode.ExtensionContext) { context.subscriptions.push(instrumentOperationAsVsCodeCommand("java.formatterSettings", javaFormatterSettingsEditorProvider.showFormatterSettingsEditor, javaFormatterSettingsEditorProvider)); context.subscriptions.push(instrumentOperationAsVsCodeCommand("java.formatterSettings.showTextEditor", javaFormatterSettingsEditorProvider.reopenWithTextEditor)); registerCommandHandler(context, "java.classpathConfiguration", showClasspathConfigurationPage); + registerCommandHandler(context, "java.installJdk", installJDKCmdHandler); } type CommandHandler = (context: vscode.ExtensionContext, operationId: string, ...args: any[]) => any; diff --git a/src/extension.ts b/src/extension.ts index 8dcce667..fd44a7b8 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -10,6 +10,7 @@ import { JavaExtGuideViewSerializer } from "./ext-guide"; import { initFormatterSettingsEditorProvider } from "./formatter-settings"; import { initRemoteProfileProvider } from "./formatter-settings/RemoteProfileProvider"; import { JavaGettingStartedViewSerializer } from "./getting-started"; +import { InstallJdkViewSerializer } from "./install-jdk"; import { JavaRuntimeViewSerializer, validateJavaRuntime } from "./java-runtime"; import { HelpViewType, showReleaseNotesOnStart } from "./misc"; import { OverviewViewSerializer } from "./overview"; @@ -44,6 +45,7 @@ async function initializeExtension(_operationId: string, context: vscode.Extensi context.subscriptions.push(vscode.window.registerWebviewPanelSerializer("java.gettingStarted", new JavaGettingStartedViewSerializer())); context.subscriptions.push(vscode.window.registerWebviewPanelSerializer("java.welcome", new WelcomeViewSerializer())); context.subscriptions.push(vscode.window.registerWebviewPanelSerializer("java.classpathConfiguration", new ClassPathConfigurationViewSerializer())); + context.subscriptions.push(vscode.window.registerWebviewPanelSerializer("java.installJdk", new InstallJdkViewSerializer(context))); const config = vscode.workspace.getConfiguration("java.help"); diff --git a/src/install-jdk/asset/App.scss b/src/install-jdk/asset/App.scss new file mode 100644 index 00000000..81a01a58 --- /dev/null +++ b/src/install-jdk/asset/App.scss @@ -0,0 +1,34 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#root { + display: flex; + justify-content: center; + + div.install-jdk-view { + display: flex; + flex-direction: column; + min-height: 100vh; + width: 400px; + } +} + +ul.jdk-distros { + list-style: none; + padding: 0; + margin-top: 0; +} + +div.btn-download { + font-size: large; + div.asset-info { + font-size: small; + } +} + +.footer .troubleshoot-link { + margin: 0 0.5rem; +} + +@import "~@vscode/codicons/dist/codicon.css"; +@import "~@vscode/codicons/dist/codicon.ttf"; diff --git a/src/install-jdk/asset/App.tsx b/src/install-jdk/asset/App.tsx new file mode 100644 index 00000000..a3e027a4 --- /dev/null +++ b/src/install-jdk/asset/App.tsx @@ -0,0 +1,16 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import React from "react"; +import InstallJDKView from "./features/InstallJDKView"; +import './App.scss'; + +class App extends React.Component { + render() { + return ( + + ); + } +} + +export default App; diff --git a/src/install-jdk/asset/app/hooks.ts b/src/install-jdk/asset/app/hooks.ts new file mode 100644 index 00000000..d3f328d4 --- /dev/null +++ b/src/install-jdk/asset/app/hooks.ts @@ -0,0 +1,9 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux' +import type { RootState, AppDispatch } from './store' + +// Use throughout your app instead of plain `useDispatch` and `useSelector` +export const useAppDispatch = () => useDispatch() +export const useAppSelector: TypedUseSelectorHook = useSelector diff --git a/src/install-jdk/asset/app/store.ts b/src/install-jdk/asset/app/store.ts new file mode 100644 index 00000000..d1723d91 --- /dev/null +++ b/src/install-jdk/asset/app/store.ts @@ -0,0 +1,18 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import { configureStore } from '@reduxjs/toolkit' +import jdksReducer from "../features/installJDKViewSlice"; + +const store = configureStore({ + reducer: { + jdks: jdksReducer + }, +}) + +// Infer the `RootState` and `AppDispatch` types from the store itself +export type RootState = ReturnType +// Inferred type: {posts: PostsState, comments: CommentsState, users: UsersState} +export type AppDispatch = typeof store.dispatch + +export default store; diff --git a/src/install-jdk/asset/features/InstallJDKView.tsx b/src/install-jdk/asset/features/InstallJDKView.tsx new file mode 100644 index 00000000..555416c7 --- /dev/null +++ b/src/install-jdk/asset/features/InstallJDKView.tsx @@ -0,0 +1,50 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import { provideReactWrapper } from '@microsoft/fast-react-wrapper'; +import * as webviewUI from "@vscode/webview-ui-toolkit"; +import React from 'react'; +import { WEBVIEW_ID } from '../../../install-jdk/constants'; +import { encodeExternalLinkWithTelemetry } from '../../../utils/webview'; +import { onWillReloadWindow } from '../vscode.api'; +import AdoptiumJDKPanel from './components/AdoptiumJDKPanel'; +import OtherJDKsPanel from './components/OtherJDKsPanel'; + +const { wrap } = provideReactWrapper(React); + + +const PanelTab = wrap(webviewUI.VSCodePanelTab); +const Panels = wrap(webviewUI.VSCodePanels); +const PanelView = wrap(webviewUI.VSCodePanelView); +const Button = wrap(webviewUI.VSCodeButton); +const Link = wrap(webviewUI.VSCodeLink); + +export default function InstallJDKView() { + const helpLink = "https://github.com/redhat-developer/vscode-java#setting-the-jdk"; + return ( +
+
+

Install New JDK

+
+

{/*reserved for introduction*/}

+ + Adoptium's Temurin + Others + + + + + + + +
+

After you finish JDK installation, please reload Visual Studio Code to make it effective.

+
+ + Having trouble? +
+ +
+
+ ); +} diff --git a/src/install-jdk/asset/features/components/AdoptiumJDKPanel.tsx b/src/install-jdk/asset/features/components/AdoptiumJDKPanel.tsx new file mode 100644 index 00000000..2f79e4df --- /dev/null +++ b/src/install-jdk/asset/features/components/AdoptiumJDKPanel.tsx @@ -0,0 +1,125 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import { Orientation } from '@microsoft/fast-web-utilities'; +import { provideReactWrapper } from '@microsoft/fast-react-wrapper'; +import * as webviewUI from "@vscode/webview-ui-toolkit"; +import { AdoptiumAsset, AdoptiumReleaseInfo } from '../../../../utils/adoptiumApi'; +import { useAppDispatch, useAppSelector } from '../../app/hooks'; +import { listReleases, selectVersion, showAsset } from '../installJDKViewSlice'; +import { onWillDownloadTemurinJDK, onWillFetchAsset, onWillFetchAvailableReleases } from '../../vscode.api'; +import React, { useEffect } from 'react'; +import bytes = require("bytes"); + +const { wrap } = provideReactWrapper(React); +const RadioGroup = wrap(webviewUI.VSCodeRadioGroup); +const Radio = wrap(webviewUI.VSCodeRadio); +const Button = wrap(webviewUI.VSCodeButton); +const ProgressRing = wrap(webviewUI.VSCodeProgressRing); + +const AdoptiumJDKPanel = () => { + const releases = useAppSelector(state => state.jdks.availableReleases); + const asset = useAppSelector(state => state.jdks.asset); // `undefined` indicates that asset is being fetched... + const currentVersion = useAppSelector(state => state.jdks.currentVersion); + const isLoading = releases === undefined || asset === undefined; + + const dispatch = useAppDispatch(); + + const handleVersionChange = (version: number) => { + if (!isLoading && currentVersion !== version) { + dispatch(selectVersion(version)); + dispatch(showAsset(undefined)); + } + } + + const onMessage = (event: IMessage) => { + const {data} = event; + if (data.command === "onDidFetchAvailableReleases") { + const releaseInfo = data.payload as AdoptiumReleaseInfo; + dispatch(listReleases(releaseInfo)); + } else if (data.command === "onDidFetchAsset") { + dispatch(showAsset(data.payload as AdoptiumAsset)); + } + }; + + useEffect(() => { + window.addEventListener("message", onMessage); + onWillFetchAvailableReleases(); + return () => window.removeEventListener("message", onMessage); + }, []); + + useEffect(() => { + if (currentVersion && releases) { + onWillFetchAsset(currentVersion); + } + }, [currentVersion, releases]); + + // rendering + if (releases === undefined) { + return ; + } + + const versionElements = releases?.available_lts_releases.map((v: number) => { + return { + version: v, + isLts: true, + }; + }).map((obj: any) => handleVersionChange(obj.version)} + >{obj.version}{obj.isLts && " (LTS)"}); + + const downloadPanel = asset ? +
+ +
+ : + ; + + return ( +
+ + + {versionElements} + + + + hotspot + + {downloadPanel} +
+ ); +} + +function downloadJDK(asset: AdoptiumAsset) { + const link = asset.binary.installer?.link ?? asset.binary.package?.link; + if (link) { + onWillDownloadTemurinJDK(link); + } +} + +interface IMessage { + data: { + command: string; + payload?: AdoptiumReleaseInfo | AdoptiumAsset; + } +} + +export default AdoptiumJDKPanel; diff --git a/src/install-jdk/asset/features/components/OtherJDKsPanel.tsx b/src/install-jdk/asset/features/components/OtherJDKsPanel.tsx new file mode 100644 index 00000000..3f55f178 --- /dev/null +++ b/src/install-jdk/asset/features/components/OtherJDKsPanel.tsx @@ -0,0 +1,36 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import { provideReactWrapper } from '@microsoft/fast-react-wrapper'; +import * as webviewUI from "@vscode/webview-ui-toolkit"; +import * as React from 'react'; +import { encodeExternalLinkWithTelemetry } from '../../../../utils/webview'; +import { WEBVIEW_ID } from '../../../constants'; +const { wrap } = provideReactWrapper(React); + +const Link = wrap(webviewUI.VSCodeLink); + +class OtherJDKsPanel extends React.Component { + public render() { + const jdkList = [ + { name: "Amazon Corretto", url: "https://aws.amazon.com/corretto" }, + { name: "Eclipse Adoptium's Temurin", url: "https://adoptium.net/" }, + { name: "Microsoft Build of OpenJDK", url: "https://www.microsoft.com/openjdk" }, + { name: "Oracle Java SE", url: "https://www.oracle.com/java/technologies/javase-downloads.html" }, + { name: "Red Hat build of OpenJDK", url: "https://developers.redhat.com/products/openjdk/download" }, + { name: "SapMachine", url: "https://sapmachine.io" } + ]; + return ( +
+
    + { + jdkList.map((jdk, idx) =>
  • {jdk.name}
  • ) + } +
+ +
+ ); + } +} + +export default OtherJDKsPanel; diff --git a/src/install-jdk/asset/features/installJDKViewSlice.ts b/src/install-jdk/asset/features/installJDKViewSlice.ts new file mode 100644 index 00000000..8369419f --- /dev/null +++ b/src/install-jdk/asset/features/installJDKViewSlice.ts @@ -0,0 +1,41 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import { createSlice, PayloadAction } from '@reduxjs/toolkit' +import { AdoptiumAsset, AdoptiumReleaseInfo } from '../../../utils/adoptiumApi' + +// Define a type for the slice state +interface State { + availableReleases?: AdoptiumReleaseInfo; + asset?: AdoptiumAsset; + currentVersion?: number; +} + +// Define the initial state using that type +const initialState: State = { +}; + +export const slice = createSlice({ + name: 'jdks', + initialState, + reducers: { + listReleases: (state, action: PayloadAction) => { + state.availableReleases = action.payload; + state.currentVersion = state.availableReleases.most_recent_lts; + }, + selectVersion: (state, action: PayloadAction) => { + state.currentVersion = action.payload; + }, + showAsset: (state, action: PayloadAction) => { + state.asset = action.payload; + } + }, +}) + +export const { + listReleases, + selectVersion, + showAsset +} = slice.actions + +export default slice.reducer; diff --git a/src/install-jdk/asset/index.tsx b/src/install-jdk/asset/index.tsx new file mode 100644 index 00000000..a3c5497f --- /dev/null +++ b/src/install-jdk/asset/index.tsx @@ -0,0 +1,15 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import * as React from 'react'; +import * as ReactDOM from 'react-dom'; +import App from './App'; +import { Provider } from 'react-redux' +import store from './app/store'; + +ReactDOM.render( + + + , + document.getElementById('root') as HTMLElement +); diff --git a/src/install-jdk/asset/vscode.api.ts b/src/install-jdk/asset/vscode.api.ts new file mode 100644 index 00000000..99f03f3f --- /dev/null +++ b/src/install-jdk/asset/vscode.api.ts @@ -0,0 +1,36 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +declare function acquireVsCodeApi(): any; +const vscode = acquireVsCodeApi(); + + +export function onWillFetchAvailableReleases() { + vscode.postMessage({ + command: "onWillFetchAvailableReleases" + }); +} + +export function onWillDownloadTemurinJDK(url: string) { + vscode.postMessage({ + command: "onWillDownloadTemurinJDK", + payload: { + url + } + }); +} + +export function onWillFetchAsset(majorVersion?: number) { + vscode.postMessage({ + command: "onWillFetchAsset", + payload: { + majorVersion + } + }); +} + +export function onWillReloadWindow() { + vscode.postMessage({ + command: "onWillReloadWindow", + }); +} diff --git a/src/install-jdk/constants.ts b/src/install-jdk/constants.ts new file mode 100644 index 00000000..77c64950 --- /dev/null +++ b/src/install-jdk/constants.ts @@ -0,0 +1,4 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +export const WEBVIEW_ID = "java.installJdk"; diff --git a/src/install-jdk/index.ts b/src/install-jdk/index.ts new file mode 100644 index 00000000..0aa5eadf --- /dev/null +++ b/src/install-jdk/index.ts @@ -0,0 +1,157 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import * as path from 'path'; +import * as vscode from 'vscode'; +import { openExternalLinkFromWebview, webviewCmdLinkHandler } from '../utils'; +import { availableReleases, latestCompatibleAsset } from '../utils/adoptiumApi'; +import { WEBVIEW_ID } from './constants'; + + +export function installJDKCmdHandler(context: vscode.ExtensionContext, _operationId?: string) { + InstallJdkPage.createOrShow(context.extensionPath); +} + +export class InstallJdkViewSerializer implements vscode.WebviewPanelSerializer { + constructor(private context: vscode.ExtensionContext) { } + async deserializeWebviewPanel(webviewPanel: vscode.WebviewPanel, _state: unknown) { + InstallJdkPage.createOrShow(this.context.extensionPath, webviewPanel); + } + +} + +class InstallJdkPage { + public static instance: InstallJdkPage | undefined; + private static readonly viewType = WEBVIEW_ID; + private _panel: vscode.WebviewPanel | undefined; + private readonly _extensionPath: string; + private _disposables: vscode.Disposable[] = []; + + public static createOrShow(extensionPath: string, webviewPanel?: vscode.WebviewPanel) { + // "smart" Beside + const ate = vscode.window.activeTextEditor; + const column = (ate === undefined || ate.viewColumn === vscode.ViewColumn.One) ? + vscode.ViewColumn.Two : + vscode.ViewColumn.One; + + if (InstallJdkPage.instance) { + InstallJdkPage.instance._panel?.reveal(); + } else { + InstallJdkPage.instance = webviewPanel ? + new InstallJdkPage(extensionPath, webviewPanel) : + new InstallJdkPage(extensionPath, column); + } + } + + private constructor(extensionPath: string, column: vscode.ViewColumn); + private constructor(extensionPath: string, webviewPanel: vscode.WebviewPanel); + private constructor(extensionPath: string, columnOrwebviewPanel: vscode.ViewColumn | vscode.WebviewPanel) { + this._extensionPath = extensionPath; + if ((columnOrwebviewPanel as vscode.WebviewPanel).viewType) { + this._panel = columnOrwebviewPanel as vscode.WebviewPanel; + } else { + this._panel = vscode.window.createWebviewPanel(InstallJdkPage.viewType, "Install New JDK", columnOrwebviewPanel as vscode.ViewColumn, { + enableScripts: true, + localResourceRoots: [ + vscode.Uri.file(path.join(this._extensionPath, 'out')) + ], + enableCommandUris: true, + retainContextWhenHidden: true + }); + } + + this._panel.webview.html = this._getHtmlForWebview(); + + this._panel.onDidDispose(() => this.dispose(), null, this._disposables); + + // Handle messages from the webview + this._panel.webview.onDidReceiveMessage(message => { + switch (message.command) { + case 'onWillFetchAvailableReleases': + this.doFetchAvailableReleases(); + return; + + case 'onWillFetchAsset': + this.doFetchAsset(message.payload); + return; + case 'onWillDownloadTemurinJDK': + this.doDownloadTemurinJDK(message.payload); + return; + case 'onWillReloadWindow': + this.doReloadWindow(); + + } + }, null, this._disposables); + } + + private async doFetchAvailableReleases() { + const releases = await availableReleases(); + this._panel?.webview.postMessage({ command: "onDidFetchAvailableReleases", payload: releases }); + } + + private async doFetchAsset(payload: { majorVersion: number }) { + const asset = await latestCompatibleAsset(payload?.majorVersion?.toString(), "hotspot"); + this._panel?.webview.postMessage({ command: "onDidFetchAsset", payload: asset }); + } + + private async doDownloadTemurinJDK(payload: { url: string }) { + await openExternalLinkFromWebview(InstallJdkPage.viewType, "Download", payload.url); + } + + private async doReloadWindow() { + await webviewCmdLinkHandler({ + webview: InstallJdkPage.viewType, + identifier: "Reload Window", + command: "workbench.action.reloadWindow" + }); + } + + public dispose() { + InstallJdkPage.instance = undefined; + + this._panel?.dispose(); + this._panel = undefined; + + while (this._disposables.length) { + const x = this._disposables.pop(); + if (x) { + x.dispose(); + } + } + } + + private _getHtmlForWebview() { + const scriptPathOnDisk = vscode.Uri.file(path.join(this._extensionPath, 'out', "assets", "install-jdk", "index.js")); + + // const scriptUri = this._panel.webview.asWebviewUri(scriptPathOnDisk); + const scriptUri = (scriptPathOnDisk).with({ scheme: "vscode-resource" }); + + // Use a nonce to whitelist which scripts can be run + const nonce = getNonce(); + + return ` + + + + + + React App + + + +
+ + + + `; + } +} + +function getNonce() { + let text = ""; + const possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + for (let i = 0; i < 32; i++) { + text += possible.charAt(Math.floor(Math.random() * possible.length)); + } + return text; +} diff --git a/src/java-runtime/assets/vscode.api.ts b/src/java-runtime/assets/vscode.api.ts index e5e97f62..3459ba0b 100644 --- a/src/java-runtime/assets/vscode.api.ts +++ b/src/java-runtime/assets/vscode.api.ts @@ -4,14 +4,6 @@ declare function acquireVsCodeApi(): any; const vscode = acquireVsCodeApi(); -export function requestJdkInfo(jdkVersion: string, jvmImpl: string) { - vscode.postMessage({ - command: "requestJdkInfo", - jdkVersion: jdkVersion, - jvmImpl: jvmImpl - }); -} - export function udpateJavaHome(javaHome: string) { vscode.postMessage({ command: "updateJavaHome", diff --git a/src/java-runtime/index.ts b/src/java-runtime/index.ts index 69837668..1c5b5cc2 100644 --- a/src/java-runtime/index.ts +++ b/src/java-runtime/index.ts @@ -12,7 +12,7 @@ import { JavaRuntimeEntry, ProjectRuntimeEntry } from "./types"; import { sourceLevelDisplayName } from "./utils/misc"; import { ProjectType } from "../utils/webview"; import { getProjectNameFromUri, getProjectType } from "../utils/jdt"; -import { latestAssets } from "./utils/adoptiumApi"; +import { latestAssets } from "../utils/adoptiumApi"; let javaRuntimeView: vscode.WebviewPanel | undefined; let javaHomes: JavaRuntime[]; @@ -50,19 +50,11 @@ async function initializeJavaRuntimeView(context: vscode.ExtensionContext, webvi context.subscriptions.push(webviewPanel.webview.onDidReceiveMessage(async (e) => { switch (e.command) { case "onWillListRuntimes": { - suggestOpenJdk().then(jdkInfo => { - applyJdkInfo(jdkInfo); - }); findJavaRuntimeEntries().then(data => { showJavaRuntimeEntries(data); }); break; } - case "requestJdkInfo": { - let jdkInfo = await suggestOpenJdk(e.jdkVersion, e.jvmImpl); - applyJdkInfo(jdkInfo); - break; - } case "updateJavaHome": { const { javaHome } = e; await vscode.workspace.getConfiguration("java").update("home", javaHome, vscode.ConfigurationTarget.Global); @@ -145,13 +137,6 @@ async function initializeJavaRuntimeView(context: vscode.ExtensionContext, webvi } })); - function applyJdkInfo(jdkInfo: any) { - webviewPanel.webview.postMessage({ - command: "applyJdkInfo", - jdkInfo: jdkInfo - }); - } - function showJavaRuntimeEntries(args: any) { webviewPanel.webview.postMessage({ command: "showJavaRuntimeEntries", diff --git a/src/java-runtime/utils/adoptiumApi.ts b/src/utils/adoptiumApi.ts similarity index 83% rename from src/java-runtime/utils/adoptiumApi.ts rename to src/utils/adoptiumApi.ts index 2cab7074..ab5a1862 100644 --- a/src/java-runtime/utils/adoptiumApi.ts +++ b/src/utils/adoptiumApi.ts @@ -2,6 +2,7 @@ // Licensed under the MIT license. import * as request from "request-promise-native"; +import architecture = require("arch"); /** * @@ -30,7 +31,8 @@ export async function availableReleases(): Promise { const uri = "https://api.adoptium.net/v3/info/available_releases"; const response = await request.get({ uri, - json: true + json: true, + rejectUnauthorized: false }) return response; } @@ -98,11 +100,28 @@ export async function latestAssets(featureVersion: string, jvmImpl: string): Pro return response; } +export async function latestCompatibleAsset(featureVersion: string, jvmImpl: string): Promise { + const assets = await latestAssets(featureVersion, jvmImpl); + let os: string = process.platform; + if (os === "win32") { + os = "windows"; + } else if (os === "darwin") { + os = "mac"; + } else { + os = "linux"; + } + let arch = architecture(); + if (arch === "x86") { + arch = "x32"; + } + return assets.find(a => a.binary.image_type === "jdk" && a.binary.architecture === arch && a.binary.os === os); +} -interface AdoptiumReleaseInfo { +export interface AdoptiumReleaseInfo { available_lts_releases: number[]; available_releases: number[]; + most_recent_lts: number; }; export interface AdoptiumAsset { @@ -113,6 +132,9 @@ export interface AdoptiumAsset { image_type: string; installer?: AdoptiumFileMetadata; package?: AdoptiumFileMetadata; + }; + version: { + major: number; } } diff --git a/src/utils/index.ts b/src/utils/index.ts index c8eb5719..510dc131 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -65,6 +65,15 @@ export async function webviewCmdLinkHandler(obj: { webview: string, identifier: } } +export async function openExternalLinkFromWebview(webview: string, identifier: string, url: string) { + await webviewCmdLinkHandler({ + webview, + identifier, + command: "java.helper.openUrl", + args: [url] + }); +} + export function isInsiders() { return vscode.env.appName.indexOf('Insider') > 0 || vscode.env.appName.indexOf('OSS') > 0; } \ No newline at end of file diff --git a/src/utils/webview.ts b/src/utils/webview.ts index 474e33b4..ab0b8d81 100644 --- a/src/utils/webview.ts +++ b/src/utils/webview.ts @@ -22,6 +22,9 @@ export function encodeCommandUriWithTelemetry(webview: string, identifier: strin return `command:${helperCommand}?${encodeURIComponent(JSON.stringify(wrappedArgs))}`; } +export function encodeExternalLinkWithTelemetry(webview: string, name: string, url: string) { + return encodeCommandUriWithTelemetry(webview, name, "java.helper.openUrl", [url]); +} /** * Check if navigator.platform matches os. diff --git a/webpack.config.js b/webpack.config.js index efb447cc..4aadf0b5 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -15,7 +15,8 @@ module.exports = function (env, argv) { 'ext-guide': './src/ext-guide/assets/index.ts', welcome: './src/welcome/assets/index.ts', classpath: './src/classpath/assets/index.tsx', - 'formatter-settings': './src/formatter-settings/assets/index.tsx' + 'formatter-settings': './src/formatter-settings/assets/index.tsx', + 'install-jdk': './src/install-jdk/asset/index.tsx' }, module: { rules: [{ From 9b43ea13d21501c7199508103af42a8c9bd173ec Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 11 Nov 2021 15:31:14 +0800 Subject: [PATCH 015/409] update JDK download link in Configure Runtime webview (#806) Signed-off-by: Yan Zhang --- src/java-runtime/assets/ProjectJDKPanel.tsx | 2 +- src/java-runtime/assets/ToolingJDKPanel.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/java-runtime/assets/ProjectJDKPanel.tsx b/src/java-runtime/assets/ProjectJDKPanel.tsx index e804a63f..07148cf4 100644 --- a/src/java-runtime/assets/ProjectJDKPanel.tsx +++ b/src/java-runtime/assets/ProjectJDKPanel.tsx @@ -66,7 +66,7 @@ export class ProjectJDKPanel extends React.Component { )); - const downloadJDKCommand = encodeCommandUriWithTelemetry("java.runtime", "download from adoptium", "java.helper.openUrl", ["https://adoptium.net"]); + const downloadJDKCommand = encodeCommandUriWithTelemetry("java.runtime", "download", "java.installJdk"); return (

Configure Java Project Runtime

diff --git a/src/java-runtime/assets/ToolingJDKPanel.tsx b/src/java-runtime/assets/ToolingJDKPanel.tsx index b1bf460f..b6dd1344 100644 --- a/src/java-runtime/assets/ToolingJDKPanel.tsx +++ b/src/java-runtime/assets/ToolingJDKPanel.tsx @@ -24,7 +24,7 @@ interface State { export class ToolingJDKPanel extends React.Component { render = () => { const { javaHomeError } = this.props; - const downloadJDKCommand = encodeCommandUriWithTelemetry("java.runtime", "Install a new JDK", "java.helper.openUrl", ["https://adoptium.net"]); + const downloadJDKCommand = encodeCommandUriWithTelemetry("java.runtime", "download", "java.installJdk"); return (
From 4bc07b891a4ab403af6170e33035449b9f448188 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 11 Nov 2021 20:11:05 +0800 Subject: [PATCH 016/409] specify default reviewers (#807) Signed-off-by: Yan Zhang --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..614c8b14 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @Eskibear @jdneo @testforstephen @CsCherrYY \ No newline at end of file From 57d3bb9747e7685eb23622972cdce7ac19afc610 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Tue, 16 Nov 2021 10:51:15 +0800 Subject: [PATCH 017/409] support to detect arm-macOS (#808) Signed-off-by: Yan Zhang --- src/utils/adoptiumApi.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/utils/adoptiumApi.ts b/src/utils/adoptiumApi.ts index ab5a1862..bc7528f9 100644 --- a/src/utils/adoptiumApi.ts +++ b/src/utils/adoptiumApi.ts @@ -2,7 +2,6 @@ // Licensed under the MIT license. import * as request from "request-promise-native"; -import architecture = require("arch"); /** * @@ -111,9 +110,9 @@ export async function latestCompatibleAsset(featureVersion: string, jvmImpl: str os = "linux"; } - let arch = architecture(); - if (arch === "x86") { - arch = "x32"; + let arch = process.arch; + if (arch === "arm64") { + arch = "aarch64"; } return assets.find(a => a.binary.image_type === "jdk" && a.binary.architecture === arch && a.binary.os === os); } From efa899032a8ce49378df70d8279f63aa6bf295c7 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 18 Nov 2021 10:43:12 +0800 Subject: [PATCH 018/409] mitigate CVE-2021-3918 by removing request lib (#811) Signed-off-by: Yan Zhang --- package-lock.json | 200 +++++++++++++++++++-------------------- package.json | 6 +- src/utils/adoptiumApi.ts | 24 ++--- 3 files changed, 106 insertions(+), 124 deletions(-) diff --git a/package-lock.json b/package-lock.json index e5730b3f..6bb65c16 100644 --- a/package-lock.json +++ b/package-lock.json @@ -156,12 +156,6 @@ "integrity": "sha512-5YG1AiIC8HPPXRvYAIa7ehK3YMAwd0DWiPCtpuL9sgKceWLyWsVtLRA+lT4NkoanDNF9slwQ66lPizWDpgRlWA==", "dev": true }, - "@types/caseless": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz", - "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==", - "dev": true - }, "@types/classnames": { "version": "2.2.11", "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.11.tgz", @@ -270,52 +264,12 @@ "@types/react": "*" } }, - "@types/request": { - "version": "2.48.5", - "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.5.tgz", - "integrity": "sha512-/LO7xRVnL3DxJ1WkPGDQrp4VTV1reX9RkC85mJ+Qzykj2Bdw+mG15aAfDahc76HtknjzE16SX/Yddn6MxVbmGQ==", - "dev": true, - "requires": { - "@types/caseless": "*", - "@types/node": "*", - "@types/tough-cookie": "*", - "form-data": "^2.5.0" - }, - "dependencies": { - "form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - } - } - }, - "@types/request-promise-native": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/@types/request-promise-native/-/request-promise-native-1.0.17.tgz", - "integrity": "sha512-05/d0WbmuwjtGMYEdHIBZ0tqMJJQ2AD9LG2F6rKNBGX1SSFR27XveajH//2N/XYtual8T9Axwl+4v7oBtPUZqg==", - "dev": true, - "requires": { - "@types/request": "*" - } - }, "@types/semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", "dev": true }, - "@types/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A==", - "dev": true - }, "@types/vscode": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.52.0.tgz", @@ -683,6 +637,7 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, "requires": { "safer-buffer": "~2.1.0" } @@ -737,7 +692,8 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true }, "assign-symbols": { "version": "1.0.0", @@ -778,7 +734,8 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true }, "at-least-node": { "version": "1.0.0", @@ -808,17 +765,19 @@ "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true }, "aws4": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "dev": true }, "axios": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.2.tgz", - "integrity": "sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg==", + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "requires": { "follow-redirects": "^1.14.0" } @@ -893,6 +852,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, "requires": { "tweetnacl": "^0.14.3" } @@ -910,6 +870,16 @@ "dev": true, "optional": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "block-stream": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", @@ -1245,7 +1215,8 @@ "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true }, "chalk": { "version": "2.4.1", @@ -1474,6 +1445,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -1568,7 +1540,8 @@ "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=" + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true }, "cosmiconfig": { "version": "4.0.0", @@ -1868,6 +1841,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -1946,7 +1920,8 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true }, "delegates": { "version": "1.0.0", @@ -2085,6 +2060,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -2345,7 +2321,8 @@ "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true }, "extend-shallow": { "version": "3.0.2", @@ -2436,7 +2413,8 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true }, "fast-deep-equal": { "version": "3.1.3", @@ -2534,6 +2512,13 @@ } } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -2621,9 +2606,9 @@ } }, "follow-redirects": { - "version": "1.14.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz", - "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==" + "version": "1.14.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz", + "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==" }, "for-in": { "version": "1.0.2", @@ -2634,12 +2619,14 @@ "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true }, "form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -2786,6 +2773,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -2888,12 +2876,14 @@ "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true }, "har-validator": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, "requires": { "ajv": "^6.5.5", "har-schema": "^2.0.0" @@ -3142,6 +3132,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -3578,7 +3569,8 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true }, "is-utf8": { "version": "0.2.1", @@ -3628,7 +3620,8 @@ "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true }, "jju": { "version": "1.4.0", @@ -3664,7 +3657,8 @@ "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true }, "json-parse-better-errors": { "version": "1.0.2", @@ -3672,11 +3666,6 @@ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -3685,7 +3674,8 @@ "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true }, "json5": { "version": "0.5.1", @@ -3706,11 +3696,20 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.2.3", "verror": "1.10.0" + }, + "dependencies": { + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + } } }, "kind-of": { @@ -3923,12 +3922,14 @@ "mime-db": { "version": "1.50.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", - "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==" + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==", + "dev": true }, "mime-types": { "version": "2.1.33", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", + "dev": true, "requires": { "mime-db": "1.50.0" } @@ -4278,7 +4279,8 @@ "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true }, "object-assign": { "version": "4.1.1", @@ -4552,7 +4554,8 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true }, "picomatch": { "version": "2.3.0", @@ -4943,7 +4946,8 @@ "psl": { "version": "1.1.31", "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", + "dev": true }, "public-encrypt": { "version": "4.0.3", @@ -5008,7 +5012,8 @@ "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true }, "querystring": { "version": "0.2.0", @@ -5284,6 +5289,7 @@ "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -5307,24 +5313,6 @@ "uuid": "^3.3.2" } }, - "request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "requires": { - "lodash": "^4.17.19" - } - }, - "request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "requires": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -5438,7 +5426,8 @@ "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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true }, "safe-regex": { "version": "1.1.0", @@ -5452,7 +5441,8 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, "sass-graph": { "version": "2.2.5", @@ -5849,6 +5839,7 @@ "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -5905,11 +5896,6 @@ "readable-stream": "^2.0.1" } }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" - }, "stream-browserify": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", @@ -6202,6 +6188,7 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -6299,6 +6286,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -6306,7 +6294,8 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true }, "typedarray": { "version": "0.0.6", @@ -6605,7 +6594,8 @@ "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true }, "v8-compile-cache": { "version": "2.3.0", @@ -6627,6 +6617,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -6759,6 +6750,7 @@ "dev": true, "optional": true, "requires": { + "bindings": "^1.5.0", "nan": "^2.12.1" } }, diff --git a/package.json b/package.json index e10584c2..cc322c33 100644 --- a/package.json +++ b/package.json @@ -333,8 +333,6 @@ "@types/react": "^17.0.0", "@types/react-dom": "^16.9.8", "@types/react-redux": "^7.1.16", - "@types/request": "^2.48.5", - "@types/request-promise-native": "^1.0.17", "@types/semver": "^5.5.0", "@types/vscode": "1.52.0", "@types/winreg": "^1.2.30", @@ -372,7 +370,7 @@ "@vscode/codicons": "0.0.25", "@vscode/webview-ui-toolkit": "^0.8.2", "arch": "^2.1.2", - "axios": "^0.21.2", + "axios": "^0.21.4", "bootstrap": "^4.5.2", "compare-versions": "^3.6.0", "expand-home-dir": "0.0.3", @@ -387,8 +385,6 @@ "react-bootstrap": "^1.4.3", "react-dom": "^16.9.0", "react-redux": "^7.2.2", - "request": "^2.88.2", - "request-promise-native": "^1.0.9", "semver": "^5.7.1", "vscode-extension-telemetry-wrapper": "^0.9.0", "vscode-tas-client": "^0.1.22", diff --git a/src/utils/adoptiumApi.ts b/src/utils/adoptiumApi.ts index bc7528f9..7000cd03 100644 --- a/src/utils/adoptiumApi.ts +++ b/src/utils/adoptiumApi.ts @@ -1,7 +1,11 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. +import axios from "axios"; +import * as https from "https"; -import * as request from "request-promise-native"; +// workaround: certificate expired, will be fixed when vscode adopts Electron v15.1.0 +// see: https://github.com/node-fetch/node-fetch/issues/568#issuecomment-932435180 +https.globalAgent.options.rejectUnauthorized = false; /** * @@ -28,12 +32,8 @@ import * as request from "request-promise-native"; */ export async function availableReleases(): Promise { const uri = "https://api.adoptium.net/v3/info/available_releases"; - const response = await request.get({ - uri, - json: true, - rejectUnauthorized: false - }) - return response; + const response = await axios.get(uri); + return response.data; } @@ -89,14 +89,8 @@ export async function availableReleases(): Promise { */ export async function latestAssets(featureVersion: string, jvmImpl: string): Promise { let uri = `https://api.adoptium.net/v3/assets/latest/${featureVersion}/${jvmImpl}`; - const response = await request.get({ - uri, - json: true, - // workaround: certificate expired, fixed in Electron v15.1.0 - // see: https://github.com/node-fetch/node-fetch/issues/568#issuecomment-932435180 - rejectUnauthorized: false - }) - return response; + const response = await axios.get(uri); + return response.data; } export async function latestCompatibleAsset(featureVersion: string, jvmImpl: string): Promise { From 3a72d17647575925cae77625c2d96666cc7462a5 Mon Sep 17 00:00:00 2001 From: Sheng Chen Date: Fri, 19 Nov 2021 15:32:17 +0800 Subject: [PATCH 019/409] fix: Get correct project type (#804) Signed-off-by: Sheng Chen --- src/utils/jdt.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/utils/jdt.ts b/src/utils/jdt.ts index db0162bd..87945f55 100644 --- a/src/utils/jdt.ts +++ b/src/utils/jdt.ts @@ -10,10 +10,6 @@ export async function getProjectType(fsPath: string): Promise { if (isDefaultProject(fsPath)) { return ProjectType.Default; } - const dotProjectFile = path.join(fsPath, ".project"); - if (!await fse.pathExists(dotProjectFile)) { // for invisible projects, .project file is located in workspace storage. - return ProjectType.UnmanagedFolder; - } const buildDotGradleFile = path.join(fsPath, "build.gradle"); if (await fse.pathExists(buildDotGradleFile)) { return ProjectType.Gradle; @@ -22,6 +18,10 @@ export async function getProjectType(fsPath: string): Promise { if (await fse.pathExists(pomDotXmlFile)) { return ProjectType.Maven; } + const dotProjectFile = path.join(fsPath, ".project"); + if (!await fse.pathExists(dotProjectFile)) { // for invisible projects, .project file is located in workspace storage. + return ProjectType.UnmanagedFolder; + } return ProjectType.Others; } From 01a8fb2611aece9faaa5352a2a6be24f0039cf62 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Mon, 22 Nov 2021 21:03:28 +0800 Subject: [PATCH 020/409] rename 'Getting Started' page to 'Beginner Tips' (#822) Signed-off-by: Yan Zhang --- package.json | 4 ++-- src/getting-started/index.ts | 2 +- src/overview/assets/index.html | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index cc322c33..f2070552 100644 --- a/package.json +++ b/package.json @@ -212,7 +212,7 @@ { "command": "java.gettingStarted", "category": "Java", - "title": "Getting Started" + "title": "Beginner Tips" }, { "command": "java.extGuide", @@ -248,7 +248,7 @@ "enumDescriptions": [ "Automatically pick the first experience view", "Present the Java Overview page", - "Present the Java Getting Started page", + "Present the Java Beginner Tips page", "Present the Java Help Center page", "Do not show any view" ], diff --git a/src/getting-started/index.ts b/src/getting-started/index.ts index e2a4e6fa..90941671 100644 --- a/src/getting-started/index.ts +++ b/src/getting-started/index.ts @@ -15,7 +15,7 @@ export async function javaGettingStartedCmdHandler(context: vscode.ExtensionCont return; } - javaGettingStartedView = vscode.window.createWebviewPanel("java.gettingStarted", "Java Getting Started", { + javaGettingStartedView = vscode.window.createWebviewPanel("java.gettingStarted", "Java Beginner Tips", { viewColumn: vscode.ViewColumn.One, }, { enableScripts: true, diff --git a/src/overview/assets/index.html b/src/overview/assets/index.html index 465f5198..7de8e23c 100644 --- a/src/overview/assets/index.html +++ b/src/overview/assets/index.html @@ -152,8 +152,8 @@

Help

Learn

- - -
-
-
-
- - - - - - diff --git a/src/ext-guide/index.ts b/src/ext-guide/index.ts index 9a702676..85270369 100644 --- a/src/ext-guide/index.ts +++ b/src/ext-guide/index.ts @@ -3,7 +3,7 @@ import * as vscode from "vscode"; import * as path from "path"; -import { loadTextFromFile, getExtensionContext } from "../utils"; +import { getExtensionContext, getNonce } from "../utils"; import { sendInfo, instrumentOperation } from "vscode-extension-telemetry-wrapper"; let javaExtGuideView: vscode.WebviewPanel | undefined; @@ -35,8 +35,7 @@ async function initializeJavaExtGuideView(context: vscode.ExtensionContext, webv dark: vscode.Uri.file(path.join(context.extensionPath, "caption.dark.svg")) }; - const resourceUri = context.asAbsolutePath("./out/assets/ext-guide/index.html"); - webviewPanel.webview.html = await loadTextFromFile(resourceUri); + webviewPanel.webview.html = getHtmlForWebview(context.asAbsolutePath("./out/assets/ext-guide/index.js")); context.subscriptions.push(webviewPanel.onDidDispose(onDisposeCallback)); context.subscriptions.push(webviewPanel.webview.onDidReceiveMessage(async (e) => { @@ -69,6 +68,267 @@ async function initializeJavaExtGuideView(context: vscode.ExtensionContext, webv syncExtensionStatus(); } +function getHtmlForWebview(scriptPath: string) { + const scriptPathOnDisk = vscode.Uri.file(scriptPath); + const scriptUri = (scriptPathOnDisk).with({ scheme: "vscode-resource" }); + // Use a nonce to whitelist which scripts can be run + const nonce = getNonce(); + return ` + + + + + + Java Extensions Guide + + + +
+
+
+

Java Extensions Guide

+
Recommended extensions for Java development.
+
+
+
+
+
+
+
+
+ +
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+ + + + + + + + + + + + +
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+ + + + + + +
+
+ + +
+
+
+ + +
+ + + + + + + + + +
+
+ + +
+
+
+ + +
+
+
+ +
+
+
+

+ Java Linting, Intellisense, formatting, refactoring, Maven/Gradle support and more. +

+

+ Debug Java applications. +

+

+ Manage Java projects, dependencies, and generate packages. +

+

+ Run and debug JUnit & TestNG test cases. +

+

+ Manage Maven projects, work with goals & dependencies, generate projects from archetypes. +

+

+ Detect and fix quality issues as you write code. +

+

+ Spring Boot-specific support for \".java\" files. As well as validation and content assist for Spring Boot \"application.properties\", \"application.yml\" properties files. +

+

+ A collection of extensions to develop Java microservices with Eclipse MicroProfile +

+

+ Quarkus Tools for Visual Studio Code. +

+

+ Manage and publish to servers and runtimes like Tomcat, Apache Felix, and Karaf. +

+

+ Port of Eclipse keyboard shortcuts. +

+

+ Port of IntelliJ IDEA Keybindings, including for WebStorm, PyCharm, PHP Storm, etc. +

+

+ Learn More +

+
+
+
+
+
+ + +
+
+
+
+
+
+
+ + + + `; +} + export class JavaExtGuideViewSerializer implements vscode.WebviewPanelSerializer { async deserializeWebviewPanel(webviewPanel: vscode.WebviewPanel, _state: any) { if (javaExtGuideView) { diff --git a/src/formatter-settings/assets/index.html b/src/formatter-settings/assets/index.html deleted file mode 100644 index 99a2fc35..00000000 --- a/src/formatter-settings/assets/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - Java Formatter Settings - - - -
- - - diff --git a/src/formatter-settings/index.ts b/src/formatter-settings/index.ts index 7f4a51c4..39324ec1 100644 --- a/src/formatter-settings/index.ts +++ b/src/formatter-settings/index.ts @@ -7,7 +7,7 @@ import * as path from "path"; import * as vscode from "vscode"; import { instrumentOperation, sendError, sendInfo, setUserError } from "vscode-extension-telemetry-wrapper"; import { XMLSerializer } from "xmldom"; -import { loadTextFromFile } from "../utils"; +import { getNonce } from "../utils"; import { Example, getSupportedVSCodeSettings, JavaConstants, SupportedSettings, VSCodeSettings } from "./FormatterConstants"; import { FormatterConverter } from "./FormatterConverter"; import { remoteProfileProvider, RemoteProfileProvider } from "./RemoteProfileProvider"; @@ -87,8 +87,7 @@ export class JavaFormatterSettingsEditorProvider implements vscode.CustomTextEdi this.webviewPanel.onDidDispose(() => { this.webviewPanel = undefined; }); - const resourceUri = this.context.asAbsolutePath("./out/assets/formatter-settings/index.html"); - this.webviewPanel.webview.html = await loadTextFromFile(resourceUri); + this.webviewPanel.webview.html = this.getHtmlForWebview(path.join(this.context.extensionPath, "out", "assets", "formatter-settings", "index.js"));; this.webviewPanel.webview.onDidReceiveMessage(async (e) => { switch (e.command) { case "onWillInitialize": @@ -148,6 +147,27 @@ export class JavaFormatterSettingsEditorProvider implements vscode.CustomTextEdi await this.checkRequirement(); } + private getHtmlForWebview(scriptPath: string) { + const scriptPathOnDisk = vscode.Uri.file(scriptPath); + const scriptUri = (scriptPathOnDisk).with({ scheme: "vscode-resource" }); + // Use a nonce to whitelist which scripts can be run + const nonce = getNonce(); + return ` + + + + + + Java Formatter Settings + + + + +
+ + `; + } + private async checkRequirement(): Promise { if (this.checkedRequirement) { return true; @@ -192,7 +212,7 @@ export class JavaFormatterSettingsEditorProvider implements vscode.CustomTextEdi if (anwser === "Open Settings") { openFormatterSettings(); } - }) + }); return false; } this.diagnosticCollection.set(document.uri, content.diagnostics); diff --git a/src/getting-started/assets/index.html b/src/getting-started/assets/index.html deleted file mode 100644 index f7b7d788..00000000 --- a/src/getting-started/assets/index.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - Coding and Debugging Tips for Beginners - - - -
-
-
-

Coding and Debugging Tips for Beginners

-
-
-
-
-
-
-
-
- -
-
-
-
-
- - -
-

Welcome to Visual Studio Code!
- In this 1-minute tutorial, we'll show you how to create a quick-start Java program in VS Code. -

-

Setup the Workspace

-

- VS Code Java works directly with folders that have source code. To setup the workspace, simply open a folder using File > Open Folder...Open... -

-

Create a Class

-

- A program needs an entry and a Java program needs a class to host its entry. To create a class for our quick-start program, Create a File and set its name to QuickStart.java.
- Now you can put the code in the new file: -

-
-
class QuickStart {
-    public static void main(String[] args) {
-        System.out.println("Hello, World.");
-    }
-}
-
-

Run the program

-

- To run the program, press F5. By default, the program is launched in the Integrated Terminal. You should already see the output there. -

-
-
How to Debug?
-

- When you press F5, you are already debugging. Try setting some breakpoint by clicking on the line numbers before each code line and run the program again. You'll see the execution paused at the breakpoint.
- While debugging, switch to the Debug View to see the variables and call stacks. -

-
-

Congratulations!

-

- Now the quick-start program is running and you are free to build more.
- What you saw is just a tiny part of VS Code Java. You can do much more with it. Feel free to explore: -

- -
- - -
-

How to deal with files and folders

-
- - -
-

- VS Code Java is backed by a full Java language server and it understands Java code. Because of that, you get features like Code Navigation, IntelliSense, Refactoring, etc. This is important when your projects get bigger and more complex. Now let's further look at the code editing experience. -

-
-
Basic Editing User Guide
-

- To make the most of VS Code, we strongly recommend reading the Basic Editing user guide. You'll get to know cool tricks about multi-select, formatting, indentation, folding, and much more. -

-
-

Code Navigation

-

- Code Navigation makes it easy to understand existing codebase. Here to mention a few features that can help you navigate your code repositories. -

-
Go to Definition
-
F12
You can also hover on the symbol to preview its declaration and javadoc. To jump to the definition, hold the Ctrl key, and click on the symbol.
-
Go to Implementation
-
Ctrl + F12⌘ F12
- For an interface, this shows all the implementors of that interface and for abstract methods, this shows all concrete implementations of that method.
-
Go to Type Definition
-
This one allows you to go to the definition of the type of the symbol. For example, you have a class member someString, "Go to Definition" will take you to the definition of someString while "Go to Type Definition" will take you to the definition of String.
-
Find All References
-
Shift + Alt + F12⌥ ⇧ F12
- This allows you to quickly analyze the impact of your edit or the popularity of your specific method or property throughout your repository. -
-
-

-

- The commands above will possibly take you to another file. But you can choose to stay using the peeking features below: -

-
Peek Definition
-
Alt + F12⌥ F12
-
Peek References
-
Shift + F12⇧ F12
-
-

-

- Last but not least, you can jump between the matching brackets back and forth: -

-
Go to Bracket
-
Ctrl + Shift + \⇧ ⌘ \
-
-

-

IntelliSense

-

- IntelliSense is a general term for a variety of code editing features including: code completion, parameter info, quick info, and member lists. IntelliSense features are sometimes called by other names such as "code completion", "content assist", and "code hinting." -

-

- IntelliSense works as you type. For example, when you try to invoke some member of an object, a list of all the members is popped up for you to choose from. If you continue typing characters, the list of members (variables, methods, etc.) is filtered to only include members containing your typed characters. Pressing Tab or Enter will insert the selected member. -

-
-
Trigger IntelliSense Manually
-

- In most cases, IntelliSense is triggered automatically. You can also press Ctrl + Space⌃ Space to do it manually. For example, when you're trying to invoke a member function and want to see the parameter info, this will do the magic. -

-
-

Refactoring

-

- VS Code Java provides essential refactoring features and makes it productive to modify larger codebase. The most frequently used one is Rename. It's so popular that a dedicated hot key F2 is assigned to it. When you rename a symbol, all its references are also renamed. -

-

- There are more refactoring features like Extract, Inline, etc. The availability changes corresponding to the current cursor position. All available features are packed in to the Refactor context menu. And you can also pop the list by pressing Ctrl + Shift + R⌃ ⇧ R -

-

- You may also notice the lightbulb near the cursor. It indicates that some Code Actions are available. In VS Code, Code Actions can provide both refactorings and Quick Fixes for detected issues. To show the full list of available actions, click the lightbulb or press Ctrl + .⌘ .. -

-
-
More Code Actions
-

- There are other code actions that are not limited to the cursor position. They are grouped into the Source Action context menu. Here's a list of them. -

-
    -
  • Organize Imports
  • -
  • Override/Implement Methods
  • -
  • Generate Getter and Setter
  • -
  • Generate hashCode() and equals()
  • -
  • Generate toString()
  • -
  • Generate Constructors
  • -
  • Generate Delegate Methods
  • -
-
-

Next Steps

- -
- - -
-

Understand the compile and build mechanism of the language server

-
- - -
-

- One of the key features of Visual Studio Code is its great debugging support. VS Code's built-in debugger helps accelerate your edit, compile and debug loop. -

-

Start Debugging

-

- There are multiple ways to start debugging a Java program. By pressing F5, the current program will be launched. You can also start by clicking the "Debug" codelens on top of the main function. This is super handy when you have multiple main entries. You can also launch a program without debugging by pressing Ctrl + F5⌃ F5. -

-

- By default, VS Code Java launches the program using Integrated Terminal. As you enter the debug mode, you should also see the Debug View. This view shows all the runtime info of your program. -

-
-
Debug Configurations
-

- VS Code Java automatically generates debug configurations. In VS Code, those configurations are called Launch Configurations and they are persisted in .vscode\launch.json.vscode/launch.json. To work with more sophisticated debug scenarios, please explore the Launch Options that are supported by VS Code. -

-
-

Breakpoints

-

- Breakpoints can be toggled by clicking on the editor margin or using F9 on the current line. Finer breakpoint control (enable/disable/reapply) can be done in the Debug View's BREAKPOINTS section. -

-

- You can also set Conditional Breakpoints based on expressions, hit counts, or a combination of both. -

-
-
Expression condition
-
The breakpoint will be hit whenever the expression evaluates to true
-
Hit count
-
The 'hit count' controls how many times a breakpoint needs to be hit before it will 'break' execution
-
-

- You can add a condition and/or hit count when creating the breakpoint (with the Add Conditional Breakpoint action) or when modifying an existing one (with the Edit Breakpoint action). In both cases, an inline text box with a drop-down menu opens where you can enter expressions. -

-
-
Logpoints
-

- A Logpoint is a variant of a breakpoint that does not "break" into the debugger but instead logs a message to the console. Logpoints are especially useful for injecting logging while debugging production servers that cannot be paused or stopped. -

-

- A Logpoint is represented by a ♦️ shaped icon. Log messages are plain text but can include expressions to be evaluated within curly braces ('{}'). -

-
-

Debug Actions

-

- Once a debug session starts, the Debug toolbar will appear on the top of the editor. You can control the execution flow using the actions below. -

-
-
Continue/Pause
-
F5
-
Step Over
-
F10
-
Step Into
-
F11
-
Step Out
-
Shift + F11⇧ F11
-
Restart
-
Ctrl + Shift + F5⇧ ⌘ F5
-
Stop
-
Shift + F5⇧ F5
-
-

Inspect Variables

-

- Variables can be inspected in the VARIABLES section of the Debug view or by hovering over their source in the editor. Variable values and expression evaluation are relative to the selected stack frame in the CALL STACK section. -

-

- Variable values can be modified with the Set Value action from the variable's context menu. Or you can double-click the value and enter a new one. Variables and expressions can also be evaluated and watched in the Debug view's WATCH section. -

-

Hot Code Replace ⚡

-

- Yes, you can apply code changes without restarting the running program. Click on the icon in the debug toolbar to apply code changes. When you see failures, don't worry. It is safe to continue running the program, but you may notice discrepancies between the source code and the program. -

-
-
Limitations
-

- Hot Code Replace (HCR) sounds magical but it does have limitations. In short, you can only change the code inside an existing function. Here are some scenarios that HCR will NOT work: -

-
    -
  • Adding a new member function
  • -
  • Changing the signature of an existing function
  • -
  • Changing the value of static members (but you can do so using the VARIABLES panel when the program is paused)
  • -
  • Referencing new classes/packages
  • -
-
-

Next Step

- -
- - -
-

How to deal with projects and dependencies

-
- - -
-

How to customize vs code

-
- - -
-
-
Feedback Channels
-

- VS Code Java is new, and we are here to help. -

-
-
Ask Questions
-
vscode-java Gitter channel is recommended to ask for help
-
Open Issues
-
vscode-java-pack GitHub repo is recommended for opening bugs
-
Other Feedback
-
@VSCodeJava is the handle to mention on twitter
-
-
-

Why do I see the JDK errors?

-

- JDK 11+ is required to run the Java language support (redhat.java) extension! You see this error because we failed to find one on your machine. The Configure Java Runtime guide can help you understand how JDK path is searched and provides download links if you need to install one. -

-

Can I run my Java 8 project with JDK 1.8?

-

- Yes. The JDK 11 requirement is just for running the Java language support (redhat.java) extension itself. You can still configure a different runtime JDK for your project via the user setting "java.configuration.runtimes". The extension will pick a matching JDK to compile/run your project according to the compiler version specified by the project build file. -

-"java.configuration.runtimes": [
-  {
-    "name": "JavaSE-1.8",
-    "path": "/usr/local/jdk1.8.0_201"
-  },
-  {
-    "name": "JavaSE-11",
-    "path": "/usr/local/jdk-11.0.3",
-    "sources" : "/usr/local/jdk-11.0.3/lib/src.zip",
-    "javadoc" : "https://docs.oracle.com/en/java/javase/11/docs/api",
-    "default":  true
-  }
-]
-                      
-

-

Why do I see tons of problems and red squiggles?

-

- The problems are from VS Code Java when it tries to compile and build your codebase. If you experience this on your first use, it's possibly because of missing dependencies. To fix it, you probably want to start from fixing the project configuration files, e.g. pom.xml and build.gradle. After you make changes to those files, try Update Project Configuration and Force Compilation. -

-

- It can also happen after you work with one project for a while. Try Clean Workspace to get rid of any intermediate output from the language server. -

-

- If the problem persists, follow the Troubleshooting Guide. For advanced users, the Client Logs and Server Logs will definitely help you understand what is going on. -

-

Why can't I see any IntelliSense suggestions?

-

- VS Code Java needs to compile your code before it can provide suggestions. When it's working, you should see a spinning 🔄 on the right end of the status bar. And it will show 👍 when it's done. And you should be able to use all the features. -

-

- It could take longer for the language server to load a project which references lots of dependencies. Those dependencies need to be resolved and downloaded from the internet. So the network connection plays a critical role in the process. -

-

Why do I see a little ⭐ in some of the IntelliSense suggestions?

-

- This is because Visual Studio IntelliCode is working. IntelliCode ranks the suggestions using the model trained from the source code of popular open source projects. The items with the stars are the ones that fit the current context the most. -

-

Can I use Lombok?

-

- Yes. You'll need to install the Lombok extension, which enables VS Code to process Lombok annotations. To learn more about alternatives and details, visit this page. -

-

Can I develop Android apps using VS Code Java?

-

- Sorry, it's not supported now. -

-

How to troubleshoot the problems?

-

- You could click F1 -> Java: Open all log files to get the logs. Also learn more at Troubleshooting Guide. -

-
-
-
- -
-
-
-
-
-
- - - diff --git a/src/getting-started/index.ts b/src/getting-started/index.ts index 90941671..3b442b6b 100644 --- a/src/getting-started/index.ts +++ b/src/getting-started/index.ts @@ -3,7 +3,7 @@ import * as vscode from "vscode"; import * as path from "path"; -import { loadTextFromFile, getExtensionContext } from "../utils"; +import { getExtensionContext, getNonce } from "../utils"; import { sendInfo, instrumentOperation } from "vscode-extension-telemetry-wrapper"; let javaGettingStartedView: vscode.WebviewPanel | undefined; @@ -49,8 +49,7 @@ async function initializeJavaGettingStartedView(context: vscode.ExtensionContext light: vscode.Uri.file(path.join(context.extensionPath, "caption.light.svg")), dark: vscode.Uri.file(path.join(context.extensionPath, "caption.dark.svg")) }; - const resourceUri = context.asAbsolutePath("./out/assets/getting-started/index.html"); - webviewPanel.webview.html = await loadTextFromFile(resourceUri); + webviewPanel.webview.html = getHtmlForWebview(context.asAbsolutePath("./out/assets/getting-started/index.js")); context.subscriptions.push(webviewPanel.onDidDispose(onDisposeCallback)); context.subscriptions.push(webviewPanel.webview.onDidReceiveMessage(async (e) => { if (e.command === "tabActivated") { @@ -63,6 +62,412 @@ async function initializeJavaGettingStartedView(context: vscode.ExtensionContext })); } +function getHtmlForWebview(scriptPath: string) { + const scriptPathOnDisk = vscode.Uri.file(scriptPath); + const scriptUri = (scriptPathOnDisk).with({ scheme: "vscode-resource" }); + // Use a nonce to whitelist which scripts can be run + const nonce = getNonce(); + return ` + + + + + + Coding and Debugging Tips for Beginners + + + +
+
+
+

Coding and Debugging Tips for Beginners

+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ + +
+

Welcome to Visual Studio Code!
+ In this 1-minute tutorial, we'll show you how to create a quick-start Java program in VS Code. +

+

Setup the Workspace

+

+ VS Code Java works directly with folders that have source code. To setup the workspace, simply open a folder using File > Open Folder...Open... +

+

Create a Class

+

+ A program needs an entry and a Java program needs a class to host its entry. To create a class for our quick-start program, Create a File and set its name to QuickStart.java.
+ Now you can put the code in the new file: +

+
+
class QuickStart {
+      public static void main(String[] args) {
+          System.out.println("Hello, World.");
+      }
+  }
+
+

Run the program

+

+ To run the program, press F5. By default, the program is launched in the Integrated Terminal. You should already see the output there. +

+
+
How to Debug?
+

+ When you press F5, you are already debugging. Try setting some breakpoint by clicking on the line numbers before each code line and run the program again. You'll see the execution paused at the breakpoint.
+ While debugging, switch to the Debug View to see the variables and call stacks. +

+
+

Congratulations!

+

+ Now the quick-start program is running and you are free to build more.
+ What you saw is just a tiny part of VS Code Java. You can do much more with it. Feel free to explore: +

+ +
+ + +
+

How to deal with files and folders

+
+ + +
+

+ VS Code Java is backed by a full Java language server and it understands Java code. Because of that, you get features like Code Navigation, IntelliSense, Refactoring, etc. This is important when your projects get bigger and more complex. Now let's further look at the code editing experience. +

+
+
Basic Editing User Guide
+

+ To make the most of VS Code, we strongly recommend reading the Basic Editing user guide. You'll get to know cool tricks about multi-select, formatting, indentation, folding, and much more. +

+
+

Code Navigation

+

+ Code Navigation makes it easy to understand existing codebase. Here to mention a few features that can help you navigate your code repositories. +

+
Go to Definition
+
F12
You can also hover on the symbol to preview its declaration and javadoc. To jump to the definition, hold the Ctrl key, and click on the symbol.
+
Go to Implementation
+
Ctrl + F12⌘ F12
+ For an interface, this shows all the implementors of that interface and for abstract methods, this shows all concrete implementations of that method.
+
Go to Type Definition
+
This one allows you to go to the definition of the type of the symbol. For example, you have a class member someString, "Go to Definition" will take you to the definition of someString while "Go to Type Definition" will take you to the definition of String.
+
Find All References
+
Shift + Alt + F12⌥ ⇧ F12
+ This allows you to quickly analyze the impact of your edit or the popularity of your specific method or property throughout your repository. +
+
+

+

+ The commands above will possibly take you to another file. But you can choose to stay using the peeking features below: +

+
Peek Definition
+
Alt + F12⌥ F12
+
Peek References
+
Shift + F12⇧ F12
+
+

+

+ Last but not least, you can jump between the matching brackets back and forth: +

+
Go to Bracket
+
Ctrl + Shift + \⇧ ⌘ \
+
+

+

IntelliSense

+

+ IntelliSense is a general term for a variety of code editing features including: code completion, parameter info, quick info, and member lists. IntelliSense features are sometimes called by other names such as "code completion", "content assist", and "code hinting." +

+

+ IntelliSense works as you type. For example, when you try to invoke some member of an object, a list of all the members is popped up for you to choose from. If you continue typing characters, the list of members (variables, methods, etc.) is filtered to only include members containing your typed characters. Pressing Tab or Enter will insert the selected member. +

+
+
Trigger IntelliSense Manually
+

+ In most cases, IntelliSense is triggered automatically. You can also press Ctrl + Space⌃ Space to do it manually. For example, when you're trying to invoke a member function and want to see the parameter info, this will do the magic. +

+
+

Refactoring

+

+ VS Code Java provides essential refactoring features and makes it productive to modify larger codebase. The most frequently used one is Rename. It's so popular that a dedicated hot key F2 is assigned to it. When you rename a symbol, all its references are also renamed. +

+

+ There are more refactoring features like Extract, Inline, etc. The availability changes corresponding to the current cursor position. All available features are packed in to the Refactor context menu. And you can also pop the list by pressing Ctrl + Shift + R⌃ ⇧ R +

+

+ You may also notice the lightbulb near the cursor. It indicates that some Code Actions are available. In VS Code, Code Actions can provide both refactorings and Quick Fixes for detected issues. To show the full list of available actions, click the lightbulb or press Ctrl + .⌘ .. +

+
+
More Code Actions
+

+ There are other code actions that are not limited to the cursor position. They are grouped into the Source Action context menu. Here's a list of them. +

+
    +
  • Organize Imports
  • +
  • Override/Implement Methods
  • +
  • Generate Getter and Setter
  • +
  • Generate hashCode() and equals()
  • +
  • Generate toString()
  • +
  • Generate Constructors
  • +
  • Generate Delegate Methods
  • +
+
+

Next Steps

+ +
+ + +
+

Understand the compile and build mechanism of the language server

+
+ + +
+

+ One of the key features of Visual Studio Code is its great debugging support. VS Code's built-in debugger helps accelerate your edit, compile and debug loop. +

+

Start Debugging

+

+ There are multiple ways to start debugging a Java program. By pressing F5, the current program will be launched. You can also start by clicking the "Debug" codelens on top of the main function. This is super handy when you have multiple main entries. You can also launch a program without debugging by pressing Ctrl + F5⌃ F5. +

+

+ By default, VS Code Java launches the program using Integrated Terminal. As you enter the debug mode, you should also see the Debug View. This view shows all the runtime info of your program. +

+
+
Debug Configurations
+

+ VS Code Java automatically generates debug configurations. In VS Code, those configurations are called Launch Configurations and they are persisted in .vscode\launch.json.vscode/launch.json. To work with more sophisticated debug scenarios, please explore the Launch Options that are supported by VS Code. +

+
+

Breakpoints

+

+ Breakpoints can be toggled by clicking on the editor margin or using F9 on the current line. Finer breakpoint control (enable/disable/reapply) can be done in the Debug View's BREAKPOINTS section. +

+

+ You can also set Conditional Breakpoints based on expressions, hit counts, or a combination of both. +

+
+
Expression condition
+
The breakpoint will be hit whenever the expression evaluates to true
+
Hit count
+
The 'hit count' controls how many times a breakpoint needs to be hit before it will 'break' execution
+
+

+ You can add a condition and/or hit count when creating the breakpoint (with the Add Conditional Breakpoint action) or when modifying an existing one (with the Edit Breakpoint action). In both cases, an inline text box with a drop-down menu opens where you can enter expressions. +

+
+
Logpoints
+

+ A Logpoint is a variant of a breakpoint that does not "break" into the debugger but instead logs a message to the console. Logpoints are especially useful for injecting logging while debugging production servers that cannot be paused or stopped. +

+

+ A Logpoint is represented by a ♦️ shaped icon. Log messages are plain text but can include expressions to be evaluated within curly braces ('{}'). +

+
+

Debug Actions

+

+ Once a debug session starts, the Debug toolbar will appear on the top of the editor. You can control the execution flow using the actions below. +

+
+
Continue/Pause
+
F5
+
Step Over
+
F10
+
Step Into
+
F11
+
Step Out
+
Shift + F11⇧ F11
+
Restart
+
Ctrl + Shift + F5⇧ ⌘ F5
+
Stop
+
Shift + F5⇧ F5
+
+

Inspect Variables

+

+ Variables can be inspected in the VARIABLES section of the Debug view or by hovering over their source in the editor. Variable values and expression evaluation are relative to the selected stack frame in the CALL STACK section. +

+

+ Variable values can be modified with the Set Value action from the variable's context menu. Or you can double-click the value and enter a new one. Variables and expressions can also be evaluated and watched in the Debug view's WATCH section. +

+

Hot Code Replace ⚡

+

+ Yes, you can apply code changes without restarting the running program. Click on the icon in the debug toolbar to apply code changes. When you see failures, don't worry. It is safe to continue running the program, but you may notice discrepancies between the source code and the program. +

+
+
Limitations
+

+ Hot Code Replace (HCR) sounds magical but it does have limitations. In short, you can only change the code inside an existing function. Here are some scenarios that HCR will NOT work: +

+
    +
  • Adding a new member function
  • +
  • Changing the signature of an existing function
  • +
  • Changing the value of static members (but you can do so using the VARIABLES panel when the program is paused)
  • +
  • Referencing new classes/packages
  • +
+
+

Next Step

+ +
+ + +
+

How to deal with projects and dependencies

+
+ + +
+

How to customize vs code

+
+ + +
+
+
Feedback Channels
+

+ VS Code Java is new, and we are here to help. +

+
+
Ask Questions
+
vscode-java Gitter channel is recommended to ask for help
+
Open Issues
+
vscode-java-pack GitHub repo is recommended for opening bugs
+
Other Feedback
+
@VSCodeJava is the handle to mention on twitter
+
+
+

Why do I see the JDK errors?

+

+ JDK 11+ is required to run the Java language support (redhat.java) extension! You see this error because we failed to find one on your machine. The Configure Java Runtime guide can help you understand how JDK path is searched and provides download links if you need to install one. +

+

Can I run my Java 8 project with JDK 1.8?

+

+ Yes. The JDK 11 requirement is just for running the Java language support (redhat.java) extension itself. You can still configure a different runtime JDK for your project via the user setting "java.configuration.runtimes". The extension will pick a matching JDK to compile/run your project according to the compiler version specified by the project build file. +

+  "java.configuration.runtimes": [
+    {
+      "name": "JavaSE-1.8",
+      "path": "/usr/local/jdk1.8.0_201"
+    },
+    {
+      "name": "JavaSE-11",
+      "path": "/usr/local/jdk-11.0.3",
+      "sources" : "/usr/local/jdk-11.0.3/lib/src.zip",
+      "javadoc" : "https://docs.oracle.com/en/java/javase/11/docs/api",
+      "default":  true
+    }
+  ]
+                        
+

+

Why do I see tons of problems and red squiggles?

+

+ The problems are from VS Code Java when it tries to compile and build your codebase. If you experience this on your first use, it's possibly because of missing dependencies. To fix it, you probably want to start from fixing the project configuration files, e.g. pom.xml and build.gradle. After you make changes to those files, try Update Project Configuration and Force Compilation. +

+

+ It can also happen after you work with one project for a while. Try Clean Workspace to get rid of any intermediate output from the language server. +

+

+ If the problem persists, follow the Troubleshooting Guide. For advanced users, the Client Logs and Server Logs will definitely help you understand what is going on. +

+

Why can't I see any IntelliSense suggestions?

+

+ VS Code Java needs to compile your code before it can provide suggestions. When it's working, you should see a spinning 🔄 on the right end of the status bar. And it will show 👍 when it's done. And you should be able to use all the features. +

+

+ It could take longer for the language server to load a project which references lots of dependencies. Those dependencies need to be resolved and downloaded from the internet. So the network connection plays a critical role in the process. +

+

Why do I see a little ⭐ in some of the IntelliSense suggestions?

+

+ This is because Visual Studio IntelliCode is working. IntelliCode ranks the suggestions using the model trained from the source code of popular open source projects. The items with the stars are the ones that fit the current context the most. +

+

Can I use Lombok?

+

+ Yes. You'll need to install the Lombok extension, which enables VS Code to process Lombok annotations. To learn more about alternatives and details, visit this page. +

+

Can I develop Android apps using VS Code Java?

+

+ Sorry, it's not supported now. +

+

How to troubleshoot the problems?

+

+ You could click F1 -> Java: Open all log files to get the logs. Also learn more at Troubleshooting Guide. +

+
+
+
+ +
+
+
+
+
+
+ + + `; +} + export class JavaGettingStartedViewSerializer implements vscode.WebviewPanelSerializer { async deserializeWebviewPanel(webviewPanel: vscode.WebviewPanel, _state: any) { if (javaGettingStartedView) { diff --git a/src/install-jdk/index.ts b/src/install-jdk/index.ts index 0aa5eadf..809d7c2d 100644 --- a/src/install-jdk/index.ts +++ b/src/install-jdk/index.ts @@ -3,7 +3,7 @@ import * as path from 'path'; import * as vscode from 'vscode'; -import { openExternalLinkFromWebview, webviewCmdLinkHandler } from '../utils'; +import { getNonce, openExternalLinkFromWebview, webviewCmdLinkHandler } from '../utils'; import { availableReleases, latestCompatibleAsset } from '../utils/adoptiumApi'; import { WEBVIEW_ID } from './constants'; @@ -146,12 +146,3 @@ class InstallJdkPage { `; } } - -function getNonce() { - let text = ""; - const possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - for (let i = 0; i < 32; i++) { - text += possible.charAt(Math.floor(Math.random() * possible.length)); - } - return text; -} diff --git a/src/java-runtime/assets/index.html b/src/java-runtime/assets/index.html deleted file mode 100644 index 97f2a675..00000000 --- a/src/java-runtime/assets/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - Configure Java Runtime - - - -
- - - \ No newline at end of file diff --git a/src/java-runtime/index.ts b/src/java-runtime/index.ts index 9f28c504..bed32713 100644 --- a/src/java-runtime/index.ts +++ b/src/java-runtime/index.ts @@ -4,7 +4,7 @@ import * as _ from "lodash"; import * as path from "path"; import * as vscode from "vscode"; -import { getExtensionContext, loadTextFromFile } from "../utils"; +import { getExtensionContext, getNonce } from "../utils"; import { findJavaHomes, JAVAC_FILENAME, JavaRuntime, verifyJavaHome } from "./utils/findJavaRuntime"; import { resolveRequirements } from "./utils/upstreamApi"; import { JavaRuntimeEntry, ProjectRuntimeEntry } from "./types"; @@ -41,8 +41,7 @@ async function initializeJavaRuntimeView(context: vscode.ExtensionContext, webvi light: vscode.Uri.file(path.join(context.extensionPath, "caption.light.svg")), dark: vscode.Uri.file(path.join(context.extensionPath, "caption.dark.svg")) }; - const resourceUri = context.asAbsolutePath("./out/assets/java-runtime/index.html"); - webviewPanel.webview.html = await loadTextFromFile(resourceUri); + webviewPanel.webview.html = getHtmlForWebview(context.asAbsolutePath("./out/assets/java-runtime/index.js")); context.subscriptions.push(webviewPanel.onDidDispose(onDisposeCallback)); context.subscriptions.push(webviewPanel.webview.onDidReceiveMessage(async (e) => { @@ -155,6 +154,28 @@ async function initializeJavaRuntimeView(context: vscode.ExtensionContext, webvi } } +function getHtmlForWebview(scriptPath: string) { + const scriptPathOnDisk = vscode.Uri.file(scriptPath); + const scriptUri = (scriptPathOnDisk).with({ scheme: "vscode-resource" }); + // Use a nonce to whitelist which scripts can be run + const nonce = getNonce(); + + return ` + + + + + + Configure Java Runtime + + + +
+ + + `; +} + export class JavaRuntimeViewSerializer implements vscode.WebviewPanelSerializer { async deserializeWebviewPanel(webviewPanel: vscode.WebviewPanel, _state: any) { if (javaRuntimeView) { diff --git a/src/overview/assets/index.html b/src/overview/assets/index.html deleted file mode 100644 index 7de8e23c..00000000 --- a/src/overview/assets/index.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - Java Overview - - - -
-
-
-

Java Overview

-
-
-
- - -
-
-
-

Learn

-
- - -
-
-
- -
-
-
-
-
- - -
-
-
-
- - - diff --git a/src/overview/index.ts b/src/overview/index.ts index 73ecf27a..add37eb5 100644 --- a/src/overview/index.ts +++ b/src/overview/index.ts @@ -4,7 +4,7 @@ import * as vscode from "vscode"; import * as path from "path"; import { instrumentOperation, sendInfo } from "vscode-extension-telemetry-wrapper"; -import { getExtensionContext, loadTextFromFile } from "../utils"; +import { getExtensionContext, getNonce } from "../utils"; import { KEY_OVERVIEW_LAST_SHOW_TIME, KEY_SHOW_WHEN_USING_JAVA } from "../utils/globalState"; let overviewView: vscode.WebviewPanel | undefined; @@ -51,8 +51,7 @@ async function initializeOverviewView(context: vscode.ExtensionContext, webviewP light: vscode.Uri.file(path.join(context.extensionPath, "caption.light.svg")), dark: vscode.Uri.file(path.join(context.extensionPath, "caption.dark.svg")) }; - const resourceUri = context.asAbsolutePath("./out/assets/overview/index.html"); - webviewPanel.webview.html = await loadTextFromFile(resourceUri); + webviewPanel.webview.html = getHtmlForWebview(context.asAbsolutePath("./out/assets/overview/index.js")); context.subscriptions.push(webviewPanel.onDidDispose(onDisposeCallback)); @@ -108,3 +107,210 @@ export class OverviewViewSerializer implements vscode.WebviewPanelSerializer { initializeOverviewView(getExtensionContext(), webviewPanel, onDidDisposeWebviewPanel); } } + +function getHtmlForWebview(scriptPath: string) { + const scriptPathOnDisk = vscode.Uri.file(scriptPath); + const scriptUri = (scriptPathOnDisk).with({ scheme: "vscode-resource" }); + // Use a nonce to whitelist which scripts can be run + const nonce = getNonce(); + + return ` + + + + + + Java Overview + + + +
+
+
+

Java Overview

+
+
+
+ + +
+
+
+

Learn

+
+ + +
+
+
+ +
+
+
+
+
+ + +
+
+
+
+ + + `; +} diff --git a/src/utils/index.ts b/src/utils/index.ts index 510dc131..f25f08a3 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -76,4 +76,13 @@ export async function openExternalLinkFromWebview(webview: string, identifier: s export function isInsiders() { return vscode.env.appName.indexOf('Insider') > 0 || vscode.env.appName.indexOf('OSS') > 0; -} \ No newline at end of file +} + +export function getNonce() { + let text = ""; + const possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + for (let i = 0; i < 32; i++) { + text += possible.charAt(Math.floor(Math.random() * possible.length)); + } + return text; +} diff --git a/src/welcome/assets/index.html b/src/welcome/assets/index.html deleted file mode 100644 index 8368881a..00000000 --- a/src/welcome/assets/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - Java Help Center - - - -
- - - diff --git a/src/welcome/index.ts b/src/welcome/index.ts index 4414dc46..8e2b3184 100644 --- a/src/welcome/index.ts +++ b/src/welcome/index.ts @@ -4,7 +4,7 @@ import * as path from "path"; import * as vscode from "vscode"; import { instrumentSimpleOperation, sendInfo } from "vscode-extension-telemetry-wrapper"; -import { getExtensionContext, loadTextFromFile } from "../utils"; +import { getExtensionContext, getNonce } from "../utils"; import { KEY_IS_WELCOME_PAGE_VIEWED, KEY_SHOW_WHEN_USING_JAVA } from "../utils/globalState"; let welcomeView: vscode.WebviewPanel | undefined; @@ -66,8 +66,7 @@ async function initializeWelcomeView(context: vscode.ExtensionContext, webviewPa light: vscode.Uri.file(path.join(context.extensionPath, "caption.light.svg")), dark: vscode.Uri.file(path.join(context.extensionPath, "caption.dark.svg")) }; - const resourceUri = context.asAbsolutePath("./out/assets/welcome/index.html"); - webviewPanel.webview.html = await loadTextFromFile(resourceUri); + webviewPanel.webview.html = getHtmlForWebview(context.asAbsolutePath("./out/assets/welcome/index.js")); context.subscriptions.push(webviewPanel.onDidDispose(onDisposeCallback)); context.subscriptions.push(webviewPanel.webview.onDidReceiveMessage((message => { switch (message.command) { @@ -89,6 +88,26 @@ async function initializeWelcomeView(context: vscode.ExtensionContext, webviewPa }))); } +function getHtmlForWebview(scriptPath: string) { + const scriptPathOnDisk = vscode.Uri.file(scriptPath); + const scriptUri = (scriptPathOnDisk).with({ scheme: "vscode-resource" }); + // Use a nonce to whitelist which scripts can be run + const nonce = getNonce(); + return ` + + + + + + Java Help Center + + + +
+ + `; +} + const setWelcomeVisibility = instrumentSimpleOperation("setWelcomeVisibility", (context: vscode.ExtensionContext, visibility: boolean) => { context.globalState.update(KEY_SHOW_WHEN_USING_JAVA, visibility); }); diff --git a/webpack.config.js b/webpack.config.js index 4aadf0b5..2481659e 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,5 +1,3 @@ -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const HtmlWebpackInlineSourcePlugin = require('html-webpack-inline-source-plugin'); const path = require('path'); module.exports = function (env, argv) { @@ -63,51 +61,6 @@ module.exports = function (env, argv) { publicPath: '/', devtoolModuleFilenameTemplate: "../[resource-path]" }, - plugins: [ - new HtmlWebpackPlugin({ - filename: path.resolve(__dirname, 'out/assets/overview/index.html'), - template: 'src/overview/assets/index.html', - inlineSource: '.(js|css)$', - chunks: ['overview'] - }), - new HtmlWebpackPlugin({ - filename: path.resolve(__dirname, 'out/assets/java-runtime/index.html'), - template: 'src/java-runtime/assets/index.html', - inlineSource: '.(js|css)$', - chunks: ['java-runtime'] - }), - new HtmlWebpackPlugin({ - filename: path.resolve(__dirname, 'out/assets/getting-started/index.html'), - template: 'src/getting-started/assets/index.html', - inlineSource: '.(js|css)$', - chunks: ['getting-started'] - }), - new HtmlWebpackPlugin({ - filename: path.resolve(__dirname, 'out/assets/ext-guide/index.html'), - template: 'src/ext-guide/assets/index.html', - inlineSource: '.(js|css)$', - chunks: ['ext-guide'] - }), - new HtmlWebpackPlugin({ - filename: path.resolve(__dirname, 'out/assets/welcome/index.html'), - template: 'src/welcome/assets/index.html', - inlineSource: '.(js|css)$', - chunks: ['welcome'] - }), - new HtmlWebpackPlugin({ - filename: path.resolve(__dirname, 'out/assets/classpath/index.html'), - template: 'src/classpath/assets/index.html', - inlineSource: '.(js|css)$', - chunks: ['classpath'] - }), - new HtmlWebpackPlugin({ - filename: path.resolve(__dirname, 'out/assets/formatter-settings/index.html'), - template: 'src/formatter-settings/assets/index.html', - inlineSource: '.(js|css)$', - chunks: ['formatter-settings'] - }), - new HtmlWebpackInlineSourcePlugin(), - ], devtool: 'source-map', resolve: { extensions: ['.js', '.ts', '.tsx'] From 044cb95e2288989be40cb17645939aefc7b9712e Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Wed, 1 Dec 2021 11:19:52 +0800 Subject: [PATCH 023/409] Eliminate high-sev CVEs by using Webpack@5 (#800) * Eliminate high-sev CVEs by using Webpack@5 Signed-off-by: Yan Zhang * remove url-loader Co-authored-by: Shi Chen --- .vscode/tasks.json | 4 +- package-lock.json | 4821 ++++++---------------------- package.json | 23 +- src/install-jdk/asset/App.scss | 4 +- src/java-runtime/assets/style.scss | 4 +- webpack.config.js | 31 +- 6 files changed, 1084 insertions(+), 3803 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index c7cb6002..4e6c8efa 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -18,8 +18,8 @@ ], "background": { "activeOnStart": true, - "beginsPattern": "Compilation \\w+ starting…", - "endsPattern": "Compilation\\s+finished" + "beginsPattern": "\\w+", + "endsPattern": "webpack .* compiled" } }, "isBackground": true, diff --git a/package-lock.json b/package-lock.json index de8a7707..27c63da5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,6 +38,12 @@ "regenerator-runtime": "^0.13.4" } }, + "@discoveryjs/json-ext": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz", + "integrity": "sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==", + "dev": true + }, "@iconify-icons/codicon": { "version": "1.1.8", "resolved": "https://devdiv.pkgs.visualstudio.com/_packaging/CloudKernel/npm/registry/@iconify-icons/codicon/-/codicon-1.1.8.tgz", @@ -161,6 +167,32 @@ "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.11.tgz", "integrity": "sha512-2koNhpWm3DgWRp5tpkiJ8JGc1xTn2q0l+jUNUE7oMKXUf5NpI9AIdC4kbjGNFBdHtcxBD18LAksoudAVhFKCjw==" }, + "@types/eslint": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.0.tgz", + "integrity": "sha512-74hbvsnc+7TEDa1z5YLSe4/q8hGYB3USNvCuzHUJrjPV6hXaq8IXcngCrHkuvFt0+8rFz7xYXrHgNayIX0UZvQ==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, "@types/expand-tilde": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@types/expand-tilde/-/expand-tilde-2.0.0.tgz", @@ -209,10 +241,28 @@ "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=", "dev": true }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, "@types/node": { - "version": "8.10.63", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.63.tgz", - "integrity": "sha512-g+nSkeHFDd2WOQChfmy9SAXLywT47WZBrGS/NC5ym5PJ8c8RC6l4pbGaUW/X0+eZJnXw6/AVNEouXWhV4iz72Q==", + "version": "16.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", + "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "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/path-exists": { @@ -309,180 +359,172 @@ } }, "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, "@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==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", "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==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", "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==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", "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==", + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0" + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" } }, "@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==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", "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==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", "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/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" } }, "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", "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==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", "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==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", "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==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", "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/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" } }, "@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==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", "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/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, "@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==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", "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/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" } }, "@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==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", "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/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, - "@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==", + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", "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", + "@webassemblyjs/ast": "1.11.1", "@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==", + "@webpack-cli/configtest": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.0.tgz", + "integrity": "sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg==", + "dev": true + }, + "@webpack-cli/info": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.0.tgz", + "integrity": "sha512-F6b+Man0rwE4n0409FyAJHStYA5OIZERxmnUfLVwv0mc0V1wLad3V7jqRlMkgKBeAq07jUvglacNaa6g9lOpuw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" + "envinfo": "^7.7.3" } }, + "@webpack-cli/serve": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.0.tgz", + "integrity": "sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA==", + "dev": true + }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -502,9 +544,15 @@ "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==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", "dev": true }, "ajv": { @@ -518,16 +566,10 @@ "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.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true }, "amdefine": { @@ -551,17 +593,6 @@ "color-convert": "^1.9.0" } }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "optional": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, "applicationinsights": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/applicationinsights/-/applicationinsights-1.7.4.tgz", @@ -598,34 +629,10 @@ "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-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "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=", + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "asn1": { @@ -637,72 +644,12 @@ "safer-buffer": "~2.1.0" } }, - "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.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "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" - } - } - } - }, "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, - "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 - }, - "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 - }, "async-foreach": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", @@ -737,12 +684,6 @@ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" }, - "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 - }, "autoprefixer": { "version": "8.6.5", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.6.5.tgz", @@ -755,6 +696,19 @@ "num2fraction": "^1.2.2", "postcss": "^6.0.23", "postcss-value-parser": "^3.2.3" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + } } }, "aws-sign2": { @@ -782,67 +736,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "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 - }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", @@ -852,50 +745,6 @@ "tweetnacl": "^0.14.3" } }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "optional": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "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.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true - }, "bootstrap": { "version": "4.5.2", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.2.tgz", @@ -910,139 +759,6 @@ "concat-map": "0.0.1" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "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" - } - } - } - }, - "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": "http://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" - } - }, - "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 - } - } - }, - "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": "3.2.8", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", @@ -1053,103 +769,29 @@ "electron-to-chromium": "^1.3.47" } }, - "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.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", "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" - } - }, - "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" - } + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true }, "camelcase": { "version": "5.3.1", @@ -1158,21 +800,14 @@ "dev": true }, "camelcase-keys": { - "version": "2.1.0", - "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - } + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" } }, "caniuse-lite": { @@ -1198,66 +833,10 @@ "supports-color": "^5.3.0" } }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "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, - "optional": true, - "requires": { - "to-regex-range": "^5.0.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, - "optional": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, "chrome-trace-event": { @@ -1266,39 +845,6 @@ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "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" - } - } - } - }, "classnames": { "version": "2.2.6", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", @@ -1376,16 +922,6 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, - "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", @@ -1401,6 +937,12 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, "combined-stream": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", @@ -1416,58 +958,22 @@ "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", "dev": true }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, "compare-versions": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==" }, - "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=" }, - "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 - }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "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 - }, "continuation-local-storage": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz", @@ -1477,26 +983,6 @@ "emitter-listener": "^1.1.1" } }, - "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" - } - }, - "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-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -1504,88 +990,54 @@ "dev": true }, "cosmiconfig": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", - "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", - "dev": true, - "requires": { - "is-directory": "^0.3.1", - "js-yaml": "^3.9.0", - "parse-json": "^4.0.0", - "require-from-string": "^2.0.1" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - } - } - }, - "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.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "http://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": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "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" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" } }, "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "dependencies": { + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "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" @@ -1593,115 +1045,31 @@ } } }, - "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": "3.6.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", - "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.1.tgz", + "integrity": "sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ==", "dev": true, "requires": { - "camelcase": "^5.3.1", - "cssesc": "^3.0.0", - "icss-utils": "^4.1.1", - "loader-utils": "^1.2.3", - "normalize-path": "^3.0.0", - "postcss": "^7.0.32", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.2", - "postcss-modules-scope": "^2.2.0", - "postcss-modules-values": "^3.0.0", + "icss-utils": "^5.1.0", + "postcss": "^8.2.15", + "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": "^2.7.0", - "semver": "^6.3.0" + "semver": "^7.3.5" }, "dependencies": { - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "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==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "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" - } - }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "8.3.11", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz", + "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^0.6.2" } }, "postcss-value-parser": { @@ -1710,44 +1078,13 @@ "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", "dev": true }, - "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" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - } - } - }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "lru-cache": "^6.0.0" } } } @@ -1763,21 +1100,6 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==" }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -1787,65 +1109,27 @@ "assert-plus": "^1.0.0" } }, - "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" - } - }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, - "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 - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, "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" - } + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true } } }, @@ -1861,22 +1145,6 @@ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true }, - "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" - } - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, "diagnostic-channel": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz", @@ -1896,25 +1164,6 @@ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "http://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.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "dom-helpers": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", @@ -1924,24 +1173,6 @@ "csstype": "^3.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" - } - }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -1958,35 +1189,6 @@ "integrity": "sha512-TiHlCgl2uP26Z0c67u442c0a2MZCWZNCRnPTQDPhVJ4h9G6z2zU0lApD9H0K9R5yFL5SfdaiVsVD2izOY24xBQ==", "dev": true }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - } - } - }, "emitter-listener": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz", @@ -2001,40 +1203,27 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "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.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" } }, - "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" - } + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true }, "error-ex": { "version": "1.3.2", @@ -2045,6 +1234,18 @@ "is-arrayish": "^0.2.1" } }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "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", @@ -2052,12 +1253,12 @@ "dev": true }, "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "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.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, @@ -2077,9 +1278,9 @@ }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -2096,14 +1297,21 @@ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "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==", + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" } }, "exenv-es6": { @@ -2111,41 +1319,6 @@ "resolved": "https://registry.npmjs.org/exenv-es6/-/exenv-es6-1.0.0.tgz", "integrity": "sha512-fcG/TX8Ruv9Ma6PBaiNsUrHRJzVzuFMP6LtPn/9iqR+nr9mcLeEOGzXQGLC5CVQSXGE98HtzW2mTZkrCA3XrDg==" }, - "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": { - "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" - } - } - } - }, "expand-home-dir": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/expand-home-dir/-/expand-home-dir-0.0.3.tgz", @@ -2165,92 +1338,6 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "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" - } - } - } - }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -2267,10 +1354,10 @@ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "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 }, "file-loader": { @@ -2353,101 +1440,47 @@ } } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "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": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "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": { - "is-extendable": "^0.1.0" + "p-locate": "^4.1.0" } - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + }, + "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": { - "pinkie-promise": "^2.0.0" + "p-limit": "^2.2.0" } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true } } }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, "follow-redirects": { "version": "1.14.5", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz", "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==" }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -2465,25 +1498,6 @@ "mime-types": "^2.1.12" } }, - "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", @@ -2495,16 +1509,13 @@ "universalify": "^1.0.0" } }, - "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=", + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" + "minipass": "^3.0.0" } }, "fs.realpath": { @@ -2513,25 +1524,6 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -2574,10 +1566,10 @@ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", "dev": true }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, "getpass": { @@ -2603,79 +1595,20 @@ "path-is-absolute": "^1.0.0" } }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" - }, - "dependencies": { - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true }, "globule": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz", - "integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz", + "integrity": "sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg==", "dev": true, "requires": { "glob": "~7.1.1", - "lodash": "~4.17.12", + "lodash": "~4.17.10", "minimatch": "~3.0.2" } }, @@ -2700,6 +1633,12 @@ "har-schema": "^2.0.0" } }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -2729,100 +1668,11 @@ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "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": { - "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" - } - }, - "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 - } - } - }, - "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" - } - }, "highlight.js": { "version": "10.5.0", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.5.0.tgz", "integrity": "sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw==" }, - "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", @@ -2840,10 +1690,13 @@ } }, "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } }, "http-signature": { "version": "1.2.0", @@ -2856,75 +1709,16 @@ "sshpk": "^1.7.0" } }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "dev": true, - "requires": { - "postcss": "^7.0.14" - }, - "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" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true }, "immer": { @@ -2932,65 +1726,30 @@ "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.6.tgz", "integrity": "sha512-G95ivKpy+EvVAnAab4fVa4YGYn24J1SpEktnJX7JJ45Bd7xqME/SCplFzYFmTbrkwZbQ4xJK1xMTUYBkN6pWsQ==" }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "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": { - "import-from": "^2.1.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" } }, "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", + "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", "dev": true, "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "in-publish": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", - "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", - "dev": true - }, "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "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==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, "inflight": { @@ -3009,16 +1768,10 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", "dev": true }, "invariant": { @@ -3029,48 +1782,12 @@ "loose-envify": "^1.0.0" } }, - "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, - "optional": 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.8.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", @@ -3079,69 +1796,6 @@ "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-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "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-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "dev": true - }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", @@ -3151,34 +1805,11 @@ "number-is-nan": "^1.0.0" } }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-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" - } - } - } + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true }, "is-plain-object": { "version": "2.0.4", @@ -3189,30 +1820,18 @@ "isobject": "^3.0.1" } }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-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", @@ -3237,6 +1856,34 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, + "jest-worker": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz", + "integrity": "sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", @@ -3248,9 +1895,9 @@ "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" }, "js-base64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz", - "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", "dev": true }, "js-tokens": { @@ -3280,6 +1927,12 @@ "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", @@ -3291,12 +1944,6 @@ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, "jsonfile": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", @@ -3332,35 +1979,23 @@ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, - "load-json-file": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } + "klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "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==", + "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 }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - } + "loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "dev": true }, "locate-path": { "version": "3.0.0", @@ -3390,143 +2025,55 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "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": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } + "yallist": "^4.0.0" } }, - "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-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "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" - } - }, - "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" - } - }, "meow": { - "version": "3.7.0", - "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - } - }, - "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" - } - }, - "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.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true } } }, + "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 + }, "mime-db": { "version": "1.50.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", @@ -3542,16 +2089,16 @@ "mime-db": "1.50.0" } }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "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 }, - "minimalistic-crypto-utils": { + "min-indent": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true }, "minimatch": { @@ -3568,43 +2115,34 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "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" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" } }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "minipass": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", "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" - } - } + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" } }, "mkdirp": { @@ -3616,50 +2154,17 @@ "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", "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" - } + "nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "dev": true }, "neo-async": { "version": "2.6.2", @@ -3667,42 +2172,37 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", "dev": true, "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" }, "dependencies": { "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "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" @@ -3710,63 +2210,28 @@ } } }, - "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 - } - } + "node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "dev": true }, "node-sass": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", - "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-6.0.1.tgz", + "integrity": "sha512-f+Rbqt92Ful9gX0cGtdYwjTrWAaGURgaK5rZCWOgCNyGWusFYHhbqCCBoFBeat+HKETOU02AyTxNhJV0YZf2jQ==", "dev": true, "requires": { "async-foreach": "^0.1.3", "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", + "cross-spawn": "^7.0.3", "gaze": "^1.0.0", "get-stdin": "^4.0.1", "glob": "^7.0.3", - "in-publish": "^2.0.0", "lodash": "^4.17.15", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", + "meow": "^9.0.0", "nan": "^2.13.2", - "node-gyp": "^3.8.0", + "node-gyp": "^7.1.0", "npmlog": "^4.0.0", "request": "^2.88.0", "sass-graph": "2.2.5", @@ -3802,46 +2267,52 @@ } }, "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, "requires": { "abbrev": "1" } }, "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", "validate-npm-package-license": "^3.0.1" }, "dependencies": { "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } } } }, - "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 - }, "normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, + "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" + } + }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -3877,90 +2348,22 @@ "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-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.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=", + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1" } }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "mimic-fn": "^2.1.0" } }, "p-limit": { @@ -3987,43 +2390,25 @@ "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" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "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": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "callsites": "^3.0.0" } }, "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "requires": { - "error-ex": "^1.2.0" + "@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" } }, "parse-passwd": { @@ -4031,25 +2416,6 @@ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-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": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -4063,9 +2429,9 @@ "dev": true }, "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "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": { @@ -4074,28 +2440,10 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "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" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true }, "performance-now": { "version": "2.1.0", @@ -4103,325 +2451,111 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true, - "optional": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, "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==", + "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": "^3.0.0" - }, - "dependencies": { - "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" - } - } + "find-up": "^4.0.0" } }, - "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": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "postcss-load-config": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", - "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", + "version": "8.3.11", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz", + "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==", "dev": true, "requires": { - "cosmiconfig": "^4.0.0", - "import-cwd": "^2.0.0" + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^0.6.2" } }, "postcss-loader": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz", - "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^6.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^0.4.0" - } - }, - "postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.0.tgz", + "integrity": "sha512-H9hv447QjQJVDbHj3OUdciyAXY3v5+UDduzEytAlZCVHCpNAAg/mCSwhYYqZr9BiGYhmYspU8QXxZwiHTLn3yA==", "dev": true, "requires": { - "postcss": "^7.0.5" + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "semver": "^7.3.5" }, "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" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "lru-cache": "^6.0.0" } } } }, + "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": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", - "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "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": "^4.1.1", - "postcss": "^7.0.32", + "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", "postcss-value-parser": "^4.1.0" }, "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, "postcss-value-parser": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, "postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "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": "^7.0.6", - "postcss-selector-parser": "^6.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" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "postcss-selector-parser": "^6.0.4" } }, "postcss-modules-values": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", - "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "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": "^4.0.0", - "postcss": "^7.0.6" - }, - "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" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "icss-utils": "^5.0.0" } }, "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", "dev": true, "requires": { "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "util-deprecate": "^1.0.2" } }, "postcss-value-parser": { @@ -4442,12 +2576,6 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "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", @@ -4467,79 +2595,12 @@ "warning": "^4.0.0" } }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, "psl": { "version": "1.1.31", "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", "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.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "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", @@ -4551,16 +2612,10 @@ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "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=", + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true }, "randombytes": { @@ -4572,16 +2627,6 @@ "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" - } - }, "react": { "version": "16.9.0", "resolved": "https://registry.npmjs.org/react/-/react-16.9.0.tgz", @@ -4677,16 +2722,23 @@ } }, "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -4698,20 +2750,35 @@ "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true } } }, "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "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 + } + } + }, + "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==", @@ -4726,24 +2793,23 @@ "util-deprecate": "~1.0.1" } }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", "dev": true, - "optional": true, "requires": { - "picomatch": "^2.2.1" + "resolve": "^1.9.0" } }, "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" } }, "redux": { @@ -4764,44 +2830,6 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" }, - "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" - } - }, - "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.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "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 - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, "request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -4836,12 +2864,6 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -4863,98 +2885,43 @@ } }, "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "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": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" + "resolve-from": "^5.0.0" }, "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true } } }, "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "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==", + "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 }, "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "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-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.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "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", @@ -4974,30 +2941,13 @@ } }, "sass-loader": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.3.1.tgz", - "integrity": "sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.3.0.tgz", + "integrity": "sha512-6l9qwhdOb7qSrtOu96QQ81LVl8v6Dp9j1w3akOm0aWHyrTYtagDt5+kS32N4yq4hHk3M+rdqoRMH+lIdqvW6HA==", "dev": true, "requires": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.0.1", - "neo-async": "^2.5.0", - "pify": "^4.0.1", - "semver": "^6.3.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "klona": "^2.0.4", + "neo-async": "^2.6.2" } }, "scheduler": { @@ -5010,13 +2960,14 @@ } }, "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } }, "scss-tokenizer": { @@ -5046,9 +2997,9 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -5060,45 +3011,6 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, - "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": "http://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", @@ -5108,21 +3020,6 @@ "kind-of": "^6.0.2" } }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, "shimmer": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", @@ -5134,160 +3031,28 @@ "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", "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": { - "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" - } - }, - "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==", "dev": true }, - "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-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "dev": true }, "source-map-support": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -5320,15 +3085,6 @@ "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", "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", @@ -5352,41 +3108,11 @@ "tweetnacl": "~0.14.0" } }, - "ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, "stack-chain": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/stack-chain/-/stack-chain-1.3.7.tgz", "integrity": "sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU=" }, - "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" - } - } - } - }, "stdout-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", @@ -5396,45 +3122,6 @@ "readable-stream": "^2.0.1" } }, - "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-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -5444,17 +3131,6 @@ "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } } }, "string_decoder": { @@ -5475,33 +3151,26 @@ "ansi-regex": "^2.0.0" } }, - "strip-bom": { + "strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true }, "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, "requires": { - "get-stdin": "^4.0.1" + "min-indent": "^1.0.0" } }, "style-loader": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.21.0.tgz", - "integrity": "sha512-T+UNsAcl3Yg+BsPKs1vd22Fr8sVT+CJMtzqc6LEw9bbJZb43lm9GoeIfUcDEefBSWC0BhYbcdupV1GtI4DGzxg==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^0.4.5" - } + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", + "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", + "dev": true }, "supports-color": { "version": "5.5.0", @@ -5518,20 +3187,31 @@ "integrity": "sha512-40pEZ2mhjaZzK0BnI+QGNjJO8UYx9pP5v7BGe17SORTO0OEuuaAwQTkAp8whcZvqon44wKFOikD+Al11K3JICQ==" }, "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, "tar": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", "dev": true, "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } } }, "tas-client": { @@ -5543,14 +3223,14 @@ } }, "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", + "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", "dev": true, "requires": { "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" }, "dependencies": { "commander": { @@ -5558,160 +3238,181 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true + }, + "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 } } }, "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==", + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz", + "integrity": "sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g==", "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", + "jest-worker": "^27.0.6", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.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" - } - } - } - }, - "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" + "terser": "^5.7.2" } }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "setimmediate": "^1.0.4" + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "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": "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" - } - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", "dev": true, "requires": { "glob": "^7.1.2" } }, "ts-loader": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-4.5.0.tgz", - "integrity": "sha512-ihgVaSmgrX4crGV4n7yuoHPoCHbDzj9aepCZR9TgIx4SgJ9gdnB6xLHgUBb7bsFM/f0K6x9iXa65KY/Fu1Klkw==", + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.2.6.tgz", + "integrity": "sha512-QMTC4UFzHmu9wU2VHZEmWWE9cUajjfcdcws+Gh7FhiO+Dy0RnR1bNz0YCHqhI0yRowCE9arVnNxYHqELOy9Hjw==", "dev": true, "requires": { - "chalk": "^2.3.0", - "enhanced-resolve": "^4.0.0", - "loader-utils": "^1.0.2", - "micromatch": "^3.1.4", - "semver": "^5.0.1" + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" }, "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" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "enhanced-resolve": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "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 + }, + "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 + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } } } }, @@ -5750,12 +3451,6 @@ "tslib": "^1.8.1" } }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -5771,10 +3466,10 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true }, "typescript": { @@ -5805,94 +3500,11 @@ } } }, - "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==" }, - "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.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -5901,112 +3513,6 @@ "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 - } - } - }, - "url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "@types/.json-schema-WTVcaBP1": { - "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==" - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "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==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "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==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.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==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "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.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" - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -6019,12 +3525,6 @@ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "dev": true }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -6046,12 +3546,6 @@ "extsprintf": "^1.2.0" } }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, "vscode-extension-telemetry": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/vscode-extension-telemetry/-/vscode-extension-telemetry-0.1.6.tgz", @@ -6093,344 +3587,118 @@ } }, "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==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.0.tgz", + "integrity": "sha512-MnN0Q1OsvB/GGHETrFeZPQaOelWh/7O+EiFlj8sM9GPjtQkis7k01aAxrg/18kTfoIVcLL+haEVFlXDaSRwKRw==", "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 - }, - "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" - } - }, - "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, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "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" - } - }, - "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" - } - } + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" } }, "webpack": { - "version": "4.46.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", - "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", - "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", + "version": "5.64.4", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.64.4.tgz", + "integrity": "sha512-LWhqfKjCLoYJLKJY8wk2C3h77i8VyHowG3qYNZiIqD6D0ZS40439S/KVuc/PY48jp2yQmy0mhMknq8cys4jFMw==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.5.0", - "eslint-scope": "^4.0.3", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", "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" + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.0", + "webpack-sources": "^3.2.2" }, "dependencies": { - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "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==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "browserslist": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", "dev": true, "requires": { - "minimist": "^1.2.0" + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.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" - } - }, - "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" - } + "caniuse-lite": { + "version": "1.0.30001283", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz", + "integrity": "sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==", + "dev": true }, - "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" - } + "electron-to-chromium": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.4.tgz", + "integrity": "sha512-teHtgwcmVcL46jlFvAaqjyiTLWuMrUQO1JqV303JKB4ysXG6m8fXSFhbjal9st0r9mNskI22AraJZorb1VcLVg==", + "dev": true } } }, "webpack-cli": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", - "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.1", - "findup-sync": "^3.0.0", - "global-modules": "^2.0.0", - "import-local": "^2.0.0", - "interpret": "^1.4.0", - "loader-utils": "^1.4.0", - "supports-color": "^6.1.0", - "v8-compile-cache": "^2.1.1", - "yargs": "^13.3.2" + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.1.tgz", + "integrity": "sha512-JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.1.0", + "@webpack-cli/info": "^1.4.0", + "@webpack-cli/serve": "^1.6.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" }, "dependencies": { - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "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" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^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==", + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" } }, + "webpack-sources": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.2.tgz", + "integrity": "sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==", + "dev": true + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -6438,28 +3706,25 @@ "dev": true }, "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, "requires": { - "string-width": "^1.0.2 || 2" + "string-width": "^1.0.2 || 2 || 3 || 4" } }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, "winreg-utf8": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/winreg-utf8/-/winreg-utf8-0.1.1.tgz", "integrity": "sha512-A4tBCO0bx3FCA/s8RowK40h3BQhKOWRFmsn6gYrXj6WjRAbOGnNJkTOpVmtA82UeGNMtpn3Wr0TWb742C1AS+g==" }, - "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" - } - }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", @@ -6516,12 +3781,6 @@ "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz", "integrity": "sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==" }, - "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.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", @@ -6529,9 +3788,15 @@ "dev": true }, "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "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.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true }, "yargs": { diff --git a/package.json b/package.json index ea2e968a..51a70fab 100644 --- a/package.json +++ b/package.json @@ -318,7 +318,7 @@ "scripts": { "vscode:prepublish": "npm run build", "compile": "webpack --config webpack.config.js", - "watch": "webpack --config webpack.config.js --watch --info-verbosity verbose", + "watch": "webpack --config webpack.config.js --watch", "build": "webpack --config webpack.config.js --mode=\"production\"", "update-tpn": "node scripts/update-third-party-notice.js" }, @@ -328,7 +328,7 @@ "@types/fs-extra": "^9.0.1", "@types/lodash": "^4.14.161", "@types/minimatch": "^3.0.3", - "@types/node": "^8.10.63", + "@types/node": "^16.11.6", "@types/path-exists": "^3.0.0", "@types/react": "^17.0.0", "@types/react-dom": "^16.9.8", @@ -339,18 +339,19 @@ "@types/xmldom": "^0.1.30", "autoprefixer": "^8.5.1", "bytes": "^3.1.0", - "css-loader": "^3.6.0", + "css-loader": "^6.5.1", "file-loader": "^6.2.0", - "node-sass": "^4.14.1", - "postcss-loader": "^2.1.5", - "sass-loader": "^7.3.1", - "style-loader": "^0.21.0", - "ts-loader": "^4.3.0", + "node-sass": "^6.0.1", + "postcss": "^8.3.11", + "postcss-loader": "^6.2.0", + "process": "0.11.10", + "sass-loader": "^12.3.0", + "style-loader": "^3.3.1", + "ts-loader": "^9.2.6", "tslint": "^5.20.1", "typescript": "^3.7.5", - "url-loader": "^4.1.1", - "webpack": "^4.46.0", - "webpack-cli": "^3.3.12" + "webpack": "^5.64.4", + "webpack-cli": "^4.9.1" }, "extensionPack": [ "redhat.java", diff --git a/src/install-jdk/asset/App.scss b/src/install-jdk/asset/App.scss index 81a01a58..172a6a07 100644 --- a/src/install-jdk/asset/App.scss +++ b/src/install-jdk/asset/App.scss @@ -30,5 +30,5 @@ div.btn-download { margin: 0 0.5rem; } -@import "~@vscode/codicons/dist/codicon.css"; -@import "~@vscode/codicons/dist/codicon.ttf"; +@import "../../../node_modules/@vscode/codicons/dist/codicon.css"; +@import "../../../node_modules/@vscode/codicons/dist/codicon.ttf"; diff --git a/src/java-runtime/assets/style.scss b/src/java-runtime/assets/style.scss index c157b966..bf7aa55d 100644 --- a/src/java-runtime/assets/style.scss +++ b/src/java-runtime/assets/style.scss @@ -29,8 +29,8 @@ select#jdkDropdown { width: 100%; } -@import "~@vscode/codicons/dist/codicon.css"; -@import "~@vscode/codicons/dist/codicon.ttf"; +@import "../../../node_modules/@vscode/codicons/dist/codicon.css"; +@import "../../../node_modules/@vscode/codicons/dist/codicon.ttf"; div.warning-box { display: flex; diff --git a/webpack.config.js b/webpack.config.js index 2481659e..a8970b89 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,3 +1,4 @@ +const webpack = require('webpack'); const path = require('path'); module.exports = function (env, argv) { @@ -30,19 +31,28 @@ module.exports = function (env, argv) { }, { loader: 'postcss-loader', options: { - plugins: function () { - return [require('autoprefixer')]; - } + postcssOptions: { + plugins: [ + [ + "autoprefixer", + { + // Options + }, + ], + ], + }, } }, { loader: 'sass-loader' }] }, { test: /\.(jpg|png|svg|ico|icns)$/, - loader: 'url-loader?limit=200000', - options: { - esModule: false - } + type: 'asset', + parser: { + dataUrlCondition: { + maxSize: 200000, + }, + }, }, { test: /\.(css)$/, use: [{ @@ -52,7 +62,7 @@ module.exports = function (env, argv) { }] }, { test: /\.(woff2|ttf)$/, - loader: 'url-loader', + type: 'asset/inline', }] }, output: { @@ -61,6 +71,11 @@ module.exports = function (env, argv) { publicPath: '/', devtoolModuleFilenameTemplate: "../[resource-path]" }, + plugins: [ + new webpack.ProvidePlugin({ + process: 'process/browser', + }), + ], devtool: 'source-map', resolve: { extensions: ['.js', '.ts', '.tsx'] From 5411e0a53e1b258b98d37349598cf5ae4c4b3cf6 Mon Sep 17 00:00:00 2001 From: Shi Chen Date: Wed, 1 Dec 2021 15:43:13 +0800 Subject: [PATCH 024/409] upgrade xmldom (#834) --- package-lock.json | 32 +++++++++++++++----------------- package.json | 4 ++-- src/formatter-settings/index.ts | 4 ++-- src/formatter-settings/types.ts | 2 +- src/formatter-settings/utils.ts | 4 ++-- 5 files changed, 22 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index 27c63da5..d2888a6b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -525,6 +525,11 @@ "integrity": "sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA==", "dev": true }, + "@xmldom/xmldom": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz", + "integrity": "sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==" + }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -1933,6 +1938,12 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -1954,23 +1965,15 @@ } }, "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", - "json-schema": "0.2.3", + "json-schema": "0.4.0", "verror": "1.10.0" - }, - "dependencies": { - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - } } }, "kind-of": { @@ -3776,11 +3779,6 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "xmldom": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz", - "integrity": "sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==" - }, "y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", diff --git a/package.json b/package.json index 51a70fab..b73795b2 100644 --- a/package.json +++ b/package.json @@ -368,6 +368,7 @@ "@reduxjs/toolkit": "^1.5.0", "@vscode/codicons": "0.0.25", "@vscode/webview-ui-toolkit": "^0.8.2", + "@xmldom/xmldom": "^0.7.5", "axios": "^0.21.4", "bootstrap": "^4.5.2", "compare-versions": "^3.6.0", @@ -385,7 +386,6 @@ "semver": "^5.7.1", "vscode-extension-telemetry-wrapper": "^0.9.0", "vscode-tas-client": "^0.1.22", - "winreg-utf8": "^0.1.1", - "xmldom": "^0.6.0" + "winreg-utf8": "^0.1.1" } } diff --git a/src/formatter-settings/index.ts b/src/formatter-settings/index.ts index 39324ec1..961458cf 100644 --- a/src/formatter-settings/index.ts +++ b/src/formatter-settings/index.ts @@ -6,7 +6,7 @@ import * as fse from "fs-extra"; import * as path from "path"; import * as vscode from "vscode"; import { instrumentOperation, sendError, sendInfo, setUserError } from "vscode-extension-telemetry-wrapper"; -import { XMLSerializer } from "xmldom"; +import { XMLSerializer } from "@xmldom/xmldom"; import { getNonce } from "../utils"; import { Example, getSupportedVSCodeSettings, JavaConstants, SupportedSettings, VSCodeSettings } from "./FormatterConstants"; import { FormatterConverter } from "./FormatterConverter"; @@ -87,7 +87,7 @@ export class JavaFormatterSettingsEditorProvider implements vscode.CustomTextEdi this.webviewPanel.onDidDispose(() => { this.webviewPanel = undefined; }); - this.webviewPanel.webview.html = this.getHtmlForWebview(path.join(this.context.extensionPath, "out", "assets", "formatter-settings", "index.js"));; + this.webviewPanel.webview.html = this.getHtmlForWebview(path.join(this.context.extensionPath, "out", "assets", "formatter-settings", "index.js")); this.webviewPanel.webview.onDidReceiveMessage(async (e) => { switch (e.command) { case "onWillInitialize": diff --git a/src/formatter-settings/types.ts b/src/formatter-settings/types.ts index 8ecad124..e18fe14f 100644 --- a/src/formatter-settings/types.ts +++ b/src/formatter-settings/types.ts @@ -44,7 +44,7 @@ export enum ExampleKind { WRAPPING_EXAMPLE = "Wrapping", } -// two extra properties from xmldom package, see https://www.npmjs.com/package/xmldom +// two extra properties from @xmldom/xmldom package, see https://www.npmjs.com/package/@xmldom/xmldom export interface DOMElement extends Element { lineNumber: number; columnNumber: number; diff --git a/src/formatter-settings/utils.ts b/src/formatter-settings/utils.ts index eaeab61c..a9d665d0 100644 --- a/src/formatter-settings/utils.ts +++ b/src/formatter-settings/utils.ts @@ -4,10 +4,10 @@ import * as fse from "fs-extra"; import * as path from "path"; import * as vscode from "vscode"; -import axios from 'axios'; +import axios from "axios"; import { sendInfo } from "vscode-extension-telemetry-wrapper"; import { DOMAttr, DOMElement, ProfileContent } from "./types"; -import { DOMParser, XMLSerializer } from "xmldom"; +import { DOMParser, XMLSerializer } from "@xmldom/xmldom"; import { getDefaultValue, getSupportedProfileSettings, JavaConstants } from "./FormatterConstants"; import { FormatterConverter } from "./FormatterConverter"; From 45435397c4d87c282c8759cbd00a5721bc514278 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Wed, 1 Dec 2021 23:04:26 +0800 Subject: [PATCH 025/409] ref: adopt vscode's styling in beginner tips page (#831) * apply vscode-webview-ui-toolkit on beginner tips page Signed-off-by: Yan Zhang * add entry in webpack config Signed-off-by: Yan Zhang * add copyrights Signed-off-by: Yan Zhang * use consistent titles Signed-off-by: Yan Zhang * address comments Signed-off-by: Yan Zhang * address comments Signed-off-by: Yan Zhang --- package.json | 2 +- src/beginner-tips/assets/BeginnerTips.tsx | 49 ++ src/beginner-tips/assets/index.tsx | 11 + src/beginner-tips/assets/style.scss | 48 ++ .../assets/tabs/CodeEditingPanel.tsx | 126 +++++ .../assets/tabs/DebuggingPanel.tsx | 126 +++++ src/beginner-tips/assets/tabs/FaqPanel.tsx | 102 ++++ .../assets/tabs/QuickStartPanel.tsx | 59 +++ src/beginner-tips/index.ts | 140 +++++ src/commands/index.ts | 2 +- src/extension.ts | 4 +- src/getting-started/assets/index.ts | 38 -- src/getting-started/index.ts | 484 ------------------ src/install-jdk/{asset => assets}/App.scss | 0 src/install-jdk/{asset => assets}/App.tsx | 0 .../{asset => assets}/app/hooks.ts | 0 .../{asset => assets}/app/store.ts | 0 .../features/InstallJDKView.tsx | 2 +- .../features/components/AdoptiumJDKPanel.tsx | 0 .../features/components/OtherJDKsPanel.tsx | 0 .../features/installJDKViewSlice.ts | 0 src/install-jdk/{asset => assets}/index.tsx | 0 .../{asset => assets}/vscode.api.ts | 0 webpack.config.js | 4 +- 24 files changed, 668 insertions(+), 529 deletions(-) create mode 100644 src/beginner-tips/assets/BeginnerTips.tsx create mode 100644 src/beginner-tips/assets/index.tsx create mode 100644 src/beginner-tips/assets/style.scss create mode 100644 src/beginner-tips/assets/tabs/CodeEditingPanel.tsx create mode 100644 src/beginner-tips/assets/tabs/DebuggingPanel.tsx create mode 100644 src/beginner-tips/assets/tabs/FaqPanel.tsx create mode 100644 src/beginner-tips/assets/tabs/QuickStartPanel.tsx create mode 100644 src/beginner-tips/index.ts delete mode 100644 src/getting-started/assets/index.ts delete mode 100644 src/getting-started/index.ts rename src/install-jdk/{asset => assets}/App.scss (100%) rename src/install-jdk/{asset => assets}/App.tsx (100%) rename src/install-jdk/{asset => assets}/app/hooks.ts (100%) rename src/install-jdk/{asset => assets}/app/store.ts (100%) rename src/install-jdk/{asset => assets}/features/InstallJDKView.tsx (97%) rename src/install-jdk/{asset => assets}/features/components/AdoptiumJDKPanel.tsx (100%) rename src/install-jdk/{asset => assets}/features/components/OtherJDKsPanel.tsx (100%) rename src/install-jdk/{asset => assets}/features/installJDKViewSlice.ts (100%) rename src/install-jdk/{asset => assets}/index.tsx (100%) rename src/install-jdk/{asset => assets}/vscode.api.ts (100%) diff --git a/package.json b/package.json index b73795b2..2a3c2b5b 100644 --- a/package.json +++ b/package.json @@ -212,7 +212,7 @@ { "command": "java.gettingStarted", "category": "Java", - "title": "Beginner Tips" + "title": "Tips for Beginners" }, { "command": "java.extGuide", diff --git a/src/beginner-tips/assets/BeginnerTips.tsx b/src/beginner-tips/assets/BeginnerTips.tsx new file mode 100644 index 00000000..8628b5ef --- /dev/null +++ b/src/beginner-tips/assets/BeginnerTips.tsx @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import "./style.scss"; +import { provideReactWrapper } from '@microsoft/fast-react-wrapper'; +import * as webviewUI from "@vscode/webview-ui-toolkit"; +import React from 'react'; +import CodeEditingPanel from "./tabs/CodeEditingPanel"; +import DebuggingPanel from "./tabs/DebuggingPanel"; +import FaqPanel from "./tabs/FaqPanel"; +import QuickStartPanel from "./tabs/QuickStartPanel"; + +const { wrap } = provideReactWrapper(React); + +const PanelTab = wrap(webviewUI.VSCodePanelTab); +const Panels = wrap(webviewUI.VSCodePanels); +const PanelView = wrap(webviewUI.VSCodePanelView); + +export default function BeginnerTips() { + + return ( +
+
+

Tips for Beginners

+
+
+ + Quick Start + Code Editing + Debugging + FAQ + + + + + + + + + + + + + +
+
+ ); + +} diff --git a/src/beginner-tips/assets/index.tsx b/src/beginner-tips/assets/index.tsx new file mode 100644 index 00000000..91517bdf --- /dev/null +++ b/src/beginner-tips/assets/index.tsx @@ -0,0 +1,11 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import * as React from 'react'; +import * as ReactDOM from 'react-dom'; +import BeginnerTips from "./BeginnerTips"; + +ReactDOM.render( + , + document.getElementById('root') as HTMLElement +); diff --git a/src/beginner-tips/assets/style.scss b/src/beginner-tips/assets/style.scss new file mode 100644 index 00000000..d8b7bd0d --- /dev/null +++ b/src/beginner-tips/assets/style.scss @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#root { + display: flex; + justify-content: center; + + div.container { + display: flex; + flex-direction: column; + min-height: 100vh; + max-width: 680px; + } +} + +blockquote.card-body { + margin-top: 2rem; + margin: 0 7px 0 5px; + padding: 2px 10px 2px 10px; + border-left: 5px solid; + border-color: rgba(0, 122, 204, 0.5); + background: rgba(127, 127, 127, 0.1); +} + +.font-weight-bold { + font-weight: bold; +} + +.font-weight-light { + font-weight: lighter; +} + +a { + text-decoration: none; +} + +h5 { + font-size: 1rem; + margin-top: 5px; + margin-bottom: 0; +} + +code { + font-family: var(--vscode-editor-font-family); +} + +@import "../../../node_modules/@vscode/codicons/dist/codicon.css"; +@import "../../../node_modules/@vscode/codicons/dist/codicon.ttf"; diff --git a/src/beginner-tips/assets/tabs/CodeEditingPanel.tsx b/src/beginner-tips/assets/tabs/CodeEditingPanel.tsx new file mode 100644 index 00000000..47991944 --- /dev/null +++ b/src/beginner-tips/assets/tabs/CodeEditingPanel.tsx @@ -0,0 +1,126 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import { GenerateHeaderOptions } from "@microsoft/fast-foundation"; +import { provideReactWrapper } from '@microsoft/fast-react-wrapper'; +import * as webviewUI from "@vscode/webview-ui-toolkit"; +import React from 'react'; +const isMac: boolean = navigator.platform.toLowerCase().indexOf("darwin") === 0; +const { wrap } = provideReactWrapper(React); +const DataGrid = wrap(webviewUI.VSCodeDataGrid); +const DataRow = wrap(webviewUI.VSCodeDataGridRow); +const DataCell = wrap(webviewUI.VSCodeDataGridCell); + +export default function CodeEditingPanel() { + const controlKey = !isMac ? Ctrl : ; + const f12Key = !isMac ? Ctrl + F12: ⌘ F12; + const shiftAltF12 = !isMac ? Shift + Alt + F12 : ⌥ ⇧ F12; + const altF12Key = !isMac ? Alt + F12 : ⌥ F12; + const shiftF12 = !isMac ? Shift + F12: ⇧ F12; + const ctrlShiftSlash = !isMac ? Ctrl + Shift + \:⇧ ⌘ \; + const ctrlSpace = !isMac ? Ctrl + Space:⌃ Space; + const ctrlShiftR = !isMac ? Ctrl + Shift + R:⌃ ⇧ R ; + const ctrlDot = !isMac ? Ctrl + .:⌘ .; + + return ( +
+

+ VS Code Java is backed by a full Java language server and it understands Java code. Because of that, you get features like Code Navigation, IntelliSense, Refactoring, etc. This is important when your projects get bigger and more complex. Now let's further look at the code editing experience. +

+
+
Basic Editing User Guide
+

+ To make the most of VS Code, we strongly recommend reading the Basic Editing user guide. You'll get to know cool tricks about multi-select, formatting, indentation, folding, and much more. +

+
+

Code Navigation

+
+

+ Code Navigation makes it easy to understand existing codebase. Here to mention a few features that can help you navigate your code repositories. +

+ + + Go to Definition + F12
You can also hover on the symbol to preview its declaration and javadoc. To jump to the definition, hold the {controlKey} key, and click on the symbol.
+
+ + Go to Implementation + {f12Key}
For an interface, this shows all the implementors of that interface and for abstract methods, this shows all concrete implementations of that method.
+
+ + Go to Type Definition + This one allows you to go to the definition of the type of the symbol. For example, you have a class member someString, "Go to Definition" will take you to the definition of someString while "Go to Type Definition" will take you to the definition of String. + + + Find All References + {shiftAltF12}
This allows you to quickly analyze the impact of your edit or the popularity of your specific method or property throughout your repository.
+
+
+
+
+

+ The commands above will possibly take you to another file. But you can choose to stay using the peeking features below: +

+ + + Peek Definition + {altF12Key} + + + Peek References + {shiftF12} + + +
+
+

Last but not least, you can jump between the matching brackets back and forth:

+ + + Go to Bracket + {ctrlShiftSlash} + + +
+

IntelliSense

+

+ IntelliSense is a general term for a variety of code editing features including: code completion, parameter info, quick info, and member lists. IntelliSense features are sometimes called by other names such as "code completion", "content assist", and "code hinting." +

+

+ IntelliSense works as you type. For example, when you try to invoke some member of an object, a list of all the members is popped up for you to choose from. If you continue typing characters, the list of members (variables, methods, etc.) is filtered to only include members containing your typed characters. Pressing Tab or Enter will insert the selected member. +

+
+
Trigger IntelliSense Manually
+

+ In most cases, IntelliSense is triggered automatically. You can also press {ctrlSpace} to do it manually. For example, when you're trying to invoke a member function and want to see the parameter info, this will do the magic. +

+
+

Refactoring

+

+ VS Code Java provides essential refactoring features and makes it productive to modify larger codebase. The most frequently used one is Rename. It's so popular that a dedicated hot key F2 is assigned to it. When you rename a symbol, all its references are also renamed. +

+

+ There are more refactoring features like Extract, Inline, etc. The availability changes corresponding to the current cursor position. All available features are packed in to the Refactor context menu. And you can also pop the list by pressing {ctrlShiftR} +

+

+ You may also notice the lightbulb near the cursor. It indicates that some Code Actions are available. In VS Code, Code Actions can provide both refactorings and Quick Fixes for detected issues. To show the full list of available actions, click the lightbulb or press {ctrlDot} +

+
+
More Code Actions
+

+ There are other code actions that are not limited to the cursor position. They are grouped into the Source Action context menu. Here's a list of them. +

+
    +
  • Organize Imports
  • +
  • Override/Implement Methods
  • +
  • Generate Getter and Setter
  • +
  • Generate hashCode() and equals()
  • +
  • Generate toString()
  • +
  • Generate Constructors
  • +
  • Generate Delegate Methods
  • +
+
+
+ + ); + +} \ No newline at end of file diff --git a/src/beginner-tips/assets/tabs/DebuggingPanel.tsx b/src/beginner-tips/assets/tabs/DebuggingPanel.tsx new file mode 100644 index 00000000..b7fd91a0 --- /dev/null +++ b/src/beginner-tips/assets/tabs/DebuggingPanel.tsx @@ -0,0 +1,126 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import { GenerateHeaderOptions } from "@microsoft/fast-foundation"; +import { provideReactWrapper } from '@microsoft/fast-react-wrapper'; +import * as webviewUI from "@vscode/webview-ui-toolkit"; +import React from 'react'; +const isMac: boolean = navigator.platform.toLowerCase().indexOf("darwin") === 0; +const { wrap } = provideReactWrapper(React); +const DataGrid = wrap(webviewUI.VSCodeDataGrid); +const DataRow = wrap(webviewUI.VSCodeDataGridRow); +const DataCell = wrap(webviewUI.VSCodeDataGridCell); + +export default function DebuggingPanel() { + const cF5 = !isMac ? Ctrl + F5 : ⌃ F5; + const launchConfigPath = !isMac ? .vscode\launch.json : .vscode/launch.json; + const sF11 = !isMac ? Shift + F11 : ⇧ F11; + const csF5 = !isMac ? Ctrl + Shift + F5 : ⇧ ⌘ F5; + const sF5 = !isMac ? Shift + F5 : ⇧ F5; + + return ( +
+

+ One of the key features of Visual Studio Code is its great debugging support. VS Code's built-in debugger helps accelerate your edit, compile and debug loop. +

+

Start Debugging

+

+ There are multiple ways to start debugging a Java program. By pressing F5, the current program will be launched. You can also start by clicking the "Debug" codelens on top of the main function. This is super handy when you have multiple main entries. You can also launch a program without debugging by pressing {cF5}. +

+

+ By default, VS Code Java launches the program using Integrated Terminal. As you enter the debug mode, you should also see the Debug View. This view shows all the runtime info of your program. +

+
+
Debug Configurations
+

+ VS Code Java automatically generates debug configurations. In VS Code, those configurations are called Launch Configurations and they are persisted in {launchConfigPath}. To work with more sophisticated debug scenarios, please explore the Launch Options that are supported by VS Code. +

+
+

Breakpoints

+

+ Breakpoints can be toggled by clicking on the editor margin or using F9 on the current line. Finer breakpoint control (enable/disable/reapply) can be done in the Debug View's BREAKPOINTS section. +

+

+ You can also set Conditional Breakpoints based on expressions, hit counts, or a combination of both. +

+ + + Expression condition + The breakpoint will be hit whenever the expression evaluates to true + + + Hit count + The 'hit count' controls how many times a breakpoint needs to be hit before it will 'break' execution + + +

+ You can add a condition and/or hit count when creating the breakpoint (with the Add Conditional Breakpoint action) or when modifying an existing one (with the Edit Breakpoint action). In both cases, an inline text box with a drop-down menu opens where you can enter expressions. +

+
+
Logpoints
+

+ A Logpoint is a variant of a breakpoint that does not "break" into the debugger but instead logs a message to the console. Logpoints are especially useful for injecting logging while debugging production servers that cannot be paused or stopped. +

+

+ A Logpoint is represented by a ♦️ shaped icon. Log messages are plain text but can include expressions to be evaluated within curly braces ('{"{ }"}'). +

+
+

Debug Actions

+

+ Once a debug session starts, the Debug toolbar will appear on the top of the editor. You can control the execution flow using the actions below. +

+ + + Continue/Pause + F5 + + + Step Over + F10 + + + Step Into + F11 + + + Step Out + {sF11} + + + Restart + {csF5} + + + Stop + {sF5} + + +

Inspect Variables

+

+ Variables can be inspected in the VARIABLES section of the Debug view or by hovering over their source in the editor. Variable values and expression evaluation are relative to the selected stack frame in the CALL STACK section. +

+

+ Variable values can be modified with the Set Value action from the variable's context menu. Or you can double-click the value and enter a new one. Variables and expressions can also be evaluated and watched in the Debug view's WATCH section. +

+

Hot Code Replace ⚡

+

+ Yes, you can apply code changes without restarting the running program. Click on the icon in the debug toolbar to apply code changes. When you see failures, don't worry. It is safe to continue running the program, but you may notice discrepancies between the source code and the program. +

+
+
Limitations
+

+ Hot Code Replace (HCR) sounds magical but it does have limitations. In short, you can only change the code inside an existing function. Here are some scenarios that HCR will NOT work: +

+
    +
  • Adding a new member function
  • +
  • Changing the signature of an existing function
  • +
  • Changing the value of static members (but you can do so using the VARIABLES panel when the program is paused)
  • +
  • Referencing new classes/packages
  • +
+
+
+ + ); + + +} \ No newline at end of file diff --git a/src/beginner-tips/assets/tabs/FaqPanel.tsx b/src/beginner-tips/assets/tabs/FaqPanel.tsx new file mode 100644 index 00000000..dbdd57fd --- /dev/null +++ b/src/beginner-tips/assets/tabs/FaqPanel.tsx @@ -0,0 +1,102 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import { GenerateHeaderOptions } from "@microsoft/fast-foundation"; +import { provideReactWrapper } from '@microsoft/fast-react-wrapper'; +import * as webviewUI from "@vscode/webview-ui-toolkit"; +import React from 'react'; +const { wrap } = provideReactWrapper(React); +const DataGrid = wrap(webviewUI.VSCodeDataGrid); +const DataRow = wrap(webviewUI.VSCodeDataGridRow); +const DataCell = wrap(webviewUI.VSCodeDataGridCell); + +export default function FaqPanel() { + const runtimeSampleCode = ( + + {"\"java.configuration.runtimes\": [{"}
+     {"\"name\": \"JavaSE-1.8\","}
+     {"\"path\": \"/usr/local/jdk1.8.0_201\""}
+ {"}, {"}
+     {"\"name\": \"JavaSE-11\","}
+     {"\"path\": \"/usr/local/jdk-11.0.3\","}
+     {"\"sources\" : \"/usr/local/jdk-11.0.3/lib/src.zip\","}
+     {"\"javadoc\" : \"https://docs.oracle.com/en/java/javase/11/docs/api\","}
+     {"\"default\": true"}
+ {"}]"}
+
+ ); + + return ( +
+
+
Feedback Channels
+

+ VS Code Java is new, and we are here to help. +

+ + + Ask Questions + vscode-java Gitter channel is recommended to ask for help + + + Open Issues + vscode-java-pack GitHub repo is recommended for opening bugs + + + Other Feedback + @VSCodeJava is the handle to mention on twitter + + +
+ +

Why do I see the JDK errors?

+

+ JDK 11+ is required to run the Java language support (redhat.java) extension! You see this error because we failed to find one on your machine. The Configure Java Runtime guide can help you understand how JDK path is searched and provides download links if you need to install one. +

+ +

Can I run my Java 8 project with JDK 1.8?

+

+ Yes. The JDK 11 requirement is just for running the Java language support (redhat.java) extension itself. You can still configure a different runtime JDK for your project via the user setting "java.configuration.runtimes". The extension will pick a matching JDK to compile/run your project according to the compiler version specified by the project build file. +

+
+ {runtimeSampleCode} +
+ +

Why do I see tons of problems and red squiggles?

+

+ The problems are from VS Code Java when it tries to compile and build your codebase. If you experience this on your first use, it's possibly because of missing dependencies. To fix it, you probably want to start from fixing the project configuration files, e.g. pom.xml and build.gradle. After you make changes to those files, try Update Project Configuration and Force Compilation. +

+

+ It can also happen after you work with one project for a while. Try Clean Workspace to get rid of any intermediate output from the language server. +

+

+ If the problem persists, follow the Troubleshooting Guide. For advanced users, the Client Logs and Server Logs will definitely help you understand what is going on. +

+ +

Why can't I see any IntelliSense suggestions?

+

+ VS Code Java needs to compile your code before it can provide suggestions. When it's working, you should see a spinning 🔄 on the right end of the status bar. And it will show 👍 when it's done. And you should be able to use all the features. +

+

+ It could take longer for the language server to load a project which references lots of dependencies. Those dependencies need to be resolved and downloaded from the internet. So the network connection plays a critical role in the process. +

+

Why do I see a little ⭐ in some of the IntelliSense suggestions?

+

+ This is because Visual Studio IntelliCode is working. IntelliCode ranks the suggestions using the model trained from the source code of popular open source projects. The items with the stars are the ones that fit the current context the most. +

+

Can I use Lombok?

+

+ Yes. You'll need to install the Lombok extension, which enables VS Code to process Lombok annotations. To learn more about alternatives and details, visit this page. +

+

Can I develop Android apps using VS Code Java?

+

+ Sorry, it's not supported now. +

+

How to troubleshoot the problems?

+

+ You could click F1 {"->"} Java: Open all log files to get the logs. Also learn more at Troubleshooting Guide. +

+
+ ); + +} \ No newline at end of file diff --git a/src/beginner-tips/assets/tabs/QuickStartPanel.tsx b/src/beginner-tips/assets/tabs/QuickStartPanel.tsx new file mode 100644 index 00000000..a62fce26 --- /dev/null +++ b/src/beginner-tips/assets/tabs/QuickStartPanel.tsx @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import React from 'react'; + +const isMac: boolean = navigator.platform.toLowerCase().indexOf("darwin") === 0; + +export default function QuickStartPanel() { + const codeSample = ( + + {"class QuickStart {"}
+     {"public static void main (String[] args) {"}
+         {"System.out.println(\"Hello, World.\");"}
+     {"}"}
+ {"}"}
+
+ ); + const openFolderLink = isMac ? + Open... + : + Open Folder... + ; + return ( +
+

+ In this 1-minute tutorial, we'll show you how to create a quick-start Java program in VS Code. +

+

Setup the Workspace

+

+ VS Code Java works directly with folders that have source code. To setup the workspace, simply open a folder using File {">"}  + {openFolderLink} +

+

Create a Class

+

+ A program needs an entry and a Java program needs a class to host its entry. To create a class for our quick-start program, Create a File and set its name to QuickStart.java.
+ Now you can put the code in the new file: +

+
+ {codeSample} +
+

Run the program

+

+ To run the program, press F5. By default, the program is launched in the Integrated Terminal. You should already see the output there. +

+
+
How to Debug?
+

+ When you press F5, you are already debugging. Try setting some breakpoint by clicking on the line numbers before each code line and run the program again. You'll see the execution paused at the breakpoint.
+ While debugging, switch to the Debug View to see the variables and call stacks. +

+
+

Congratulations!

+

+ Now the quick-start program is running and you are free to build more.
+ What you saw is just a tiny part of VS Code Java. You can do much more with it. +

+
+ ); +} \ No newline at end of file diff --git a/src/beginner-tips/index.ts b/src/beginner-tips/index.ts new file mode 100644 index 00000000..83098e04 --- /dev/null +++ b/src/beginner-tips/index.ts @@ -0,0 +1,140 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import * as path from "path"; +import * as vscode from "vscode"; +import { sendInfo } from "vscode-extension-telemetry-wrapper"; +import { webviewCmdLinkHandler } from "../utils"; + +const WEBVIEW_ID = "java.gettingStarted"; +const WEBVIEW_TITLE = "Tips for Beginners"; + +export async function javaGettingStartedCmdHandler(context: vscode.ExtensionContext, _operationId: string) { + BeginnerTipsPage.createOrShow(context.extensionPath); +} + +export class BeginnerTipsViewSerializer implements vscode.WebviewPanelSerializer { + constructor(private context: vscode.ExtensionContext) { } + async deserializeWebviewPanel(webviewPanel: vscode.WebviewPanel, _state: unknown) { + BeginnerTipsPage.createOrShow(this.context.extensionPath, webviewPanel); + } +} + +class BeginnerTipsPage { + public static instance: BeginnerTipsPage | undefined; + private static readonly viewType = WEBVIEW_ID; + private _panel: vscode.WebviewPanel | undefined; + private readonly _extensionPath: string; + private _disposables: vscode.Disposable[] = []; + + public static createOrShow(extensionPath: string, webviewPanel?: vscode.WebviewPanel) { + if (BeginnerTipsPage.instance) { + BeginnerTipsPage.instance._panel?.reveal(); + } else { + BeginnerTipsPage.instance = webviewPanel ? + new BeginnerTipsPage(extensionPath, webviewPanel) : + new BeginnerTipsPage(extensionPath, vscode.ViewColumn.One); + } + } + + private constructor(extensionPath: string, column: vscode.ViewColumn); + private constructor(extensionPath: string, webviewPanel: vscode.WebviewPanel); + private constructor(extensionPath: string, columnOrwebviewPanel: vscode.ViewColumn | vscode.WebviewPanel) { + this._extensionPath = extensionPath; + if ((columnOrwebviewPanel as vscode.WebviewPanel).viewType) { + this._panel = columnOrwebviewPanel as vscode.WebviewPanel; + } else { + this._panel = vscode.window.createWebviewPanel(BeginnerTipsPage.viewType, WEBVIEW_TITLE, columnOrwebviewPanel as vscode.ViewColumn, { + enableScripts: true, + localResourceRoots: [ + vscode.Uri.file(path.join(this._extensionPath, 'out')) + ], + enableCommandUris: true, + retainContextWhenHidden: true + }); + } + + this._panel.iconPath = { + light: vscode.Uri.file(path.join(this._extensionPath, "caption.light.svg")), + dark: vscode.Uri.file(path.join(this._extensionPath, "caption.dark.svg")) + }; + this._panel.webview.html = this._getHtmlForWebview(); + + this._panel.onDidDispose(() => this.dispose(), null, this._disposables); + + // Handle messages from the webview + this._panel.webview.onDidReceiveMessage(message => { + switch (message.command) { + case 'onWillActivateTab': + this.doActivateTab(message.payload); + return; + case 'onWillReloadWindow': + this.doReloadWindow(); + } + }, null, this._disposables); + } + + private async doActivateTab(payload: {tabId: string}) { + sendInfo("", { + infoType: "tabActivated", + tabId: payload.tabId + }); + } + + private async doReloadWindow() { + await webviewCmdLinkHandler({ + webview: BeginnerTipsPage.viewType, + identifier: "Reload Window", + command: "workbench.action.reloadWindow" + }); + } + + public dispose() { + BeginnerTipsPage.instance = undefined; + + this._panel?.dispose(); + this._panel = undefined; + + while (this._disposables.length) { + const x = this._disposables.pop(); + if (x) { + x.dispose(); + } + } + } + + private _getHtmlForWebview() { + const scriptPathOnDisk = vscode.Uri.file(path.join(this._extensionPath, 'out', "assets", "beginner-tips", "index.js")); + + // const scriptUri = this._panel.webview.asWebviewUri(scriptPathOnDisk); + const scriptUri = (scriptPathOnDisk).with({ scheme: "vscode-resource" }); + + // Use a nonce to whitelist which scripts can be run + const nonce = getNonce(); + + return ` + + + + + + ${WEBVIEW_TITLE} + + + +
+ + + + `; + } +} + +function getNonce() { + let text = ""; + const possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + for (let i = 0; i < 32; i++) { + text += possible.charAt(Math.floor(Math.random() * possible.length)); + } + return text; +} diff --git a/src/commands/index.ts b/src/commands/index.ts index c2d86337..04c2d8d7 100644 --- a/src/commands/index.ts +++ b/src/commands/index.ts @@ -7,7 +7,7 @@ import { instrumentOperation, instrumentOperationAsVsCodeCommand } from "vscode- import { showClasspathConfigurationPage } from "../classpath/classpathConfigurationView"; import { javaExtGuideCmdHandler } from "../ext-guide"; import { javaFormatterSettingsEditorProvider } from "../formatter-settings"; -import { javaGettingStartedCmdHandler } from "../getting-started"; +import { javaGettingStartedCmdHandler } from "../beginner-tips"; import { javaRuntimeCmdHandler } from "../java-runtime"; import { overviewCmdHandler } from "../overview"; import { webviewCmdLinkHandler } from "../utils"; diff --git a/src/extension.ts b/src/extension.ts index fd44a7b8..d464dde0 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -9,7 +9,7 @@ import { initialize as initExp } from "./exp"; import { JavaExtGuideViewSerializer } from "./ext-guide"; import { initFormatterSettingsEditorProvider } from "./formatter-settings"; import { initRemoteProfileProvider } from "./formatter-settings/RemoteProfileProvider"; -import { JavaGettingStartedViewSerializer } from "./getting-started"; +import { BeginnerTipsViewSerializer } from "./beginner-tips"; import { InstallJdkViewSerializer } from "./install-jdk"; import { JavaRuntimeViewSerializer, validateJavaRuntime } from "./java-runtime"; import { HelpViewType, showReleaseNotesOnStart } from "./misc"; @@ -42,7 +42,7 @@ async function initializeExtension(_operationId: string, context: vscode.Extensi context.subscriptions.push(vscode.window.registerWebviewPanelSerializer("java.extGuide", new JavaExtGuideViewSerializer())); context.subscriptions.push(vscode.window.registerWebviewPanelSerializer("java.overview", new OverviewViewSerializer())); context.subscriptions.push(vscode.window.registerWebviewPanelSerializer("java.runtime", new JavaRuntimeViewSerializer())); - context.subscriptions.push(vscode.window.registerWebviewPanelSerializer("java.gettingStarted", new JavaGettingStartedViewSerializer())); + context.subscriptions.push(vscode.window.registerWebviewPanelSerializer("java.gettingStarted", new BeginnerTipsViewSerializer(context))); context.subscriptions.push(vscode.window.registerWebviewPanelSerializer("java.welcome", new WelcomeViewSerializer())); context.subscriptions.push(vscode.window.registerWebviewPanelSerializer("java.classpathConfiguration", new ClassPathConfigurationViewSerializer())); context.subscriptions.push(vscode.window.registerWebviewPanelSerializer("java.installJdk", new InstallJdkViewSerializer(context))); diff --git a/src/getting-started/assets/index.ts b/src/getting-started/assets/index.ts deleted file mode 100644 index 42364d00..00000000 --- a/src/getting-started/assets/index.ts +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -import "../../assets/vscode.scss"; -import "bootstrap/js/src/tab"; -const $ = require("jquery"); - -$("#navigationPanel a").click((e: any) => { - ($($(e.target).attr("href")||"") as any).tab("show"); -}); - -let os = "win"; -if (navigator.platform.toLowerCase().indexOf("mac") === 0) { - os = "mac"; -} - -const osToHide = os === "win" ? "mac" : "win"; -$(`[data-os=${osToHide}]`).hide(); - -declare function acquireVsCodeApi(): any; -const vscode = acquireVsCodeApi(); - -$("a[data-toggle='tab']").on("shown.bs.tab", (e: any) => { - vscode.postMessage({ - command: "tabActivated", - tabId: e.target.id - }); -}); - -// Handle the message inside the webview -window.addEventListener("message", event => { - const message = event.data; - switch (message.command) { - case "tabActivated": - ($(message.tabId) as any).tab("show"); - break; - } -}); diff --git a/src/getting-started/index.ts b/src/getting-started/index.ts deleted file mode 100644 index 3b442b6b..00000000 --- a/src/getting-started/index.ts +++ /dev/null @@ -1,484 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -import * as vscode from "vscode"; -import * as path from "path"; -import { getExtensionContext, getNonce } from "../utils"; -import { sendInfo, instrumentOperation } from "vscode-extension-telemetry-wrapper"; - -let javaGettingStartedView: vscode.WebviewPanel | undefined; - -export async function javaGettingStartedCmdHandler(context: vscode.ExtensionContext, operationId: string, tabId?: string) { - if (javaGettingStartedView) { - setActiveTab(javaGettingStartedView, operationId, tabId); - javaGettingStartedView.reveal(); - return; - } - - javaGettingStartedView = vscode.window.createWebviewPanel("java.gettingStarted", "Java Beginner Tips", { - viewColumn: vscode.ViewColumn.One, - }, { - enableScripts: true, - enableCommandUris: true, - retainContextWhenHidden: true - }); - - setActiveTab(javaGettingStartedView, operationId, tabId); - await initializeJavaGettingStartedView(context, javaGettingStartedView, onDidDisposeWebviewPanel, operationId); -} - -function setActiveTab(webviewPanel: vscode.WebviewPanel, operationId: string, tabId?: string) { - if (tabId) { - sendInfo(operationId, { - infoType: "tabActivated", - tabId: tabId - }); - webviewPanel.webview.postMessage({ - command: "tabActivated", - tabId, - }); - } -} - -function onDidDisposeWebviewPanel() { - javaGettingStartedView = undefined; -} - -async function initializeJavaGettingStartedView(context: vscode.ExtensionContext, webviewPanel: vscode.WebviewPanel, onDisposeCallback: () => void, operationId: string) { - webviewPanel.iconPath = { - light: vscode.Uri.file(path.join(context.extensionPath, "caption.light.svg")), - dark: vscode.Uri.file(path.join(context.extensionPath, "caption.dark.svg")) - }; - webviewPanel.webview.html = getHtmlForWebview(context.asAbsolutePath("./out/assets/getting-started/index.js")); - context.subscriptions.push(webviewPanel.onDidDispose(onDisposeCallback)); - context.subscriptions.push(webviewPanel.webview.onDidReceiveMessage(async (e) => { - if (e.command === "tabActivated") { - let tabId = e.tabId; - sendInfo(operationId, { - infoType: "tabActivated", - tabId: tabId - }); - } - })); -} - -function getHtmlForWebview(scriptPath: string) { - const scriptPathOnDisk = vscode.Uri.file(scriptPath); - const scriptUri = (scriptPathOnDisk).with({ scheme: "vscode-resource" }); - // Use a nonce to whitelist which scripts can be run - const nonce = getNonce(); - return ` - - - - - - Coding and Debugging Tips for Beginners - - - -
-
-
-

Coding and Debugging Tips for Beginners

-
-
-
-
-
-
-
-
- -
-
-
-
-
- - -
-

Welcome to Visual Studio Code!
- In this 1-minute tutorial, we'll show you how to create a quick-start Java program in VS Code. -

-

Setup the Workspace

-

- VS Code Java works directly with folders that have source code. To setup the workspace, simply open a folder using File > Open Folder...Open... -

-

Create a Class

-

- A program needs an entry and a Java program needs a class to host its entry. To create a class for our quick-start program, Create a File and set its name to QuickStart.java.
- Now you can put the code in the new file: -

-
-
class QuickStart {
-      public static void main(String[] args) {
-          System.out.println("Hello, World.");
-      }
-  }
-
-

Run the program

-

- To run the program, press F5. By default, the program is launched in the Integrated Terminal. You should already see the output there. -

-
-
How to Debug?
-

- When you press F5, you are already debugging. Try setting some breakpoint by clicking on the line numbers before each code line and run the program again. You'll see the execution paused at the breakpoint.
- While debugging, switch to the Debug View to see the variables and call stacks. -

-
-

Congratulations!

-

- Now the quick-start program is running and you are free to build more.
- What you saw is just a tiny part of VS Code Java. You can do much more with it. Feel free to explore: -

- -
- - -
-

How to deal with files and folders

-
- - -
-

- VS Code Java is backed by a full Java language server and it understands Java code. Because of that, you get features like Code Navigation, IntelliSense, Refactoring, etc. This is important when your projects get bigger and more complex. Now let's further look at the code editing experience. -

-
-
Basic Editing User Guide
-

- To make the most of VS Code, we strongly recommend reading the Basic Editing user guide. You'll get to know cool tricks about multi-select, formatting, indentation, folding, and much more. -

-
-

Code Navigation

-

- Code Navigation makes it easy to understand existing codebase. Here to mention a few features that can help you navigate your code repositories. -

-
Go to Definition
-
F12
You can also hover on the symbol to preview its declaration and javadoc. To jump to the definition, hold the Ctrl key, and click on the symbol.
-
Go to Implementation
-
Ctrl + F12⌘ F12
- For an interface, this shows all the implementors of that interface and for abstract methods, this shows all concrete implementations of that method.
-
Go to Type Definition
-
This one allows you to go to the definition of the type of the symbol. For example, you have a class member someString, "Go to Definition" will take you to the definition of someString while "Go to Type Definition" will take you to the definition of String.
-
Find All References
-
Shift + Alt + F12⌥ ⇧ F12
- This allows you to quickly analyze the impact of your edit or the popularity of your specific method or property throughout your repository. -
-
-

-

- The commands above will possibly take you to another file. But you can choose to stay using the peeking features below: -

-
Peek Definition
-
Alt + F12⌥ F12
-
Peek References
-
Shift + F12⇧ F12
-
-

-

- Last but not least, you can jump between the matching brackets back and forth: -

-
Go to Bracket
-
Ctrl + Shift + \⇧ ⌘ \
-
-

-

IntelliSense

-

- IntelliSense is a general term for a variety of code editing features including: code completion, parameter info, quick info, and member lists. IntelliSense features are sometimes called by other names such as "code completion", "content assist", and "code hinting." -

-

- IntelliSense works as you type. For example, when you try to invoke some member of an object, a list of all the members is popped up for you to choose from. If you continue typing characters, the list of members (variables, methods, etc.) is filtered to only include members containing your typed characters. Pressing Tab or Enter will insert the selected member. -

-
-
Trigger IntelliSense Manually
-

- In most cases, IntelliSense is triggered automatically. You can also press Ctrl + Space⌃ Space to do it manually. For example, when you're trying to invoke a member function and want to see the parameter info, this will do the magic. -

-
-

Refactoring

-

- VS Code Java provides essential refactoring features and makes it productive to modify larger codebase. The most frequently used one is Rename. It's so popular that a dedicated hot key F2 is assigned to it. When you rename a symbol, all its references are also renamed. -

-

- There are more refactoring features like Extract, Inline, etc. The availability changes corresponding to the current cursor position. All available features are packed in to the Refactor context menu. And you can also pop the list by pressing Ctrl + Shift + R⌃ ⇧ R -

-

- You may also notice the lightbulb near the cursor. It indicates that some Code Actions are available. In VS Code, Code Actions can provide both refactorings and Quick Fixes for detected issues. To show the full list of available actions, click the lightbulb or press Ctrl + .⌘ .. -

-
-
More Code Actions
-

- There are other code actions that are not limited to the cursor position. They are grouped into the Source Action context menu. Here's a list of them. -

-
    -
  • Organize Imports
  • -
  • Override/Implement Methods
  • -
  • Generate Getter and Setter
  • -
  • Generate hashCode() and equals()
  • -
  • Generate toString()
  • -
  • Generate Constructors
  • -
  • Generate Delegate Methods
  • -
-
-

Next Steps

- -
- - -
-

Understand the compile and build mechanism of the language server

-
- - -
-

- One of the key features of Visual Studio Code is its great debugging support. VS Code's built-in debugger helps accelerate your edit, compile and debug loop. -

-

Start Debugging

-

- There are multiple ways to start debugging a Java program. By pressing F5, the current program will be launched. You can also start by clicking the "Debug" codelens on top of the main function. This is super handy when you have multiple main entries. You can also launch a program without debugging by pressing Ctrl + F5⌃ F5. -

-

- By default, VS Code Java launches the program using Integrated Terminal. As you enter the debug mode, you should also see the Debug View. This view shows all the runtime info of your program. -

-
-
Debug Configurations
-

- VS Code Java automatically generates debug configurations. In VS Code, those configurations are called Launch Configurations and they are persisted in .vscode\launch.json.vscode/launch.json. To work with more sophisticated debug scenarios, please explore the Launch Options that are supported by VS Code. -

-
-

Breakpoints

-

- Breakpoints can be toggled by clicking on the editor margin or using F9 on the current line. Finer breakpoint control (enable/disable/reapply) can be done in the Debug View's BREAKPOINTS section. -

-

- You can also set Conditional Breakpoints based on expressions, hit counts, or a combination of both. -

-
-
Expression condition
-
The breakpoint will be hit whenever the expression evaluates to true
-
Hit count
-
The 'hit count' controls how many times a breakpoint needs to be hit before it will 'break' execution
-
-

- You can add a condition and/or hit count when creating the breakpoint (with the Add Conditional Breakpoint action) or when modifying an existing one (with the Edit Breakpoint action). In both cases, an inline text box with a drop-down menu opens where you can enter expressions. -

-
-
Logpoints
-

- A Logpoint is a variant of a breakpoint that does not "break" into the debugger but instead logs a message to the console. Logpoints are especially useful for injecting logging while debugging production servers that cannot be paused or stopped. -

-

- A Logpoint is represented by a ♦️ shaped icon. Log messages are plain text but can include expressions to be evaluated within curly braces ('{}'). -

-
-

Debug Actions

-

- Once a debug session starts, the Debug toolbar will appear on the top of the editor. You can control the execution flow using the actions below. -

-
-
Continue/Pause
-
F5
-
Step Over
-
F10
-
Step Into
-
F11
-
Step Out
-
Shift + F11⇧ F11
-
Restart
-
Ctrl + Shift + F5⇧ ⌘ F5
-
Stop
-
Shift + F5⇧ F5
-
-

Inspect Variables

-

- Variables can be inspected in the VARIABLES section of the Debug view or by hovering over their source in the editor. Variable values and expression evaluation are relative to the selected stack frame in the CALL STACK section. -

-

- Variable values can be modified with the Set Value action from the variable's context menu. Or you can double-click the value and enter a new one. Variables and expressions can also be evaluated and watched in the Debug view's WATCH section. -

-

Hot Code Replace ⚡

-

- Yes, you can apply code changes without restarting the running program. Click on the icon in the debug toolbar to apply code changes. When you see failures, don't worry. It is safe to continue running the program, but you may notice discrepancies between the source code and the program. -

-
-
Limitations
-

- Hot Code Replace (HCR) sounds magical but it does have limitations. In short, you can only change the code inside an existing function. Here are some scenarios that HCR will NOT work: -

-
    -
  • Adding a new member function
  • -
  • Changing the signature of an existing function
  • -
  • Changing the value of static members (but you can do so using the VARIABLES panel when the program is paused)
  • -
  • Referencing new classes/packages
  • -
-
-

Next Step

- -
- - -
-

How to deal with projects and dependencies

-
- - -
-

How to customize vs code

-
- - -
-
-
Feedback Channels
-

- VS Code Java is new, and we are here to help. -

-
-
Ask Questions
-
vscode-java Gitter channel is recommended to ask for help
-
Open Issues
-
vscode-java-pack GitHub repo is recommended for opening bugs
-
Other Feedback
-
@VSCodeJava is the handle to mention on twitter
-
-
-

Why do I see the JDK errors?

-

- JDK 11+ is required to run the Java language support (redhat.java) extension! You see this error because we failed to find one on your machine. The Configure Java Runtime guide can help you understand how JDK path is searched and provides download links if you need to install one. -

-

Can I run my Java 8 project with JDK 1.8?

-

- Yes. The JDK 11 requirement is just for running the Java language support (redhat.java) extension itself. You can still configure a different runtime JDK for your project via the user setting "java.configuration.runtimes". The extension will pick a matching JDK to compile/run your project according to the compiler version specified by the project build file. -

-  "java.configuration.runtimes": [
-    {
-      "name": "JavaSE-1.8",
-      "path": "/usr/local/jdk1.8.0_201"
-    },
-    {
-      "name": "JavaSE-11",
-      "path": "/usr/local/jdk-11.0.3",
-      "sources" : "/usr/local/jdk-11.0.3/lib/src.zip",
-      "javadoc" : "https://docs.oracle.com/en/java/javase/11/docs/api",
-      "default":  true
-    }
-  ]
-                        
-

-

Why do I see tons of problems and red squiggles?

-

- The problems are from VS Code Java when it tries to compile and build your codebase. If you experience this on your first use, it's possibly because of missing dependencies. To fix it, you probably want to start from fixing the project configuration files, e.g. pom.xml and build.gradle. After you make changes to those files, try Update Project Configuration and Force Compilation. -

-

- It can also happen after you work with one project for a while. Try Clean Workspace to get rid of any intermediate output from the language server. -

-

- If the problem persists, follow the Troubleshooting Guide. For advanced users, the Client Logs and Server Logs will definitely help you understand what is going on. -

-

Why can't I see any IntelliSense suggestions?

-

- VS Code Java needs to compile your code before it can provide suggestions. When it's working, you should see a spinning 🔄 on the right end of the status bar. And it will show 👍 when it's done. And you should be able to use all the features. -

-

- It could take longer for the language server to load a project which references lots of dependencies. Those dependencies need to be resolved and downloaded from the internet. So the network connection plays a critical role in the process. -

-

Why do I see a little ⭐ in some of the IntelliSense suggestions?

-

- This is because Visual Studio IntelliCode is working. IntelliCode ranks the suggestions using the model trained from the source code of popular open source projects. The items with the stars are the ones that fit the current context the most. -

-

Can I use Lombok?

-

- Yes. You'll need to install the Lombok extension, which enables VS Code to process Lombok annotations. To learn more about alternatives and details, visit this page. -

-

Can I develop Android apps using VS Code Java?

-

- Sorry, it's not supported now. -

-

How to troubleshoot the problems?

-

- You could click F1 -> Java: Open all log files to get the logs. Also learn more at Troubleshooting Guide. -

-
-
-
- -
-
-
-
-
-
- - - `; -} - -export class JavaGettingStartedViewSerializer implements vscode.WebviewPanelSerializer { - async deserializeWebviewPanel(webviewPanel: vscode.WebviewPanel, _state: any) { - if (javaGettingStartedView) { - javaGettingStartedView.reveal(); - webviewPanel.dispose(); - return; - } - - javaGettingStartedView = webviewPanel; - instrumentOperation("restoreGettingStartedView", operationId => { - initializeJavaGettingStartedView(getExtensionContext(), webviewPanel, onDidDisposeWebviewPanel, operationId); - })(); - } -} diff --git a/src/install-jdk/asset/App.scss b/src/install-jdk/assets/App.scss similarity index 100% rename from src/install-jdk/asset/App.scss rename to src/install-jdk/assets/App.scss diff --git a/src/install-jdk/asset/App.tsx b/src/install-jdk/assets/App.tsx similarity index 100% rename from src/install-jdk/asset/App.tsx rename to src/install-jdk/assets/App.tsx diff --git a/src/install-jdk/asset/app/hooks.ts b/src/install-jdk/assets/app/hooks.ts similarity index 100% rename from src/install-jdk/asset/app/hooks.ts rename to src/install-jdk/assets/app/hooks.ts diff --git a/src/install-jdk/asset/app/store.ts b/src/install-jdk/assets/app/store.ts similarity index 100% rename from src/install-jdk/asset/app/store.ts rename to src/install-jdk/assets/app/store.ts diff --git a/src/install-jdk/asset/features/InstallJDKView.tsx b/src/install-jdk/assets/features/InstallJDKView.tsx similarity index 97% rename from src/install-jdk/asset/features/InstallJDKView.tsx rename to src/install-jdk/assets/features/InstallJDKView.tsx index 555416c7..686cfa55 100644 --- a/src/install-jdk/asset/features/InstallJDKView.tsx +++ b/src/install-jdk/assets/features/InstallJDKView.tsx @@ -4,7 +4,7 @@ import { provideReactWrapper } from '@microsoft/fast-react-wrapper'; import * as webviewUI from "@vscode/webview-ui-toolkit"; import React from 'react'; -import { WEBVIEW_ID } from '../../../install-jdk/constants'; +import { WEBVIEW_ID } from '../../constants'; import { encodeExternalLinkWithTelemetry } from '../../../utils/webview'; import { onWillReloadWindow } from '../vscode.api'; import AdoptiumJDKPanel from './components/AdoptiumJDKPanel'; diff --git a/src/install-jdk/asset/features/components/AdoptiumJDKPanel.tsx b/src/install-jdk/assets/features/components/AdoptiumJDKPanel.tsx similarity index 100% rename from src/install-jdk/asset/features/components/AdoptiumJDKPanel.tsx rename to src/install-jdk/assets/features/components/AdoptiumJDKPanel.tsx diff --git a/src/install-jdk/asset/features/components/OtherJDKsPanel.tsx b/src/install-jdk/assets/features/components/OtherJDKsPanel.tsx similarity index 100% rename from src/install-jdk/asset/features/components/OtherJDKsPanel.tsx rename to src/install-jdk/assets/features/components/OtherJDKsPanel.tsx diff --git a/src/install-jdk/asset/features/installJDKViewSlice.ts b/src/install-jdk/assets/features/installJDKViewSlice.ts similarity index 100% rename from src/install-jdk/asset/features/installJDKViewSlice.ts rename to src/install-jdk/assets/features/installJDKViewSlice.ts diff --git a/src/install-jdk/asset/index.tsx b/src/install-jdk/assets/index.tsx similarity index 100% rename from src/install-jdk/asset/index.tsx rename to src/install-jdk/assets/index.tsx diff --git a/src/install-jdk/asset/vscode.api.ts b/src/install-jdk/assets/vscode.api.ts similarity index 100% rename from src/install-jdk/asset/vscode.api.ts rename to src/install-jdk/assets/vscode.api.ts diff --git a/webpack.config.js b/webpack.config.js index a8970b89..7d4768c4 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -10,12 +10,12 @@ module.exports = function (env, argv) { entry: { overview: './src/overview/assets/index.ts', 'java-runtime': './src/java-runtime/assets/index.ts', - 'getting-started': './src/getting-started/assets/index.ts', + 'beginner-tips': './src/beginner-tips/assets/index.tsx', 'ext-guide': './src/ext-guide/assets/index.ts', welcome: './src/welcome/assets/index.ts', classpath: './src/classpath/assets/index.tsx', 'formatter-settings': './src/formatter-settings/assets/index.tsx', - 'install-jdk': './src/install-jdk/asset/index.tsx' + 'install-jdk': './src/install-jdk/assets/index.tsx' }, module: { rules: [{ From 9425f3830097328b92e5ca24a107722c5c4599cb Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 2 Dec 2021 13:09:55 +0800 Subject: [PATCH 026/409] rename configure java runtime title (#836) Signed-off-by: Yan Zhang --- src/java-runtime/assets/ProjectJDKPanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java-runtime/assets/ProjectJDKPanel.tsx b/src/java-runtime/assets/ProjectJDKPanel.tsx index 07148cf4..4e7d884a 100644 --- a/src/java-runtime/assets/ProjectJDKPanel.tsx +++ b/src/java-runtime/assets/ProjectJDKPanel.tsx @@ -69,7 +69,7 @@ export class ProjectJDKPanel extends React.Component { const downloadJDKCommand = encodeCommandUriWithTelemetry("java.runtime", "download", "java.installJdk"); return (
-

Configure Java Project Runtime

+

Configure Runtime for Projects

{projectEntries.length > 0 &&

Manage Java runtime for your projects. If you don't have a valid Java runtime, you can download one.

} { projectEntries.length > 0 ? From f8608c9356bf8cab05455b49f191b3d46a5ea129 Mon Sep 17 00:00:00 2001 From: Shi Chen Date: Thu, 2 Dec 2021 14:49:34 +0800 Subject: [PATCH 027/409] use preferRelative (#835) --- webpack.config.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/webpack.config.js b/webpack.config.js index 7d4768c4..085a6da3 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -97,7 +97,8 @@ module.exports = function (env, argv) { resolve: { modules: ['node_modules', path.resolve(__dirname, 'src')], mainFiles: ['index'], - extensions: ['.js', '.ts', '.json'] + extensions: ['.js', '.ts', '.json'], + preferRelative: true }, output: { filename: '[name].js', From ef4013ff4913d783bc0954d95f09b9e0abfa9ea1 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Fri, 3 Dec 2021 11:17:39 +0800 Subject: [PATCH 028/409] refine install-jdk webview (#838) * refine install-jdk webview Signed-off-by: Yan Zhang * fix package-lock Signed-off-by: Yan Zhang --- package-lock.json | 22 +++++++++---------- package.json | 9 +++++--- .../features/components/AdoptiumJDKPanel.tsx | 21 ++++++++++++------ 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/package-lock.json b/package-lock.json index d2888a6b..7a745a1f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,9 +45,9 @@ "dev": true }, "@iconify-icons/codicon": { - "version": "1.1.8", - "resolved": "https://devdiv.pkgs.visualstudio.com/_packaging/CloudKernel/npm/registry/@iconify-icons/codicon/-/codicon-1.1.8.tgz", - "integrity": "sha1-chYidLCKt241LclUD7D2Xt61NsE=" + "version": "1.1.25", + "resolved": "https://registry.npmjs.org/@iconify-icons/codicon/-/codicon-1.1.25.tgz", + "integrity": "sha512-iCMUZHlJygQ2SPw7MqKLevrF3U5oqBEX21pzocLSravU8bQ6lYxbRIKNe74F/gaCfAwTliWhviRoWO0Yj5lFPA==" }, "@iconify/react": { "version": "1.1.4", @@ -236,9 +236,9 @@ "dev": true }, "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://devdiv.pkgs.visualstudio.com/_packaging/CloudKernel/npm/registry/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", "dev": true }, "@types/minimist": { @@ -737,9 +737,9 @@ } }, "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "bcrypt-pbkdf": { "version": "1.0.2", @@ -2106,8 +2106,8 @@ }, "minimatch": { "version": "3.0.4", - "resolved": "https://devdiv.pkgs.visualstudio.com/_packaging/CloudKernel/npm/registry/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "^1.1.7" } diff --git a/package.json b/package.json index 2a3c2b5b..6e892e93 100644 --- a/package.json +++ b/package.json @@ -53,9 +53,12 @@ "onWebviewPanel:java.extGuide", "onCommand:java.welcome", "onWebviewPanel:java.welcome", + "onCommand:java.installJdk", + "onWebviewPanel:java.installJdk", "onCommand:java.classpathConfiguration", "onWebviewPanel:java.classpathConfiguration", - "onCommand:java.formatterSettings" + "onCommand:java.formatterSettings", + "onWalkthrough:javaWelcome" ], "contributes": { "walkthroughs": [ @@ -327,7 +330,7 @@ "@types/expand-tilde": "^2.0.0", "@types/fs-extra": "^9.0.1", "@types/lodash": "^4.14.161", - "@types/minimatch": "^3.0.3", + "@types/minimatch": "^3.0.5", "@types/node": "^16.11.6", "@types/path-exists": "^3.0.0", "@types/react": "^17.0.0", @@ -362,7 +365,7 @@ "VisualStudioExptTeam.vscodeintellicode" ], "dependencies": { - "@iconify-icons/codicon": "^1.1.8", + "@iconify-icons/codicon": "^1.1.25", "@iconify/react": "^1.1.4", "@microsoft/fast-react-wrapper": "^0.1.8", "@reduxjs/toolkit": "^1.5.0", diff --git a/src/install-jdk/assets/features/components/AdoptiumJDKPanel.tsx b/src/install-jdk/assets/features/components/AdoptiumJDKPanel.tsx index 2f79e4df..bf2d045c 100644 --- a/src/install-jdk/assets/features/components/AdoptiumJDKPanel.tsx +++ b/src/install-jdk/assets/features/components/AdoptiumJDKPanel.tsx @@ -79,13 +79,20 @@ const AdoptiumJDKPanel = () => { Download
- - {asset.release_name} - - | - - {bytes(asset.binary.package?.size || 0, { unitSeparator: " " })} - +
+ + {asset.binary.os}-{asset.binary.architecture} + +
+
+ + {asset.release_name} + + | + + {bytes(asset.binary.package?.size || 0, { unitSeparator: " " })} + +
From 5933b8e1ec39c859b2202cd8750b934c162e54cf Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Fri, 3 Dec 2021 12:34:13 +0800 Subject: [PATCH 029/409] use jdk-utils to detect installed jdks (#840) Signed-off-by: Yan Zhang --- package-lock.json | 5 +++++ package.json | 1 + src/java-runtime/index.ts | 22 ++++++++++++---------- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7a745a1f..374200e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1861,6 +1861,11 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, + "jdk-utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/jdk-utils/-/jdk-utils-0.2.1.tgz", + "integrity": "sha512-5WH2CdGx4yZ0P7scm9UE04tq1n/LPI77aa/IJOTqoYfpUqlN+YlAAH/U1VdATgJQufN3xuZ3I798KUYjFmETCw==" + }, "jest-worker": { "version": "27.3.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz", diff --git a/package.json b/package.json index 6e892e93..ac1cff3e 100644 --- a/package.json +++ b/package.json @@ -379,6 +379,7 @@ "expand-tilde": "^2.0.2", "fs-extra": "^9.0.1", "highlight.js": "10.5.0", + "jdk-utils": "^0.2.1", "jquery": "^3.5.1", "lodash": "^4.17.21", "minimatch": "^3.0.4", diff --git a/src/java-runtime/index.ts b/src/java-runtime/index.ts index bed32713..7f3edc98 100644 --- a/src/java-runtime/index.ts +++ b/src/java-runtime/index.ts @@ -1,19 +1,20 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. +import { findRuntimes, IJavaRuntime } from "jdk-utils"; import * as _ from "lodash"; import * as path from "path"; import * as vscode from "vscode"; import { getExtensionContext, getNonce } from "../utils"; -import { findJavaHomes, JAVAC_FILENAME, JavaRuntime, verifyJavaHome } from "./utils/findJavaRuntime"; -import { resolveRequirements } from "./utils/upstreamApi"; +import { getProjectNameFromUri, getProjectType } from "../utils/jdt"; +import { ProjectType } from "../utils/webview"; import { JavaRuntimeEntry, ProjectRuntimeEntry } from "./types"; +import { JAVAC_FILENAME, verifyJavaHome } from "./utils/findJavaRuntime"; import { sourceLevelDisplayName } from "./utils/misc"; -import { ProjectType } from "../utils/webview"; -import { getProjectNameFromUri, getProjectType } from "../utils/jdt"; +import { resolveRequirements } from "./utils/upstreamApi"; let javaRuntimeView: vscode.WebviewPanel | undefined; -let javaHomes: JavaRuntime[]; +let javaHomes: IJavaRuntime[]; export async function javaRuntimeCmdHandler(context: vscode.ExtensionContext, _operationId: string) { if (javaRuntimeView) { @@ -211,13 +212,14 @@ export async function findJavaRuntimeEntries(): Promise<{ javaHomeError?: string; }> { if (!javaHomes) { - javaHomes = await findJavaHomes(); + const runtimes: IJavaRuntime[] = await findRuntimes({checkJavac: true, withVersion: true}); + javaHomes = runtimes.filter(r => r.hasJavac); } const javaRuntimes: JavaRuntimeEntry[] = javaHomes.map(elem => ({ - name: elem.home, - fspath: elem.home, - majorVersion: elem.version, - type: elem.sources.join(","), + name: elem.homedir, + fspath: elem.homedir, + majorVersion: elem.version?.major || 0, + type: "from jdk-utils" })).sort((a, b) => b.majorVersion - a.majorVersion); let javaDotHome; From 4229856b324a8834971e464ce65ffd073731e81f Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Fri, 3 Dec 2021 13:18:01 +0800 Subject: [PATCH 030/409] Java walkthrough visible to all users (#841) Signed-off-by: Yan Zhang --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index ac1cff3e..6e85ba46 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,6 @@ "id": "javaWelcome", "title": "Dive into Java Development", "description": "Your first steps to set up powerful Java tools in a lightweight, performant editor!", - "when": "false", "steps": [ { "id": "java.runtime", From ae92709434d5c1a1fa765e6d2356ff557be708f7 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Fri, 3 Dec 2021 13:18:16 +0800 Subject: [PATCH 031/409] up version to 0.19.0 (#842) Signed-off-by: Yan Zhang --- CHANGELOG.md | 18 ++++++++++++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab32e27e..fdc5a00c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Change Log +## 0.19.0 +### Added +- New command to `Install New JDK`. [#803](https://github.com/microsoft/vscode-java-pack/pull/803) + +### Changed +- New UX of `Configure Java Runtime` page. [#791](https://github.com/microsoft/vscode-java-pack/pull/791) +- Refine `Java: Getting Started` page + - Renamed as `Java: Tips for Beginners` to avoid confusion. [#809](https://github.com/microsoft/vscode-java-pack/issues/809) + - Adopted same styling with VS Code. [#831](https://github.com/microsoft/vscode-java-pack/pull/831) + +### Fixed +- Cover more paths when searching for installed Java runtimes. [#596](https://github.com/microsoft/vscode-java-pack/issues/596) + +## 0.18.7 +### Fixed +- Support to detect macOS with ARM chips. +- Get correct project type. + ## 0.18.6 ### Changed - Adopt Adoptium API v3 to download JDK 17. [#765](https://github.com/microsoft/vscode-java-pack/pull/765) diff --git a/package-lock.json b/package-lock.json index 374200e0..106da90b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "vscode-java-pack", - "version": "0.18.6", + "version": "0.19.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 6e85ba46..d4fe6f48 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "Extension Pack for Java", "description": "Popular extensions for Java development that provides Java IntelliSense, debugging, testing, Maven/Gradle support, project management and more", "license": "MIT", - "version": "0.18.6", + "version": "0.19.0", "publisher": "vscjava", "preview": true, "engines": { From 0e4d139ea6bd65e5c1db2ea9546e429729bec145 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Mon, 13 Dec 2021 14:07:07 +0800 Subject: [PATCH 032/409] fix typo (#849) --- src/java-runtime/assets/ToolingJDKPanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java-runtime/assets/ToolingJDKPanel.tsx b/src/java-runtime/assets/ToolingJDKPanel.tsx index b6dd1344..3e6a4305 100644 --- a/src/java-runtime/assets/ToolingJDKPanel.tsx +++ b/src/java-runtime/assets/ToolingJDKPanel.tsx @@ -29,7 +29,7 @@ export class ToolingJDKPanel extends React.Component { return (

Configure Runtime for Language Server

-
Java Langauge Server requires a JDK 11+ to launch itself.
+
Java Language Server requires a JDK 11+ to launch itself.
{javaHomeError && (

{javaHomeError}

)} From 52af24077ec239d3c11d7790704a72b37d6dc701 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 16 Dec 2021 15:37:46 +0800 Subject: [PATCH 033/409] update tooling jdk validation mechanism (#851) --- package-lock.json | 6 +- package.json | 2 +- src/java-runtime/index.ts | 6 +- src/java-runtime/utils/upstreamApi.ts | 166 +++++++++++++++++++++----- 4 files changed, 140 insertions(+), 40 deletions(-) diff --git a/package-lock.json b/package-lock.json index 106da90b..c7f0f1b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1862,9 +1862,9 @@ "dev": true }, "jdk-utils": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/jdk-utils/-/jdk-utils-0.2.1.tgz", - "integrity": "sha512-5WH2CdGx4yZ0P7scm9UE04tq1n/LPI77aa/IJOTqoYfpUqlN+YlAAH/U1VdATgJQufN3xuZ3I798KUYjFmETCw==" + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/jdk-utils/-/jdk-utils-0.3.1.tgz", + "integrity": "sha512-0a7qkPdlXqltqgJOiXBjawFYfL1w0eRQ4vrjKVRkNgB0U8+P/J5ZMZS5LW/BtQwdM3mBUpodtI0nWklm4pmOSg==" }, "jest-worker": { "version": "27.3.1", diff --git a/package.json b/package.json index d4fe6f48..745d5481 100644 --- a/package.json +++ b/package.json @@ -378,7 +378,7 @@ "expand-tilde": "^2.0.2", "fs-extra": "^9.0.1", "highlight.js": "10.5.0", - "jdk-utils": "^0.2.1", + "jdk-utils": "^0.3.1", "jquery": "^3.5.1", "lodash": "^4.17.21", "minimatch": "^3.0.4", diff --git a/src/java-runtime/index.ts b/src/java-runtime/index.ts index 7f3edc98..5a723c7d 100644 --- a/src/java-runtime/index.ts +++ b/src/java-runtime/index.ts @@ -196,7 +196,7 @@ export async function validateJavaRuntime() { // * option b) use the same way to check java_home as vscode-java try { const runtime = await resolveRequirements(); - if (runtime.java_version >=11 && runtime.java_home) { + if (runtime.tooling_jre_version >=11 && runtime.tooling_jre) { return true; } } catch (error) { @@ -226,8 +226,8 @@ export async function findJavaRuntimeEntries(): Promise<{ let javaHomeError; try { const runtime = await resolveRequirements(); - javaDotHome = runtime.java_home; - const javaVersion = runtime.java_version; + javaDotHome = runtime.tooling_jre; + const javaVersion = runtime.tooling_jre_version; if (!javaVersion || javaVersion < 11) { javaHomeError = `Java 11 or more recent is required by the Java language support (redhat.java) extension. Preferred JDK "${javaDotHome}" (version ${javaVersion}) doesn't meet the requirement. Please specify or install a recent JDK.`; } diff --git a/src/java-runtime/utils/upstreamApi.ts b/src/java-runtime/utils/upstreamApi.ts index 3c5f6283..c84d534a 100644 --- a/src/java-runtime/utils/upstreamApi.ts +++ b/src/java-runtime/utils/upstreamApi.ts @@ -1,33 +1,36 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. -// based on https://github.com/redhat-developer/vscode-java/blob/fcbe9204638610ce773cedaef445f19032a785cb/src/requirements.ts +// based on https://github.com/redhat-developer/vscode-java/blob/c4cdbed1190fc705c364179dab525645acf03898/src/requirements.ts import * as fse from "fs-extra"; +import { findRuntimes, getRuntime, getSources, IJavaRuntime, JAVAC_FILENAME, JAVA_FILENAME } from 'jdk-utils'; import * as path from "path"; import * as vscode from "vscode"; -import { env } from "vscode"; +import { env, workspace } from 'vscode'; const expandHomeDir = require("expand-home-dir"); const REQUIRED_JDK_VERSION = 11; -import { findJavaHomes, getJavaVersion, JavaRuntime } from "./findJavaRuntime"; - -const isWindows = process.platform.indexOf("win") === 0; -const JAVAC_FILENAME = "javac" + (isWindows ? ".exe" : ""); - -export async function resolveRequirements(): Promise { +export async function resolveRequirements(): Promise<{ + tooling_jre: string | undefined; // Used to launch Java extension. + tooling_jre_version: number; + java_home: string | undefined; // Used as default project JDK. + java_version: number; +}> { + const javaExtPath: string | undefined = vscode.extensions.getExtension("redhat.java")?.extensionPath + let toolingJre: string | undefined = await findEmbeddedJRE(javaExtPath); + let toolingJreVersion: number = await getMajorVersion(toolingJre); return new Promise(async (resolve, reject) => { let source: string; let javaVersion: number = 0; - let javaHome = await checkJavaPreferences(); - if (javaHome) { - // java.home explictly specified + let javaHome = checkJavaPreferences(); + if (!toolingJre && javaHome) { // "java.home" setting is only used for the universal version. source = `java.home variable defined in ${env.appName} settings`; - javaHome = expandHomeDir(javaHome) as string; + javaHome = expandHomeDir(javaHome); if (!await fse.pathExists(javaHome)) { invalidJavaHome(reject, `The ${source} points to a missing or inaccessible folder (${javaHome})`); - } else if (!await fse.pathExists(path.resolve(javaHome, "bin", JAVAC_FILENAME))) { + } else if (!await fse.pathExists(path.resolve(javaHome, 'bin', JAVAC_FILENAME))) { let msg: string; if (await fse.pathExists(path.resolve(javaHome, JAVAC_FILENAME))) { msg = `'bin' should be removed from the ${source} (${javaHome})`; @@ -36,36 +39,117 @@ export async function resolveRequirements(): Promise { } invalidJavaHome(reject, msg); } - javaVersion = await getJavaVersion(javaHome); + javaVersion = await getMajorVersion(javaHome); + toolingJre = javaHome; + toolingJreVersion = javaVersion; } else { - // java.home not specified, search valid JDKs from env.JAVA_HOME, env.PATH, Registry(Window), Common directories - const javaRuntimes = await findJavaHomes(); - const validJdks = javaRuntimes.filter(r => r.version >= REQUIRED_JDK_VERSION); - if (validJdks.length > 0) { - sortJdksBySource(validJdks); - javaHome = validJdks[0].home; - javaVersion = validJdks[0].version; + // java.home not specified, search valid JDKs from env.JAVA_HOME, env.PATH, SDKMAN, jEnv, jabba, Common directories + const javaRuntimes = await findRuntimes({checkJavac: true, withVersion: true, withTags: true}); + if (!toolingJre) { // universal version + // as latest version as possible. + sortJdksByVersion(javaRuntimes); + const validJdks = javaRuntimes.filter(r => r.version && r.version.major >= REQUIRED_JDK_VERSION); + if (validJdks.length > 0) { + sortJdksBySource(validJdks); + javaHome = validJdks[0].homedir; + javaVersion = validJdks[0].version?.major ?? 0; + toolingJre = javaHome; + toolingJreVersion = javaVersion; + } + } else { // pick a default project JDK/JRE + /** + * For legacy users, we implicitly following the order below to + * set a default project JDK during initialization: + * java.home > env.JDK_HOME > env.JAVA_HOME > env.PATH + * + * We'll keep it for compatibility. + */ + if (javaHome && (await getRuntime(javaHome) !== undefined)) { + const runtime = await getRuntime(javaHome, {withVersion: true}); + if (runtime) { + javaHome = runtime.homedir; + javaVersion = runtime.version?.major ?? 0; + } + } else if (javaRuntimes.length) { + sortJdksBySource(javaRuntimes); + javaHome = javaRuntimes[0].homedir; + javaVersion = javaRuntimes[0].version?.major ?? 0; + } else if (javaHome = (await findDefaultRuntimeFromSettings() ?? "")) { + javaVersion = await getMajorVersion(javaHome); + } else { + /** + * Originally it was: + * invalidJavaHome(reject, "Please download and install a JDK to compile your project. You can configure your projects with different JDKs by the setting ['java.configuration.runtimes'](https://github.com/redhat-developer/vscode-java/wiki/JDK-Requirements#java.configuration.runtimes)"); + * + * here we focus on tooling jre, so we swallow the error. + * + */ + } } } - if (javaVersion < REQUIRED_JDK_VERSION) { - let message = `Java ${REQUIRED_JDK_VERSION} or more recent is required by the Java language support (redhat.java) extension.`; - if (javaHome) { - message += `(Current JDK: ${javaHome})`; - } - invalidJavaHome(reject, message); + if (!toolingJre || toolingJreVersion < REQUIRED_JDK_VERSION) { + // For universal version, we still require users to install a qualified JDK to run Java extension. + invalidJavaHome(reject, `Java ${REQUIRED_JDK_VERSION} or more recent is required to run the Java extension. Please download and install a recent JDK. You can still compile your projects with older JDKs by configuring ['java.configuration.runtimes'](https://github.com/redhat-developer/vscode-java/wiki/JDK-Requirements#java.configuration.runtimes)`); } - resolve({ java_home: javaHome, java_version: javaVersion }); + resolve({ + tooling_jre: toolingJre, // Used to launch Java extension. + tooling_jre_version: toolingJreVersion, + java_home: javaHome, // Used as default project JDK. + java_version: javaVersion, + }); }); } -function sortJdksBySource(jdks: JavaRuntime[]) { - const rankedJdks = jdks as Array; - const sources = ["env.JDK_HOME", "env.JAVA_HOME", "env.PATH"]; +async function findEmbeddedJRE(javaExtPath?: string): Promise { + if (!javaExtPath) { + return undefined; + } + const jreHome = path.join(javaExtPath, "jre"); + if (fse.existsSync(jreHome) && fse.statSync(jreHome).isDirectory()) { + const candidates = fse.readdirSync(jreHome); + for (const candidate of candidates) { + if (fse.existsSync(path.join(jreHome, candidate, "bin", JAVA_FILENAME))) { + return path.join(jreHome, candidate); + } + } + } + + return; +} + +async function findDefaultRuntimeFromSettings(): Promise { + const runtimes = workspace.getConfiguration().get("java.configuration.runtimes"); + if (Array.isArray(runtimes) && runtimes.length) { + let candidate: string | undefined; + for (const runtime of runtimes) { + if (!runtime || typeof runtime !== 'object' || !runtime.path) { + continue; + } + + const jr = await getRuntime(runtime.path); + if (jr) { + candidate = jr.homedir; + } + + if (runtime.default) { + break; + } + } + + return candidate; + } + + return undefined; +} + +function sortJdksBySource(jdks: IJavaRuntime[]) { + const rankedJdks = jdks as Array; + const sources = ["JDK_HOME", "JAVA_HOME", "PATH"]; for (const [index, source] of sources.entries()) { for (const jdk of rankedJdks) { - if (jdk.rank === undefined && jdk.sources.includes(source)) { + if (jdk.rank === undefined && getSources(jdk).includes(source)) { jdk.rank = index; } } @@ -74,10 +158,26 @@ function sortJdksBySource(jdks: JavaRuntime[]) { rankedJdks.sort((a, b) => a.rank - b.rank); } +/** + * Sort by major version in descend order. + */ +function sortJdksByVersion(jdks: IJavaRuntime[]) { + jdks.sort((a, b) => (b.version?.major ?? 0) - (a.version?.major ?? 0)); +} + + function checkJavaPreferences(){ - return vscode.workspace.getConfiguration("java").get("home"); + return vscode.workspace.getConfiguration("java").get("home") ?? ""; } function invalidJavaHome(reject: any, reason: string) { reject(new Error(reason)); } + +async function getMajorVersion(javaHome?: string): Promise { + if (!javaHome) { + return 0; + } + const runtime = await getRuntime(javaHome, { withVersion: true }); + return runtime?.version?.major || 0; +} \ No newline at end of file From 8610c349cc3e3eb9a91e78a9bfab3e51b4abb53a Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Fri, 17 Dec 2021 15:46:32 +0800 Subject: [PATCH 034/409] Simplify walkthrough steps (#833) --- package-lock.json | 38 +++-- package.json | 119 +++++-------- package.nls.json | 15 ++ src/commands/index.ts | 5 +- src/install-jdk/index.ts | 37 ++-- src/welcome/assets/components/Header.tsx | 2 +- src/welcome/index.ts | 12 +- walkthrough/debugAndTest.svg | 174 +++++++++++++++++++ walkthrough/debugger.png | Bin 83310 -> 0 bytes walkthrough/extGuide.png | Bin 148746 -> 0 bytes walkthrough/extensions.svg | 206 +++++++++++++++++++++++ walkthrough/help-center.png | Bin 29436 -> 0 bytes walkthrough/ok.svg | 4 + walkthrough/open-project.png | Bin 107879 -> 0 bytes walkthrough/project-manager.png | Bin 142929 -> 0 bytes walkthrough/projects.svg | 77 +++++++++ walkthrough/runtime.md | 19 +++ walkthrough/runtime.png | Bin 273842 -> 0 bytes walkthrough/testing.png | Bin 149250 -> 0 bytes walkthrough/tutorials.png | Bin 244126 -> 0 bytes 20 files changed, 595 insertions(+), 113 deletions(-) create mode 100644 package.nls.json create mode 100644 walkthrough/debugAndTest.svg delete mode 100644 walkthrough/debugger.png delete mode 100644 walkthrough/extGuide.png create mode 100644 walkthrough/extensions.svg delete mode 100644 walkthrough/help-center.png create mode 100644 walkthrough/ok.svg delete mode 100644 walkthrough/open-project.png delete mode 100644 walkthrough/project-manager.png create mode 100644 walkthrough/projects.svg create mode 100644 walkthrough/runtime.md delete mode 100644 walkthrough/runtime.png delete mode 100644 walkthrough/testing.png delete mode 100644 walkthrough/tutorials.png diff --git a/package-lock.json b/package-lock.json index c7f0f1b0..5098bbf7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,9 +45,9 @@ "dev": true }, "@iconify-icons/codicon": { - "version": "1.1.25", - "resolved": "https://registry.npmjs.org/@iconify-icons/codicon/-/codicon-1.1.25.tgz", - "integrity": "sha512-iCMUZHlJygQ2SPw7MqKLevrF3U5oqBEX21pzocLSravU8bQ6lYxbRIKNe74F/gaCfAwTliWhviRoWO0Yj5lFPA==" + "version": "1.1.26", + "resolved": "https://registry.npmjs.org/@iconify-icons/codicon/-/codicon-1.1.26.tgz", + "integrity": "sha512-psGSQtYqK5UGo2Ji1lE3yzSWXddGO/X/FWsHkaWJswNLhg2j3JWXf+MT3tZWcm44FdNyVrQ07s3LaQkjur8mVA==" }, "@iconify/react": { "version": "1.1.4", @@ -737,9 +737,9 @@ } }, "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "bcrypt-pbkdf": { "version": "1.0.2", @@ -1943,12 +1943,6 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -1970,15 +1964,23 @@ } }, "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", - "json-schema": "0.4.0", + "json-schema": "0.2.3", "verror": "1.10.0" + }, + "dependencies": { + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + } } }, "kind-of": { @@ -2111,8 +2113,8 @@ }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "resolved": "https://devdiv.pkgs.visualstudio.com/_packaging/CloudKernel/npm/registry/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "requires": { "brace-expansion": "^1.1.7" } diff --git a/package.json b/package.json index 745d5481..14aadd17 100644 --- a/package.json +++ b/package.json @@ -64,112 +64,62 @@ "walkthroughs": [ { "id": "javaWelcome", - "title": "Dive into Java Development", - "description": "Your first steps to set up powerful Java tools in a lightweight, performant editor!", + "title": "%walkthrough.title%", + "description": "%walkthrough.description%", "steps": [ { "id": "java.runtime", - "title": "Get your Java runtime ready", - "description": "The built-in configurator makes it easy to set up your preferred Java runtime.\n[Configure Java Runtime](command:toSide:java.runtime)", + "title": "Get your runtime ready", + "description": "%walkthrough.java.runtime%", "media": { - "image": "walkthrough/runtime.png", - "altText": "Configure Java Runtime with tabs for Project SDKs" + "markdown": "walkthrough/runtime.md" } }, - { - "id": "java.extGuide", - "title": "Support additional tools and frameworks", - "description": "Got additional support for major tool chains, frameworks and application servers.\n[Recommended Java Extensions](command:toSide:java.extGuide)", - "media": { - "image": "walkthrough/extGuide.png", - "altText": "Open Project Folder" - } - }, - { - "id": "java.openProjectFolder", - "title": "Open project folder", - "description": "Open an existing folder that contains your Java project, or create a new folder.\n[Open Folder...](command:workbench.action.files.openFolder)\n[Create New Project...](command:java.project.create)", - "media": { - "image": "walkthrough/open-project.png", - "altText": "Open Project Folder" - }, - "when": "!isMac && workspaceFolderCount == 0" - }, - { - "id": "java.openProjectFolder.mac", - "title": "Open project folder", - "description": "Open an existing folder that contains your Java project, or create a new folder.\n[Open Folder...](command:workbench.action.files.openFileFolder)\n[Create New Project...](command:java.project.create)", - "media": { - "image": "walkthrough/open-project.png", - "altText": "Open Project Folder" - }, - "when": "isMac && workspaceFolderCount == 0" - }, { "id": "java.showProjectExplorer", - "title": "Explore your project", - "description": "View classpaths and dependencies, and create new projects, packages and classes.\n[Show Java Projects](command:javaProjectExplorer.focus)", + "title": "Explore your projects", + "description": "%walkthrough.java.projects%", "media": { - "image": "walkthrough/project-manager.png", + "svg": "walkthrough/projects.svg", "altText": "Project Explorer" }, - "when": "java:projectManagerActivated" + "when": "java:projectManagerActivated && workspaceFolderCount > 0" }, { - "id": "java.showProjectExplorer.notActivated", + "id": "java.showProjectExplorer.inactive", "title": "Explore your project", - "description": "View classpaths and dependencies, and create new projects, packages and classes.", + "description": "%walkthrough.java.projects.inactive%", "media": { - "image": "walkthrough/project-manager.png", + "svg": "walkthrough/projects.svg", "altText": "Project Explorer" }, - "when": "!java:projectManagerActivated" + "when": "!java:projectManagerActivated || workspaceFolderCount == 0" }, { - "id": "java.showDebugView", - "title": "Launch and debug your app", - "description": "The debugger will automatically find the entry point of your project, launch it and start debugging.\n[Show Run and Debug View](command:workbench.view.debug)\n[Learn More...](https://code.visualstudio.com/docs/java/java-debugging)", + "id": "java.debugAndTest", + "title": "Launch, debug and test", + "description": "%walkthrough.java.debugAndTest%", "media": { - "image": "walkthrough/debugger.png", - "altText": "Running and Debugging" + "svg": "walkthrough/debugAndTest.svg", + "altText": "Launch, debug and test" } }, { - "id": "java.showTesting", - "title": "Run and debug tests", - "description": "The place to show all the test cases in your project. You can also run/debug your test cases from here.\n[Show Testing View](command:testExplorer.focus)", - "media": { - "image": "walkthrough/testing.png", - "altText": "Testing" - }, - "when": "java:testRunnerActivated" - }, - { - "id": "java.showTesting.notActivated", - "title": "Run and debug tests", - "description": "The place to show all the test cases in your project. You can also run/debug your test cases from here.", - "media": { - "image": "walkthrough/testing.png", - "altText": "Testing" - }, - "when": "!java:testRunnerActivated" - }, - { - "id": "java.tutorial", - "title": "Quick start with Java", - "description": "Just starting with Java? Get hands on with these tutorials to learn the fundamentals of Java editing & debugging.\n[Open Tutorials](command:toSide:java.gettingStarted)", + "id": "java.extensions", + "title": "Extensions for additional tools and frameworks", + "description": "%walkthrough.java.extensions%", "media": { - "image": "walkthrough/tutorials.png", - "altText": "Tutorials" + "svg": "walkthrough/extensions.svg", + "altText": "Extensions" } }, { - "id": "java.showHelpCenter", - "title": "Java Help Center", - "description": "Discover more shortcuts and features on this page.\n[Open Java Help Center](command:toSide:java.welcome.fromWalkthrough)", + "id": "java.more", + "title": "Explore more Java resources", + "description": "%walkthrough.java.more%", "media": { - "image": "walkthrough/help-center.png", - "altText": "Java Help Center" + "svg": "walkthrough/ok.svg", + "altText": "Explore more Java resources" } } ] @@ -181,15 +131,20 @@ "category": "Java", "title": "Install New JDK" }, + { + "command": "java.installJdk.fromWalkthrough", + "category": "Java", + "title": "Install New JDK" + }, { "command": "java.welcome", "category": "Java", - "title": "Help Center (Welcome)" + "title": "Help Center" }, { "command": "java.welcome.fromWalkthrough", "category": "Java", - "title": "Help Center (Welcome)" + "title": "Help Center" }, { "command": "java.classpathConfiguration", @@ -275,6 +230,10 @@ { "command": "java.welcome.fromWalkthrough", "when": "false" + }, + { + "command": "java.installJdk.fromWalkthrough", + "when": "false" } ], "view/title": [ diff --git a/package.nls.json b/package.nls.json new file mode 100644 index 00000000..c81c5462 --- /dev/null +++ b/package.nls.json @@ -0,0 +1,15 @@ +{ + "walkthrough.title": "Get Started with Java Development", + "walkthrough.description": "Your first steps to set up powerful Java tools in a lightweight, performant editor!", + "walkthrough.java.runtime": "The Extension Pack for Java requires at least one Java runtime to be installed.\n[Install JDK](command:toSide:java.installJdk.fromWalkthrough)", + + "walkthrough.java.projects": "Java Project Explorer helps you to manage your projects and dependencies. It also helps you to create new Java project, classes and packages. \n[View Java Projects](command:javaProjectExplorer.focus)", + + "walkthrough.java.projects.inactive": "Java Project Explorer helps you to manage your projects and dependencies. Create a new project or open an existing folder to see the full features.\n[Open Command Palette](command:workbench.action.quickOpen?%22>java%22)\n__Try searching for 'Create Java Project' or 'Open Folder'__", + + "walkthrough.java.debugAndTest":"Run and debug your application using the debugger. [Learn More...](https://aka.ms/java-walkthrough-debug)\nThe [Testing Explorer](command:testExplorer.focus) allows you to view, run and manage all test cases in your project. [Learn More...](https://aka.ms/java-walkthrough-test)\n[Show Run and Debug View](command:workbench.view.debug)", + + "walkthrough.java.extensions": "Install extensions to support additional frameworks such as Spring Boot, Application Servers, key mappings and so on.\n[Browse Recommended Extensions](command:toSide:java.extGuide)", + + "walkthrough.java.more": "- 🎉 If you want to run your project with a specific runtime, you can [Configure Java Runtime](command:toSide:java.runtime).\n\n- 🎉 Visit [Dev Blogs](https://aka.ms/java-walkthrough-devblogs) to keep up-to-date with our latest product updates and announcements.\n\n- ✨ Discover more shortcuts and features in [Help Center](command:toSide:java.welcome.fromWalkthrough) or check documentation for tips and troubleshooting.\n\n- ✨ Report issues and feedback at our [Github repository](https://aka.ms/java-walkthrough-issue)." +} diff --git a/src/commands/index.ts b/src/commands/index.ts index 04c2d8d7..0b1df59d 100644 --- a/src/commands/index.ts +++ b/src/commands/index.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. -import { installJDKCmdHandler } from "../install-jdk"; +import { showInstallJdkWebview, showInstallJdkWebviewBeside } from "../install-jdk"; import * as vscode from "vscode"; import { instrumentOperation, instrumentOperationAsVsCodeCommand } from "vscode-extension-telemetry-wrapper"; import { showClasspathConfigurationPage } from "../classpath/classpathConfigurationView"; @@ -33,7 +33,8 @@ export function initialize(context: vscode.ExtensionContext) { context.subscriptions.push(instrumentOperationAsVsCodeCommand("java.formatterSettings", javaFormatterSettingsEditorProvider.showFormatterSettingsEditor, javaFormatterSettingsEditorProvider)); context.subscriptions.push(instrumentOperationAsVsCodeCommand("java.formatterSettings.showTextEditor", javaFormatterSettingsEditorProvider.reopenWithTextEditor)); registerCommandHandler(context, "java.classpathConfiguration", showClasspathConfigurationPage); - registerCommandHandler(context, "java.installJdk", installJDKCmdHandler); + registerCommandHandler(context, "java.installJdk", showInstallJdkWebviewBeside); + registerCommandHandler(context, "java.installJdk.fromWalkthrough", showInstallJdkWebview); } type CommandHandler = (context: vscode.ExtensionContext, operationId: string, ...args: any[]) => any; diff --git a/src/install-jdk/index.ts b/src/install-jdk/index.ts index 809d7c2d..63201fcb 100644 --- a/src/install-jdk/index.ts +++ b/src/install-jdk/index.ts @@ -8,14 +8,20 @@ import { availableReleases, latestCompatibleAsset } from '../utils/adoptiumApi'; import { WEBVIEW_ID } from './constants'; -export function installJDKCmdHandler(context: vscode.ExtensionContext, _operationId?: string) { +export function showInstallJdkWebview(context: vscode.ExtensionContext, _operationId?: string) { InstallJdkPage.createOrShow(context.extensionPath); } +export function showInstallJdkWebviewBeside(context: vscode.ExtensionContext, _operationId?: string) { + InstallJdkPage.createOrShow(context.extensionPath, { + beside: true + }); +} + export class InstallJdkViewSerializer implements vscode.WebviewPanelSerializer { constructor(private context: vscode.ExtensionContext) { } async deserializeWebviewPanel(webviewPanel: vscode.WebviewPanel, _state: unknown) { - InstallJdkPage.createOrShow(this.context.extensionPath, webviewPanel); + InstallJdkPage.createOrShow(this.context.extensionPath, {webviewPanel}); } } @@ -27,18 +33,25 @@ class InstallJdkPage { private readonly _extensionPath: string; private _disposables: vscode.Disposable[] = []; - public static createOrShow(extensionPath: string, webviewPanel?: vscode.WebviewPanel) { - // "smart" Beside - const ate = vscode.window.activeTextEditor; - const column = (ate === undefined || ate.viewColumn === vscode.ViewColumn.One) ? - vscode.ViewColumn.Two : - vscode.ViewColumn.One; + public static createOrShow(extensionPath: string, options?: { + webviewPanel?: vscode.WebviewPanel; + beside?: boolean; + }) { + + let column = vscode.ViewColumn.Active; + if (options?.beside) { + // "smart" Beside + const ate = vscode.window.activeTextEditor; + column = (ate === undefined || ate.viewColumn === vscode.ViewColumn.One) ? + vscode.ViewColumn.Two : + vscode.ViewColumn.One; + } if (InstallJdkPage.instance) { InstallJdkPage.instance._panel?.reveal(); } else { - InstallJdkPage.instance = webviewPanel ? - new InstallJdkPage(extensionPath, webviewPanel) : + InstallJdkPage.instance = options?.webviewPanel ? + new InstallJdkPage(extensionPath, options.webviewPanel) : new InstallJdkPage(extensionPath, column); } } @@ -60,6 +73,10 @@ class InstallJdkPage { }); } + this._panel.iconPath = { + light: vscode.Uri.file(path.join(extensionPath, "caption.light.svg")), + dark: vscode.Uri.file(path.join(extensionPath, "caption.dark.svg")) + }; this._panel.webview.html = this._getHtmlForWebview(); this._panel.onDidDispose(() => this.dispose(), null, this._disposables); diff --git a/src/welcome/assets/components/Header.tsx b/src/welcome/assets/components/Header.tsx index ad3adebf..0e8d7dab 100644 --- a/src/welcome/assets/components/Header.tsx +++ b/src/welcome/assets/components/Header.tsx @@ -10,7 +10,7 @@ const DEV_BLOG_LINK = "https://devblogs.microsoft.com/?s=Java+on+Visual+Studio+C export default class Header extends React.Component { render() { const openBlogCommand = encodeCommandUriWithTelemetry(WEBVIEW_ID, "blogs", "java.helper.openUrl", [DEV_BLOG_LINK]); - const title =

Java Tools

; + const title =

Java Help Center

; const blogsLink = blogs; const subtitle = Check our {blogsLink} to see what's new; return ( diff --git a/src/welcome/index.ts b/src/welcome/index.ts index 8e2b3184..107511d6 100644 --- a/src/welcome/index.ts +++ b/src/welcome/index.ts @@ -29,11 +29,19 @@ export async function showWelcomeWebview(context: vscode.ExtensionContext, _oper welcomeView.reveal(); fetchInitProps(context); } else { - const viewColumn = options?.openBeside ? vscode.ViewColumn.Beside : vscode.ViewColumn.Active; + let column = vscode.ViewColumn.Active; + if (options?.openBeside) { + // "smart" Beside + const ate = vscode.window.activeTextEditor; + column = (ate === undefined || ate.viewColumn === vscode.ViewColumn.One) ? + vscode.ViewColumn.Two : + vscode.ViewColumn.One; + } + welcomeView = vscode.window.createWebviewPanel( "java.welcome", "Java Help Center", - viewColumn, + column, { enableScripts: true, enableCommandUris: true, diff --git a/walkthrough/debugAndTest.svg b/walkthrough/debugAndTest.svg new file mode 100644 index 00000000..3540f3e6 --- /dev/null +++ b/walkthrough/debugAndTest.svg @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/walkthrough/debugger.png b/walkthrough/debugger.png deleted file mode 100644 index 3f812019ac9b69e47fd90e17b148468b23b4df13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83310 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 BvFZQ- diff --git a/walkthrough/extGuide.png b/walkthrough/extGuide.png deleted file mode 100644 index 8defe5b6efdeb6008840a32a1eb92cc479eae99e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148746 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

b+Jcg{O)TlTzzmmTC5T2B8bZ!$oJP*(d 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 diff --git a/walkthrough/project-manager.png b/walkthrough/project-manager.png deleted file mode 100644 index d2d1145ce72305bc17a7580528a2c59811eadc5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142929 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≪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

tyC|U`1WG;O5;lzPh8nH{Fu8S;!V-& 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 diff --git a/walkthrough/extensions.svg b/walkthrough/extensions.svg new file mode 100644 index 00000000..9ee02570 --- /dev/null +++ b/walkthrough/extensions.svg @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/walkthrough/help-center.png b/walkthrough/help-center.png deleted file mode 100644 index 5c961aeebc0ff00bf0124f9482a5096ed5fecbc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29436 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 diff --git a/walkthrough/ok.svg b/walkthrough/ok.svg new file mode 100644 index 00000000..56139650 --- /dev/null +++ b/walkthrough/ok.svg @@ -0,0 +1,4 @@ + + + + diff --git a/walkthrough/open-project.png b/walkthrough/open-project.png deleted file mode 100644 index 84d678d5e5e2807c1b97b6992afaeebfa3fb1817..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107879 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

-
-
-

Release Notes

- - - -
-

Help

From 29796c11b4d538e756c04b8700cbf87b45bd894f Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 3 Nov 2022 23:41:17 +0800 Subject: [PATCH 101/409] fix uri of scripts to pass CORS policy (#1103) --- src/beginner-tips/index.ts | 6 ++---- src/classpath/classpathConfigurationView.ts | 11 ++++++----- src/ext-guide/index.ts | 21 +++++++++++---------- src/formatter-settings/index.ts | 3 ++- src/install-jdk/index.ts | 8 +++----- src/java-runtime/index.ts | 9 +++++---- src/overview/index.ts | 11 ++++++----- src/welcome/index.ts | 7 ++++--- 8 files changed, 39 insertions(+), 37 deletions(-) diff --git a/src/beginner-tips/index.ts b/src/beginner-tips/index.ts index 83098e04..d0029465 100644 --- a/src/beginner-tips/index.ts +++ b/src/beginner-tips/index.ts @@ -105,9 +105,7 @@ class BeginnerTipsPage { private _getHtmlForWebview() { const scriptPathOnDisk = vscode.Uri.file(path.join(this._extensionPath, 'out', "assets", "beginner-tips", "index.js")); - - // const scriptUri = this._panel.webview.asWebviewUri(scriptPathOnDisk); - const scriptUri = (scriptPathOnDisk).with({ scheme: "vscode-resource" }); + const scriptUri = this._panel?.webview.asWebviewUri(scriptPathOnDisk); // Use a nonce to whitelist which scripts can be run const nonce = getNonce(); @@ -123,7 +121,7 @@ class BeginnerTipsPage {
- + `; diff --git a/src/classpath/classpathConfigurationView.ts b/src/classpath/classpathConfigurationView.ts index feed1bf6..db883b58 100644 --- a/src/classpath/classpathConfigurationView.ts +++ b/src/classpath/classpathConfigurationView.ts @@ -93,14 +93,15 @@ async function initializeWebview(context: vscode.ExtensionContext): Promise @@ -115,7 +116,7 @@ function getHtmlForWebview(scriptPath: string) {
- + `; } @@ -148,7 +149,7 @@ async function checkRequirement(): Promise { return false; } - await javaExt.activate(); + await javaExt.activate(); lsApi = javaExt.exports; if (lsApi) { diff --git a/src/ext-guide/index.ts b/src/ext-guide/index.ts index 85270369..a42837b7 100644 --- a/src/ext-guide/index.ts +++ b/src/ext-guide/index.ts @@ -35,7 +35,7 @@ async function initializeJavaExtGuideView(context: vscode.ExtensionContext, webv dark: vscode.Uri.file(path.join(context.extensionPath, "caption.dark.svg")) }; - webviewPanel.webview.html = getHtmlForWebview(context.asAbsolutePath("./out/assets/ext-guide/index.js")); + webviewPanel.webview.html = getHtmlForWebview(webviewPanel, context.asAbsolutePath("./out/assets/ext-guide/index.js")); context.subscriptions.push(webviewPanel.onDidDispose(onDisposeCallback)); context.subscriptions.push(webviewPanel.webview.onDidReceiveMessage(async (e) => { @@ -68,9 +68,10 @@ async function initializeJavaExtGuideView(context: vscode.ExtensionContext, webv syncExtensionStatus(); } -function getHtmlForWebview(scriptPath: string) { +function getHtmlForWebview(webviewPanel: vscode.WebviewPanel, scriptPath: string) { const scriptPathOnDisk = vscode.Uri.file(scriptPath); - const scriptUri = (scriptPathOnDisk).with({ scheme: "vscode-resource" }); + const scriptUri = webviewPanel.webview.asWebviewUri(scriptPathOnDisk); + // Use a nonce to whitelist which scripts can be run const nonce = getNonce(); return ` @@ -113,7 +114,7 @@ function getHtmlForWebview(scriptPath: string) {
- +
@@ -125,7 +126,7 @@ function getHtmlForWebview(scriptPath: string) { - + @@ -182,7 +183,7 @@ function getHtmlForWebview(scriptPath: string) {
- +
@@ -220,7 +221,7 @@ function getHtmlForWebview(scriptPath: string) {
- +
@@ -238,7 +239,7 @@ function getHtmlForWebview(scriptPath: string) {
- +
@@ -266,7 +267,7 @@ function getHtmlForWebview(scriptPath: string) {
- +
@@ -324,7 +325,7 @@ function getHtmlForWebview(scriptPath: string) {
- + `; } diff --git a/src/formatter-settings/index.ts b/src/formatter-settings/index.ts index 961458cf..c58e6a75 100644 --- a/src/formatter-settings/index.ts +++ b/src/formatter-settings/index.ts @@ -149,7 +149,8 @@ export class JavaFormatterSettingsEditorProvider implements vscode.CustomTextEdi private getHtmlForWebview(scriptPath: string) { const scriptPathOnDisk = vscode.Uri.file(scriptPath); - const scriptUri = (scriptPathOnDisk).with({ scheme: "vscode-resource" }); + const scriptUri = this.webviewPanel?.webview.asWebviewUri(scriptPathOnDisk); + // Use a nonce to whitelist which scripts can be run const nonce = getNonce(); return ` diff --git a/src/install-jdk/index.ts b/src/install-jdk/index.ts index 63201fcb..96a44c89 100644 --- a/src/install-jdk/index.ts +++ b/src/install-jdk/index.ts @@ -37,7 +37,7 @@ class InstallJdkPage { webviewPanel?: vscode.WebviewPanel; beside?: boolean; }) { - + let column = vscode.ViewColumn.Active; if (options?.beside) { // "smart" Beside @@ -139,9 +139,7 @@ class InstallJdkPage { private _getHtmlForWebview() { const scriptPathOnDisk = vscode.Uri.file(path.join(this._extensionPath, 'out', "assets", "install-jdk", "index.js")); - - // const scriptUri = this._panel.webview.asWebviewUri(scriptPathOnDisk); - const scriptUri = (scriptPathOnDisk).with({ scheme: "vscode-resource" }); + const scriptUri = this._panel?.webview.asWebviewUri(scriptPathOnDisk); // Use a nonce to whitelist which scripts can be run const nonce = getNonce(); @@ -157,7 +155,7 @@ class InstallJdkPage {
- + `; diff --git a/src/java-runtime/index.ts b/src/java-runtime/index.ts index 9ef6d584..69e99108 100644 --- a/src/java-runtime/index.ts +++ b/src/java-runtime/index.ts @@ -41,7 +41,7 @@ async function initializeJavaRuntimeView(context: vscode.ExtensionContext, webvi light: vscode.Uri.file(path.join(context.extensionPath, "caption.light.svg")), dark: vscode.Uri.file(path.join(context.extensionPath, "caption.dark.svg")) }; - webviewPanel.webview.html = getHtmlForWebview(context.asAbsolutePath("./out/assets/java-runtime/index.js")); + webviewPanel.webview.html = getHtmlForWebview(webviewPanel, context.asAbsolutePath("./out/assets/java-runtime/index.js")); context.subscriptions.push(webviewPanel.onDidDispose(onDisposeCallback)); context.subscriptions.push(webviewPanel.webview.onDidReceiveMessage(async (e) => { @@ -159,9 +159,10 @@ async function initializeJavaRuntimeView(context: vscode.ExtensionContext, webvi } } -function getHtmlForWebview(scriptPath: string) { +function getHtmlForWebview(webviewPanel: vscode.WebviewPanel, scriptPath: string) { const scriptPathOnDisk = vscode.Uri.file(scriptPath); - const scriptUri = (scriptPathOnDisk).with({ scheme: "vscode-resource" }); + const scriptUri = webviewPanel.webview.asWebviewUri(scriptPathOnDisk); + // Use a nonce to whitelist which scripts can be run const nonce = getNonce(); @@ -177,7 +178,7 @@ function getHtmlForWebview(scriptPath: string) {
- + `; } diff --git a/src/overview/index.ts b/src/overview/index.ts index f70f1ca2..85b492e3 100644 --- a/src/overview/index.ts +++ b/src/overview/index.ts @@ -51,7 +51,7 @@ async function initializeOverviewView(context: vscode.ExtensionContext, webviewP light: vscode.Uri.file(path.join(context.extensionPath, "caption.light.svg")), dark: vscode.Uri.file(path.join(context.extensionPath, "caption.dark.svg")) }; - webviewPanel.webview.html = getHtmlForWebview(context.asAbsolutePath("./out/assets/overview/index.js")); + webviewPanel.webview.html = getHtmlForWebview(webviewPanel, context.asAbsolutePath("./out/assets/overview/index.js")); context.subscriptions.push(webviewPanel.onDidDispose(onDisposeCallback)); @@ -108,12 +108,13 @@ export class OverviewViewSerializer implements vscode.WebviewPanelSerializer { } } -function getHtmlForWebview(scriptPath: string) { +function getHtmlForWebview(webviewPanel: vscode.WebviewPanel, scriptPath: string) { const scriptPathOnDisk = vscode.Uri.file(scriptPath); - const scriptUri = (scriptPathOnDisk).with({ scheme: "vscode-resource" }); + const scriptUri = webviewPanel.webview.asWebviewUri(scriptPathOnDisk); + // Use a nonce to whitelist which scripts can be run const nonce = getNonce(); - + return ` @@ -297,6 +298,6 @@ function getHtmlForWebview(scriptPath: string) { - + `; } diff --git a/src/welcome/index.ts b/src/welcome/index.ts index ec5f16b5..03206d65 100644 --- a/src/welcome/index.ts +++ b/src/welcome/index.ts @@ -74,7 +74,7 @@ async function initializeWelcomeView(context: vscode.ExtensionContext, webviewPa light: vscode.Uri.file(path.join(context.extensionPath, "caption.light.svg")), dark: vscode.Uri.file(path.join(context.extensionPath, "caption.dark.svg")) }; - webviewPanel.webview.html = getHtmlForWebview(context.asAbsolutePath("./out/assets/welcome/index.js")); + webviewPanel.webview.html = getHtmlForWebview(webviewPanel, context.asAbsolutePath("./out/assets/welcome/index.js")); context.subscriptions.push(webviewPanel.onDidDispose(onDisposeCallback)); context.subscriptions.push(webviewPanel.webview.onDidReceiveMessage((message => { switch (message.command) { @@ -98,9 +98,10 @@ async function initializeWelcomeView(context: vscode.ExtensionContext, webviewPa })); } -function getHtmlForWebview(scriptPath: string) { +function getHtmlForWebview(webviewPanel: vscode.WebviewPanel, scriptPath: string) { const scriptPathOnDisk = vscode.Uri.file(scriptPath); - const scriptUri = (scriptPathOnDisk).with({ scheme: "vscode-resource" }); + const scriptUri = webviewPanel.webview.asWebviewUri(scriptPathOnDisk); + // Use a nonce to whitelist which scripts can be run const nonce = getNonce(); return ` From b3bcc9f0fff88ebff4f756b7aed0ec02a6bae5bb Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 3 Nov 2022 23:48:47 +0800 Subject: [PATCH 102/409] up version to 0.25.6 --- CHANGELOG.md | 4 ++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0bedc86b..aa1368de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 0.25.6 +### Fixed +- Webviews are not correctly rendered with VS Code 1.73.0. [#1102](https://github.com/microsoft/vscode-java-pack/issues/1102) + ## 0.25.5 ### Fixed - Fix vulnerabilities in dependencies. diff --git a/package-lock.json b/package-lock.json index 0421b411..b1af7616 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "vscode-java-pack", - "version": "0.25.5", + "version": "0.25.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "vscode-java-pack", - "version": "0.25.5", + "version": "0.25.6", "license": "MIT", "dependencies": { "@iconify-icons/codicon": "1.2.8", diff --git a/package.json b/package.json index fd1f6ab0..97fd95d7 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "Extension Pack for Java", "description": "Popular extensions for Java development that provides Java IntelliSense, debugging, testing, Maven/Gradle support, project management and more", "license": "MIT", - "version": "0.25.5", + "version": "0.25.6", "publisher": "vscjava", "preview": true, "engines": { From b38e258193fa850bc4bf4a50d4b926fb2da1eeb8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Nov 2022 19:05:51 +0800 Subject: [PATCH 103/409] Bump loader-utils from 2.0.0 to 2.0.3 (#1111) --- package-lock.json | 152 ++++++++++++++++++++++------------------------ 1 file changed, 73 insertions(+), 79 deletions(-) diff --git a/package-lock.json b/package-lock.json index b1af7616..a1149d2f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -988,6 +988,15 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -1340,6 +1349,15 @@ "integrity": "sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA==", "dev": true }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/enhanced-resolve": { "version": "5.10.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", @@ -1529,53 +1547,6 @@ "ajv": "^6.9.1" } }, - "node_modules/file-loader/node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/file-loader/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/file-loader/node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/file-loader/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/file-loader/node_modules/schema-utils": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", @@ -2062,6 +2033,18 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -2106,6 +2089,20 @@ "node": ">=6.11.5" } }, + "node_modules/loader-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -4399,6 +4396,12 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -4645,6 +4648,12 @@ "integrity": "sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA==", "dev": true }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, "enhanced-resolve": { "version": "5.10.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", @@ -4784,38 +4793,6 @@ "dev": true, "requires": {} }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "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==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, "schema-utils": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", @@ -5173,6 +5150,12 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -5206,6 +5189,17 @@ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true }, + "loader-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", From 0c1ad60836e30a98978003a69ee340e32e9bce36 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Tue, 8 Nov 2022 19:13:28 +0800 Subject: [PATCH 104/409] npm update --- package-lock.json | 1250 ++++++++++++++++++--------------------------- 1 file changed, 504 insertions(+), 746 deletions(-) diff --git a/package-lock.json b/package-lock.json index a1149d2f..894bf02f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -71,37 +71,46 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "dependencies": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@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 + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/highlight": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", + "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.10" }, "engines": { "node": ">=6.9.0" @@ -183,78 +192,73 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@microsoft/1ds-core-js": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.6.tgz", - "integrity": "sha512-6OpppYCEA+rXjcs2w0KnWji3Y6ZDx0wykY7ZL3QF68NS323C45GHSpkDpVRT/lDU6Xbau/PvQm2zTYAzLcperA==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.8.tgz", + "integrity": "sha512-9o9SUAamJiTXIYwpkQDuueYt83uZfXp8zp8YFix1IwVPwC9RmE36T2CX9gXOeq1nDckOuOduYpA8qHvdh5BGfQ==", "dependencies": { - "@microsoft/applicationinsights-core-js": "2.8.6", - "@microsoft/applicationinsights-shims": "^2.0.1", - "@microsoft/dynamicproto-js": "^1.1.6" + "@microsoft/applicationinsights-core-js": "2.8.9", + "@microsoft/applicationinsights-shims": "^2.0.2", + "@microsoft/dynamicproto-js": "^1.1.7" } }, "node_modules/@microsoft/1ds-post-js": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.6.tgz", - "integrity": "sha512-Zdyl3FU6kU/a7TlVVSTBZg+hSECTT65iI99FsjMOx88HudyVyk9M/0lVbA+FVXvGaxzmtBW6Lw0qRHYp4tBMSA==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.8.tgz", + "integrity": "sha512-SjlRoNcXcXBH6WQD/5SkkaCHIVqldH3gDu+bI7YagrOVJ5APxwT1Duw9gm3L1FjFa9S2i81fvJ3EVSKpp9wULA==", "dependencies": { - "@microsoft/1ds-core-js": "3.2.6", - "@microsoft/applicationinsights-shims": "^2.0.1", - "@microsoft/dynamicproto-js": "^1.1.6" + "@microsoft/1ds-core-js": "3.2.8", + "@microsoft/applicationinsights-shims": "^2.0.2", + "@microsoft/dynamicproto-js": "^1.1.7" } }, "node_modules/@microsoft/applicationinsights-core-js": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.6.tgz", - "integrity": "sha512-rL+ceda1Y6HaHBe1vIbNT/f5JGuHiD5Ydq+DoAfu56o13wyJu4sao3QKaabgaIM59pPO+3BMeGsK8NNUGYaT3w==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.9.tgz", + "integrity": "sha512-HRuIuZ6aOWezcg/G5VyFDDWGL8hDNe/ljPP01J7ImH2kRPEgbtcfPSUMjkamGMefgdq81GZsSoC/NNGTP4pp2w==", "dependencies": { - "@microsoft/applicationinsights-shims": "2.0.1", - "@microsoft/dynamicproto-js": "^1.1.6" + "@microsoft/applicationinsights-shims": "2.0.2", + "@microsoft/dynamicproto-js": "^1.1.7" }, "peerDependencies": { "tslib": "*" } }, "node_modules/@microsoft/applicationinsights-shims": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-2.0.1.tgz", - "integrity": "sha512-G0MXf6R6HndRbDy9BbEj0zrLeuhwt2nsXk2zKtF0TnYo39KgYqhYC2ayIzKPTm2KAE+xzD7rgyLdZnrcRvt9WQ==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-2.0.2.tgz", + "integrity": "sha512-PoHEgsnmcqruLNHZ/amACqdJ6YYQpED0KSRe6J7gIJTtpZC1FfFU9b1fmDKDKtFoUSrPzEh1qzO3kmRZP0betg==" }, "node_modules/@microsoft/dynamicproto-js": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.6.tgz", - "integrity": "sha512-D1Oivw1A4bIXhzBIy3/BBPn3p2On+kpO2NiYt9shICDK7L/w+cR6FFBUsBZ05l6iqzTeL+Jm8lAYn0g6G7DmDg==" + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.7.tgz", + "integrity": "sha512-SK3D3aVt+5vOOccKPnGaJWB5gQ8FuKfjboUJHedMP7gu54HqSCXX5iFXhktGD8nfJb0Go30eDvs/UDoTnR2kOA==" }, "node_modules/@microsoft/fast-element": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-1.6.2.tgz", - "integrity": "sha512-TrFOpe9k9xIK2iLfIG5T2+bavUAWBvAC/KQ/3ecFsK65l9PAZ/j3zlkyLxNrpIksFtUBkfVdV03kwFurZjqzKQ==" + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-1.11.0.tgz", + "integrity": "sha512-VKJYMkS5zgzHHb66sY7AFpYv6IfFhXrjQcAyNgi2ivD65My1XOhtjfKez5ELcLFRJfgZNAxvI8kE69apXERTkw==" }, "node_modules/@microsoft/fast-foundation": { - "version": "2.33.2", - "resolved": "https://registry.npmjs.org/@microsoft/fast-foundation/-/fast-foundation-2.33.2.tgz", - "integrity": "sha512-wTVo8u1eG9zUYSGDNPl4R+Yo9MTVJe7LvyI8sOqKmdggsbnYzhEa8wN0uBCnqo7W61nyhRL5FqPSh6WZGT5hUQ==", + "version": "2.47.0", + "resolved": "https://registry.npmjs.org/@microsoft/fast-foundation/-/fast-foundation-2.47.0.tgz", + "integrity": "sha512-EyFuioaZQ9ngjUNRQi8R3dIPPsaNQdUOS+tP0G7b1MJRhXmQWIitBM6IeveQA6ZvXG6H21dqgrfEWlsYrUZ2sw==", "dependencies": { - "@microsoft/fast-element": "^1.7.0", - "@microsoft/fast-web-utilities": "^5.1.0", + "@microsoft/fast-element": "^1.11.0", + "@microsoft/fast-web-utilities": "^5.4.1", "tabbable": "^5.2.0", "tslib": "^1.13.0" } }, - "node_modules/@microsoft/fast-foundation/node_modules/@microsoft/fast-element": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-1.7.0.tgz", - "integrity": "sha512-2qpAWuiOSdQfH/XdO8ZtVhlvQVCjHlojWUPoGbvHJDizBccZib+4uGReG87RIBp2Fi0s7ngYPRUioS1Lr+Xe0A==" - }, "node_modules/@microsoft/fast-react-wrapper": { "version": "0.1.18", "resolved": "https://registry.npmjs.org/@microsoft/fast-react-wrapper/-/fast-react-wrapper-0.1.18.tgz", @@ -268,11 +272,11 @@ } }, "node_modules/@microsoft/fast-web-utilities": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@microsoft/fast-web-utilities/-/fast-web-utilities-5.1.0.tgz", - "integrity": "sha512-S2PCxI4XqtIxLM1N7i/NuIAgx+mJM01+mDzyB3vZlYibAkOT0bzp5YZCp+coXowokSin/nK5T2kqShMXEzI6Jg==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@microsoft/fast-web-utilities/-/fast-web-utilities-5.4.1.tgz", + "integrity": "sha512-ReWYncndjV3c8D8iq9tp7NcFNc1vbVHvcBFPME2nNFKNbS1XCesYZGlIlf3ot5EmuOXPlrzUHOWzQ2vFpIkqDg==", "dependencies": { - "exenv-es6": "^1.0.0" + "exenv-es6": "^1.1.1" } }, "node_modules/@microsoft/tsdoc": { @@ -291,6 +295,18 @@ "resolve": "~1.19.0" } }, + "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/@popperjs/core": { "version": "2.11.6", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", @@ -301,14 +317,14 @@ } }, "node_modules/@reduxjs/toolkit": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.8.6.tgz", - "integrity": "sha512-4Ia/Loc6WLmdSOzi7k5ff7dLK8CgG2b8aqpLsCAJhazAzGdp//YBUSaj0ceW6a3kDBDNRrq5CRwyCS0wBiL1ig==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.0.tgz", + "integrity": "sha512-ak11IrjYcUXRqlhNPwnz6AcvA2ynJTu8PzDbbqQw4a3xR4KZtgiqbNblQD+10CRbfK4+5C79SOyxnT9dhBqFnA==", "dependencies": { - "immer": "^9.0.7", - "redux": "^4.1.2", - "redux-thunk": "^2.4.1", - "reselect": "^4.1.5" + "immer": "^9.0.16", + "redux": "^4.2.0", + "redux-thunk": "^2.4.2", + "reselect": "^4.1.7" }, "peerDependencies": { "react": "^16.9.0 || ^17.0.0 || ^18", @@ -349,9 +365,9 @@ "dev": true }, "node_modules/@types/eslint": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", - "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", "dev": true, "dependencies": { "@types/estree": "*", @@ -404,15 +420,15 @@ "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" }, "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, "node_modules/@types/lodash": { - "version": "4.14.186", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.186.tgz", - "integrity": "sha512-eHcVlLXP0c2FlMPm56ITode2AgLMSa6aJ05JTTbYbI+7EMkCEE5qk2E41d5g2lCVTqRe0GnnRFurmlCsDODrPw==", + "version": "4.14.188", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.188.tgz", + "integrity": "sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w==", "dev": true }, "node_modules/@types/minimatch": { @@ -422,9 +438,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "16.11.65", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.65.tgz", - "integrity": "sha512-Vfz7wGMOr4jbQGiQHVJm8VjeQwM9Ya7mHe9LtQ264/Epf5n1KiZShOFqk++nBzw6a/ubgYdB9Od7P+MH/LjoWw==", + "version": "16.18.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", + "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==", "dev": true }, "node_modules/@types/parse-json": { @@ -445,9 +461,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "node_modules/@types/react": { - "version": "17.0.50", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.50.tgz", - "integrity": "sha512-ZCBHzpDb5skMnc1zFXAXnL3l1FAdi+xZvwxK+PkglMmBrwjpp9nKaWuEvrGnSifCJmBFGxZOOFuwC6KH/s0NuA==", + "version": "17.0.52", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.52.tgz", + "integrity": "sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -455,18 +471,18 @@ } }, "node_modules/@types/react-dom": { - "version": "16.9.16", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.16.tgz", - "integrity": "sha512-Oqc0RY4fggGA3ltEgyPLc3IV9T73IGoWjkONbsyJ3ZBn+UPPCYpU2ec0i3cEbJuEdZtkqcCF2l1zf2pBdgUGSg==", + "version": "16.9.17", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.17.tgz", + "integrity": "sha512-qSRyxEsrm5btPXnowDOs5jSkgT8ldAA0j6Qp+otHUh+xHzy3sXmgNfyhucZjAjkgpdAUw9rJe0QRtX/l+yaS4g==", "dev": true, "dependencies": { "@types/react": "^16" } }, "node_modules/@types/react-dom/node_modules/@types/react": { - "version": "16.14.26", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.26.tgz", - "integrity": "sha512-c/5CYyciOO4XdFcNhZW1O2woVx86k4T+DO2RorHZL7EhitkNQgSD/SgpdZJAUJa/qjVgOmTM44gHkAdZSXeQuQ==", + "version": "16.14.34", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.34.tgz", + "integrity": "sha512-b99nWeGGReLh6aKBppghVqp93dFJtgtDOzc8NXM6hewD8PQ2zZG5kBLgbx+VJr7Q7WBMjHxaIl3dwpwwPIUgyA==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -499,9 +515,9 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "node_modules/@types/semver": { - "version": "7.3.12", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz", - "integrity": "sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==", + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", "dev": true }, "node_modules/@types/vscode": { @@ -760,9 +776,9 @@ } }, "node_modules/@xmldom/xmldom": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.5.tgz", - "integrity": "sha512-0dpjDLeCXYThL2YhqZcd/spuwoH+dmnFoND9ZxZkAYxp1IJUB2GP16ow2MJRsjVxy8j1Qv8BJRmN5GKnbDKCmQ==", + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.6.tgz", + "integrity": "sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg==", "engines": { "node": ">=10.0.0" } @@ -780,9 +796,9 @@ "dev": true }, "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -867,9 +883,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.12", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz", - "integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==", + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", "dev": true, "funding": [ { @@ -883,7 +899,7 @@ ], "dependencies": { "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001407", + "caniuse-lite": "^1.0.30001426", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -899,82 +915,6 @@ "postcss": "^8.1.0" } }, - "node_modules/autoprefixer/node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/autoprefixer/node_modules/caniuse-lite": { - "version": "1.0.30001418", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz", - "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/autoprefixer/node_modules/electron-to-chromium": { - "version": "1.4.279", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.279.tgz", - "integrity": "sha512-xs7vEuSZ84+JsHSTFqqG0TE3i8EAivHomRQZhhcRvsmnjsh5C2KdhwNKf4ZRYtzq75wojpFyqb62m32Oam57wA==", - "dev": true - }, - "node_modules/autoprefixer/node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, "node_modules/axios": { "version": "0.21.4", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", @@ -1047,9 +987,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, "funding": [ { @@ -1062,10 +1002,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" + "update-browserslist-db": "^1.0.9" }, "bin": { "browserslist": "cli.js" @@ -1083,7 +1023,7 @@ "node_modules/builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -1108,9 +1048,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001373", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", - "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", + "version": "1.0.30001431", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", + "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", "dev": true, "funding": [ { @@ -1124,9 +1064,9 @@ ] }, "node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { "ansi-styles": "^3.2.1", @@ -1174,9 +1114,9 @@ } }, "node_modules/classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" }, "node_modules/clone-deep": { "version": "4.0.1", @@ -1204,7 +1144,7 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/colorette": { @@ -1214,9 +1154,9 @@ "dev": true }, "node_modules/commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "node_modules/compare-versions": { @@ -1227,7 +1167,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/cosmiconfig": { "version": "7.0.1", @@ -1285,21 +1225,6 @@ "webpack": "^5.0.0" } }, - "node_modules/css-loader/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -1313,9 +1238,9 @@ } }, "node_modules/csstype": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" }, "node_modules/dequal": { "version": "2.0.3", @@ -1344,9 +1269,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.206", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.206.tgz", - "integrity": "sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA==", + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", "dev": true }, "node_modules/emojis-list": { @@ -1410,7 +1335,7 @@ "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -1482,19 +1407,19 @@ } }, "node_modules/exenv-es6": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/exenv-es6/-/exenv-es6-1.0.0.tgz", - "integrity": "sha512-fcG/TX8Ruv9Ma6PBaiNsUrHRJzVzuFMP6LtPn/9iqR+nr9mcLeEOGzXQGLC5CVQSXGE98HtzW2mTZkrCA3XrDg==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exenv-es6/-/exenv-es6-1.1.1.tgz", + "integrity": "sha512-vlVu3N8d6yEMpMsEm+7sUBAI81aqYYuEvfK0jNqmdb/OPXzzH7QWDDnVjMvDSY47JdHEqx/dfC/q8WkfoTmpGQ==" }, "node_modules/expand-home-dir": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/expand-home-dir/-/expand-home-dir-0.0.3.tgz", - "integrity": "sha1-ct6KBIbMKKO71wRjU5iCW1tign0=" + "integrity": "sha512-f4P4+coDbYiQPui6LHV4DQFEvzINm9de9w7f+4kz5aGM5kcoe8zc7hnrOLAO7+NAlCLJtNhepUqkLDMKRPQoLA==" }, "node_modules/expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", "dependencies": { "homedir-polyfill": "^1.0.1" }, @@ -1513,10 +1438,13 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/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 + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } }, "node_modules/file-loader": { "version": "6.2.0", @@ -1538,49 +1466,6 @@ "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/file-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/file-loader/node_modules/schema-utils/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -1607,9 +1492,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "funding": [ { "type": "individual", @@ -1655,7 +1540,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "node_modules/fsevents": { @@ -1678,15 +1563,15 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -1716,9 +1601,9 @@ "dev": true }, "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "node_modules/has": { "version": "1.0.3", @@ -1734,7 +1619,7 @@ "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" @@ -1757,9 +1642,9 @@ } }, "node_modules/homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dependencies": { "parse-passwd": "^1.0.0" }, @@ -1780,9 +1665,9 @@ } }, "node_modules/immer": { - "version": "9.0.15", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", - "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==", + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", + "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" @@ -1832,7 +1717,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { "once": "^1.3.0", @@ -1840,9 +1725,9 @@ } }, "node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "node_modules/interpret": { @@ -1865,7 +1750,7 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, "node_modules/is-binary-path": { @@ -1881,9 +1766,9 @@ } }, "node_modules/is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dependencies": { "has": "^1.0.3" }, @@ -1997,7 +1882,7 @@ "node_modules/jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=" + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==" }, "node_modules/jquery": { "version": "3.6.1", @@ -2075,9 +1960,9 @@ } }, "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "node_modules/loader-runner": { @@ -2199,19 +2084,21 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/mkdirp": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", - "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" @@ -2262,7 +2149,7 @@ "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "engines": { "node": ">=0.10.0" } @@ -2270,7 +2157,7 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { "wrappy": "1" @@ -2345,7 +2232,7 @@ "node_modules/parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", "engines": { "node": ">=0.10.0" } @@ -2361,8 +2248,8 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2433,9 +2320,9 @@ } }, "node_modules/postcss": { - "version": "8.4.17", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.17.tgz", - "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", "dev": true, "funding": [ { @@ -2478,21 +2365,6 @@ "webpack": "^5.0.0" } }, - "node_modules/postcss-loader/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/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", @@ -2553,9 +2425,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -2574,7 +2446,7 @@ "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, "engines": { "node": ">= 0.6.0" @@ -2685,12 +2557,12 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "node_modules/react-overlays": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.0.tgz", - "integrity": "sha512-dKZR/w6qeAsW0z0aIlwq/5H/M6o5T4RSlPnqIKqYVJ++rjoPSFcVggPhDWno8awZQsuMMtkjuksTbE8vOY0s9g==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", + "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==", "dependencies": { "@babel/runtime": "^7.13.8", - "@popperjs/core": "^2.8.6", + "@popperjs/core": "^2.11.6", "@restart/hooks": "^0.4.7", "@types/warning": "^3.0.0", "dom-helpers": "^5.2.0", @@ -2780,30 +2652,35 @@ } }, "node_modules/redux-thunk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", - "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", "peerDependencies": { "redux": "^4" } }, "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" }, "node_modules/reselect": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz", - "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==" + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz", + "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==" }, "node_modules/resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, "dependencies": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2860,9 +2737,9 @@ ] }, "node_modules/sass": { - "version": "1.55.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz", - "integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==", + "version": "1.56.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.0.tgz", + "integrity": "sha512-WFJ9XrpkcnqZcYuLRJh5qiV6ibQOR4AezleeEjTjMsCocYW59dEG19U3fwTTXxzi2Ed3yjPBp727hbbj53pHFw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -3028,7 +2905,7 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, "node_modules/style-loader": { @@ -3059,10 +2936,22 @@ "node": ">=4" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/tabbable": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.2.1.tgz", - "integrity": "sha512-40pEZ2mhjaZzK0BnI+QGNjJO8UYx9pP5v7BGe17SORTO0OEuuaAwQTkAp8whcZvqon44wKFOikD+Al11K3JICQ==" + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.3.3.tgz", + "integrity": "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==" }, "node_modules/tapable": { "version": "2.2.1", @@ -3090,9 +2979,9 @@ } }, "node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -3108,16 +2997,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", - "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.7", + "@jridgewell/trace-mapping": "^0.3.14", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "terser": "^5.7.2" + "terser": "^5.14.1" }, "engines": { "node": ">= 10.13.0" @@ -3141,12 +3030,6 @@ } } }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -3340,9 +3223,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "dev": true, "funding": [ { @@ -3376,7 +3259,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "node_modules/uuid": { @@ -3556,25 +3439,6 @@ "node": ">=10.13.0" } }, - "node_modules/webpack/node_modules/enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -3599,7 +3463,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "node_modules/yallist": { @@ -3619,37 +3483,37 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.18.6" } }, "@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==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true }, "@babel/highlight": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", + "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", "requires": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.10" } }, "@discoveryjs/json-ext": { @@ -3716,75 +3580,68 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "@microsoft/1ds-core-js": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.6.tgz", - "integrity": "sha512-6OpppYCEA+rXjcs2w0KnWji3Y6ZDx0wykY7ZL3QF68NS323C45GHSpkDpVRT/lDU6Xbau/PvQm2zTYAzLcperA==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.8.tgz", + "integrity": "sha512-9o9SUAamJiTXIYwpkQDuueYt83uZfXp8zp8YFix1IwVPwC9RmE36T2CX9gXOeq1nDckOuOduYpA8qHvdh5BGfQ==", "requires": { - "@microsoft/applicationinsights-core-js": "2.8.6", - "@microsoft/applicationinsights-shims": "^2.0.1", - "@microsoft/dynamicproto-js": "^1.1.6" + "@microsoft/applicationinsights-core-js": "2.8.9", + "@microsoft/applicationinsights-shims": "^2.0.2", + "@microsoft/dynamicproto-js": "^1.1.7" } }, "@microsoft/1ds-post-js": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.6.tgz", - "integrity": "sha512-Zdyl3FU6kU/a7TlVVSTBZg+hSECTT65iI99FsjMOx88HudyVyk9M/0lVbA+FVXvGaxzmtBW6Lw0qRHYp4tBMSA==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.8.tgz", + "integrity": "sha512-SjlRoNcXcXBH6WQD/5SkkaCHIVqldH3gDu+bI7YagrOVJ5APxwT1Duw9gm3L1FjFa9S2i81fvJ3EVSKpp9wULA==", "requires": { - "@microsoft/1ds-core-js": "3.2.6", - "@microsoft/applicationinsights-shims": "^2.0.1", - "@microsoft/dynamicproto-js": "^1.1.6" + "@microsoft/1ds-core-js": "3.2.8", + "@microsoft/applicationinsights-shims": "^2.0.2", + "@microsoft/dynamicproto-js": "^1.1.7" } }, "@microsoft/applicationinsights-core-js": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.6.tgz", - "integrity": "sha512-rL+ceda1Y6HaHBe1vIbNT/f5JGuHiD5Ydq+DoAfu56o13wyJu4sao3QKaabgaIM59pPO+3BMeGsK8NNUGYaT3w==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.9.tgz", + "integrity": "sha512-HRuIuZ6aOWezcg/G5VyFDDWGL8hDNe/ljPP01J7ImH2kRPEgbtcfPSUMjkamGMefgdq81GZsSoC/NNGTP4pp2w==", "requires": { - "@microsoft/applicationinsights-shims": "2.0.1", - "@microsoft/dynamicproto-js": "^1.1.6" + "@microsoft/applicationinsights-shims": "2.0.2", + "@microsoft/dynamicproto-js": "^1.1.7" } }, "@microsoft/applicationinsights-shims": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-2.0.1.tgz", - "integrity": "sha512-G0MXf6R6HndRbDy9BbEj0zrLeuhwt2nsXk2zKtF0TnYo39KgYqhYC2ayIzKPTm2KAE+xzD7rgyLdZnrcRvt9WQ==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-2.0.2.tgz", + "integrity": "sha512-PoHEgsnmcqruLNHZ/amACqdJ6YYQpED0KSRe6J7gIJTtpZC1FfFU9b1fmDKDKtFoUSrPzEh1qzO3kmRZP0betg==" }, "@microsoft/dynamicproto-js": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.6.tgz", - "integrity": "sha512-D1Oivw1A4bIXhzBIy3/BBPn3p2On+kpO2NiYt9shICDK7L/w+cR6FFBUsBZ05l6iqzTeL+Jm8lAYn0g6G7DmDg==" + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.7.tgz", + "integrity": "sha512-SK3D3aVt+5vOOccKPnGaJWB5gQ8FuKfjboUJHedMP7gu54HqSCXX5iFXhktGD8nfJb0Go30eDvs/UDoTnR2kOA==" }, "@microsoft/fast-element": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-1.6.2.tgz", - "integrity": "sha512-TrFOpe9k9xIK2iLfIG5T2+bavUAWBvAC/KQ/3ecFsK65l9PAZ/j3zlkyLxNrpIksFtUBkfVdV03kwFurZjqzKQ==" + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-1.11.0.tgz", + "integrity": "sha512-VKJYMkS5zgzHHb66sY7AFpYv6IfFhXrjQcAyNgi2ivD65My1XOhtjfKez5ELcLFRJfgZNAxvI8kE69apXERTkw==" }, "@microsoft/fast-foundation": { - "version": "2.33.2", - "resolved": "https://registry.npmjs.org/@microsoft/fast-foundation/-/fast-foundation-2.33.2.tgz", - "integrity": "sha512-wTVo8u1eG9zUYSGDNPl4R+Yo9MTVJe7LvyI8sOqKmdggsbnYzhEa8wN0uBCnqo7W61nyhRL5FqPSh6WZGT5hUQ==", + "version": "2.47.0", + "resolved": "https://registry.npmjs.org/@microsoft/fast-foundation/-/fast-foundation-2.47.0.tgz", + "integrity": "sha512-EyFuioaZQ9ngjUNRQi8R3dIPPsaNQdUOS+tP0G7b1MJRhXmQWIitBM6IeveQA6ZvXG6H21dqgrfEWlsYrUZ2sw==", "requires": { - "@microsoft/fast-element": "^1.7.0", - "@microsoft/fast-web-utilities": "^5.1.0", + "@microsoft/fast-element": "^1.11.0", + "@microsoft/fast-web-utilities": "^5.4.1", "tabbable": "^5.2.0", "tslib": "^1.13.0" - }, - "dependencies": { - "@microsoft/fast-element": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-1.7.0.tgz", - "integrity": "sha512-2qpAWuiOSdQfH/XdO8ZtVhlvQVCjHlojWUPoGbvHJDizBccZib+4uGReG87RIBp2Fi0s7ngYPRUioS1Lr+Xe0A==" - } } }, "@microsoft/fast-react-wrapper": { @@ -3797,11 +3654,11 @@ } }, "@microsoft/fast-web-utilities": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@microsoft/fast-web-utilities/-/fast-web-utilities-5.1.0.tgz", - "integrity": "sha512-S2PCxI4XqtIxLM1N7i/NuIAgx+mJM01+mDzyB3vZlYibAkOT0bzp5YZCp+coXowokSin/nK5T2kqShMXEzI6Jg==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@microsoft/fast-web-utilities/-/fast-web-utilities-5.4.1.tgz", + "integrity": "sha512-ReWYncndjV3c8D8iq9tp7NcFNc1vbVHvcBFPME2nNFKNbS1XCesYZGlIlf3ot5EmuOXPlrzUHOWzQ2vFpIkqDg==", "requires": { - "exenv-es6": "^1.0.0" + "exenv-es6": "^1.1.1" } }, "@microsoft/tsdoc": { @@ -3818,6 +3675,17 @@ "ajv": "~6.12.6", "jju": "~1.4.0", "resolve": "~1.19.0" + }, + "dependencies": { + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + } } }, "@popperjs/core": { @@ -3826,14 +3694,14 @@ "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" }, "@reduxjs/toolkit": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.8.6.tgz", - "integrity": "sha512-4Ia/Loc6WLmdSOzi7k5ff7dLK8CgG2b8aqpLsCAJhazAzGdp//YBUSaj0ceW6a3kDBDNRrq5CRwyCS0wBiL1ig==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.0.tgz", + "integrity": "sha512-ak11IrjYcUXRqlhNPwnz6AcvA2ynJTu8PzDbbqQw4a3xR4KZtgiqbNblQD+10CRbfK4+5C79SOyxnT9dhBqFnA==", "requires": { - "immer": "^9.0.7", - "redux": "^4.1.2", - "redux-thunk": "^2.4.1", - "reselect": "^4.1.5" + "immer": "^9.0.16", + "redux": "^4.2.0", + "redux-thunk": "^2.4.2", + "reselect": "^4.1.7" } }, "@restart/context": { @@ -3857,9 +3725,9 @@ "dev": true }, "@types/eslint": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", - "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", "dev": true, "requires": { "@types/estree": "*", @@ -3912,15 +3780,15 @@ "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" }, "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, "@types/lodash": { - "version": "4.14.186", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.186.tgz", - "integrity": "sha512-eHcVlLXP0c2FlMPm56ITode2AgLMSa6aJ05JTTbYbI+7EMkCEE5qk2E41d5g2lCVTqRe0GnnRFurmlCsDODrPw==", + "version": "4.14.188", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.188.tgz", + "integrity": "sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w==", "dev": true }, "@types/minimatch": { @@ -3930,9 +3798,9 @@ "dev": true }, "@types/node": { - "version": "16.11.65", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.65.tgz", - "integrity": "sha512-Vfz7wGMOr4jbQGiQHVJm8VjeQwM9Ya7mHe9LtQ264/Epf5n1KiZShOFqk++nBzw6a/ubgYdB9Od7P+MH/LjoWw==", + "version": "16.18.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", + "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==", "dev": true }, "@types/parse-json": { @@ -3953,9 +3821,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "@types/react": { - "version": "17.0.50", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.50.tgz", - "integrity": "sha512-ZCBHzpDb5skMnc1zFXAXnL3l1FAdi+xZvwxK+PkglMmBrwjpp9nKaWuEvrGnSifCJmBFGxZOOFuwC6KH/s0NuA==", + "version": "17.0.52", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.52.tgz", + "integrity": "sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3963,18 +3831,18 @@ } }, "@types/react-dom": { - "version": "16.9.16", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.16.tgz", - "integrity": "sha512-Oqc0RY4fggGA3ltEgyPLc3IV9T73IGoWjkONbsyJ3ZBn+UPPCYpU2ec0i3cEbJuEdZtkqcCF2l1zf2pBdgUGSg==", + "version": "16.9.17", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.17.tgz", + "integrity": "sha512-qSRyxEsrm5btPXnowDOs5jSkgT8ldAA0j6Qp+otHUh+xHzy3sXmgNfyhucZjAjkgpdAUw9rJe0QRtX/l+yaS4g==", "dev": true, "requires": { "@types/react": "^16" }, "dependencies": { "@types/react": { - "version": "16.14.26", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.26.tgz", - "integrity": "sha512-c/5CYyciOO4XdFcNhZW1O2woVx86k4T+DO2RorHZL7EhitkNQgSD/SgpdZJAUJa/qjVgOmTM44gHkAdZSXeQuQ==", + "version": "16.14.34", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.34.tgz", + "integrity": "sha512-b99nWeGGReLh6aKBppghVqp93dFJtgtDOzc8NXM6hewD8PQ2zZG5kBLgbx+VJr7Q7WBMjHxaIl3dwpwwPIUgyA==", "dev": true, "requires": { "@types/prop-types": "*", @@ -4009,9 +3877,9 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "@types/semver": { - "version": "7.3.12", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz", - "integrity": "sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==", + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", "dev": true }, "@types/vscode": { @@ -4253,9 +4121,9 @@ "requires": {} }, "@xmldom/xmldom": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.5.tgz", - "integrity": "sha512-0dpjDLeCXYThL2YhqZcd/spuwoH+dmnFoND9ZxZkAYxp1IJUB2GP16ow2MJRsjVxy8j1Qv8BJRmN5GKnbDKCmQ==" + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.6.tgz", + "integrity": "sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg==" }, "@xtuc/ieee754": { "version": "1.2.0", @@ -4270,9 +4138,9 @@ "dev": true }, "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true }, "acorn-import-assertions": { @@ -4334,53 +4202,17 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" }, "autoprefixer": { - "version": "10.4.12", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz", - "integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==", + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", "dev": true, "requires": { "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001407", + "caniuse-lite": "^1.0.30001426", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" - }, - "dependencies": { - "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" - } - }, - "caniuse-lite": { - "version": "1.0.30001418", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz", - "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.279", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.279.tgz", - "integrity": "sha512-xs7vEuSZ84+JsHSTFqqG0TE3i8EAivHomRQZhhcRvsmnjsh5C2KdhwNKf4ZRYtzq75wojpFyqb62m32Oam57wA==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - } } }, "axios": { @@ -4433,15 +4265,15 @@ } }, "browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" + "update-browserslist-db": "^1.0.9" } }, "buffer-from": { @@ -4453,7 +4285,7 @@ "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", "dev": true }, "bytes": { @@ -4469,15 +4301,15 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001373", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", - "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", + "version": "1.0.30001431", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", + "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", "dev": true }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "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", @@ -4508,9 +4340,9 @@ "dev": true }, "classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" }, "clone-deep": { "version": "4.0.1", @@ -4535,7 +4367,7 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "colorette": { @@ -4545,9 +4377,9 @@ "dev": true }, "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "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 }, "compare-versions": { @@ -4558,7 +4390,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "cosmiconfig": { "version": "7.0.1", @@ -4598,17 +4430,6 @@ "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "cssesc": { @@ -4618,9 +4439,9 @@ "dev": true }, "csstype": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" }, "dequal": { "version": "2.0.3", @@ -4643,9 +4464,9 @@ } }, "electron-to-chromium": { - "version": "1.4.206", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.206.tgz", - "integrity": "sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA==", + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", "dev": true }, "emojis-list": { @@ -4694,7 +4515,7 @@ "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=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true }, "eslint-scope": { @@ -4743,19 +4564,19 @@ "dev": true }, "exenv-es6": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/exenv-es6/-/exenv-es6-1.0.0.tgz", - "integrity": "sha512-fcG/TX8Ruv9Ma6PBaiNsUrHRJzVzuFMP6LtPn/9iqR+nr9mcLeEOGzXQGLC5CVQSXGE98HtzW2mTZkrCA3XrDg==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exenv-es6/-/exenv-es6-1.1.1.tgz", + "integrity": "sha512-vlVu3N8d6yEMpMsEm+7sUBAI81aqYYuEvfK0jNqmdb/OPXzzH7QWDDnVjMvDSY47JdHEqx/dfC/q8WkfoTmpGQ==" }, "expand-home-dir": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/expand-home-dir/-/expand-home-dir-0.0.3.tgz", - "integrity": "sha1-ct6KBIbMKKO71wRjU5iCW1tign0=" + "integrity": "sha512-f4P4+coDbYiQPui6LHV4DQFEvzINm9de9w7f+4kz5aGM5kcoe8zc7hnrOLAO7+NAlCLJtNhepUqkLDMKRPQoLA==" }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", "requires": { "homedir-polyfill": "^1.0.1" } @@ -4771,9 +4592,9 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "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==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true }, "file-loader": { @@ -4784,40 +4605,6 @@ "requires": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" - }, - "dependencies": { - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "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==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - } - } - } } }, "fill-range": { @@ -4840,9 +4627,9 @@ } }, "follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==" + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" }, "fraction.js": { "version": "4.2.0", @@ -4864,7 +4651,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "fsevents": { @@ -4880,15 +4667,15 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } @@ -4909,9 +4696,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "has": { "version": "1.0.3", @@ -4924,7 +4711,7 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, "highlight.js": { @@ -4941,9 +4728,9 @@ } }, "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "requires": { "parse-passwd": "^1.0.0" } @@ -4956,9 +4743,9 @@ "requires": {} }, "immer": { - "version": "9.0.15", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", - "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==" + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", + "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==" }, "immutable": { "version": "4.1.0", @@ -4989,7 +4776,7 @@ "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "requires": { "once": "^1.3.0", @@ -4997,9 +4784,9 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "interpret": { @@ -5019,7 +4806,7 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, "is-binary-path": { @@ -5032,9 +4819,9 @@ } }, "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "requires": { "has": "^1.0.3" } @@ -5117,7 +4904,7 @@ "jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=" + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==" }, "jquery": { "version": "3.6.1", @@ -5178,9 +4965,9 @@ "dev": true }, "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=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "loader-runner": { @@ -5275,18 +5062,18 @@ } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true }, "mkdirp": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", - "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "requires": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" } }, "nanoid": { @@ -5322,12 +5109,12 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "requires": { "wrappy": "1" @@ -5381,7 +5168,7 @@ "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==" }, "path-exists": { "version": "4.0.0", @@ -5391,8 +5178,8 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true }, "path-key": { @@ -5440,9 +5227,9 @@ "peer": true }, "postcss": { - "version": "8.4.17", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.17.tgz", - "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", "dev": true, "requires": { "nanoid": "^3.3.4", @@ -5459,17 +5246,6 @@ "cosmiconfig": "^7.0.0", "klona": "^2.0.5", "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "postcss-modules-extract-imports": { @@ -5509,9 +5285,9 @@ } }, "postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -5527,7 +5303,7 @@ "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true }, "prop-types": { @@ -5619,12 +5395,12 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "react-overlays": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.0.tgz", - "integrity": "sha512-dKZR/w6qeAsW0z0aIlwq/5H/M6o5T4RSlPnqIKqYVJ++rjoPSFcVggPhDWno8awZQsuMMtkjuksTbE8vOY0s9g==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", + "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==", "requires": { "@babel/runtime": "^7.13.8", - "@popperjs/core": "^2.8.6", + "@popperjs/core": "^2.11.6", "@restart/hooks": "^0.4.7", "@types/warning": "^3.0.0", "dom-helpers": "^5.2.0", @@ -5691,28 +5467,30 @@ } }, "redux-thunk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", - "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", "requires": {} }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" }, "reselect": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz", - "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==" + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz", + "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==" }, "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-cwd": { @@ -5745,9 +5523,9 @@ "dev": true }, "sass": { - "version": "1.55.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz", - "integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==", + "version": "1.56.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.0.tgz", + "integrity": "sha512-WFJ9XrpkcnqZcYuLRJh5qiV6ibQOR4AezleeEjTjMsCocYW59dEG19U3fwTTXxzi2Ed3yjPBp727hbbj53pHFw==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -5851,7 +5629,7 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, "style-loader": { @@ -5870,10 +5648,16 @@ "has-flag": "^3.0.0" } }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, "tabbable": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.2.1.tgz", - "integrity": "sha512-40pEZ2mhjaZzK0BnI+QGNjJO8UYx9pP5v7BGe17SORTO0OEuuaAwQTkAp8whcZvqon44wKFOikD+Al11K3JICQ==" + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.3.3.tgz", + "integrity": "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==" }, "tapable": { "version": "2.2.1", @@ -5900,36 +5684,28 @@ } }, "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } } }, "terser-webpack-plugin": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", - "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.7", + "@jridgewell/trace-mapping": "^0.3.14", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "terser": "^5.7.2" + "terser": "^5.14.1" } }, "to-regex-range": { @@ -6070,9 +5846,9 @@ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" }, "update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -6090,7 +5866,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "uuid": { @@ -6163,24 +5939,6 @@ "terser-webpack-plugin": "^5.1.3", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" - }, - "dependencies": { - "enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - } } }, "webpack-cli": { @@ -6245,7 +6003,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "yallist": { From 6a4eb68038aa9fafba332a2fa55eef765f3ff16a Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Tue, 8 Nov 2022 19:15:57 +0800 Subject: [PATCH 105/409] update endgame template --- .github/ISSUE_TEMPLATE/Endgame.md | 33 ++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/Endgame.md b/.github/ISSUE_TEMPLATE/Endgame.md index 35cd4603..0a90aa7e 100644 --- a/.github/ISSUE_TEMPLATE/Endgame.md +++ b/.github/ISSUE_TEMPLATE/Endgame.md @@ -15,26 +15,26 @@ Mark | Description ## Verification items -#### Extension Pack -verifier: +#### Extension Pack +verifier: -#### Project Manager for Java -verifier: +#### Project Manager for Java +verifier: #### Debugger for Java -verifier: +verifier: #### Maven for Java -verifier: +verifier: #### Gradle for Java -verifier: +verifier: #### Test Runner for Java -verifier: +verifier: #### Spring Boot Dashboard -verifier: +verifier: ## Verification follow-ups - [ ] Extension Pack @@ -53,5 +53,16 @@ verifier: - [ ] Gradle for Java - [ ] Test Runner for Java - [ ] Spring Boot Dashboard - -## External Contributions + +## External Contributions + +## Post-Release Tasks +Please update dependencies for each project to avoid vulnerabilities. For any reason not to update, create and track corresponding issues in each repo. +- [ ] Extension Pack @Eskibear +- [ ] Project Manager for Java @jdneo +- [ ] Debugger for Java @testforstephen +- [ ] Maven for Java @Eskibear +- [ ] Gradle for Java @CsCherrYY +- [ ] Test Runner for Java @jdneo +- [ ] LSIF Java indexer @CsCherrYY +- [ ] Spring Extensions @Eskibear From 91670158832d97e0c8eaeb697f1c28a348d47a62 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Tue, 8 Nov 2022 20:20:45 +0800 Subject: [PATCH 106/409] Revert "npm update" This reverts commit 0c1ad60836e30a98978003a69ee340e32e9bce36. --- package-lock.json | 1250 +++++++++++++++++++++++++++------------------ 1 file changed, 746 insertions(+), 504 deletions(-) diff --git a/package-lock.json b/package-lock.json index 894bf02f..a1149d2f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -71,46 +71,37 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", "dev": true, "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" + "@babel/highlight": "^7.12.13" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } + "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 }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" } }, "node_modules/@babel/runtime": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", - "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", + "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", "dependencies": { - "regenerator-runtime": "^0.13.10" + "regenerator-runtime": "^0.13.4" }, "engines": { "node": ">=6.9.0" @@ -192,73 +183,78 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "node_modules/@microsoft/1ds-core-js": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.8.tgz", - "integrity": "sha512-9o9SUAamJiTXIYwpkQDuueYt83uZfXp8zp8YFix1IwVPwC9RmE36T2CX9gXOeq1nDckOuOduYpA8qHvdh5BGfQ==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.6.tgz", + "integrity": "sha512-6OpppYCEA+rXjcs2w0KnWji3Y6ZDx0wykY7ZL3QF68NS323C45GHSpkDpVRT/lDU6Xbau/PvQm2zTYAzLcperA==", "dependencies": { - "@microsoft/applicationinsights-core-js": "2.8.9", - "@microsoft/applicationinsights-shims": "^2.0.2", - "@microsoft/dynamicproto-js": "^1.1.7" + "@microsoft/applicationinsights-core-js": "2.8.6", + "@microsoft/applicationinsights-shims": "^2.0.1", + "@microsoft/dynamicproto-js": "^1.1.6" } }, "node_modules/@microsoft/1ds-post-js": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.8.tgz", - "integrity": "sha512-SjlRoNcXcXBH6WQD/5SkkaCHIVqldH3gDu+bI7YagrOVJ5APxwT1Duw9gm3L1FjFa9S2i81fvJ3EVSKpp9wULA==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.6.tgz", + "integrity": "sha512-Zdyl3FU6kU/a7TlVVSTBZg+hSECTT65iI99FsjMOx88HudyVyk9M/0lVbA+FVXvGaxzmtBW6Lw0qRHYp4tBMSA==", "dependencies": { - "@microsoft/1ds-core-js": "3.2.8", - "@microsoft/applicationinsights-shims": "^2.0.2", - "@microsoft/dynamicproto-js": "^1.1.7" + "@microsoft/1ds-core-js": "3.2.6", + "@microsoft/applicationinsights-shims": "^2.0.1", + "@microsoft/dynamicproto-js": "^1.1.6" } }, "node_modules/@microsoft/applicationinsights-core-js": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.9.tgz", - "integrity": "sha512-HRuIuZ6aOWezcg/G5VyFDDWGL8hDNe/ljPP01J7ImH2kRPEgbtcfPSUMjkamGMefgdq81GZsSoC/NNGTP4pp2w==", + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.6.tgz", + "integrity": "sha512-rL+ceda1Y6HaHBe1vIbNT/f5JGuHiD5Ydq+DoAfu56o13wyJu4sao3QKaabgaIM59pPO+3BMeGsK8NNUGYaT3w==", "dependencies": { - "@microsoft/applicationinsights-shims": "2.0.2", - "@microsoft/dynamicproto-js": "^1.1.7" + "@microsoft/applicationinsights-shims": "2.0.1", + "@microsoft/dynamicproto-js": "^1.1.6" }, "peerDependencies": { "tslib": "*" } }, "node_modules/@microsoft/applicationinsights-shims": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-2.0.2.tgz", - "integrity": "sha512-PoHEgsnmcqruLNHZ/amACqdJ6YYQpED0KSRe6J7gIJTtpZC1FfFU9b1fmDKDKtFoUSrPzEh1qzO3kmRZP0betg==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-2.0.1.tgz", + "integrity": "sha512-G0MXf6R6HndRbDy9BbEj0zrLeuhwt2nsXk2zKtF0TnYo39KgYqhYC2ayIzKPTm2KAE+xzD7rgyLdZnrcRvt9WQ==" }, "node_modules/@microsoft/dynamicproto-js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.7.tgz", - "integrity": "sha512-SK3D3aVt+5vOOccKPnGaJWB5gQ8FuKfjboUJHedMP7gu54HqSCXX5iFXhktGD8nfJb0Go30eDvs/UDoTnR2kOA==" + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.6.tgz", + "integrity": "sha512-D1Oivw1A4bIXhzBIy3/BBPn3p2On+kpO2NiYt9shICDK7L/w+cR6FFBUsBZ05l6iqzTeL+Jm8lAYn0g6G7DmDg==" }, "node_modules/@microsoft/fast-element": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-1.11.0.tgz", - "integrity": "sha512-VKJYMkS5zgzHHb66sY7AFpYv6IfFhXrjQcAyNgi2ivD65My1XOhtjfKez5ELcLFRJfgZNAxvI8kE69apXERTkw==" + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-1.6.2.tgz", + "integrity": "sha512-TrFOpe9k9xIK2iLfIG5T2+bavUAWBvAC/KQ/3ecFsK65l9PAZ/j3zlkyLxNrpIksFtUBkfVdV03kwFurZjqzKQ==" }, "node_modules/@microsoft/fast-foundation": { - "version": "2.47.0", - "resolved": "https://registry.npmjs.org/@microsoft/fast-foundation/-/fast-foundation-2.47.0.tgz", - "integrity": "sha512-EyFuioaZQ9ngjUNRQi8R3dIPPsaNQdUOS+tP0G7b1MJRhXmQWIitBM6IeveQA6ZvXG6H21dqgrfEWlsYrUZ2sw==", + "version": "2.33.2", + "resolved": "https://registry.npmjs.org/@microsoft/fast-foundation/-/fast-foundation-2.33.2.tgz", + "integrity": "sha512-wTVo8u1eG9zUYSGDNPl4R+Yo9MTVJe7LvyI8sOqKmdggsbnYzhEa8wN0uBCnqo7W61nyhRL5FqPSh6WZGT5hUQ==", "dependencies": { - "@microsoft/fast-element": "^1.11.0", - "@microsoft/fast-web-utilities": "^5.4.1", + "@microsoft/fast-element": "^1.7.0", + "@microsoft/fast-web-utilities": "^5.1.0", "tabbable": "^5.2.0", "tslib": "^1.13.0" } }, + "node_modules/@microsoft/fast-foundation/node_modules/@microsoft/fast-element": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-1.7.0.tgz", + "integrity": "sha512-2qpAWuiOSdQfH/XdO8ZtVhlvQVCjHlojWUPoGbvHJDizBccZib+4uGReG87RIBp2Fi0s7ngYPRUioS1Lr+Xe0A==" + }, "node_modules/@microsoft/fast-react-wrapper": { "version": "0.1.18", "resolved": "https://registry.npmjs.org/@microsoft/fast-react-wrapper/-/fast-react-wrapper-0.1.18.tgz", @@ -272,11 +268,11 @@ } }, "node_modules/@microsoft/fast-web-utilities": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@microsoft/fast-web-utilities/-/fast-web-utilities-5.4.1.tgz", - "integrity": "sha512-ReWYncndjV3c8D8iq9tp7NcFNc1vbVHvcBFPME2nNFKNbS1XCesYZGlIlf3ot5EmuOXPlrzUHOWzQ2vFpIkqDg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@microsoft/fast-web-utilities/-/fast-web-utilities-5.1.0.tgz", + "integrity": "sha512-S2PCxI4XqtIxLM1N7i/NuIAgx+mJM01+mDzyB3vZlYibAkOT0bzp5YZCp+coXowokSin/nK5T2kqShMXEzI6Jg==", "dependencies": { - "exenv-es6": "^1.1.1" + "exenv-es6": "^1.0.0" } }, "node_modules/@microsoft/tsdoc": { @@ -295,18 +291,6 @@ "resolve": "~1.19.0" } }, - "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dependencies": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/@popperjs/core": { "version": "2.11.6", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", @@ -317,14 +301,14 @@ } }, "node_modules/@reduxjs/toolkit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.0.tgz", - "integrity": "sha512-ak11IrjYcUXRqlhNPwnz6AcvA2ynJTu8PzDbbqQw4a3xR4KZtgiqbNblQD+10CRbfK4+5C79SOyxnT9dhBqFnA==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.8.6.tgz", + "integrity": "sha512-4Ia/Loc6WLmdSOzi7k5ff7dLK8CgG2b8aqpLsCAJhazAzGdp//YBUSaj0ceW6a3kDBDNRrq5CRwyCS0wBiL1ig==", "dependencies": { - "immer": "^9.0.16", - "redux": "^4.2.0", - "redux-thunk": "^2.4.2", - "reselect": "^4.1.7" + "immer": "^9.0.7", + "redux": "^4.1.2", + "redux-thunk": "^2.4.1", + "reselect": "^4.1.5" }, "peerDependencies": { "react": "^16.9.0 || ^17.0.0 || ^18", @@ -365,9 +349,9 @@ "dev": true }, "node_modules/@types/eslint": { - "version": "8.4.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", - "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", + "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", "dev": true, "dependencies": { "@types/estree": "*", @@ -420,15 +404,15 @@ "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" }, "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, "node_modules/@types/lodash": { - "version": "4.14.188", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.188.tgz", - "integrity": "sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w==", + "version": "4.14.186", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.186.tgz", + "integrity": "sha512-eHcVlLXP0c2FlMPm56ITode2AgLMSa6aJ05JTTbYbI+7EMkCEE5qk2E41d5g2lCVTqRe0GnnRFurmlCsDODrPw==", "dev": true }, "node_modules/@types/minimatch": { @@ -438,9 +422,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "16.18.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", - "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==", + "version": "16.11.65", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.65.tgz", + "integrity": "sha512-Vfz7wGMOr4jbQGiQHVJm8VjeQwM9Ya7mHe9LtQ264/Epf5n1KiZShOFqk++nBzw6a/ubgYdB9Od7P+MH/LjoWw==", "dev": true }, "node_modules/@types/parse-json": { @@ -461,9 +445,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "node_modules/@types/react": { - "version": "17.0.52", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.52.tgz", - "integrity": "sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A==", + "version": "17.0.50", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.50.tgz", + "integrity": "sha512-ZCBHzpDb5skMnc1zFXAXnL3l1FAdi+xZvwxK+PkglMmBrwjpp9nKaWuEvrGnSifCJmBFGxZOOFuwC6KH/s0NuA==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -471,18 +455,18 @@ } }, "node_modules/@types/react-dom": { - "version": "16.9.17", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.17.tgz", - "integrity": "sha512-qSRyxEsrm5btPXnowDOs5jSkgT8ldAA0j6Qp+otHUh+xHzy3sXmgNfyhucZjAjkgpdAUw9rJe0QRtX/l+yaS4g==", + "version": "16.9.16", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.16.tgz", + "integrity": "sha512-Oqc0RY4fggGA3ltEgyPLc3IV9T73IGoWjkONbsyJ3ZBn+UPPCYpU2ec0i3cEbJuEdZtkqcCF2l1zf2pBdgUGSg==", "dev": true, "dependencies": { "@types/react": "^16" } }, "node_modules/@types/react-dom/node_modules/@types/react": { - "version": "16.14.34", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.34.tgz", - "integrity": "sha512-b99nWeGGReLh6aKBppghVqp93dFJtgtDOzc8NXM6hewD8PQ2zZG5kBLgbx+VJr7Q7WBMjHxaIl3dwpwwPIUgyA==", + "version": "16.14.26", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.26.tgz", + "integrity": "sha512-c/5CYyciOO4XdFcNhZW1O2woVx86k4T+DO2RorHZL7EhitkNQgSD/SgpdZJAUJa/qjVgOmTM44gHkAdZSXeQuQ==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -515,9 +499,9 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "version": "7.3.12", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz", + "integrity": "sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==", "dev": true }, "node_modules/@types/vscode": { @@ -776,9 +760,9 @@ } }, "node_modules/@xmldom/xmldom": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.6.tgz", - "integrity": "sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg==", + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.5.tgz", + "integrity": "sha512-0dpjDLeCXYThL2YhqZcd/spuwoH+dmnFoND9ZxZkAYxp1IJUB2GP16ow2MJRsjVxy8j1Qv8BJRmN5GKnbDKCmQ==", "engines": { "node": ">=10.0.0" } @@ -796,9 +780,9 @@ "dev": true }, "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -883,9 +867,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "version": "10.4.12", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz", + "integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==", "dev": true, "funding": [ { @@ -899,7 +883,7 @@ ], "dependencies": { "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", + "caniuse-lite": "^1.0.30001407", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -915,6 +899,82 @@ "postcss": "^8.1.0" } }, + "node_modules/autoprefixer/node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/autoprefixer/node_modules/caniuse-lite": { + "version": "1.0.30001418", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz", + "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/autoprefixer/node_modules/electron-to-chromium": { + "version": "1.4.279", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.279.tgz", + "integrity": "sha512-xs7vEuSZ84+JsHSTFqqG0TE3i8EAivHomRQZhhcRvsmnjsh5C2KdhwNKf4ZRYtzq75wojpFyqb62m32Oam57wA==", + "dev": true + }, + "node_modules/autoprefixer/node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/axios": { "version": "0.21.4", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", @@ -987,9 +1047,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", "dev": true, "funding": [ { @@ -1002,10 +1062,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "update-browserslist-db": "^1.0.5" }, "bin": { "browserslist": "cli.js" @@ -1023,7 +1083,7 @@ "node_modules/builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true, "engines": { "node": ">=0.10.0" @@ -1048,9 +1108,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001431", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", - "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", + "version": "1.0.30001373", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", + "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", "dev": true, "funding": [ { @@ -1064,9 +1124,9 @@ ] }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "dependencies": { "ansi-styles": "^3.2.1", @@ -1114,9 +1174,9 @@ } }, "node_modules/classnames": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", - "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" }, "node_modules/clone-deep": { "version": "4.0.1", @@ -1144,7 +1204,7 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "node_modules/colorette": { @@ -1154,9 +1214,9 @@ "dev": true }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", "dev": true }, "node_modules/compare-versions": { @@ -1167,7 +1227,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "node_modules/cosmiconfig": { "version": "7.0.1", @@ -1225,6 +1285,21 @@ "webpack": "^5.0.0" } }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -1238,9 +1313,9 @@ } }, "node_modules/csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" }, "node_modules/dequal": { "version": "2.0.3", @@ -1269,9 +1344,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "version": "1.4.206", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.206.tgz", + "integrity": "sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA==", "dev": true }, "node_modules/emojis-list": { @@ -1335,7 +1410,7 @@ "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true, "engines": { "node": ">=0.8.0" @@ -1407,19 +1482,19 @@ } }, "node_modules/exenv-es6": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exenv-es6/-/exenv-es6-1.1.1.tgz", - "integrity": "sha512-vlVu3N8d6yEMpMsEm+7sUBAI81aqYYuEvfK0jNqmdb/OPXzzH7QWDDnVjMvDSY47JdHEqx/dfC/q8WkfoTmpGQ==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/exenv-es6/-/exenv-es6-1.0.0.tgz", + "integrity": "sha512-fcG/TX8Ruv9Ma6PBaiNsUrHRJzVzuFMP6LtPn/9iqR+nr9mcLeEOGzXQGLC5CVQSXGE98HtzW2mTZkrCA3XrDg==" }, "node_modules/expand-home-dir": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/expand-home-dir/-/expand-home-dir-0.0.3.tgz", - "integrity": "sha512-f4P4+coDbYiQPui6LHV4DQFEvzINm9de9w7f+4kz5aGM5kcoe8zc7hnrOLAO7+NAlCLJtNhepUqkLDMKRPQoLA==" + "integrity": "sha1-ct6KBIbMKKO71wRjU5iCW1tign0=" }, "node_modules/expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "dependencies": { "homedir-polyfill": "^1.0.1" }, @@ -1438,13 +1513,10 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "engines": { - "node": ">= 4.9.1" - } + "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 }, "node_modules/file-loader": { "version": "6.2.0", @@ -1466,6 +1538,49 @@ "webpack": "^4.0.0 || ^5.0.0" } }, + "node_modules/file-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/file-loader/node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -1492,9 +1607,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", "funding": [ { "type": "individual", @@ -1540,7 +1655,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "node_modules/fsevents": { @@ -1563,15 +1678,15 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", + "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -1601,9 +1716,9 @@ "dev": true }, "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "node_modules/has": { "version": "1.0.3", @@ -1619,7 +1734,7 @@ "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true, "engines": { "node": ">=4" @@ -1642,9 +1757,9 @@ } }, "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", "dependencies": { "parse-passwd": "^1.0.0" }, @@ -1665,9 +1780,9 @@ } }, "node_modules/immer": { - "version": "9.0.16", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", - "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==", + "version": "9.0.15", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", + "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" @@ -1717,7 +1832,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "dependencies": { "once": "^1.3.0", @@ -1725,9 +1840,9 @@ } }, "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "node_modules/interpret": { @@ -1750,7 +1865,7 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "node_modules/is-binary-path": { @@ -1766,9 +1881,9 @@ } }, "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "dependencies": { "has": "^1.0.3" }, @@ -1882,7 +1997,7 @@ "node_modules/jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==" + "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=" }, "node_modules/jquery": { "version": "3.6.1", @@ -1960,9 +2075,9 @@ } }, "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "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 }, "node_modules/loader-runner": { @@ -2084,21 +2199,19 @@ } }, "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true }, "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", + "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", "dev": true, "dependencies": { - "minimist": "^1.2.6" + "minimist": "^1.2.5" }, "bin": { "mkdirp": "bin/cmd.js" @@ -2149,7 +2262,7 @@ "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "engines": { "node": ">=0.10.0" } @@ -2157,7 +2270,7 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "dependencies": { "wrappy": "1" @@ -2232,7 +2345,7 @@ "node_modules/parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", "engines": { "node": ">=0.10.0" } @@ -2248,8 +2361,8 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "engines": { "node": ">=0.10.0" @@ -2320,9 +2433,9 @@ } }, "node_modules/postcss": { - "version": "8.4.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", - "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "version": "8.4.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.17.tgz", + "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", "dev": true, "funding": [ { @@ -2365,6 +2478,21 @@ "webpack": "^5.0.0" } }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/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", @@ -2425,9 +2553,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", + "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -2446,7 +2574,7 @@ "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", "dev": true, "engines": { "node": ">= 0.6.0" @@ -2557,12 +2685,12 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "node_modules/react-overlays": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", - "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.0.tgz", + "integrity": "sha512-dKZR/w6qeAsW0z0aIlwq/5H/M6o5T4RSlPnqIKqYVJ++rjoPSFcVggPhDWno8awZQsuMMtkjuksTbE8vOY0s9g==", "dependencies": { "@babel/runtime": "^7.13.8", - "@popperjs/core": "^2.11.6", + "@popperjs/core": "^2.8.6", "@restart/hooks": "^0.4.7", "@types/warning": "^3.0.0", "dom-helpers": "^5.2.0", @@ -2652,35 +2780,30 @@ } }, "node_modules/redux-thunk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", - "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", + "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==", "peerDependencies": { "redux": "^4" } }, "node_modules/regenerator-runtime": { - "version": "0.13.10", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", - "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "node_modules/reselect": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz", - "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==" + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz", + "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==" }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2737,9 +2860,9 @@ ] }, "node_modules/sass": { - "version": "1.56.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.0.tgz", - "integrity": "sha512-WFJ9XrpkcnqZcYuLRJh5qiV6ibQOR4AezleeEjTjMsCocYW59dEG19U3fwTTXxzi2Ed3yjPBp727hbbj53pHFw==", + "version": "1.55.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz", + "integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -2905,7 +3028,7 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "node_modules/style-loader": { @@ -2936,22 +3059,10 @@ "node": ">=4" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/tabbable": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.3.3.tgz", - "integrity": "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.2.1.tgz", + "integrity": "sha512-40pEZ2mhjaZzK0BnI+QGNjJO8UYx9pP5v7BGe17SORTO0OEuuaAwQTkAp8whcZvqon44wKFOikD+Al11K3JICQ==" }, "node_modules/tapable": { "version": "2.2.1", @@ -2979,9 +3090,9 @@ } }, "node_modules/terser": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", - "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -2997,16 +3108,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", + "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.14", + "@jridgewell/trace-mapping": "^0.3.7", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" + "terser": "^5.7.2" }, "engines": { "node": ">= 10.13.0" @@ -3030,6 +3141,12 @@ } } }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -3223,9 +3340,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", "dev": true, "funding": [ { @@ -3259,7 +3376,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "node_modules/uuid": { @@ -3439,6 +3556,25 @@ "node": ">=10.13.0" } }, + "node_modules/webpack/node_modules/enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -3463,7 +3599,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "node_modules/yallist": { @@ -3483,37 +3619,37 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", "dev": true, "requires": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.12.13" } }, "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "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/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/runtime": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", - "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", + "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", "requires": { - "regenerator-runtime": "^0.13.10" + "regenerator-runtime": "^0.13.4" } }, "@discoveryjs/json-ext": { @@ -3580,68 +3716,75 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "@microsoft/1ds-core-js": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.8.tgz", - "integrity": "sha512-9o9SUAamJiTXIYwpkQDuueYt83uZfXp8zp8YFix1IwVPwC9RmE36T2CX9gXOeq1nDckOuOduYpA8qHvdh5BGfQ==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.6.tgz", + "integrity": "sha512-6OpppYCEA+rXjcs2w0KnWji3Y6ZDx0wykY7ZL3QF68NS323C45GHSpkDpVRT/lDU6Xbau/PvQm2zTYAzLcperA==", "requires": { - "@microsoft/applicationinsights-core-js": "2.8.9", - "@microsoft/applicationinsights-shims": "^2.0.2", - "@microsoft/dynamicproto-js": "^1.1.7" + "@microsoft/applicationinsights-core-js": "2.8.6", + "@microsoft/applicationinsights-shims": "^2.0.1", + "@microsoft/dynamicproto-js": "^1.1.6" } }, "@microsoft/1ds-post-js": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.8.tgz", - "integrity": "sha512-SjlRoNcXcXBH6WQD/5SkkaCHIVqldH3gDu+bI7YagrOVJ5APxwT1Duw9gm3L1FjFa9S2i81fvJ3EVSKpp9wULA==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.6.tgz", + "integrity": "sha512-Zdyl3FU6kU/a7TlVVSTBZg+hSECTT65iI99FsjMOx88HudyVyk9M/0lVbA+FVXvGaxzmtBW6Lw0qRHYp4tBMSA==", "requires": { - "@microsoft/1ds-core-js": "3.2.8", - "@microsoft/applicationinsights-shims": "^2.0.2", - "@microsoft/dynamicproto-js": "^1.1.7" + "@microsoft/1ds-core-js": "3.2.6", + "@microsoft/applicationinsights-shims": "^2.0.1", + "@microsoft/dynamicproto-js": "^1.1.6" } }, "@microsoft/applicationinsights-core-js": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.9.tgz", - "integrity": "sha512-HRuIuZ6aOWezcg/G5VyFDDWGL8hDNe/ljPP01J7ImH2kRPEgbtcfPSUMjkamGMefgdq81GZsSoC/NNGTP4pp2w==", + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.6.tgz", + "integrity": "sha512-rL+ceda1Y6HaHBe1vIbNT/f5JGuHiD5Ydq+DoAfu56o13wyJu4sao3QKaabgaIM59pPO+3BMeGsK8NNUGYaT3w==", "requires": { - "@microsoft/applicationinsights-shims": "2.0.2", - "@microsoft/dynamicproto-js": "^1.1.7" + "@microsoft/applicationinsights-shims": "2.0.1", + "@microsoft/dynamicproto-js": "^1.1.6" } }, "@microsoft/applicationinsights-shims": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-2.0.2.tgz", - "integrity": "sha512-PoHEgsnmcqruLNHZ/amACqdJ6YYQpED0KSRe6J7gIJTtpZC1FfFU9b1fmDKDKtFoUSrPzEh1qzO3kmRZP0betg==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-2.0.1.tgz", + "integrity": "sha512-G0MXf6R6HndRbDy9BbEj0zrLeuhwt2nsXk2zKtF0TnYo39KgYqhYC2ayIzKPTm2KAE+xzD7rgyLdZnrcRvt9WQ==" }, "@microsoft/dynamicproto-js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.7.tgz", - "integrity": "sha512-SK3D3aVt+5vOOccKPnGaJWB5gQ8FuKfjboUJHedMP7gu54HqSCXX5iFXhktGD8nfJb0Go30eDvs/UDoTnR2kOA==" + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.6.tgz", + "integrity": "sha512-D1Oivw1A4bIXhzBIy3/BBPn3p2On+kpO2NiYt9shICDK7L/w+cR6FFBUsBZ05l6iqzTeL+Jm8lAYn0g6G7DmDg==" }, "@microsoft/fast-element": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-1.11.0.tgz", - "integrity": "sha512-VKJYMkS5zgzHHb66sY7AFpYv6IfFhXrjQcAyNgi2ivD65My1XOhtjfKez5ELcLFRJfgZNAxvI8kE69apXERTkw==" + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-1.6.2.tgz", + "integrity": "sha512-TrFOpe9k9xIK2iLfIG5T2+bavUAWBvAC/KQ/3ecFsK65l9PAZ/j3zlkyLxNrpIksFtUBkfVdV03kwFurZjqzKQ==" }, "@microsoft/fast-foundation": { - "version": "2.47.0", - "resolved": "https://registry.npmjs.org/@microsoft/fast-foundation/-/fast-foundation-2.47.0.tgz", - "integrity": "sha512-EyFuioaZQ9ngjUNRQi8R3dIPPsaNQdUOS+tP0G7b1MJRhXmQWIitBM6IeveQA6ZvXG6H21dqgrfEWlsYrUZ2sw==", + "version": "2.33.2", + "resolved": "https://registry.npmjs.org/@microsoft/fast-foundation/-/fast-foundation-2.33.2.tgz", + "integrity": "sha512-wTVo8u1eG9zUYSGDNPl4R+Yo9MTVJe7LvyI8sOqKmdggsbnYzhEa8wN0uBCnqo7W61nyhRL5FqPSh6WZGT5hUQ==", "requires": { - "@microsoft/fast-element": "^1.11.0", - "@microsoft/fast-web-utilities": "^5.4.1", + "@microsoft/fast-element": "^1.7.0", + "@microsoft/fast-web-utilities": "^5.1.0", "tabbable": "^5.2.0", "tslib": "^1.13.0" + }, + "dependencies": { + "@microsoft/fast-element": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-1.7.0.tgz", + "integrity": "sha512-2qpAWuiOSdQfH/XdO8ZtVhlvQVCjHlojWUPoGbvHJDizBccZib+4uGReG87RIBp2Fi0s7ngYPRUioS1Lr+Xe0A==" + } } }, "@microsoft/fast-react-wrapper": { @@ -3654,11 +3797,11 @@ } }, "@microsoft/fast-web-utilities": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@microsoft/fast-web-utilities/-/fast-web-utilities-5.4.1.tgz", - "integrity": "sha512-ReWYncndjV3c8D8iq9tp7NcFNc1vbVHvcBFPME2nNFKNbS1XCesYZGlIlf3ot5EmuOXPlrzUHOWzQ2vFpIkqDg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@microsoft/fast-web-utilities/-/fast-web-utilities-5.1.0.tgz", + "integrity": "sha512-S2PCxI4XqtIxLM1N7i/NuIAgx+mJM01+mDzyB3vZlYibAkOT0bzp5YZCp+coXowokSin/nK5T2kqShMXEzI6Jg==", "requires": { - "exenv-es6": "^1.1.1" + "exenv-es6": "^1.0.0" } }, "@microsoft/tsdoc": { @@ -3675,17 +3818,6 @@ "ajv": "~6.12.6", "jju": "~1.4.0", "resolve": "~1.19.0" - }, - "dependencies": { - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - } } }, "@popperjs/core": { @@ -3694,14 +3826,14 @@ "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" }, "@reduxjs/toolkit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.0.tgz", - "integrity": "sha512-ak11IrjYcUXRqlhNPwnz6AcvA2ynJTu8PzDbbqQw4a3xR4KZtgiqbNblQD+10CRbfK4+5C79SOyxnT9dhBqFnA==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.8.6.tgz", + "integrity": "sha512-4Ia/Loc6WLmdSOzi7k5ff7dLK8CgG2b8aqpLsCAJhazAzGdp//YBUSaj0ceW6a3kDBDNRrq5CRwyCS0wBiL1ig==", "requires": { - "immer": "^9.0.16", - "redux": "^4.2.0", - "redux-thunk": "^2.4.2", - "reselect": "^4.1.7" + "immer": "^9.0.7", + "redux": "^4.1.2", + "redux-thunk": "^2.4.1", + "reselect": "^4.1.5" } }, "@restart/context": { @@ -3725,9 +3857,9 @@ "dev": true }, "@types/eslint": { - "version": "8.4.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", - "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", + "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", "dev": true, "requires": { "@types/estree": "*", @@ -3780,15 +3912,15 @@ "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" }, "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, "@types/lodash": { - "version": "4.14.188", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.188.tgz", - "integrity": "sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w==", + "version": "4.14.186", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.186.tgz", + "integrity": "sha512-eHcVlLXP0c2FlMPm56ITode2AgLMSa6aJ05JTTbYbI+7EMkCEE5qk2E41d5g2lCVTqRe0GnnRFurmlCsDODrPw==", "dev": true }, "@types/minimatch": { @@ -3798,9 +3930,9 @@ "dev": true }, "@types/node": { - "version": "16.18.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", - "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==", + "version": "16.11.65", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.65.tgz", + "integrity": "sha512-Vfz7wGMOr4jbQGiQHVJm8VjeQwM9Ya7mHe9LtQ264/Epf5n1KiZShOFqk++nBzw6a/ubgYdB9Od7P+MH/LjoWw==", "dev": true }, "@types/parse-json": { @@ -3821,9 +3953,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "@types/react": { - "version": "17.0.52", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.52.tgz", - "integrity": "sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A==", + "version": "17.0.50", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.50.tgz", + "integrity": "sha512-ZCBHzpDb5skMnc1zFXAXnL3l1FAdi+xZvwxK+PkglMmBrwjpp9nKaWuEvrGnSifCJmBFGxZOOFuwC6KH/s0NuA==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3831,18 +3963,18 @@ } }, "@types/react-dom": { - "version": "16.9.17", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.17.tgz", - "integrity": "sha512-qSRyxEsrm5btPXnowDOs5jSkgT8ldAA0j6Qp+otHUh+xHzy3sXmgNfyhucZjAjkgpdAUw9rJe0QRtX/l+yaS4g==", + "version": "16.9.16", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.16.tgz", + "integrity": "sha512-Oqc0RY4fggGA3ltEgyPLc3IV9T73IGoWjkONbsyJ3ZBn+UPPCYpU2ec0i3cEbJuEdZtkqcCF2l1zf2pBdgUGSg==", "dev": true, "requires": { "@types/react": "^16" }, "dependencies": { "@types/react": { - "version": "16.14.34", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.34.tgz", - "integrity": "sha512-b99nWeGGReLh6aKBppghVqp93dFJtgtDOzc8NXM6hewD8PQ2zZG5kBLgbx+VJr7Q7WBMjHxaIl3dwpwwPIUgyA==", + "version": "16.14.26", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.26.tgz", + "integrity": "sha512-c/5CYyciOO4XdFcNhZW1O2woVx86k4T+DO2RorHZL7EhitkNQgSD/SgpdZJAUJa/qjVgOmTM44gHkAdZSXeQuQ==", "dev": true, "requires": { "@types/prop-types": "*", @@ -3877,9 +4009,9 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "version": "7.3.12", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz", + "integrity": "sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==", "dev": true }, "@types/vscode": { @@ -4121,9 +4253,9 @@ "requires": {} }, "@xmldom/xmldom": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.6.tgz", - "integrity": "sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg==" + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.5.tgz", + "integrity": "sha512-0dpjDLeCXYThL2YhqZcd/spuwoH+dmnFoND9ZxZkAYxp1IJUB2GP16ow2MJRsjVxy8j1Qv8BJRmN5GKnbDKCmQ==" }, "@xtuc/ieee754": { "version": "1.2.0", @@ -4138,9 +4270,9 @@ "dev": true }, "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true }, "acorn-import-assertions": { @@ -4202,17 +4334,53 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" }, "autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "version": "10.4.12", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz", + "integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==", "dev": true, "requires": { "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", + "caniuse-lite": "^1.0.30001407", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" + }, + "dependencies": { + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "caniuse-lite": { + "version": "1.0.30001418", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz", + "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.279", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.279.tgz", + "integrity": "sha512-xs7vEuSZ84+JsHSTFqqG0TE3i8EAivHomRQZhhcRvsmnjsh5C2KdhwNKf4ZRYtzq75wojpFyqb62m32Oam57wA==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + } } }, "axios": { @@ -4265,15 +4433,15 @@ } }, "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "update-browserslist-db": "^1.0.5" } }, "buffer-from": { @@ -4285,7 +4453,7 @@ "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, "bytes": { @@ -4301,15 +4469,15 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001431", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", - "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", + "version": "1.0.30001373", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", + "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", "dev": true }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -4340,9 +4508,9 @@ "dev": true }, "classnames": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", - "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" }, "clone-deep": { "version": "4.0.1", @@ -4367,7 +4535,7 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "colorette": { @@ -4377,9 +4545,9 @@ "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==", + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", "dev": true }, "compare-versions": { @@ -4390,7 +4558,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "cosmiconfig": { "version": "7.0.1", @@ -4430,6 +4598,17 @@ "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "cssesc": { @@ -4439,9 +4618,9 @@ "dev": true }, "csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" }, "dequal": { "version": "2.0.3", @@ -4464,9 +4643,9 @@ } }, "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "version": "1.4.206", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.206.tgz", + "integrity": "sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA==", "dev": true }, "emojis-list": { @@ -4515,7 +4694,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "eslint-scope": { @@ -4564,19 +4743,19 @@ "dev": true }, "exenv-es6": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exenv-es6/-/exenv-es6-1.1.1.tgz", - "integrity": "sha512-vlVu3N8d6yEMpMsEm+7sUBAI81aqYYuEvfK0jNqmdb/OPXzzH7QWDDnVjMvDSY47JdHEqx/dfC/q8WkfoTmpGQ==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/exenv-es6/-/exenv-es6-1.0.0.tgz", + "integrity": "sha512-fcG/TX8Ruv9Ma6PBaiNsUrHRJzVzuFMP6LtPn/9iqR+nr9mcLeEOGzXQGLC5CVQSXGE98HtzW2mTZkrCA3XrDg==" }, "expand-home-dir": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/expand-home-dir/-/expand-home-dir-0.0.3.tgz", - "integrity": "sha512-f4P4+coDbYiQPui6LHV4DQFEvzINm9de9w7f+4kz5aGM5kcoe8zc7hnrOLAO7+NAlCLJtNhepUqkLDMKRPQoLA==" + "integrity": "sha1-ct6KBIbMKKO71wRjU5iCW1tign0=" }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "requires": { "homedir-polyfill": "^1.0.1" } @@ -4592,9 +4771,9 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "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 }, "file-loader": { @@ -4605,6 +4784,40 @@ "requires": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" + }, + "dependencies": { + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "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==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + } + } + } } }, "fill-range": { @@ -4627,9 +4840,9 @@ } }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==" }, "fraction.js": { "version": "4.2.0", @@ -4651,7 +4864,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "fsevents": { @@ -4667,15 +4880,15 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "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.1.1", + "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } @@ -4696,9 +4909,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "has": { "version": "1.0.3", @@ -4711,7 +4924,7 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "highlight.js": { @@ -4728,9 +4941,9 @@ } }, "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", "requires": { "parse-passwd": "^1.0.0" } @@ -4743,9 +4956,9 @@ "requires": {} }, "immer": { - "version": "9.0.16", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", - "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==" + "version": "9.0.15", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", + "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==" }, "immutable": { "version": "4.1.0", @@ -4776,7 +4989,7 @@ "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "^1.3.0", @@ -4784,9 +4997,9 @@ } }, "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "interpret": { @@ -4806,7 +5019,7 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-binary-path": { @@ -4819,9 +5032,9 @@ } }, "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "requires": { "has": "^1.0.3" } @@ -4904,7 +5117,7 @@ "jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==" + "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=" }, "jquery": { "version": "3.6.1", @@ -4965,9 +5178,9 @@ "dev": true }, "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "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 }, "loader-runner": { @@ -5062,18 +5275,18 @@ } }, "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", + "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", "dev": true, "requires": { - "minimist": "^1.2.6" + "minimist": "^1.2.5" } }, "nanoid": { @@ -5109,12 +5322,12 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1" @@ -5168,7 +5381,7 @@ "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==" + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, "path-exists": { "version": "4.0.0", @@ -5178,8 +5391,8 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-key": { @@ -5227,9 +5440,9 @@ "peer": true }, "postcss": { - "version": "8.4.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", - "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "version": "8.4.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.17.tgz", + "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", "dev": true, "requires": { "nanoid": "^3.3.4", @@ -5246,6 +5459,17 @@ "cosmiconfig": "^7.0.0", "klona": "^2.0.5", "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "postcss-modules-extract-imports": { @@ -5285,9 +5509,9 @@ } }, "postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", + "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -5303,7 +5527,7 @@ "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", "dev": true }, "prop-types": { @@ -5395,12 +5619,12 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "react-overlays": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", - "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.0.tgz", + "integrity": "sha512-dKZR/w6qeAsW0z0aIlwq/5H/M6o5T4RSlPnqIKqYVJ++rjoPSFcVggPhDWno8awZQsuMMtkjuksTbE8vOY0s9g==", "requires": { "@babel/runtime": "^7.13.8", - "@popperjs/core": "^2.11.6", + "@popperjs/core": "^2.8.6", "@restart/hooks": "^0.4.7", "@types/warning": "^3.0.0", "dom-helpers": "^5.2.0", @@ -5467,30 +5691,28 @@ } }, "redux-thunk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", - "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", + "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==", "requires": {} }, "regenerator-runtime": { - "version": "0.13.10", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", - "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "reselect": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz", - "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==" + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz", + "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==" }, "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" } }, "resolve-cwd": { @@ -5523,9 +5745,9 @@ "dev": true }, "sass": { - "version": "1.56.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.0.tgz", - "integrity": "sha512-WFJ9XrpkcnqZcYuLRJh5qiV6ibQOR4AezleeEjTjMsCocYW59dEG19U3fwTTXxzi2Ed3yjPBp727hbbj53pHFw==", + "version": "1.55.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz", + "integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -5629,7 +5851,7 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "style-loader": { @@ -5648,16 +5870,10 @@ "has-flag": "^3.0.0" } }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, "tabbable": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.3.3.tgz", - "integrity": "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.2.1.tgz", + "integrity": "sha512-40pEZ2mhjaZzK0BnI+QGNjJO8UYx9pP5v7BGe17SORTO0OEuuaAwQTkAp8whcZvqon44wKFOikD+Al11K3JICQ==" }, "tapable": { "version": "2.2.1", @@ -5684,28 +5900,36 @@ } }, "terser": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", - "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } } }, "terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", + "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.14", + "@jridgewell/trace-mapping": "^0.3.7", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" + "terser": "^5.7.2" } }, "to-regex-range": { @@ -5846,9 +6070,9 @@ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" }, "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -5866,7 +6090,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "uuid": { @@ -5939,6 +6163,24 @@ "terser-webpack-plugin": "^5.1.3", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" + }, + "dependencies": { + "enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + } } }, "webpack-cli": { @@ -6003,7 +6245,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "yallist": { From 8c345f32555671e13445789bf3aa145fc83e9f55 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Nov 2022 10:39:58 +0800 Subject: [PATCH 107/409] Bump loader-utils from 2.0.3 to 2.0.4 (#1117) --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index a1149d2f..743ae63e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2090,9 +2090,9 @@ } }, "node_modules/loader-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", - "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, "dependencies": { "big.js": "^5.2.2", @@ -5190,9 +5190,9 @@ "dev": true }, "loader-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", - "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, "requires": { "big.js": "^5.2.2", From b0f8d5ba1bb4f6deea257f12d05350dc3093561c Mon Sep 17 00:00:00 2001 From: AdamBrousseau Date: Thu, 17 Nov 2022 21:41:02 -0500 Subject: [PATCH 108/409] Add IBM Semeru Runtimes to Other JDKs list (#1113) --- src/install-jdk/assets/features/components/OtherJDKsPanel.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/install-jdk/assets/features/components/OtherJDKsPanel.tsx b/src/install-jdk/assets/features/components/OtherJDKsPanel.tsx index 30af19a8..ba474200 100644 --- a/src/install-jdk/assets/features/components/OtherJDKsPanel.tsx +++ b/src/install-jdk/assets/features/components/OtherJDKsPanel.tsx @@ -16,6 +16,7 @@ class OtherJDKsPanel extends React.Component { { name: "Amazon Corretto", url: "https://aws.amazon.com/corretto" }, { name: "Azul Zulu", url: "https://www.azul.com/downloads/?package=jdk" }, { name: "Eclipse Adoptium's Temurin", url: "https://adoptium.net/" }, + { name: "IBM Semeru Runtimes", url: "https://developer.ibm.com/languages/java/semeru-runtimes/"}, { name: "Microsoft Build of OpenJDK", url: "https://www.microsoft.com/openjdk" }, { name: "Oracle Java SE", url: "https://www.oracle.com/java/technologies/javase-downloads.html" }, { name: "Red Hat build of OpenJDK", url: "https://developers.redhat.com/products/openjdk/download" }, From 19a82ff63254d603f809fdf69076dbb9acbc63d5 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Mon, 28 Nov 2022 15:43:30 +0800 Subject: [PATCH 109/409] prepare 0.25.7 (#1123) --- CHANGELOG.md | 4 ++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aa1368de..5f18896a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 0.25.7 +### Added +- Add IBM Semeru Runtimes to Other JDKs list. [#1113](https://github.com/microsoft/vscode-java-pack/pull/1092) + ## 0.25.6 ### Fixed - Webviews are not correctly rendered with VS Code 1.73.0. [#1102](https://github.com/microsoft/vscode-java-pack/issues/1102) diff --git a/package-lock.json b/package-lock.json index 743ae63e..b12b2432 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "vscode-java-pack", - "version": "0.25.6", + "version": "0.25.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "vscode-java-pack", - "version": "0.25.6", + "version": "0.25.7", "license": "MIT", "dependencies": { "@iconify-icons/codicon": "1.2.8", diff --git a/package.json b/package.json index 97fd95d7..888d6839 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "Extension Pack for Java", "description": "Popular extensions for Java development that provides Java IntelliSense, debugging, testing, Maven/Gradle support, project management and more", "license": "MIT", - "version": "0.25.6", + "version": "0.25.7", "publisher": "vscjava", "preview": true, "engines": { From 7cc165b6f0cfc684bb770a7c37df2be0879a42f3 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 1 Dec 2022 14:39:46 +0800 Subject: [PATCH 110/409] Create no-response.yml --- .github/workflows/no-response.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/no-response.yml diff --git a/.github/workflows/no-response.yml b/.github/workflows/no-response.yml new file mode 100644 index 00000000..bc3371d1 --- /dev/null +++ b/.github/workflows/no-response.yml @@ -0,0 +1,24 @@ +name: No Response + +# **What it does**: Closes issues where the original author doesn't respond to a request for information. +# **Why we have it**: To remove the need for maintainers to remember to check back on issues periodically to see if contributors have responded. +# **Who does it impact**: Everyone that works on docs or docs-internal. + +on: + issue_comment: + types: [created] + schedule: + # Schedule for five minutes after the hour, every hour + - cron: '0 0 * * *' + +jobs: + noResponse: + runs-on: ubuntu-latest + steps: + - uses: lee-dohm/no-response@v0.5.0 + with: + token: ${{ github.token }} + daysUntilClose: 14 # Number of days of inactivity before an Issue is closed for lack of response + responseRequiredLabel: "needs more info" # Label indicating that a response from the original author is required + closeComment: > + This issue has been closed automatically because it needs more information and has not had recent activity. Please reach out if you have or find the answers we need so that we can investigate further. From 0f5ae130f086cc92d19ff63b0d04fcc5801c1936 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Jan 2023 10:41:50 +0800 Subject: [PATCH 111/409] Bump json5 from 2.2.1 to 2.2.3 (#1136) Bumps [json5](https://github.com/json5/json5) from 2.2.1 to 2.2.3. - [Release notes](https://github.com/json5/json5/releases) - [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md) - [Commits](https://github.com/json5/json5/compare/v2.2.1...v2.2.3) --- updated-dependencies: - dependency-name: json5 dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index b12b2432..5babd630 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2034,9 +2034,9 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "bin": { "json5": "lib/cli.js" @@ -5151,9 +5151,9 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true }, "jsonfile": { From e879423beffef9990cce60dd7e87ae7c1d3879f3 Mon Sep 17 00:00:00 2001 From: Sheng Chen Date: Tue, 7 Feb 2023 14:17:41 +0800 Subject: [PATCH 112/409] Get perf information when reading client.log (#1145) Signed-off-by: Sheng Chen --- src/daemon/clientLog/logWatcher.ts | 72 +++++++++++++++++++----------- src/daemon/daemon.ts | 2 +- 2 files changed, 47 insertions(+), 27 deletions(-) diff --git a/src/daemon/clientLog/logWatcher.ts b/src/daemon/clientLog/logWatcher.ts index 01386d52..c116ed6b 100644 --- a/src/daemon/clientLog/logWatcher.ts +++ b/src/daemon/clientLog/logWatcher.ts @@ -9,45 +9,66 @@ export class ClientLogWatcher { private context: vscode.ExtensionContext; private javaExtensionRoot: vscode.Uri | undefined; private logProcessedTimestamp: number = Date.now(); + private interestedLspRequests: string[] = ["textDocument\\/completion"]; + private lspTracePatterns: Map = new Map(); constructor(daemon: LSDaemon) { this.context = daemon.context; if (this.context.storageUri) { this.javaExtensionRoot = vscode.Uri.joinPath(this.context.storageUri, "..", "redhat.java"); } + if (this.interestedLspRequests.length > 0) { + for (const request of this.interestedLspRequests) { + this.lspTracePatterns.set(request, new RegExp(`\\[Trace.*\\] Received response \'${request}.*\' in (\\d+)ms`)); + } + } } - public async collectStartupInfo() { + public async collectInfoFromLog() { const logs = await this.getLogs(); if (logs) { - const info: any = {}; + for (const log of logs) { + if (log.message?.startsWith("Use the JDK from") && Date.parse(log.timestamp) > this.logProcessedTimestamp) { + const info: any = {}; + info.defaultProjectJdk = log?.message.replace("Use the JDK from '", "").replace("' as the initial default project JDK.", ""); - const jdkLog = logs.find(log => log.message?.startsWith("Use the JDK from")); - info.defaultProjectJdk = jdkLog?.message.replace("Use the JDK from '", "").replace("' as the initial default project JDK.", ""); + const startupLog = logs.find(log => log.message?.startsWith("Starting Java server with:") && log.message.endsWith("jdt_ws") /* limit to standard server */); + if (startupLog) { + info.xmx = startupLog.message.match(/-Xmx[0-9kmgKMG]+/g)?.[0]; + info.xms = startupLog.message.match(/-Xms[0-9kmgKMG]+/g)?.[0]; + info.lombok = startupLog.message.includes("lombok.jar") ? "true" : undefined; + info.workspaceType = startupLog.message.match(/-XX:HeapDumpPath=.*(vscodesws)/) ? "vscodesws": "folder"; + } - const startupLog = logs.find(log => log.message?.startsWith("Starting Java server with:") && log.message.endsWith("jdt_ws") /* limit to standard server */); - if (startupLog) { - info.xmx = startupLog.message.match(/-Xmx[0-9kmgKMG]+/g)?.[0]; - info.xms = startupLog.message.match(/-Xms[0-9kmgKMG]+/g)?.[0]; - info.lombok = startupLog.message.includes("lombok.jar") ? "true" : undefined; - info.workspaceType = startupLog.message.match(/-XX:HeapDumpPath=.*(vscodesws)/) ? "vscodesws": "folder"; - } + const errorLog = logs.find(log => log.level === "error"); + info.error = errorLog ? "true" : undefined; - const errorLog = logs.find(log => log.level === "error"); - info.error = errorLog ? "true" : undefined; + const missingJar = "Error opening zip file or JAR manifest missing"; // lombok especially + if (logs.find(log => log.message?.startsWith(missingJar))) { + info.error = missingJar; + } - const missingJar = "Error opening zip file or JAR manifest missing"; // lombok especially - if (logs.find(log => log.message?.startsWith(missingJar))) { - info.error = missingJar; - } + const crashLog = logs.find(log => log.message?.startsWith("The Language Support for Java server crashed and will restart.")); + info.crash = crashLog ? "true" : undefined; - const crashLog = logs.find(log => log.message?.startsWith("The Language Support for Java server crashed and will restart.")); - info.crash = crashLog ? "true" : undefined; - - sendInfo("", { - name: "client-log-startup-metadata", - ...info - }); + sendInfo("", { + name: "client-log-startup-metadata", + ...info + }); + } else { + for (const key of this.lspTracePatterns.keys()) { + const regexp: RegExp = this.lspTracePatterns.get(key)!; + const match = log.message?.match(regexp); + if (match?.length === 2) { + sendInfo("", { + name: "perf-trace", + kind: key.replace("\\", ""), + time: match[1], + }); + } + } + } + } } } @@ -55,8 +76,7 @@ export class ClientLogWatcher { const rawBytes = await this.readLatestLogFile(); if (rawBytes) { const content = rawBytes.toString(); - const entries = parse(content); - return entries.filter(elem => Date.parse(elem["timestamp"]) > this.logProcessedTimestamp); + return parse(content); } else { return undefined; } diff --git a/src/daemon/daemon.ts b/src/daemon/daemon.ts index 9780af81..b6c2935a 100644 --- a/src/daemon/daemon.ts +++ b/src/daemon/daemon.ts @@ -21,7 +21,7 @@ export class LSDaemon { public async initialize() { await this.logWatcher.start(); setTimeout(() => { - this.clientLogWatcher.collectStartupInfo(); + this.clientLogWatcher.collectInfoFromLog(); }, 10 * 1000); // wait a while when JDTLS has been launched } From b00dd9ddb7f68e20974dfdc9cfd405d0b2ea912d Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Wed, 8 Feb 2023 11:00:34 +0800 Subject: [PATCH 113/409] update statistics for new lombok support (#1149) Signed-off-by: Yan Zhang --- src/daemon/clientLog/logWatcher.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/daemon/clientLog/logWatcher.ts b/src/daemon/clientLog/logWatcher.ts index c116ed6b..b0060771 100644 --- a/src/daemon/clientLog/logWatcher.ts +++ b/src/daemon/clientLog/logWatcher.ts @@ -5,6 +5,8 @@ import * as path from "path"; import { sendInfo } from "vscode-extension-telemetry-wrapper"; import { LSDaemon } from "../daemon"; +const lombokJarRegex = /lombok-\d+.*\.jar/; + export class ClientLogWatcher { private context: vscode.ExtensionContext; private javaExtensionRoot: vscode.Uri | undefined; @@ -36,7 +38,11 @@ export class ClientLogWatcher { if (startupLog) { info.xmx = startupLog.message.match(/-Xmx[0-9kmgKMG]+/g)?.[0]; info.xms = startupLog.message.match(/-Xms[0-9kmgKMG]+/g)?.[0]; - info.lombok = startupLog.message.includes("lombok.jar") ? "true" : undefined; + if (startupLog.message.includes("lombok.jar")) { + info.lombok = "true"; // using old version of 3rd party lombok extension + } else if (startupLog.message.match(lombokJarRegex)) { + info.lombok = "embedded"; // lombok projects, loading embedded lombok.jar + } info.workspaceType = startupLog.message.match(/-XX:HeapDumpPath=.*(vscodesws)/) ? "vscodesws": "folder"; } @@ -103,7 +109,7 @@ export class ClientLogWatcher { } } /** - * filename: client.log.yyyy-mm-dd.r + * filename: client.log.yyyy-mm-dd.r */ function compare_file(a: string, b: string) { const dateA = a.slice(11, 21), dateB = b.slice(11, 21); From 6602e372d32e8429be067801ff6e179f0e32bd37 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Wed, 8 Feb 2023 11:06:56 +0800 Subject: [PATCH 114/409] Update issue templates --- .github/ISSUE_TEMPLATE/Bug_report.md | 4 +++- .github/ISSUE_TEMPLATE/Endgame.md | 6 ++++-- .github/ISSUE_TEMPLATE/Feature_request.md | 4 +++- .github/ISSUE_TEMPLATE/Question.md | 4 +++- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md index 03ad3305..fa10455e 100644 --- a/.github/ISSUE_TEMPLATE/Bug_report.md +++ b/.github/ISSUE_TEMPLATE/Bug_report.md @@ -2,7 +2,9 @@ name: Bug report about: Create a report to help us improve title: Bug -label: bug +labels: '' +assignees: '' + --- + {{content}} + +
+

+ Generated by GitHub Actions workflow +

+ + + ``` + +3. **Content formatting guidelines**: + - Plain text → Wrap in `

` tags + - Lists → Use `