├── src ├── test │ ├── gradle │ │ ├── simple-project │ │ │ ├── settings.gradle │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── sample │ │ │ │ └── App.java │ │ ├── simple-custom-launcher │ │ │ ├── settings.gradle │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── sample │ │ │ │ ├── App.java │ │ │ │ └── AppLauncher.java │ │ ├── webpack-sample │ │ │ ├── webpack.config.js │ │ │ ├── settings.gradle │ │ │ ├── src │ │ │ │ └── main │ │ │ │ │ ├── resources │ │ │ │ │ └── webroot │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── webapp │ │ │ │ │ └── index.js │ │ │ │ │ └── java │ │ │ │ │ └── sample │ │ │ │ │ └── MainVerticle.java │ │ │ ├── package.json │ │ │ ├── build.gradle │ │ │ └── yarn.lock │ │ ├── kotlin-sample │ │ │ ├── settings.gradle │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── kotlin │ │ │ │ └── sample │ │ │ │ └── App.kt │ │ ├── vertx-web-sample │ │ │ ├── settings.gradle │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── sample │ │ │ │ └── App.java │ │ ├── simple-project-manually-testable │ │ │ ├── settings.gradle │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── sample │ │ │ │ └── App.java │ │ └── custom-source-compatibility-project │ │ │ ├── settings.gradle │ │ │ ├── build.gradle │ │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── sample │ │ │ └── App.java │ └── kotlin │ │ └── io │ │ └── vertx │ │ └── gradle │ │ └── VertxPluginTest.kt └── main │ └── kotlin │ └── io │ └── vertx │ └── gradle │ ├── VertxExtension.kt │ └── VertxPlugin.kt ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── .editorconfig ├── settings.gradle.kts ├── .github └── workflows │ └── gradle.yml ├── gradlew.bat ├── README.adoc ├── gradlew └── LICENSE /src/test/gradle/simple-project/settings.gradle: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/test/gradle/simple-custom-launcher/settings.gradle: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jponge/vertx-gradle-plugin/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle/ 2 | .idea/ 3 | *.iml 4 | *.iws 5 | *.ipr 6 | out/ 7 | build/ 8 | bin/ 9 | .classpath 10 | .project 11 | .vscode/ 12 | .settings/ 13 | node_modules/ 14 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | trim_trailing_whitespace = true 8 | end_of_line = lf 9 | insert_final_newline = true 10 | -------------------------------------------------------------------------------- /src/test/gradle/webpack-sample/webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | entry: './src/main/webapp/index.js', 3 | output: { 4 | filename: './build/resources/main/webroot/bundle.js' 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/test/gradle/simple-project/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'io.vertx.vertx-plugin' 3 | } 4 | 5 | repositories { 6 | jcenter() 7 | } 8 | 9 | vertx { 10 | mainVerticle = 'sample.App' 11 | } 12 | -------------------------------------------------------------------------------- /src/test/gradle/kotlin-sample/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'vertx-web-sample' 2 | 3 | includeBuild("../../../../") { 4 | dependencySubstitution { 5 | substitute module("io.vertx:vertx-gradle-plugin") with project(":") 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/gradle/vertx-web-sample/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'vertx-web-sample' 2 | 3 | includeBuild("../../../../") { 4 | dependencySubstitution { 5 | substitute module("io.vertx:vertx-gradle-plugin") with project(":") 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/gradle/webpack-sample/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'vertx-web-sample' 2 | 3 | includeBuild("../../../../") { 4 | dependencySubstitution { 5 | substitute module("io.vertx:vertx-gradle-plugin") with project(":") 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/gradle/simple-project-manually-testable/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'simple-project' 2 | 3 | includeBuild("../../../../") { 4 | dependencySubstitution { 5 | substitute module("io.vertx:vertx-gradle-plugin") with project(":") 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/gradle/simple-custom-launcher/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'io.vertx.vertx-plugin' 3 | } 4 | 5 | repositories { 6 | jcenter() 7 | } 8 | 9 | vertx { 10 | mainVerticle = 'sample.App' 11 | launcher = 'sample.AppLauncher' 12 | redeploy = false 13 | } 14 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip 4 | networkTimeout=10000 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /src/test/gradle/webpack-sample/src/main/resources/webroot/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Vert.x, Gradle and WebPack 4 | 5 | 6 |

7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/test/gradle/custom-source-compatibility-project/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'custom-source-compatibility-project' 2 | 3 | includeBuild("../../../../") { 4 | dependencySubstitution { 5 | substitute module("io.vertx:vertx-gradle-plugin") with project(":") 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/test/gradle/simple-custom-launcher/src/main/java/sample/App.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | import io.vertx.core.Vertx; 4 | import io.vertx.core.AbstractVerticle; 5 | 6 | public class App extends AbstractVerticle { 7 | 8 | @Override 9 | public void start() { 10 | vertx.close(foo -> { System.out.println("App stopped."); }); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/gradle/simple-project-manually-testable/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | } 5 | dependencies { 6 | classpath 'io.vertx:vertx-gradle-plugin' 7 | } 8 | } 9 | 10 | apply plugin: 'io.vertx.vertx-plugin' 11 | 12 | repositories { 13 | jcenter() 14 | } 15 | 16 | vertx { 17 | mainVerticle = 'sample.App' 18 | } 19 | -------------------------------------------------------------------------------- /src/test/gradle/webpack-sample/src/main/webapp/index.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios'; 2 | 3 | setInterval(function() { 4 | axios.get("/time") 5 | .then(function(response) { 6 | document.getElementById("placeholder").innerText = "From the server: " + response.data.value; 7 | }) 8 | .catch(function (error) { 9 | console.log(error); 10 | }); 11 | }, 2000); 12 | -------------------------------------------------------------------------------- /src/test/gradle/custom-source-compatibility-project/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | } 5 | dependencies { 6 | classpath 'io.vertx:vertx-gradle-plugin' 7 | } 8 | } 9 | 10 | apply plugin: 'io.vertx.vertx-plugin' 11 | 12 | repositories { 13 | jcenter() 14 | } 15 | 16 | vertx { 17 | mainVerticle = 'sample.App' 18 | } 19 | 20 | sourceCompatibility = JavaVersion.VERSION_11 21 | -------------------------------------------------------------------------------- /src/test/gradle/vertx-web-sample/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | } 5 | dependencies { 6 | classpath 'io.vertx:vertx-gradle-plugin' 7 | } 8 | } 9 | 10 | apply plugin: 'io.vertx.vertx-plugin' 11 | 12 | repositories { 13 | jcenter() 14 | } 15 | 16 | dependencies { 17 | compile "io.vertx:vertx-web" 18 | compile "ch.qos.logback:logback-classic:1.2.3" 19 | } 20 | 21 | vertx { 22 | launcher = "sample.App" 23 | } 24 | -------------------------------------------------------------------------------- /src/test/gradle/simple-custom-launcher/src/main/java/sample/AppLauncher.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | import io.vertx.core.Launcher; 4 | import io.vertx.core.Vertx; 5 | 6 | public class AppLauncher extends Launcher { 7 | 8 | @Override 9 | public void afterStartingVertx(Vertx vertx) { 10 | System.out.println("Started with custom launcher."); 11 | } 12 | 13 | public static void main(String[] args) { 14 | new AppLauncher().dispatch(args); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/test/gradle/webpack-sample/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webpack-sample", 3 | "version": "0.0.1", 4 | "description": "A sample with Vert.x, Gradle and Webpack", 5 | "main": "src/main/webapp/index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "devDependencies": { 12 | "webpack": "^2.7.0" 13 | }, 14 | "dependencies": { 15 | "axios": "^0.21.1" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/test/gradle/simple-project/src/main/java/sample/App.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | import io.vertx.core.Vertx; 4 | import io.vertx.core.AbstractVerticle; 5 | 6 | public class App extends AbstractVerticle { 7 | 8 | @Override 9 | public void start() { 10 | 11 | vertx 12 | .createHttpServer() 13 | .requestHandler(req -> req.response().end("Yo!")).listen(18080); 14 | 15 | vertx 16 | .createHttpServer() 17 | .requestHandler(req -> { 18 | req.response().end("Bye!"); 19 | vertx.close(); 20 | }).listen(18081); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/test/gradle/custom-source-compatibility-project/src/main/java/sample/App.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | import io.vertx.core.Vertx; 4 | import io.vertx.core.AbstractVerticle; 5 | 6 | public class App extends AbstractVerticle { 7 | 8 | @Override 9 | public void start() { 10 | 11 | vertx 12 | .createHttpServer() 13 | .requestHandler(req -> req.response().end("Yo!")).listen(18080); 14 | 15 | vertx 16 | .createHttpServer() 17 | .requestHandler(req -> { 18 | req.response().end("Bye!"); 19 | vertx.close(); 20 | }).listen(18081); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/test/gradle/simple-project-manually-testable/src/main/java/sample/App.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | import io.vertx.core.Vertx; 4 | import io.vertx.core.AbstractVerticle; 5 | 6 | public class App extends AbstractVerticle { 7 | 8 | @Override 9 | public void start() { 10 | 11 | vertx 12 | .createHttpServer() 13 | .requestHandler(req -> req.response().end("Yo!")).listen(8080); 14 | 15 | vertx 16 | .createHttpServer() 17 | .requestHandler(req -> { 18 | req.response().end("Bye!"); 19 | vertx.close(); 20 | }).listen(8081); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2019 Red Hat, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | rootProject.name = "vertx-gradle-plugin" 18 | -------------------------------------------------------------------------------- /.github/workflows/gradle.yml: -------------------------------------------------------------------------------- 1 | # This workflow will build a Java project with Gradle 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle 3 | 4 | name: Java CI with Gradle 5 | 6 | on: 7 | push: 8 | branches: [ master ] 9 | pull_request: 10 | branches: [ master ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v2 19 | - name: Set up JDK 11 20 | uses: actions/setup-java@v1 21 | with: 22 | java-version: 11 23 | - name: Grant execute permission for gradlew 24 | run: chmod +x gradlew 25 | - name: Build with Gradle 26 | run: ./gradlew build 27 | -------------------------------------------------------------------------------- /src/test/gradle/kotlin-sample/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | } 5 | dependencies { 6 | classpath 'io.vertx:vertx-gradle-plugin' 7 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.41" 8 | } 9 | } 10 | 11 | apply plugin: 'io.vertx.vertx-plugin' 12 | apply plugin: "org.jetbrains.kotlin.jvm" 13 | 14 | repositories { 15 | jcenter() 16 | } 17 | 18 | dependencies { 19 | compile "io.vertx:vertx-web" 20 | compile "io.vertx:vertx-lang-kotlin" 21 | compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8" 22 | compile "ch.qos.logback:logback-classic:1.2.3" 23 | } 24 | 25 | vertx { 26 | mainVerticle = "sample.App" 27 | } 28 | 29 | tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { 30 | kotlinOptions { 31 | jvmTarget = "1.8" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/test/gradle/kotlin-sample/src/main/kotlin/sample/App.kt: -------------------------------------------------------------------------------- 1 | package sample 2 | 3 | import org.slf4j.Logger 4 | import org.slf4j.LoggerFactory 5 | 6 | import io.vertx.core.* 7 | import io.vertx.core.AbstractVerticle 8 | import io.vertx.core.json.JsonObject 9 | import io.vertx.ext.web.Router 10 | 11 | class App : AbstractVerticle() { 12 | 13 | private val logger = LoggerFactory.getLogger(App::class.java); 14 | 15 | override fun start() { 16 | val router = Router.router(vertx) 17 | 18 | router.get("/").handler() { ctx -> 19 | ctx.response().putHeader("Content-Type", "text/plain").end("This is the root resource") 20 | } 21 | 22 | router.get("/plop").handler() { ctx -> 23 | ctx.response() 24 | .putHeader("Content-Type", "application/json") 25 | .end(JsonObject().put("what", "Plop").encodePrettily()) 26 | } 27 | 28 | vertx.createHttpServer() 29 | .requestHandler(router::accept) 30 | .listen(8080) 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/test/gradle/webpack-sample/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | maven { 5 | url "https://plugins.gradle.org/m2/" 6 | } 7 | } 8 | dependencies { 9 | classpath 'io.vertx:vertx-gradle-plugin' 10 | classpath 'com.moowork.gradle:gradle-node-plugin:1.2.0' 11 | } 12 | } 13 | 14 | apply plugin: 'io.vertx.vertx-plugin' 15 | apply plugin: 'com.moowork.node' 16 | 17 | repositories { 18 | jcenter() 19 | } 20 | 21 | dependencies { 22 | compile "io.vertx:vertx-web" 23 | } 24 | 25 | vertx { 26 | mainVerticle = "sample.MainVerticle" 27 | watch = ["src/**/*", "build.gradle.kts", "yarn.lock"] 28 | onRedeploy = ["classes", "webpack"] 29 | } 30 | 31 | task webpack(type: Exec) { 32 | inputs.file("$projectDir/yarn.lock") 33 | inputs.file("$projectDir/webpack.config.js") 34 | inputs.dir("$projectDir/src/main/webapp") 35 | outputs.dir("$buildDir/resources/main/webroot") 36 | commandLine "$projectDir/node_modules/.bin/webpack" 37 | } 38 | -------------------------------------------------------------------------------- /src/test/gradle/webpack-sample/src/main/java/sample/MainVerticle.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | import java.util.Date; 4 | 5 | import io.vertx.core.*; 6 | import io.vertx.core.AbstractVerticle; 7 | import io.vertx.core.json.JsonObject; 8 | import io.vertx.ext.web.Router; 9 | import io.vertx.ext.web.handler.StaticHandler; 10 | 11 | public class MainVerticle extends AbstractVerticle { 12 | 13 | @Override 14 | public void start() { 15 | Router router = Router.router(vertx); 16 | 17 | router.get("/static/*").handler(StaticHandler.create().setCachingEnabled(false)); 18 | 19 | router.get("/").handler(req -> req.reroute("/static/index.html")); 20 | 21 | router.get("/time").handler(req -> req.response() 22 | .putHeader("Content-Type", "application/json") 23 | .end(new JsonObject() 24 | .put("what", "Time at some point") 25 | .put("value", new Date().toString()).encode())); 26 | 27 | vertx.createHttpServer() 28 | .requestHandler(router) 29 | .listen(8080); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/test/gradle/vertx-web-sample/src/main/java/sample/App.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | import org.slf4j.Logger; 4 | import org.slf4j.LoggerFactory; 5 | 6 | import io.vertx.core.*; 7 | import io.vertx.core.AbstractVerticle; 8 | import io.vertx.core.json.JsonObject; 9 | import io.vertx.ext.web.Router; 10 | 11 | public class App extends AbstractVerticle { 12 | 13 | private static final Logger logger = LoggerFactory.getLogger(App.class); 14 | 15 | @Override 16 | public void start() { 17 | Router router = Router.router(vertx); 18 | 19 | router.get("/").handler(ctx -> { 20 | ctx.response().putHeader("Content-Type", "text/plain").end("This is the root resource"); 21 | }); 22 | 23 | router.get("/plop").handler(ctx -> { 24 | ctx.response() 25 | .putHeader("Content-Type", "application/json") 26 | .end(new JsonObject().put("what", "Plop").encodePrettily()); 27 | }); 28 | 29 | vertx.createHttpServer() 30 | .requestHandler(router::accept) 31 | .listen(8080); 32 | } 33 | 34 | public static void main(String[] args) { 35 | logger.info("Starting..."); 36 | Vertx vertx = Vertx.vertx(); 37 | vertx.deployVerticle(new App(), id -> { 38 | if (id.succeeded()) { 39 | logger.info("App verticle successfully deployed"); 40 | } else { 41 | logger.error("Deployment of App verticle failed", id.cause()); 42 | } 43 | }); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/kotlin/io/vertx/gradle/VertxExtension.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2019 Red Hat, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package io.vertx.gradle 18 | 19 | import org.gradle.api.Project 20 | 21 | /** 22 | * Vertx Gradle extension. 23 | * 24 | * @author [Julien Ponge](https://julien.ponge.org/) 25 | */ 26 | open class VertxExtension(private val project: Project) { 27 | 28 | var vertxVersion = "4.1.2" 29 | 30 | var launcher = "io.vertx.core.Launcher" 31 | var mainVerticle = "" 32 | 33 | var args = listOf() 34 | var config = "" 35 | var workDirectory = project.projectDir.absolutePath 36 | var jvmArgs = listOf() 37 | 38 | var redeploy = true 39 | var watch = listOf("${project.projectDir.absolutePath}/src/**/*") 40 | var onRedeploy = listOf("classes") 41 | var redeployScanPeriod = 1000L 42 | var redeployGracePeriod = 1000L 43 | var redeployTerminationPeriod = 1000L 44 | 45 | var debugPort = 5005L 46 | var debugSuspend = false 47 | 48 | override fun toString(): String { 49 | return "VertxExtension(project=$project, vertxVersion='$vertxVersion', launcher='$launcher', mainVerticle='$mainVerticle', args=$args, config='$config', workDirectory='$workDirectory', jvmArgs=$jvmArgs, redeploy=$redeploy, watch=$watch, onRedeploy='$onRedeploy', redeployScanPeriod=$redeployScanPeriod, redeployGracePeriod=$redeployGracePeriod, redeployTerminationPeriod=$redeployTerminationPeriod, debugPort=$debugPort, debugSuspend=$debugSuspend)" 50 | } 51 | } 52 | 53 | /** 54 | * Extension method to make easier the configuration of the plugin when used with the Gradle Kotlin DSL 55 | */ 56 | fun Project.vertx(configure: VertxExtension.() -> Unit) = 57 | extensions.configure(VertxExtension::class.java, configure) 58 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | 17 | @if "%DEBUG%"=="" @echo off 18 | @rem ########################################################################## 19 | @rem 20 | @rem Gradle startup script for Windows 21 | @rem 22 | @rem ########################################################################## 23 | 24 | @rem Set local scope for the variables with windows NT shell 25 | if "%OS%"=="Windows_NT" setlocal 26 | 27 | set DIRNAME=%~dp0 28 | if "%DIRNAME%"=="" set DIRNAME=. 29 | @rem This is normally unused 30 | set APP_BASE_NAME=%~n0 31 | set APP_HOME=%DIRNAME% 32 | 33 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 34 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 35 | 36 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 37 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 38 | 39 | @rem Find java.exe 40 | if defined JAVA_HOME goto findJavaFromJavaHome 41 | 42 | set JAVA_EXE=java.exe 43 | %JAVA_EXE% -version >NUL 2>&1 44 | if %ERRORLEVEL% equ 0 goto execute 45 | 46 | echo. 47 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 48 | echo. 49 | echo Please set the JAVA_HOME variable in your environment to match the 50 | echo location of your Java installation. 51 | 52 | goto fail 53 | 54 | :findJavaFromJavaHome 55 | set JAVA_HOME=%JAVA_HOME:"=% 56 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 57 | 58 | if exist "%JAVA_EXE%" goto execute 59 | 60 | echo. 61 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 62 | echo. 63 | echo Please set the JAVA_HOME variable in your environment to match the 64 | echo location of your Java installation. 65 | 66 | goto fail 67 | 68 | :execute 69 | @rem Setup the command line 70 | 71 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 72 | 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if %ERRORLEVEL% equ 0 goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | set EXIT_CODE=%ERRORLEVEL% 85 | if %EXIT_CODE% equ 0 set EXIT_CODE=1 86 | if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% 87 | exit /b %EXIT_CODE% 88 | 89 | :mainEnd 90 | if "%OS%"=="Windows_NT" endlocal 91 | 92 | :omega 93 | -------------------------------------------------------------------------------- /src/test/kotlin/io/vertx/gradle/VertxPluginTest.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2019 Red Hat, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package io.vertx.gradle 18 | 19 | import com.mashape.unirest.http.Unirest 20 | import org.assertj.core.api.Assertions.assertThat 21 | import org.gradle.testkit.runner.GradleRunner 22 | import org.gradle.testkit.runner.TaskOutcome 23 | import org.junit.Test 24 | import java.io.* 25 | import java.util.concurrent.TimeUnit 26 | import java.util.jar.JarFile 27 | 28 | 29 | /** 30 | * @author [Julien Ponge](https://julien.ponge.org/) 31 | */ 32 | class VertxPluginTest { 33 | 34 | @Test 35 | fun `smoke test`() { 36 | val runner = GradleRunner.create() 37 | .withProjectDir(File("src/test/gradle/simple-project")) 38 | .withPluginClasspath() 39 | .withArguments("tasks") 40 | .build() 41 | 42 | assertThat(runner.output).contains("shadowJar", "BUILD SUCCESSFUL") 43 | } 44 | 45 | @Test 46 | fun `check that it builds a fat jar`() { 47 | GradleRunner.create() 48 | .withProjectDir(File("src/test/gradle/simple-project")) 49 | .withPluginClasspath() 50 | .withArguments("clean", "build") 51 | .build() 52 | 53 | val fatJarFile = File("src/test/gradle/simple-project/build/libs/simple-project-all.jar") 54 | assertThat(fatJarFile).exists().isFile() 55 | JarFile(fatJarFile).use { 56 | assertThat(it.getJarEntry("sample/App.class")).isNotNull 57 | assertThat(it.getJarEntry("io/vertx/core/Vertx.class")).isNotNull 58 | assertThat(it.getJarEntry("io/netty/channel/EventLoopGroup.class")).isNotNull 59 | } 60 | } 61 | 62 | @Test 63 | fun `check that the application does run`() { 64 | GradleRunner.create() 65 | .withProjectDir(File("src/test/gradle/simple-project")) 66 | .withPluginClasspath() 67 | .withArguments("clean", "build") 68 | .build() 69 | 70 | run("java", "-jar", "src/test/gradle/simple-project/build/libs/simple-project-all.jar") { 71 | val response = Unirest.get("http://localhost:18080/").asString() 72 | Unirest.shutdown() 73 | assertThat(response.status).isEqualTo(200) 74 | assertThat(response.body).isEqualTo("Yo!") 75 | } 76 | } 77 | 78 | @Test 79 | fun `check that vertxRun task runs with custom launcher`() { 80 | val result = GradleRunner 81 | .create() 82 | .withProjectDir(File("src/test/gradle/simple-custom-launcher")) 83 | .withPluginClasspath() 84 | .withArguments("clean", "vertxRun") 85 | .build() 86 | 87 | assertThat(result.task(":vertxRun")).isNotNull 88 | assertThat(result.task(":vertxRun")!!.outcome).isSameAs(TaskOutcome.SUCCESS) 89 | 90 | assertThat(result.output) 91 | .contains("Started with custom launcher.") 92 | .contains("App stopped.") 93 | } 94 | 95 | @Test 96 | fun `check that vertxDebug task runs with custom launcher`() { 97 | val result = GradleRunner 98 | .create() 99 | .withProjectDir(File("src/test/gradle/simple-custom-launcher")) 100 | .withPluginClasspath() 101 | .withArguments("clean", "vertxDebug") 102 | .build() 103 | 104 | assertThat(result.task(":vertxDebug")).isNotNull 105 | assertThat(result.task(":vertxDebug")!!.outcome).isSameAs(TaskOutcome.SUCCESS) 106 | 107 | assertThat(result.output) 108 | .contains("Started with custom launcher.") 109 | .contains("App stopped.") 110 | } 111 | } 112 | 113 | private fun run(vararg command: String, block: () -> Unit) { 114 | val process = ProcessBuilder(command.toList()).start() 115 | Thread.sleep(1000) 116 | block() 117 | process.destroyForcibly() 118 | process.waitFor(30, TimeUnit.SECONDS) 119 | } 120 | -------------------------------------------------------------------------------- /README.adoc: -------------------------------------------------------------------------------- 1 | = Vert.x Gradle Plugin 2 | 3 | An _opinionated_ Gradle plugin for Vert.x projects. 4 | 5 | image:https://github.com/jponge/vertx-gradle-plugin/workflows/Java%20CI%20with%20Gradle/badge.svg[Java CI with Gradle] 6 | image:https://img.shields.io/github/tag/jponge/vertx-gradle-plugin.svg[tag, link=https://plugins.gradle.org/plugin/io.vertx.vertx-plugin] 7 | image:https://img.shields.io/github/license/jponge/vertx-gradle-plugin.svg[license, link=https://github.com/jponge/vertx-gradle-plugin/blob/master/LICENSE] 8 | image:https://img.shields.io/maven-metadata/v/https/plugins.gradle.org/m2/io/vertx/vertx-plugin/io.vertx.vertx-plugin.gradle.plugin/maven-metadata.xml.svg?label=gradlePluginPortal["Maven Central",link="https://plugins.gradle.org/plugin/io.vertx.vertx-plugin"] 9 | 10 | == What the plugin does 11 | 12 | This https://plugins.gradle.org/plugin/io.vertx.vertx-plugin[plugin] simplifies building and running Vert.x applications with Gradle. 13 | 14 | It automatically applies the following plugins: 15 | 16 | * `https://docs.gradle.org/current/userguide/java_plugin.html[java]` 17 | * `https://docs.gradle.org/current/userguide/application_plugin.html[application]` + `https://docs.gradle.org/current/userguide/distribution_plugin.html[distribution]` for packaging the app for the JVM 18 | * `https://github.com/johnrengelman/shadow[shadow]` to generate _uber Jars_ with all dependencies bundled 19 | 20 | You can omit versions from elements in the https://github.com/vert-x3/vertx-stack[the Vert.x stack as the plugin references the corresponding Maven BOM. 21 | 22 | NOTE: From version `0.9.0` the plugin no longer sets the `sourceCompatibility` to Java 8. You can set it manually like in other `https://docs.gradle.org/current/userguide/building_java_projects.html#introduction[Java projects]`. 23 | 24 | The plugin automatically adds `io.vertx:vertx-core` as a `compile` dependency, so you don't need to do it. 25 | 26 | The plugin provides a `vertxRun` task that can take advantage of the Vert.x auto-reloading capabilities, so you can _just_ run it then have you code being automatically compiled and reloaded as you make changes. 27 | 28 | NOTE: If you encounter issues with your application still being running in the background due to how the Gradle caching works, then you may try running the `vertxRun` task with `gradle --no-daemon vertxRun`. 29 | 30 | The plugin provides a `vertxDebug` task enabling to debug your code. 31 | 32 | NOTE: Reloading is disabled while debugging. Moreover in order to prevent warnings while in debug mode, Vert.x options `maxEventLoopExecuteTime` and `maxWorkerExecuteTime` are set to `java.lang.Long.MAX_VALUE` 33 | 34 | === Minimal example 35 | 36 | [source,groovy] 37 | 38 | ---- 39 | plugins { 40 | id 'io.vertx.vertx-plugin' version 'x.y.z' // <1> 41 | } 42 | 43 | repositories { 44 | jcenter() 45 | } 46 | 47 | vertx { 48 | mainVerticle = 'sample.App' 49 | } 50 | ---- 51 | 52 | image:https://img.shields.io/maven-metadata/v/https/plugins.gradle.org/m2/io/vertx/vertx-plugin/io.vertx.vertx-plugin.gradle.plugin/maven-metadata.xml.svg?label=gradlePluginPortal["Maven Central",link="https://plugins.gradle.org/plugin/io.vertx.vertx-plugin"] 53 | Replace `x.y.z` with a version available on the https://plugins.gradle.org/plugin/io.vertx.vertx-plugin[Gradle Plugin Portal] 54 | 55 | 56 | 57 | Provided `sample.App` is a Vert.x verticle, then: 58 | 59 | * `gradle shadowJar` builds an executable Jar with all dependencies: `java -jar build/libs/simple-project-all.jar` 60 | * `gradle vertxRun` starts the application and automatically recompiles (`gradle classes`) and reloads the code when any file under `src/` is being added, modified or deleted. 61 | 62 | === A slightly more elaborated example 63 | 64 | A project using `vertx-web` and `logback` would use a `build.gradle` definition like the following one: 65 | 66 | [source,groovy] 67 | ---- 68 | plugins { 69 | id 'io.vertx.vertx-plugin' version 'x.y.z' 70 | } 71 | 72 | repositories { 73 | jcenter() 74 | } 75 | 76 | dependencies { 77 | compile "io.vertx:vertx-web" // <1> 78 | compile "ch.qos.logback:logback-classic:1.2.3" // <2> 79 | } 80 | 81 | vertx { 82 | mainVerticle = "sample.App" 83 | vertxVersion = "4.1.2" // <3> 84 | } 85 | ---- 86 | <1> Part of the Vert.x stack, so the version can be omitted. 87 | <2> Logback needs a version. 88 | <3> You can override to point to any specific release of Vert.x. 89 | 90 | === Kotlin projects 91 | 92 | This plugin works with Kotlin projects too: 93 | 94 | 95 | [source,groovy] 96 | ---- 97 | plugins { 98 | id 'io.vertx.vertx-plugin' version 'x.y.z' 99 | id 'org.jetbrains.kotlin.jvm' version 'a.b.c' 100 | } 101 | 102 | repositories { 103 | jcenter() 104 | } 105 | 106 | dependencies { 107 | compile 'io.vertx:vertx-lang-kotlin' 108 | compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' // <1> 109 | } 110 | 111 | vertx { 112 | mainVerticle = "sample.MainVerticle" // <2> 113 | } 114 | 115 | tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { // <3> 116 | kotlinOptions { 117 | jvmTarget = "1.8" 118 | } 119 | } 120 | ---- 121 | <1> This pulls all the Kotlin standard library dependencies for JDK 8+. 122 | <2> This verticle can be written in Kotlin (or Java). 123 | <3> By default Kotlin compiles to Java 6 bytecode, so it is worth changing all compilation tasks to match Java 8 bytecode. 124 | 125 | === Using Kotlin DSL 126 | 127 | [source,kotlin] 128 | ---- 129 | plugins { 130 | id("io.vertx.vertx-plugin") version "x.y.z" 131 | } 132 | 133 | repositories { 134 | jcenter() 135 | } 136 | 137 | vertx { // <1> 138 | mainVerticle = "sample.App" 139 | } 140 | ---- 141 | <1> Extension method on `org.gradle.api.Project`. 142 | 143 | == Configuration 144 | 145 | The configuration happens through the `vertx` Gradle extension. 146 | 147 | The following configuration can be applied, and matches the `vertx run` command-line interface when possible: 148 | 149 | [cols=3,options="header"] 150 | |=== 151 | | Option 152 | | Description 153 | | Default value 154 | 155 | |`vertxVersion` 156 | |the Vert.x version to use 157 | |`"4.1.2"` 158 | 159 | |`launcher` 160 | |the main class name 161 | | `io.vertx.core.Launcher` 162 | 163 | |`mainVerticle` 164 | |the main verticle 165 | | `""` 166 | 167 | |`args` 168 | |a list of command-line arguments to pass 169 | |`[]` 170 | 171 | |`config` 172 | |either a file or direct JSON data to provide configuration 173 | |`""` 174 | 175 | |`workDirectory` 176 | |the working directory 177 | |`project.projectDir` 178 | 179 | |`jvmArgs` 180 | |extra JVM arguments 181 | |`[]` 182 | 183 | |`redeploy` 184 | |whether automatic redeployment shall happen or not 185 | |`true` 186 | 187 | |`watch` 188 | |Ant-style matchers for files to watch for modifications 189 | |[`src/\**/*`] 190 | 191 | |`onRedeploy` 192 | |the Gradle tasks to run before redeploying 193 | |`["classes"]` 194 | 195 | |`redeployScanPeriod` / `redeployGracePeriod` / `redeployTerminationPeriod` 196 | |tuning for the redeployment watch timers 197 | |`1000L` (1 second each) 198 | 199 | |`debugPort` 200 | | The debugger port 201 | |`5005L` 202 | 203 | |`debugSuspend` 204 | | Whether or not the application must wait until a debugger is attached to start 205 | |`false` 206 | 207 | |=== 208 | 209 | The default values are listed in `src/main/kotlin/io/vertx/gradle/VertxExtension.kt`. 210 | 211 | By default redeployment is enabled, running `gradle classes` to recompile, and watching all files under `src/`. 212 | 213 | == Licensing 214 | 215 | ---- 216 | Copyright 2017-2019 Red Hat, Inc. 217 | 218 | Licensed under the Apache License, Version 2.0 (the "License"); 219 | you may not use this file except in compliance with the License. 220 | You may obtain a copy of the License at 221 | 222 | http://www.apache.org/licenses/LICENSE-2.0 223 | 224 | Unless required by applicable law or agreed to in writing, software 225 | distributed under the License is distributed on an "AS IS" BASIS, 226 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 227 | See the License for the specific language governing permissions and 228 | limitations under the License. 229 | ---- 230 | 231 | == Credits 232 | 233 | The plugin was originally created by https://julien.ponge.org/[Julien Ponge]. 234 | 235 | Thanks to the folks at Gradle for their guidance and technical discussions: 236 | 237 | * Cédric Champeau 238 | * Stefan Oheme 239 | * Rodrigo B. de Oliveira 240 | * Eric Wendelin 241 | * Benjamin Muschko 242 | 243 | Thanks also to https://github.com/jponge/vertx-gradle-plugin/graphs/contributors[all the contributors to this project]. 244 | -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # 4 | # Copyright © 2015-2021 the original authors. 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # https://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | ############################################################################## 20 | # 21 | # Gradle start up script for POSIX generated by Gradle. 22 | # 23 | # Important for running: 24 | # 25 | # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is 26 | # noncompliant, but you have some other compliant shell such as ksh or 27 | # bash, then to run this script, type that shell name before the whole 28 | # command line, like: 29 | # 30 | # ksh Gradle 31 | # 32 | # Busybox and similar reduced shells will NOT work, because this script 33 | # requires all of these POSIX shell features: 34 | # * functions; 35 | # * expansions «$var», «${var}», «${var:-default}», «${var+SET}», 36 | # «${var#prefix}», «${var%suffix}», and «$( cmd )»; 37 | # * compound commands having a testable exit status, especially «case»; 38 | # * various built-in commands including «command», «set», and «ulimit». 39 | # 40 | # Important for patching: 41 | # 42 | # (2) This script targets any POSIX shell, so it avoids extensions provided 43 | # by Bash, Ksh, etc; in particular arrays are avoided. 44 | # 45 | # The "traditional" practice of packing multiple parameters into a 46 | # space-separated string is a well documented source of bugs and security 47 | # problems, so this is (mostly) avoided, by progressively accumulating 48 | # options in "$@", and eventually passing that to Java. 49 | # 50 | # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, 51 | # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; 52 | # see the in-line comments for details. 53 | # 54 | # There are tweaks for specific operating systems such as AIX, CygWin, 55 | # Darwin, MinGW, and NonStop. 56 | # 57 | # (3) This script is generated from the Groovy template 58 | # https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt 59 | # within the Gradle project. 60 | # 61 | # You can find Gradle at https://github.com/gradle/gradle/. 62 | # 63 | ############################################################################## 64 | 65 | # Attempt to set APP_HOME 66 | 67 | # Resolve links: $0 may be a link 68 | app_path=$0 69 | 70 | # Need this for daisy-chained symlinks. 71 | while 72 | APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path 73 | [ -h "$app_path" ] 74 | do 75 | ls=$( ls -ld "$app_path" ) 76 | link=${ls#*' -> '} 77 | case $link in #( 78 | /*) app_path=$link ;; #( 79 | *) app_path=$APP_HOME$link ;; 80 | esac 81 | done 82 | 83 | # This is normally unused 84 | # shellcheck disable=SC2034 85 | APP_BASE_NAME=${0##*/} 86 | APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit 87 | 88 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 89 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' 90 | 91 | # Use the maximum available, or set MAX_FD != -1 to use that value. 92 | MAX_FD=maximum 93 | 94 | warn () { 95 | echo "$*" 96 | } >&2 97 | 98 | die () { 99 | echo 100 | echo "$*" 101 | echo 102 | exit 1 103 | } >&2 104 | 105 | # OS specific support (must be 'true' or 'false'). 106 | cygwin=false 107 | msys=false 108 | darwin=false 109 | nonstop=false 110 | case "$( uname )" in #( 111 | CYGWIN* ) cygwin=true ;; #( 112 | Darwin* ) darwin=true ;; #( 113 | MSYS* | MINGW* ) msys=true ;; #( 114 | NONSTOP* ) nonstop=true ;; 115 | esac 116 | 117 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 118 | 119 | 120 | # Determine the Java command to use to start the JVM. 121 | if [ -n "$JAVA_HOME" ] ; then 122 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 123 | # IBM's JDK on AIX uses strange locations for the executables 124 | JAVACMD=$JAVA_HOME/jre/sh/java 125 | else 126 | JAVACMD=$JAVA_HOME/bin/java 127 | fi 128 | if [ ! -x "$JAVACMD" ] ; then 129 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 130 | 131 | Please set the JAVA_HOME variable in your environment to match the 132 | location of your Java installation." 133 | fi 134 | else 135 | JAVACMD=java 136 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 137 | 138 | Please set the JAVA_HOME variable in your environment to match the 139 | location of your Java installation." 140 | fi 141 | 142 | # Increase the maximum file descriptors if we can. 143 | if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then 144 | case $MAX_FD in #( 145 | max*) 146 | # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. 147 | # shellcheck disable=SC3045 148 | MAX_FD=$( ulimit -H -n ) || 149 | warn "Could not query maximum file descriptor limit" 150 | esac 151 | case $MAX_FD in #( 152 | '' | soft) :;; #( 153 | *) 154 | # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. 155 | # shellcheck disable=SC3045 156 | ulimit -n "$MAX_FD" || 157 | warn "Could not set maximum file descriptor limit to $MAX_FD" 158 | esac 159 | fi 160 | 161 | # Collect all arguments for the java command, stacking in reverse order: 162 | # * args from the command line 163 | # * the main class name 164 | # * -classpath 165 | # * -D...appname settings 166 | # * --module-path (only if needed) 167 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. 168 | 169 | # For Cygwin or MSYS, switch paths to Windows format before running java 170 | if "$cygwin" || "$msys" ; then 171 | APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) 172 | CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) 173 | 174 | JAVACMD=$( cygpath --unix "$JAVACMD" ) 175 | 176 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 177 | for arg do 178 | if 179 | case $arg in #( 180 | -*) false ;; # don't mess with options #( 181 | /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath 182 | [ -e "$t" ] ;; #( 183 | *) false ;; 184 | esac 185 | then 186 | arg=$( cygpath --path --ignore --mixed "$arg" ) 187 | fi 188 | # Roll the args list around exactly as many times as the number of 189 | # args, so each arg winds up back in the position where it started, but 190 | # possibly modified. 191 | # 192 | # NB: a `for` loop captures its iteration list before it begins, so 193 | # changing the positional parameters here affects neither the number of 194 | # iterations, nor the values presented in `arg`. 195 | shift # remove old arg 196 | set -- "$@" "$arg" # push replacement arg 197 | done 198 | fi 199 | 200 | # Collect all arguments for the java command; 201 | # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of 202 | # shell script including quotes and variable substitutions, so put them in 203 | # double quotes to make sure that they get re-expanded; and 204 | # * put everything else in single quotes, so that it's not re-expanded. 205 | 206 | set -- \ 207 | "-Dorg.gradle.appname=$APP_BASE_NAME" \ 208 | -classpath "$CLASSPATH" \ 209 | org.gradle.wrapper.GradleWrapperMain \ 210 | "$@" 211 | 212 | # Stop when "xargs" is not available. 213 | if ! command -v xargs >/dev/null 2>&1 214 | then 215 | die "xargs is not available" 216 | fi 217 | 218 | # Use "xargs" to parse quoted args. 219 | # 220 | # With -n1 it outputs one arg per line, with the quotes and backslashes removed. 221 | # 222 | # In Bash we could simply go: 223 | # 224 | # readarray ARGS < <( xargs -n1 <<<"$var" ) && 225 | # set -- "${ARGS[@]}" "$@" 226 | # 227 | # but POSIX shell has neither arrays nor command substitution, so instead we 228 | # post-process each arg (as a line of input to sed) to backslash-escape any 229 | # character that might be a shell metacharacter, then use eval to reverse 230 | # that process (while maintaining the separation between arguments), and wrap 231 | # the whole thing up as a single "set" statement. 232 | # 233 | # This will of course break if any of these variables contains a newline or 234 | # an unmatched quote. 235 | # 236 | 237 | eval "set -- $( 238 | printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | 239 | xargs -n1 | 240 | sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | 241 | tr '\n' ' ' 242 | )" '"$@"' 243 | 244 | exec "$JAVACMD" "$@" 245 | -------------------------------------------------------------------------------- /src/main/kotlin/io/vertx/gradle/VertxPlugin.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2019 Red Hat, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package io.vertx.gradle 18 | 19 | import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin 20 | import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar 21 | import org.apache.tools.ant.taskdefs.condition.Os 22 | import org.gradle.api.GradleException 23 | import org.gradle.api.Plugin 24 | import org.gradle.api.Project 25 | import org.gradle.api.plugins.* 26 | import org.gradle.api.tasks.JavaExec 27 | import org.slf4j.LoggerFactory 28 | import java.io.File 29 | import java.util.* 30 | 31 | /** 32 | * A Gradle plugin for Eclipse Vert.x projects. 33 | * 34 | * @author [Julien Ponge](https://julien.ponge.org/) 35 | */ 36 | class VertxPlugin : Plugin { 37 | 38 | private val logger = LoggerFactory.getLogger(VertxPlugin::class.java) 39 | 40 | private lateinit var gradleCommand: String 41 | 42 | override fun apply(project: Project) { 43 | findGradleCommand(project) 44 | installVertxExtension(project) 45 | applyOtherPlugins(project) 46 | createVertxTasks(project) 47 | project.afterEvaluate { 48 | logger.debug("Vert.x plugin configuration: ${project.vertxExtension()}") 49 | configureVertxVersion(project) 50 | addVertxCoreDependency(project) 51 | defineMainClassName(project) 52 | configureShadowPlugin(project) 53 | configureVertxRunTask(project) 54 | configureVertxDebugTask(project) 55 | } 56 | } 57 | 58 | private fun findGradleCommand(project: Project) { 59 | val globalGradle = if (Os.isFamily(Os.FAMILY_WINDOWS)) "gradle.bat" else "gradle" 60 | val gradlewScript = if (Os.isFamily(Os.FAMILY_WINDOWS)) "gradlew.bat" else "gradlew" 61 | 62 | fun findRecursively(dir: File): Optional { 63 | val script = File(dir, gradlewScript) 64 | return when { 65 | script.exists() -> Optional.of(script.absolutePath) 66 | dir.parentFile != null -> findRecursively(dir.parentFile) 67 | else -> Optional.empty() 68 | } 69 | } 70 | 71 | gradleCommand = findRecursively(project.projectDir).orElse(globalGradle) 72 | } 73 | 74 | private fun installVertxExtension(project: Project) { 75 | project.extensions.create("vertx", VertxExtension::class.java, project) 76 | logger.debug("vertx extension created and added to the project") 77 | } 78 | 79 | private fun Project.vertxExtension(): VertxExtension = this.extensions.getByName("vertx") as VertxExtension 80 | 81 | private fun applyOtherPlugins(project: Project) { 82 | logger.debug("Applying the plugins needed by the Vert.x plugin") 83 | with(project.pluginManager) { 84 | apply(JavaPlugin::class.java) 85 | apply(ApplicationPlugin::class.java) 86 | apply(ShadowPlugin::class.java) 87 | } 88 | logger.debug("The plugins needed by the Vert.x plugin have been applied") 89 | } 90 | 91 | private fun configureVertxVersion(project: Project) { 92 | val vertxVersion = project.vertxExtension().vertxVersion 93 | project.extensions.extraProperties["stack.version"] = vertxVersion 94 | project.dependencies.apply { 95 | add("implementation", platform("io.vertx:vertx-stack-depchain:$vertxVersion")) 96 | } 97 | logger.debug("Recommending Vert.x version $vertxVersion") 98 | } 99 | 100 | private fun addVertxCoreDependency(project: Project) { 101 | project.dependencies.apply { 102 | add("implementation", "io.vertx:vertx-core") 103 | } 104 | logger.debug("Added vertx-core as a compile dependency") 105 | } 106 | 107 | private fun defineMainClassName(project: Project) { 108 | val vertxExtension = project.vertxExtension() 109 | val applicationConvention = project.convention.getPlugin(ApplicationPluginConvention::class.java) 110 | applicationConvention.mainClassName = vertxExtension.launcher 111 | logger.debug("The main class has been set to ${vertxExtension.launcher}") 112 | } 113 | 114 | private fun configureShadowPlugin(project: Project) { 115 | val shadowJarTask = project.tasks.getByName("shadowJar") as ShadowJar 116 | val vertxExtension = project.vertxExtension() 117 | shadowJarTask.apply { 118 | archiveClassifier.set("all") 119 | mergeServiceFiles { serviceFiles -> 120 | serviceFiles.include("META-INF/services/io.vertx.core.spi.VerticleFactory") 121 | serviceFiles.include("META-INF/spring.*") 122 | } 123 | manifest { manifest -> 124 | manifest.attributes["Main-Verticle"] = vertxExtension.mainVerticle 125 | } 126 | } 127 | logger.debug("The shadow plugin has been configured") 128 | } 129 | 130 | private fun createVertxTasks(project: Project) { 131 | project.tasks.create("vertxRun", JavaExec::class.java).dependsOn("classes") 132 | project.tasks.create("vertxDebug", JavaExec::class.java).dependsOn("classes") 133 | logger.debug("The vertx tasks have been created") 134 | } 135 | 136 | private fun configureVertxRunTask(project: Project) { 137 | val vertxExtension = project.vertxExtension() 138 | val javaConvention = project.convention.getPlugin(JavaPluginConvention::class.java) 139 | val mainSourceSet = javaConvention.sourceSets.getByName("main") 140 | 141 | (project.tasks.getByName("vertxRun") as JavaExec).apply { 142 | group = "Application" 143 | description = "Runs this project as a Vert.x application" 144 | 145 | workingDir(File(vertxExtension.workDirectory)) 146 | jvmArgs(vertxExtension.jvmArgs) 147 | classpath(mainSourceSet.runtimeClasspath) 148 | 149 | mainClass.set(if (vertxExtension.redeploy) "io.vertx.core.Launcher" else vertxExtension.launcher) 150 | 151 | if (vertxExtension.mainVerticle.isBlank()) { 152 | if (vertxExtension.launcher == "io.vertx.core.Launcher") { 153 | throw GradleException("Extension property vertx.mainVerticle must be specified when using io.vertx.core.Launcher as a launcher") 154 | } 155 | args("run") 156 | } else { 157 | args("run", vertxExtension.mainVerticle) 158 | } 159 | 160 | if (vertxExtension.redeploy) { 161 | args("--launcher-class", vertxExtension.launcher) 162 | if (vertxExtension.jvmArgs.isNotEmpty()) { 163 | args("--java-opts", vertxExtension.jvmArgs.joinToString(separator = " ", prefix = "\"", postfix = "\"")) 164 | } 165 | args("--redeploy", vertxExtension.watch.joinToString(separator = ",")) 166 | if (vertxExtension.onRedeploy.isNotEmpty()) { 167 | args("--on-redeploy", "$gradleCommand ${vertxExtension.onRedeploy.joinToString(separator = " ")}") 168 | } 169 | args("--redeploy-grace-period", vertxExtension.redeployGracePeriod) 170 | args("--redeploy-scan-period", vertxExtension.redeployScanPeriod) 171 | args("--redeploy-termination-period", vertxExtension.redeployTerminationPeriod) 172 | } 173 | 174 | if (vertxExtension.config.isNotBlank()) { 175 | args("--conf", vertxExtension.config) 176 | } 177 | vertxExtension.args.forEach { args(it) } 178 | } 179 | 180 | logger.debug("The vertxRun task has been configured") 181 | } 182 | 183 | private fun configureVertxDebugTask(project: Project) { 184 | val vertxExtension = project.vertxExtension() 185 | val javaConvention = project.convention.getPlugin(JavaPluginConvention::class.java) 186 | val mainSourceSet = javaConvention.sourceSets.getByName("main") 187 | 188 | (project.tasks.getByName("vertxDebug") as JavaExec).apply { 189 | group = "Application" 190 | description = "Debugs this project as a Vert.x application" 191 | 192 | workingDir(File(vertxExtension.workDirectory)) 193 | jvmArgs(vertxExtension.jvmArgs) 194 | jvmArgs(computeDebugOptions(project)) 195 | classpath(mainSourceSet.runtimeClasspath) 196 | 197 | mainClass.set(vertxExtension.launcher) 198 | 199 | if (vertxExtension.mainVerticle.isBlank()) { 200 | if (vertxExtension.launcher == "io.vertx.core.Launcher") { 201 | throw GradleException("Extension property vertx.mainVerticle must be specified when using io.vertx.core.Launcher as a launcher") 202 | } 203 | args("run") 204 | } else { 205 | args("run", vertxExtension.mainVerticle) 206 | } 207 | if (vertxExtension.config.isNotBlank()) { 208 | args("--conf", vertxExtension.config) 209 | } 210 | vertxExtension.args.forEach { args(it) } 211 | } 212 | 213 | logger.debug("The vertxDebug task has been configured") 214 | } 215 | 216 | private fun computeDebugOptions(project: Project): List { 217 | val vertxExtension = project.vertxExtension() 218 | val debugger = "-agentlib:jdwp=transport=dt_socket,server=y,suspend=" + 219 | (if (vertxExtension.debugSuspend) "y" else "n") + ",address=${vertxExtension.debugPort}" 220 | val disableEventLoopchecker = "-Dvertx.options.maxEventLoopExecuteTime=${java.lang.Long.MAX_VALUE}" 221 | val disableWorkerchecker = "-Dvertx.options.maxWorkerExecuteTime=${java.lang.Long.MAX_VALUE}" 222 | val mark = "-Dvertx.debug=true" 223 | 224 | return arrayListOf(debugger, disableEventLoopchecker, disableWorkerchecker, mark) 225 | } 226 | } 227 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright [yyyy] [name of copyright owner] 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. 203 | -------------------------------------------------------------------------------- /src/test/gradle/webpack-sample/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | acorn-dynamic-import@^2.0.0: 6 | version "2.0.2" 7 | resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" 8 | integrity sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ= 9 | dependencies: 10 | acorn "^4.0.3" 11 | 12 | acorn@^4.0.3: 13 | version "4.0.13" 14 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" 15 | integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c= 16 | 17 | acorn@^5.0.0: 18 | version "5.7.4" 19 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" 20 | integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== 21 | 22 | ajv-keywords@^1.1.1: 23 | version "1.5.1" 24 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" 25 | integrity sha1-MU3QpLM2j609/NxU7eYXG4htrzw= 26 | 27 | ajv@^4.7.0: 28 | version "4.11.8" 29 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" 30 | integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY= 31 | dependencies: 32 | co "^4.6.0" 33 | json-stable-stringify "^1.0.1" 34 | 35 | align-text@^0.1.1, align-text@^0.1.3: 36 | version "0.1.4" 37 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" 38 | integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= 39 | dependencies: 40 | kind-of "^3.0.2" 41 | longest "^1.0.1" 42 | repeat-string "^1.5.2" 43 | 44 | ansi-regex@^2.0.0: 45 | version "2.1.1" 46 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 47 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 48 | 49 | anymatch@^2.0.0: 50 | version "2.0.0" 51 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" 52 | integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== 53 | dependencies: 54 | micromatch "^3.1.4" 55 | normalize-path "^2.1.1" 56 | 57 | anymatch@~3.1.1: 58 | version "3.1.1" 59 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" 60 | integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== 61 | dependencies: 62 | normalize-path "^3.0.0" 63 | picomatch "^2.0.4" 64 | 65 | arr-diff@^4.0.0: 66 | version "4.0.0" 67 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" 68 | integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= 69 | 70 | arr-flatten@^1.1.0: 71 | version "1.1.0" 72 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 73 | integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== 74 | 75 | arr-union@^3.1.0: 76 | version "3.1.0" 77 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" 78 | integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= 79 | 80 | array-unique@^0.3.2: 81 | version "0.3.2" 82 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" 83 | integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= 84 | 85 | asn1.js@^4.0.0: 86 | version "4.10.1" 87 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" 88 | integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== 89 | dependencies: 90 | bn.js "^4.0.0" 91 | inherits "^2.0.1" 92 | minimalistic-assert "^1.0.0" 93 | 94 | assert@^1.1.1: 95 | version "1.5.0" 96 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" 97 | integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== 98 | dependencies: 99 | object-assign "^4.1.1" 100 | util "0.10.3" 101 | 102 | assign-symbols@^1.0.0: 103 | version "1.0.0" 104 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" 105 | integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= 106 | 107 | async-each@^1.0.1: 108 | version "1.0.3" 109 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" 110 | integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== 111 | 112 | async@^2.1.2: 113 | version "2.6.3" 114 | resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" 115 | integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== 116 | dependencies: 117 | lodash "^4.17.14" 118 | 119 | atob@^2.1.2: 120 | version "2.1.2" 121 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" 122 | integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== 123 | 124 | axios@^0.21.1: 125 | version "0.21.1" 126 | resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" 127 | integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== 128 | dependencies: 129 | follow-redirects "^1.10.0" 130 | 131 | base64-js@^1.0.2: 132 | version "1.3.1" 133 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" 134 | integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== 135 | 136 | base@^0.11.1: 137 | version "0.11.2" 138 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" 139 | integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== 140 | dependencies: 141 | cache-base "^1.0.1" 142 | class-utils "^0.3.5" 143 | component-emitter "^1.2.1" 144 | define-property "^1.0.0" 145 | isobject "^3.0.1" 146 | mixin-deep "^1.2.0" 147 | pascalcase "^0.1.1" 148 | 149 | big.js@^3.1.3: 150 | version "3.2.0" 151 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" 152 | integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== 153 | 154 | binary-extensions@^1.0.0: 155 | version "1.13.1" 156 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" 157 | integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== 158 | 159 | binary-extensions@^2.0.0: 160 | version "2.1.0" 161 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" 162 | integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== 163 | 164 | bindings@^1.5.0: 165 | version "1.5.0" 166 | resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" 167 | integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== 168 | dependencies: 169 | file-uri-to-path "1.0.0" 170 | 171 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: 172 | version "4.12.0" 173 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" 174 | integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== 175 | 176 | bn.js@^5.1.1: 177 | version "5.1.2" 178 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" 179 | integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== 180 | 181 | braces@^2.3.1, braces@^2.3.2: 182 | version "2.3.2" 183 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" 184 | integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== 185 | dependencies: 186 | arr-flatten "^1.1.0" 187 | array-unique "^0.3.2" 188 | extend-shallow "^2.0.1" 189 | fill-range "^4.0.0" 190 | isobject "^3.0.1" 191 | repeat-element "^1.1.2" 192 | snapdragon "^0.8.1" 193 | snapdragon-node "^2.0.1" 194 | split-string "^3.0.2" 195 | to-regex "^3.0.1" 196 | 197 | braces@~3.0.2: 198 | version "3.0.2" 199 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 200 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 201 | dependencies: 202 | fill-range "^7.0.1" 203 | 204 | brorand@^1.0.1, brorand@^1.1.0: 205 | version "1.1.0" 206 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" 207 | integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= 208 | 209 | browserify-aes@^1.0.0, browserify-aes@^1.0.4: 210 | version "1.2.0" 211 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" 212 | integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== 213 | dependencies: 214 | buffer-xor "^1.0.3" 215 | cipher-base "^1.0.0" 216 | create-hash "^1.1.0" 217 | evp_bytestokey "^1.0.3" 218 | inherits "^2.0.1" 219 | safe-buffer "^5.0.1" 220 | 221 | browserify-cipher@^1.0.0: 222 | version "1.0.1" 223 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" 224 | integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== 225 | dependencies: 226 | browserify-aes "^1.0.4" 227 | browserify-des "^1.0.0" 228 | evp_bytestokey "^1.0.0" 229 | 230 | browserify-des@^1.0.0: 231 | version "1.0.2" 232 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" 233 | integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== 234 | dependencies: 235 | cipher-base "^1.0.1" 236 | des.js "^1.0.0" 237 | inherits "^2.0.1" 238 | safe-buffer "^5.1.2" 239 | 240 | browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: 241 | version "4.0.1" 242 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" 243 | integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= 244 | dependencies: 245 | bn.js "^4.1.0" 246 | randombytes "^2.0.1" 247 | 248 | browserify-sign@^4.0.0: 249 | version "4.2.0" 250 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11" 251 | integrity sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA== 252 | dependencies: 253 | bn.js "^5.1.1" 254 | browserify-rsa "^4.0.1" 255 | create-hash "^1.2.0" 256 | create-hmac "^1.1.7" 257 | elliptic "^6.5.2" 258 | inherits "^2.0.4" 259 | parse-asn1 "^5.1.5" 260 | readable-stream "^3.6.0" 261 | safe-buffer "^5.2.0" 262 | 263 | browserify-zlib@^0.2.0: 264 | version "0.2.0" 265 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" 266 | integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== 267 | dependencies: 268 | pako "~1.0.5" 269 | 270 | buffer-xor@^1.0.3: 271 | version "1.0.3" 272 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" 273 | integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= 274 | 275 | buffer@^4.3.0: 276 | version "4.9.2" 277 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" 278 | integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== 279 | dependencies: 280 | base64-js "^1.0.2" 281 | ieee754 "^1.1.4" 282 | isarray "^1.0.0" 283 | 284 | builtin-status-codes@^3.0.0: 285 | version "3.0.0" 286 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" 287 | integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= 288 | 289 | cache-base@^1.0.1: 290 | version "1.0.1" 291 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" 292 | integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== 293 | dependencies: 294 | collection-visit "^1.0.0" 295 | component-emitter "^1.2.1" 296 | get-value "^2.0.6" 297 | has-value "^1.0.0" 298 | isobject "^3.0.1" 299 | set-value "^2.0.0" 300 | to-object-path "^0.3.0" 301 | union-value "^1.0.0" 302 | unset-value "^1.0.0" 303 | 304 | camelcase@^1.0.2: 305 | version "1.2.1" 306 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" 307 | integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= 308 | 309 | camelcase@^3.0.0: 310 | version "3.0.0" 311 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" 312 | integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= 313 | 314 | center-align@^0.1.1: 315 | version "0.1.3" 316 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" 317 | integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= 318 | dependencies: 319 | align-text "^0.1.3" 320 | lazy-cache "^1.0.3" 321 | 322 | chokidar@^2.1.8: 323 | version "2.1.8" 324 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" 325 | integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== 326 | dependencies: 327 | anymatch "^2.0.0" 328 | async-each "^1.0.1" 329 | braces "^2.3.2" 330 | glob-parent "^3.1.0" 331 | inherits "^2.0.3" 332 | is-binary-path "^1.0.0" 333 | is-glob "^4.0.0" 334 | normalize-path "^3.0.0" 335 | path-is-absolute "^1.0.0" 336 | readdirp "^2.2.1" 337 | upath "^1.1.1" 338 | optionalDependencies: 339 | fsevents "^1.2.7" 340 | 341 | chokidar@^3.4.0: 342 | version "3.4.0" 343 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8" 344 | integrity sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ== 345 | dependencies: 346 | anymatch "~3.1.1" 347 | braces "~3.0.2" 348 | glob-parent "~5.1.0" 349 | is-binary-path "~2.1.0" 350 | is-glob "~4.0.1" 351 | normalize-path "~3.0.0" 352 | readdirp "~3.4.0" 353 | optionalDependencies: 354 | fsevents "~2.1.2" 355 | 356 | cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: 357 | version "1.0.4" 358 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" 359 | integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== 360 | dependencies: 361 | inherits "^2.0.1" 362 | safe-buffer "^5.0.1" 363 | 364 | class-utils@^0.3.5: 365 | version "0.3.6" 366 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" 367 | integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== 368 | dependencies: 369 | arr-union "^3.1.0" 370 | define-property "^0.2.5" 371 | isobject "^3.0.0" 372 | static-extend "^0.1.1" 373 | 374 | cliui@^2.1.0: 375 | version "2.1.0" 376 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" 377 | integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= 378 | dependencies: 379 | center-align "^0.1.1" 380 | right-align "^0.1.1" 381 | wordwrap "0.0.2" 382 | 383 | cliui@^3.2.0: 384 | version "3.2.0" 385 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" 386 | integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= 387 | dependencies: 388 | string-width "^1.0.1" 389 | strip-ansi "^3.0.1" 390 | wrap-ansi "^2.0.0" 391 | 392 | co@^4.6.0: 393 | version "4.6.0" 394 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 395 | integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= 396 | 397 | code-point-at@^1.0.0: 398 | version "1.1.0" 399 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 400 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 401 | 402 | collection-visit@^1.0.0: 403 | version "1.0.0" 404 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" 405 | integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= 406 | dependencies: 407 | map-visit "^1.0.0" 408 | object-visit "^1.0.0" 409 | 410 | component-emitter@^1.2.1: 411 | version "1.3.0" 412 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" 413 | integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== 414 | 415 | console-browserify@^1.1.0: 416 | version "1.2.0" 417 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" 418 | integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== 419 | 420 | constants-browserify@^1.0.0: 421 | version "1.0.0" 422 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" 423 | integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= 424 | 425 | copy-descriptor@^0.1.0: 426 | version "0.1.1" 427 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" 428 | integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= 429 | 430 | core-util-is@~1.0.0: 431 | version "1.0.2" 432 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 433 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 434 | 435 | create-ecdh@^4.0.0: 436 | version "4.0.3" 437 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" 438 | integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== 439 | dependencies: 440 | bn.js "^4.1.0" 441 | elliptic "^6.0.0" 442 | 443 | create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: 444 | version "1.2.0" 445 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" 446 | integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== 447 | dependencies: 448 | cipher-base "^1.0.1" 449 | inherits "^2.0.1" 450 | md5.js "^1.3.4" 451 | ripemd160 "^2.0.1" 452 | sha.js "^2.4.0" 453 | 454 | create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: 455 | version "1.1.7" 456 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" 457 | integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== 458 | dependencies: 459 | cipher-base "^1.0.3" 460 | create-hash "^1.1.0" 461 | inherits "^2.0.1" 462 | ripemd160 "^2.0.0" 463 | safe-buffer "^5.0.1" 464 | sha.js "^2.4.8" 465 | 466 | crypto-browserify@^3.11.0: 467 | version "3.12.0" 468 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" 469 | integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== 470 | dependencies: 471 | browserify-cipher "^1.0.0" 472 | browserify-sign "^4.0.0" 473 | create-ecdh "^4.0.0" 474 | create-hash "^1.1.0" 475 | create-hmac "^1.1.0" 476 | diffie-hellman "^5.0.0" 477 | inherits "^2.0.1" 478 | pbkdf2 "^3.0.3" 479 | public-encrypt "^4.0.0" 480 | randombytes "^2.0.0" 481 | randomfill "^1.0.3" 482 | 483 | debug@^2.2.0, debug@^2.3.3: 484 | version "2.6.9" 485 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 486 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 487 | dependencies: 488 | ms "2.0.0" 489 | 490 | decamelize@^1.0.0, decamelize@^1.1.1: 491 | version "1.2.0" 492 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 493 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 494 | 495 | decode-uri-component@^0.2.0: 496 | version "0.2.2" 497 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" 498 | integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== 499 | 500 | define-property@^0.2.5: 501 | version "0.2.5" 502 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" 503 | integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= 504 | dependencies: 505 | is-descriptor "^0.1.0" 506 | 507 | define-property@^1.0.0: 508 | version "1.0.0" 509 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" 510 | integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= 511 | dependencies: 512 | is-descriptor "^1.0.0" 513 | 514 | define-property@^2.0.2: 515 | version "2.0.2" 516 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" 517 | integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== 518 | dependencies: 519 | is-descriptor "^1.0.2" 520 | isobject "^3.0.1" 521 | 522 | des.js@^1.0.0: 523 | version "1.0.1" 524 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" 525 | integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== 526 | dependencies: 527 | inherits "^2.0.1" 528 | minimalistic-assert "^1.0.0" 529 | 530 | diffie-hellman@^5.0.0: 531 | version "5.0.3" 532 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" 533 | integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== 534 | dependencies: 535 | bn.js "^4.1.0" 536 | miller-rabin "^4.0.0" 537 | randombytes "^2.0.0" 538 | 539 | domain-browser@^1.1.1: 540 | version "1.2.0" 541 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" 542 | integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== 543 | 544 | elliptic@^6.0.0, elliptic@^6.5.2: 545 | version "6.5.4" 546 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" 547 | integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== 548 | dependencies: 549 | bn.js "^4.11.9" 550 | brorand "^1.1.0" 551 | hash.js "^1.0.0" 552 | hmac-drbg "^1.0.1" 553 | inherits "^2.0.4" 554 | minimalistic-assert "^1.0.1" 555 | minimalistic-crypto-utils "^1.0.1" 556 | 557 | emojis-list@^2.0.0: 558 | version "2.1.0" 559 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" 560 | integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= 561 | 562 | enhanced-resolve@^3.3.0: 563 | version "3.4.1" 564 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" 565 | integrity sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24= 566 | dependencies: 567 | graceful-fs "^4.1.2" 568 | memory-fs "^0.4.0" 569 | object-assign "^4.0.1" 570 | tapable "^0.2.7" 571 | 572 | errno@^0.1.3: 573 | version "0.1.7" 574 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" 575 | integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== 576 | dependencies: 577 | prr "~1.0.1" 578 | 579 | error-ex@^1.2.0: 580 | version "1.3.2" 581 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 582 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 583 | dependencies: 584 | is-arrayish "^0.2.1" 585 | 586 | events@^3.0.0: 587 | version "3.1.0" 588 | resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" 589 | integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== 590 | 591 | evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: 592 | version "1.0.3" 593 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" 594 | integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== 595 | dependencies: 596 | md5.js "^1.3.4" 597 | safe-buffer "^5.1.1" 598 | 599 | expand-brackets@^2.1.4: 600 | version "2.1.4" 601 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" 602 | integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= 603 | dependencies: 604 | debug "^2.3.3" 605 | define-property "^0.2.5" 606 | extend-shallow "^2.0.1" 607 | posix-character-classes "^0.1.0" 608 | regex-not "^1.0.0" 609 | snapdragon "^0.8.1" 610 | to-regex "^3.0.1" 611 | 612 | extend-shallow@^2.0.1: 613 | version "2.0.1" 614 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" 615 | integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= 616 | dependencies: 617 | is-extendable "^0.1.0" 618 | 619 | extend-shallow@^3.0.0, extend-shallow@^3.0.2: 620 | version "3.0.2" 621 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" 622 | integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= 623 | dependencies: 624 | assign-symbols "^1.0.0" 625 | is-extendable "^1.0.1" 626 | 627 | extglob@^2.0.4: 628 | version "2.0.4" 629 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" 630 | integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== 631 | dependencies: 632 | array-unique "^0.3.2" 633 | define-property "^1.0.0" 634 | expand-brackets "^2.1.4" 635 | extend-shallow "^2.0.1" 636 | fragment-cache "^0.2.1" 637 | regex-not "^1.0.0" 638 | snapdragon "^0.8.1" 639 | to-regex "^3.0.1" 640 | 641 | file-uri-to-path@1.0.0: 642 | version "1.0.0" 643 | resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" 644 | integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== 645 | 646 | fill-range@^4.0.0: 647 | version "4.0.0" 648 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" 649 | integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= 650 | dependencies: 651 | extend-shallow "^2.0.1" 652 | is-number "^3.0.0" 653 | repeat-string "^1.6.1" 654 | to-regex-range "^2.1.0" 655 | 656 | fill-range@^7.0.1: 657 | version "7.0.1" 658 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 659 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 660 | dependencies: 661 | to-regex-range "^5.0.1" 662 | 663 | find-up@^1.0.0: 664 | version "1.1.2" 665 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 666 | integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= 667 | dependencies: 668 | path-exists "^2.0.0" 669 | pinkie-promise "^2.0.0" 670 | 671 | follow-redirects@^1.10.0: 672 | version "1.14.8" 673 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" 674 | integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== 675 | 676 | for-in@^1.0.2: 677 | version "1.0.2" 678 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 679 | integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= 680 | 681 | fragment-cache@^0.2.1: 682 | version "0.2.1" 683 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" 684 | integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= 685 | dependencies: 686 | map-cache "^0.2.2" 687 | 688 | fsevents@^1.2.7: 689 | version "1.2.13" 690 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" 691 | integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== 692 | dependencies: 693 | bindings "^1.5.0" 694 | nan "^2.12.1" 695 | 696 | fsevents@~2.1.2: 697 | version "2.1.3" 698 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" 699 | integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== 700 | 701 | get-caller-file@^1.0.1: 702 | version "1.0.3" 703 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" 704 | integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== 705 | 706 | get-value@^2.0.3, get-value@^2.0.6: 707 | version "2.0.6" 708 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" 709 | integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= 710 | 711 | glob-parent@^3.1.0: 712 | version "3.1.0" 713 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" 714 | integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= 715 | dependencies: 716 | is-glob "^3.1.0" 717 | path-dirname "^1.0.0" 718 | 719 | glob-parent@~5.1.0: 720 | version "5.1.1" 721 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" 722 | integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== 723 | dependencies: 724 | is-glob "^4.0.1" 725 | 726 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 727 | version "4.2.4" 728 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" 729 | integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== 730 | 731 | has-flag@^1.0.0: 732 | version "1.0.0" 733 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 734 | integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= 735 | 736 | has-value@^0.3.1: 737 | version "0.3.1" 738 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" 739 | integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= 740 | dependencies: 741 | get-value "^2.0.3" 742 | has-values "^0.1.4" 743 | isobject "^2.0.0" 744 | 745 | has-value@^1.0.0: 746 | version "1.0.0" 747 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" 748 | integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= 749 | dependencies: 750 | get-value "^2.0.6" 751 | has-values "^1.0.0" 752 | isobject "^3.0.0" 753 | 754 | has-values@^0.1.4: 755 | version "0.1.4" 756 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" 757 | integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= 758 | 759 | has-values@^1.0.0: 760 | version "1.0.0" 761 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" 762 | integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= 763 | dependencies: 764 | is-number "^3.0.0" 765 | kind-of "^4.0.0" 766 | 767 | hash-base@^3.0.0: 768 | version "3.1.0" 769 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" 770 | integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== 771 | dependencies: 772 | inherits "^2.0.4" 773 | readable-stream "^3.6.0" 774 | safe-buffer "^5.2.0" 775 | 776 | hash.js@^1.0.0, hash.js@^1.0.3: 777 | version "1.1.7" 778 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" 779 | integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== 780 | dependencies: 781 | inherits "^2.0.3" 782 | minimalistic-assert "^1.0.1" 783 | 784 | hmac-drbg@^1.0.1: 785 | version "1.0.1" 786 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" 787 | integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= 788 | dependencies: 789 | hash.js "^1.0.3" 790 | minimalistic-assert "^1.0.0" 791 | minimalistic-crypto-utils "^1.0.1" 792 | 793 | hosted-git-info@^2.1.4: 794 | version "2.8.9" 795 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" 796 | integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== 797 | 798 | https-browserify@^1.0.0: 799 | version "1.0.0" 800 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" 801 | integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= 802 | 803 | ieee754@^1.1.4: 804 | version "1.1.13" 805 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" 806 | integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== 807 | 808 | inherits@2.0.1: 809 | version "2.0.1" 810 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" 811 | integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= 812 | 813 | inherits@2.0.3: 814 | version "2.0.3" 815 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 816 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 817 | 818 | inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: 819 | version "2.0.4" 820 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 821 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 822 | 823 | interpret@^1.0.0: 824 | version "1.4.0" 825 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" 826 | integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== 827 | 828 | invert-kv@^1.0.0: 829 | version "1.0.0" 830 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 831 | integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= 832 | 833 | is-accessor-descriptor@^0.1.6: 834 | version "0.1.6" 835 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" 836 | integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= 837 | dependencies: 838 | kind-of "^3.0.2" 839 | 840 | is-accessor-descriptor@^1.0.0: 841 | version "1.0.0" 842 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" 843 | integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== 844 | dependencies: 845 | kind-of "^6.0.0" 846 | 847 | is-arrayish@^0.2.1: 848 | version "0.2.1" 849 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 850 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 851 | 852 | is-binary-path@^1.0.0: 853 | version "1.0.1" 854 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 855 | integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= 856 | dependencies: 857 | binary-extensions "^1.0.0" 858 | 859 | is-binary-path@~2.1.0: 860 | version "2.1.0" 861 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 862 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 863 | dependencies: 864 | binary-extensions "^2.0.0" 865 | 866 | is-buffer@^1.1.5: 867 | version "1.1.6" 868 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 869 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== 870 | 871 | is-data-descriptor@^0.1.4: 872 | version "0.1.4" 873 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" 874 | integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= 875 | dependencies: 876 | kind-of "^3.0.2" 877 | 878 | is-data-descriptor@^1.0.0: 879 | version "1.0.0" 880 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" 881 | integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== 882 | dependencies: 883 | kind-of "^6.0.0" 884 | 885 | is-descriptor@^0.1.0: 886 | version "0.1.6" 887 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" 888 | integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== 889 | dependencies: 890 | is-accessor-descriptor "^0.1.6" 891 | is-data-descriptor "^0.1.4" 892 | kind-of "^5.0.0" 893 | 894 | is-descriptor@^1.0.0, is-descriptor@^1.0.2: 895 | version "1.0.2" 896 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" 897 | integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== 898 | dependencies: 899 | is-accessor-descriptor "^1.0.0" 900 | is-data-descriptor "^1.0.0" 901 | kind-of "^6.0.2" 902 | 903 | is-extendable@^0.1.0, is-extendable@^0.1.1: 904 | version "0.1.1" 905 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 906 | integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= 907 | 908 | is-extendable@^1.0.1: 909 | version "1.0.1" 910 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" 911 | integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== 912 | dependencies: 913 | is-plain-object "^2.0.4" 914 | 915 | is-extglob@^2.1.0, is-extglob@^2.1.1: 916 | version "2.1.1" 917 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 918 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 919 | 920 | is-fullwidth-code-point@^1.0.0: 921 | version "1.0.0" 922 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 923 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= 924 | dependencies: 925 | number-is-nan "^1.0.0" 926 | 927 | is-glob@^3.1.0: 928 | version "3.1.0" 929 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" 930 | integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= 931 | dependencies: 932 | is-extglob "^2.1.0" 933 | 934 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: 935 | version "4.0.1" 936 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 937 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 938 | dependencies: 939 | is-extglob "^2.1.1" 940 | 941 | is-number@^3.0.0: 942 | version "3.0.0" 943 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 944 | integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= 945 | dependencies: 946 | kind-of "^3.0.2" 947 | 948 | is-number@^7.0.0: 949 | version "7.0.0" 950 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 951 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 952 | 953 | is-plain-object@^2.0.3, is-plain-object@^2.0.4: 954 | version "2.0.4" 955 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 956 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== 957 | dependencies: 958 | isobject "^3.0.1" 959 | 960 | is-utf8@^0.2.0: 961 | version "0.2.1" 962 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 963 | integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= 964 | 965 | is-windows@^1.0.2: 966 | version "1.0.2" 967 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" 968 | integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== 969 | 970 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: 971 | version "1.0.0" 972 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 973 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 974 | 975 | isobject@^2.0.0: 976 | version "2.1.0" 977 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 978 | integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= 979 | dependencies: 980 | isarray "1.0.0" 981 | 982 | isobject@^3.0.0, isobject@^3.0.1: 983 | version "3.0.1" 984 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 985 | integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= 986 | 987 | json-loader@^0.5.4: 988 | version "0.5.7" 989 | resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" 990 | integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== 991 | 992 | json-stable-stringify@^1.0.1: 993 | version "1.0.1" 994 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 995 | integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= 996 | dependencies: 997 | jsonify "~0.0.0" 998 | 999 | json5@^0.5.0, json5@^0.5.1: 1000 | version "0.5.1" 1001 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 1002 | integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= 1003 | 1004 | jsonify@~0.0.0: 1005 | version "0.0.0" 1006 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 1007 | integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= 1008 | 1009 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: 1010 | version "3.2.2" 1011 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 1012 | integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= 1013 | dependencies: 1014 | is-buffer "^1.1.5" 1015 | 1016 | kind-of@^4.0.0: 1017 | version "4.0.0" 1018 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 1019 | integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= 1020 | dependencies: 1021 | is-buffer "^1.1.5" 1022 | 1023 | kind-of@^5.0.0: 1024 | version "5.1.0" 1025 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" 1026 | integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== 1027 | 1028 | kind-of@^6.0.0, kind-of@^6.0.2: 1029 | version "6.0.3" 1030 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" 1031 | integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== 1032 | 1033 | lazy-cache@^1.0.3: 1034 | version "1.0.4" 1035 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" 1036 | integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= 1037 | 1038 | lcid@^1.0.0: 1039 | version "1.0.0" 1040 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 1041 | integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= 1042 | dependencies: 1043 | invert-kv "^1.0.0" 1044 | 1045 | load-json-file@^1.0.0: 1046 | version "1.1.0" 1047 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 1048 | integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= 1049 | dependencies: 1050 | graceful-fs "^4.1.2" 1051 | parse-json "^2.2.0" 1052 | pify "^2.0.0" 1053 | pinkie-promise "^2.0.0" 1054 | strip-bom "^2.0.0" 1055 | 1056 | loader-runner@^2.3.0: 1057 | version "2.4.0" 1058 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" 1059 | integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== 1060 | 1061 | loader-utils@^0.2.16: 1062 | version "0.2.17" 1063 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" 1064 | integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= 1065 | dependencies: 1066 | big.js "^3.1.3" 1067 | emojis-list "^2.0.0" 1068 | json5 "^0.5.0" 1069 | object-assign "^4.0.1" 1070 | 1071 | lodash@^4.17.14: 1072 | version "4.17.21" 1073 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1074 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1075 | 1076 | longest@^1.0.1: 1077 | version "1.0.1" 1078 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" 1079 | integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= 1080 | 1081 | map-cache@^0.2.2: 1082 | version "0.2.2" 1083 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" 1084 | integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= 1085 | 1086 | map-visit@^1.0.0: 1087 | version "1.0.0" 1088 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" 1089 | integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= 1090 | dependencies: 1091 | object-visit "^1.0.0" 1092 | 1093 | md5.js@^1.3.4: 1094 | version "1.3.5" 1095 | resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" 1096 | integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== 1097 | dependencies: 1098 | hash-base "^3.0.0" 1099 | inherits "^2.0.1" 1100 | safe-buffer "^5.1.2" 1101 | 1102 | memory-fs@^0.4.0, memory-fs@~0.4.1: 1103 | version "0.4.1" 1104 | resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" 1105 | integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= 1106 | dependencies: 1107 | errno "^0.1.3" 1108 | readable-stream "^2.0.1" 1109 | 1110 | micromatch@^3.1.10, micromatch@^3.1.4: 1111 | version "3.1.10" 1112 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" 1113 | integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== 1114 | dependencies: 1115 | arr-diff "^4.0.0" 1116 | array-unique "^0.3.2" 1117 | braces "^2.3.1" 1118 | define-property "^2.0.2" 1119 | extend-shallow "^3.0.2" 1120 | extglob "^2.0.4" 1121 | fragment-cache "^0.2.1" 1122 | kind-of "^6.0.2" 1123 | nanomatch "^1.2.9" 1124 | object.pick "^1.3.0" 1125 | regex-not "^1.0.0" 1126 | snapdragon "^0.8.1" 1127 | to-regex "^3.0.2" 1128 | 1129 | miller-rabin@^4.0.0: 1130 | version "4.0.1" 1131 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" 1132 | integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== 1133 | dependencies: 1134 | bn.js "^4.0.0" 1135 | brorand "^1.0.1" 1136 | 1137 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: 1138 | version "1.0.1" 1139 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" 1140 | integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== 1141 | 1142 | minimalistic-crypto-utils@^1.0.1: 1143 | version "1.0.1" 1144 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" 1145 | integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= 1146 | 1147 | minimist@^1.2.5: 1148 | version "1.2.5" 1149 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 1150 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 1151 | 1152 | mixin-deep@^1.2.0: 1153 | version "1.3.2" 1154 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" 1155 | integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== 1156 | dependencies: 1157 | for-in "^1.0.2" 1158 | is-extendable "^1.0.1" 1159 | 1160 | mkdirp@~0.5.0: 1161 | version "0.5.5" 1162 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" 1163 | integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== 1164 | dependencies: 1165 | minimist "^1.2.5" 1166 | 1167 | ms@2.0.0: 1168 | version "2.0.0" 1169 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1170 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1171 | 1172 | nan@^2.12.1: 1173 | version "2.14.1" 1174 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" 1175 | integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== 1176 | 1177 | nanomatch@^1.2.9: 1178 | version "1.2.13" 1179 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" 1180 | integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== 1181 | dependencies: 1182 | arr-diff "^4.0.0" 1183 | array-unique "^0.3.2" 1184 | define-property "^2.0.2" 1185 | extend-shallow "^3.0.2" 1186 | fragment-cache "^0.2.1" 1187 | is-windows "^1.0.2" 1188 | kind-of "^6.0.2" 1189 | object.pick "^1.3.0" 1190 | regex-not "^1.0.0" 1191 | snapdragon "^0.8.1" 1192 | to-regex "^3.0.1" 1193 | 1194 | neo-async@^2.5.0: 1195 | version "2.6.1" 1196 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" 1197 | integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== 1198 | 1199 | node-libs-browser@^2.0.0: 1200 | version "2.2.1" 1201 | resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" 1202 | integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== 1203 | dependencies: 1204 | assert "^1.1.1" 1205 | browserify-zlib "^0.2.0" 1206 | buffer "^4.3.0" 1207 | console-browserify "^1.1.0" 1208 | constants-browserify "^1.0.0" 1209 | crypto-browserify "^3.11.0" 1210 | domain-browser "^1.1.1" 1211 | events "^3.0.0" 1212 | https-browserify "^1.0.0" 1213 | os-browserify "^0.3.0" 1214 | path-browserify "0.0.1" 1215 | process "^0.11.10" 1216 | punycode "^1.2.4" 1217 | querystring-es3 "^0.2.0" 1218 | readable-stream "^2.3.3" 1219 | stream-browserify "^2.0.1" 1220 | stream-http "^2.7.2" 1221 | string_decoder "^1.0.0" 1222 | timers-browserify "^2.0.4" 1223 | tty-browserify "0.0.0" 1224 | url "^0.11.0" 1225 | util "^0.11.0" 1226 | vm-browserify "^1.0.1" 1227 | 1228 | normalize-package-data@^2.3.2: 1229 | version "2.5.0" 1230 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 1231 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 1232 | dependencies: 1233 | hosted-git-info "^2.1.4" 1234 | resolve "^1.10.0" 1235 | semver "2 || 3 || 4 || 5" 1236 | validate-npm-package-license "^3.0.1" 1237 | 1238 | normalize-path@^2.1.1: 1239 | version "2.1.1" 1240 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 1241 | integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= 1242 | dependencies: 1243 | remove-trailing-separator "^1.0.1" 1244 | 1245 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1246 | version "3.0.0" 1247 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1248 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1249 | 1250 | number-is-nan@^1.0.0: 1251 | version "1.0.1" 1252 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1253 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 1254 | 1255 | object-assign@^4.0.1, object-assign@^4.1.1: 1256 | version "4.1.1" 1257 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1258 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1259 | 1260 | object-copy@^0.1.0: 1261 | version "0.1.0" 1262 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" 1263 | integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= 1264 | dependencies: 1265 | copy-descriptor "^0.1.0" 1266 | define-property "^0.2.5" 1267 | kind-of "^3.0.3" 1268 | 1269 | object-visit@^1.0.0: 1270 | version "1.0.1" 1271 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" 1272 | integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= 1273 | dependencies: 1274 | isobject "^3.0.0" 1275 | 1276 | object.pick@^1.3.0: 1277 | version "1.3.0" 1278 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" 1279 | integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= 1280 | dependencies: 1281 | isobject "^3.0.1" 1282 | 1283 | os-browserify@^0.3.0: 1284 | version "0.3.0" 1285 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" 1286 | integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= 1287 | 1288 | os-locale@^1.4.0: 1289 | version "1.4.0" 1290 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" 1291 | integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= 1292 | dependencies: 1293 | lcid "^1.0.0" 1294 | 1295 | pako@~1.0.5: 1296 | version "1.0.11" 1297 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" 1298 | integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== 1299 | 1300 | parse-asn1@^5.0.0, parse-asn1@^5.1.5: 1301 | version "5.1.5" 1302 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" 1303 | integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== 1304 | dependencies: 1305 | asn1.js "^4.0.0" 1306 | browserify-aes "^1.0.0" 1307 | create-hash "^1.1.0" 1308 | evp_bytestokey "^1.0.0" 1309 | pbkdf2 "^3.0.3" 1310 | safe-buffer "^5.1.1" 1311 | 1312 | parse-json@^2.2.0: 1313 | version "2.2.0" 1314 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 1315 | integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= 1316 | dependencies: 1317 | error-ex "^1.2.0" 1318 | 1319 | pascalcase@^0.1.1: 1320 | version "0.1.1" 1321 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" 1322 | integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= 1323 | 1324 | path-browserify@0.0.1: 1325 | version "0.0.1" 1326 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" 1327 | integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== 1328 | 1329 | path-dirname@^1.0.0: 1330 | version "1.0.2" 1331 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" 1332 | integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= 1333 | 1334 | path-exists@^2.0.0: 1335 | version "2.1.0" 1336 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 1337 | integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= 1338 | dependencies: 1339 | pinkie-promise "^2.0.0" 1340 | 1341 | path-is-absolute@^1.0.0: 1342 | version "1.0.1" 1343 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1344 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1345 | 1346 | path-parse@^1.0.6: 1347 | version "1.0.7" 1348 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1349 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1350 | 1351 | path-type@^1.0.0: 1352 | version "1.1.0" 1353 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 1354 | integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= 1355 | dependencies: 1356 | graceful-fs "^4.1.2" 1357 | pify "^2.0.0" 1358 | pinkie-promise "^2.0.0" 1359 | 1360 | pbkdf2@^3.0.3: 1361 | version "3.1.1" 1362 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" 1363 | integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== 1364 | dependencies: 1365 | create-hash "^1.1.2" 1366 | create-hmac "^1.1.4" 1367 | ripemd160 "^2.0.1" 1368 | safe-buffer "^5.0.1" 1369 | sha.js "^2.4.8" 1370 | 1371 | picomatch@^2.0.4, picomatch@^2.2.1: 1372 | version "2.2.2" 1373 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" 1374 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== 1375 | 1376 | pify@^2.0.0: 1377 | version "2.3.0" 1378 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1379 | integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= 1380 | 1381 | pinkie-promise@^2.0.0: 1382 | version "2.0.1" 1383 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 1384 | integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= 1385 | dependencies: 1386 | pinkie "^2.0.0" 1387 | 1388 | pinkie@^2.0.0: 1389 | version "2.0.4" 1390 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 1391 | integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= 1392 | 1393 | posix-character-classes@^0.1.0: 1394 | version "0.1.1" 1395 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" 1396 | integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= 1397 | 1398 | process-nextick-args@~2.0.0: 1399 | version "2.0.1" 1400 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 1401 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 1402 | 1403 | process@^0.11.10: 1404 | version "0.11.10" 1405 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" 1406 | integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= 1407 | 1408 | prr@~1.0.1: 1409 | version "1.0.1" 1410 | resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" 1411 | integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= 1412 | 1413 | public-encrypt@^4.0.0: 1414 | version "4.0.3" 1415 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" 1416 | integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== 1417 | dependencies: 1418 | bn.js "^4.1.0" 1419 | browserify-rsa "^4.0.0" 1420 | create-hash "^1.1.0" 1421 | parse-asn1 "^5.0.0" 1422 | randombytes "^2.0.1" 1423 | safe-buffer "^5.1.2" 1424 | 1425 | punycode@1.3.2: 1426 | version "1.3.2" 1427 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 1428 | integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= 1429 | 1430 | punycode@^1.2.4: 1431 | version "1.4.1" 1432 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 1433 | integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= 1434 | 1435 | querystring-es3@^0.2.0: 1436 | version "0.2.1" 1437 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" 1438 | integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= 1439 | 1440 | querystring@0.2.0: 1441 | version "0.2.0" 1442 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 1443 | integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= 1444 | 1445 | randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: 1446 | version "2.1.0" 1447 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 1448 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 1449 | dependencies: 1450 | safe-buffer "^5.1.0" 1451 | 1452 | randomfill@^1.0.3: 1453 | version "1.0.4" 1454 | resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" 1455 | integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== 1456 | dependencies: 1457 | randombytes "^2.0.5" 1458 | safe-buffer "^5.1.0" 1459 | 1460 | read-pkg-up@^1.0.1: 1461 | version "1.0.1" 1462 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 1463 | integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= 1464 | dependencies: 1465 | find-up "^1.0.0" 1466 | read-pkg "^1.0.0" 1467 | 1468 | read-pkg@^1.0.0: 1469 | version "1.1.0" 1470 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 1471 | integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= 1472 | dependencies: 1473 | load-json-file "^1.0.0" 1474 | normalize-package-data "^2.3.2" 1475 | path-type "^1.0.0" 1476 | 1477 | readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.3.3, readable-stream@^2.3.6: 1478 | version "2.3.7" 1479 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" 1480 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 1481 | dependencies: 1482 | core-util-is "~1.0.0" 1483 | inherits "~2.0.3" 1484 | isarray "~1.0.0" 1485 | process-nextick-args "~2.0.0" 1486 | safe-buffer "~5.1.1" 1487 | string_decoder "~1.1.1" 1488 | util-deprecate "~1.0.1" 1489 | 1490 | readable-stream@^3.6.0: 1491 | version "3.6.0" 1492 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" 1493 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== 1494 | dependencies: 1495 | inherits "^2.0.3" 1496 | string_decoder "^1.1.1" 1497 | util-deprecate "^1.0.1" 1498 | 1499 | readdirp@^2.2.1: 1500 | version "2.2.1" 1501 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" 1502 | integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== 1503 | dependencies: 1504 | graceful-fs "^4.1.11" 1505 | micromatch "^3.1.10" 1506 | readable-stream "^2.0.2" 1507 | 1508 | readdirp@~3.4.0: 1509 | version "3.4.0" 1510 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" 1511 | integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== 1512 | dependencies: 1513 | picomatch "^2.2.1" 1514 | 1515 | regex-not@^1.0.0, regex-not@^1.0.2: 1516 | version "1.0.2" 1517 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" 1518 | integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== 1519 | dependencies: 1520 | extend-shallow "^3.0.2" 1521 | safe-regex "^1.1.0" 1522 | 1523 | remove-trailing-separator@^1.0.1: 1524 | version "1.1.0" 1525 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 1526 | integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= 1527 | 1528 | repeat-element@^1.1.2: 1529 | version "1.1.3" 1530 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" 1531 | integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== 1532 | 1533 | repeat-string@^1.5.2, repeat-string@^1.6.1: 1534 | version "1.6.1" 1535 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 1536 | integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= 1537 | 1538 | require-directory@^2.1.1: 1539 | version "2.1.1" 1540 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 1541 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 1542 | 1543 | require-main-filename@^1.0.1: 1544 | version "1.0.1" 1545 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 1546 | integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= 1547 | 1548 | resolve-url@^0.2.1: 1549 | version "0.2.1" 1550 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" 1551 | integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= 1552 | 1553 | resolve@^1.10.0: 1554 | version "1.17.0" 1555 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" 1556 | integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== 1557 | dependencies: 1558 | path-parse "^1.0.6" 1559 | 1560 | ret@~0.1.10: 1561 | version "0.1.15" 1562 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" 1563 | integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== 1564 | 1565 | right-align@^0.1.1: 1566 | version "0.1.3" 1567 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" 1568 | integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= 1569 | dependencies: 1570 | align-text "^0.1.1" 1571 | 1572 | ripemd160@^2.0.0, ripemd160@^2.0.1: 1573 | version "2.0.2" 1574 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" 1575 | integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== 1576 | dependencies: 1577 | hash-base "^3.0.0" 1578 | inherits "^2.0.1" 1579 | 1580 | safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: 1581 | version "5.2.1" 1582 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1583 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1584 | 1585 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1586 | version "5.1.2" 1587 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1588 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1589 | 1590 | safe-regex@^1.1.0: 1591 | version "1.1.0" 1592 | resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" 1593 | integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= 1594 | dependencies: 1595 | ret "~0.1.10" 1596 | 1597 | "semver@2 || 3 || 4 || 5": 1598 | version "5.7.1" 1599 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1600 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1601 | 1602 | set-blocking@^2.0.0: 1603 | version "2.0.0" 1604 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1605 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 1606 | 1607 | set-value@^2.0.0, set-value@^2.0.1: 1608 | version "2.0.1" 1609 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" 1610 | integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== 1611 | dependencies: 1612 | extend-shallow "^2.0.1" 1613 | is-extendable "^0.1.1" 1614 | is-plain-object "^2.0.3" 1615 | split-string "^3.0.1" 1616 | 1617 | setimmediate@^1.0.4: 1618 | version "1.0.5" 1619 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 1620 | integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= 1621 | 1622 | sha.js@^2.4.0, sha.js@^2.4.8: 1623 | version "2.4.11" 1624 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" 1625 | integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== 1626 | dependencies: 1627 | inherits "^2.0.1" 1628 | safe-buffer "^5.0.1" 1629 | 1630 | snapdragon-node@^2.0.1: 1631 | version "2.1.1" 1632 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" 1633 | integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== 1634 | dependencies: 1635 | define-property "^1.0.0" 1636 | isobject "^3.0.0" 1637 | snapdragon-util "^3.0.1" 1638 | 1639 | snapdragon-util@^3.0.1: 1640 | version "3.0.1" 1641 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" 1642 | integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== 1643 | dependencies: 1644 | kind-of "^3.2.0" 1645 | 1646 | snapdragon@^0.8.1: 1647 | version "0.8.2" 1648 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" 1649 | integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== 1650 | dependencies: 1651 | base "^0.11.1" 1652 | debug "^2.2.0" 1653 | define-property "^0.2.5" 1654 | extend-shallow "^2.0.1" 1655 | map-cache "^0.2.2" 1656 | source-map "^0.5.6" 1657 | source-map-resolve "^0.5.0" 1658 | use "^3.1.0" 1659 | 1660 | source-list-map@^2.0.0: 1661 | version "2.0.1" 1662 | resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" 1663 | integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== 1664 | 1665 | source-map-resolve@^0.5.0: 1666 | version "0.5.3" 1667 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" 1668 | integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== 1669 | dependencies: 1670 | atob "^2.1.2" 1671 | decode-uri-component "^0.2.0" 1672 | resolve-url "^0.2.1" 1673 | source-map-url "^0.4.0" 1674 | urix "^0.1.0" 1675 | 1676 | source-map-url@^0.4.0: 1677 | version "0.4.0" 1678 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" 1679 | integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= 1680 | 1681 | source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: 1682 | version "0.5.7" 1683 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 1684 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 1685 | 1686 | source-map@~0.6.1: 1687 | version "0.6.1" 1688 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1689 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1690 | 1691 | spdx-correct@^3.0.0: 1692 | version "3.1.1" 1693 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" 1694 | integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== 1695 | dependencies: 1696 | spdx-expression-parse "^3.0.0" 1697 | spdx-license-ids "^3.0.0" 1698 | 1699 | spdx-exceptions@^2.1.0: 1700 | version "2.3.0" 1701 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" 1702 | integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== 1703 | 1704 | spdx-expression-parse@^3.0.0: 1705 | version "3.0.1" 1706 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" 1707 | integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== 1708 | dependencies: 1709 | spdx-exceptions "^2.1.0" 1710 | spdx-license-ids "^3.0.0" 1711 | 1712 | spdx-license-ids@^3.0.0: 1713 | version "3.0.5" 1714 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" 1715 | integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== 1716 | 1717 | split-string@^3.0.1, split-string@^3.0.2: 1718 | version "3.1.0" 1719 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" 1720 | integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== 1721 | dependencies: 1722 | extend-shallow "^3.0.0" 1723 | 1724 | static-extend@^0.1.1: 1725 | version "0.1.2" 1726 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" 1727 | integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= 1728 | dependencies: 1729 | define-property "^0.2.5" 1730 | object-copy "^0.1.0" 1731 | 1732 | stream-browserify@^2.0.1: 1733 | version "2.0.2" 1734 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" 1735 | integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== 1736 | dependencies: 1737 | inherits "~2.0.1" 1738 | readable-stream "^2.0.2" 1739 | 1740 | stream-http@^2.7.2: 1741 | version "2.8.3" 1742 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" 1743 | integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== 1744 | dependencies: 1745 | builtin-status-codes "^3.0.0" 1746 | inherits "^2.0.1" 1747 | readable-stream "^2.3.6" 1748 | to-arraybuffer "^1.0.0" 1749 | xtend "^4.0.0" 1750 | 1751 | string-width@^1.0.1, string-width@^1.0.2: 1752 | version "1.0.2" 1753 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1754 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= 1755 | dependencies: 1756 | code-point-at "^1.0.0" 1757 | is-fullwidth-code-point "^1.0.0" 1758 | strip-ansi "^3.0.0" 1759 | 1760 | string_decoder@^1.0.0, string_decoder@^1.1.1: 1761 | version "1.3.0" 1762 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 1763 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 1764 | dependencies: 1765 | safe-buffer "~5.2.0" 1766 | 1767 | string_decoder@~1.1.1: 1768 | version "1.1.1" 1769 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1770 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 1771 | dependencies: 1772 | safe-buffer "~5.1.0" 1773 | 1774 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 1775 | version "3.0.1" 1776 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1777 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 1778 | dependencies: 1779 | ansi-regex "^2.0.0" 1780 | 1781 | strip-bom@^2.0.0: 1782 | version "2.0.0" 1783 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 1784 | integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= 1785 | dependencies: 1786 | is-utf8 "^0.2.0" 1787 | 1788 | supports-color@^3.1.0: 1789 | version "3.2.3" 1790 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" 1791 | integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= 1792 | dependencies: 1793 | has-flag "^1.0.0" 1794 | 1795 | tapable@^0.2.7, tapable@~0.2.5: 1796 | version "0.2.9" 1797 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8" 1798 | integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A== 1799 | 1800 | timers-browserify@^2.0.4: 1801 | version "2.0.11" 1802 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" 1803 | integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== 1804 | dependencies: 1805 | setimmediate "^1.0.4" 1806 | 1807 | to-arraybuffer@^1.0.0: 1808 | version "1.0.1" 1809 | resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" 1810 | integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= 1811 | 1812 | to-object-path@^0.3.0: 1813 | version "0.3.0" 1814 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" 1815 | integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= 1816 | dependencies: 1817 | kind-of "^3.0.2" 1818 | 1819 | to-regex-range@^2.1.0: 1820 | version "2.1.1" 1821 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" 1822 | integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= 1823 | dependencies: 1824 | is-number "^3.0.0" 1825 | repeat-string "^1.6.1" 1826 | 1827 | to-regex-range@^5.0.1: 1828 | version "5.0.1" 1829 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1830 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1831 | dependencies: 1832 | is-number "^7.0.0" 1833 | 1834 | to-regex@^3.0.1, to-regex@^3.0.2: 1835 | version "3.0.2" 1836 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" 1837 | integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== 1838 | dependencies: 1839 | define-property "^2.0.2" 1840 | extend-shallow "^3.0.2" 1841 | regex-not "^1.0.2" 1842 | safe-regex "^1.1.0" 1843 | 1844 | tty-browserify@0.0.0: 1845 | version "0.0.0" 1846 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" 1847 | integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= 1848 | 1849 | uglify-js@^2.8.27: 1850 | version "2.8.29" 1851 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" 1852 | integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= 1853 | dependencies: 1854 | source-map "~0.5.1" 1855 | yargs "~3.10.0" 1856 | optionalDependencies: 1857 | uglify-to-browserify "~1.0.0" 1858 | 1859 | uglify-to-browserify@~1.0.0: 1860 | version "1.0.2" 1861 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" 1862 | integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= 1863 | 1864 | union-value@^1.0.0: 1865 | version "1.0.1" 1866 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" 1867 | integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== 1868 | dependencies: 1869 | arr-union "^3.1.0" 1870 | get-value "^2.0.6" 1871 | is-extendable "^0.1.1" 1872 | set-value "^2.0.1" 1873 | 1874 | unset-value@^1.0.0: 1875 | version "1.0.0" 1876 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" 1877 | integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= 1878 | dependencies: 1879 | has-value "^0.3.1" 1880 | isobject "^3.0.0" 1881 | 1882 | upath@^1.1.1: 1883 | version "1.2.0" 1884 | resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" 1885 | integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== 1886 | 1887 | urix@^0.1.0: 1888 | version "0.1.0" 1889 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" 1890 | integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= 1891 | 1892 | url@^0.11.0: 1893 | version "0.11.0" 1894 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" 1895 | integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= 1896 | dependencies: 1897 | punycode "1.3.2" 1898 | querystring "0.2.0" 1899 | 1900 | use@^3.1.0: 1901 | version "3.1.1" 1902 | resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" 1903 | integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== 1904 | 1905 | util-deprecate@^1.0.1, util-deprecate@~1.0.1: 1906 | version "1.0.2" 1907 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1908 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 1909 | 1910 | util@0.10.3: 1911 | version "0.10.3" 1912 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" 1913 | integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= 1914 | dependencies: 1915 | inherits "2.0.1" 1916 | 1917 | util@^0.11.0: 1918 | version "0.11.1" 1919 | resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" 1920 | integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== 1921 | dependencies: 1922 | inherits "2.0.3" 1923 | 1924 | validate-npm-package-license@^3.0.1: 1925 | version "3.0.4" 1926 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 1927 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 1928 | dependencies: 1929 | spdx-correct "^3.0.0" 1930 | spdx-expression-parse "^3.0.0" 1931 | 1932 | vm-browserify@^1.0.1: 1933 | version "1.1.2" 1934 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" 1935 | integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== 1936 | 1937 | watchpack-chokidar2@^2.0.0: 1938 | version "2.0.0" 1939 | resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" 1940 | integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== 1941 | dependencies: 1942 | chokidar "^2.1.8" 1943 | 1944 | watchpack@^1.3.1: 1945 | version "1.7.2" 1946 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.2.tgz#c02e4d4d49913c3e7e122c3325365af9d331e9aa" 1947 | integrity sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g== 1948 | dependencies: 1949 | graceful-fs "^4.1.2" 1950 | neo-async "^2.5.0" 1951 | optionalDependencies: 1952 | chokidar "^3.4.0" 1953 | watchpack-chokidar2 "^2.0.0" 1954 | 1955 | webpack-sources@^1.0.1: 1956 | version "1.4.3" 1957 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" 1958 | integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== 1959 | dependencies: 1960 | source-list-map "^2.0.0" 1961 | source-map "~0.6.1" 1962 | 1963 | webpack@^2.7.0: 1964 | version "2.7.0" 1965 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.7.0.tgz#b2a1226804373ffd3d03ea9c6bd525067034f6b1" 1966 | integrity sha512-MjAA0ZqO1ba7ZQJRnoCdbM56mmFpipOPUv/vQpwwfSI42p5PVDdoiuK2AL2FwFUVgT859Jr43bFZXRg/LNsqvg== 1967 | dependencies: 1968 | acorn "^5.0.0" 1969 | acorn-dynamic-import "^2.0.0" 1970 | ajv "^4.7.0" 1971 | ajv-keywords "^1.1.1" 1972 | async "^2.1.2" 1973 | enhanced-resolve "^3.3.0" 1974 | interpret "^1.0.0" 1975 | json-loader "^0.5.4" 1976 | json5 "^0.5.1" 1977 | loader-runner "^2.3.0" 1978 | loader-utils "^0.2.16" 1979 | memory-fs "~0.4.1" 1980 | mkdirp "~0.5.0" 1981 | node-libs-browser "^2.0.0" 1982 | source-map "^0.5.3" 1983 | supports-color "^3.1.0" 1984 | tapable "~0.2.5" 1985 | uglify-js "^2.8.27" 1986 | watchpack "^1.3.1" 1987 | webpack-sources "^1.0.1" 1988 | yargs "^6.0.0" 1989 | 1990 | which-module@^1.0.0: 1991 | version "1.0.0" 1992 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" 1993 | integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= 1994 | 1995 | window-size@0.1.0: 1996 | version "0.1.0" 1997 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" 1998 | integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= 1999 | 2000 | wordwrap@0.0.2: 2001 | version "0.0.2" 2002 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" 2003 | integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= 2004 | 2005 | wrap-ansi@^2.0.0: 2006 | version "2.1.0" 2007 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 2008 | integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= 2009 | dependencies: 2010 | string-width "^1.0.1" 2011 | strip-ansi "^3.0.1" 2012 | 2013 | xtend@^4.0.0: 2014 | version "4.0.2" 2015 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 2016 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 2017 | 2018 | y18n@^3.2.1: 2019 | version "3.2.2" 2020 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" 2021 | integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== 2022 | 2023 | yargs-parser@^4.2.0: 2024 | version "4.2.1" 2025 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" 2026 | integrity sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw= 2027 | dependencies: 2028 | camelcase "^3.0.0" 2029 | 2030 | yargs@^6.0.0: 2031 | version "6.6.0" 2032 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" 2033 | integrity sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg= 2034 | dependencies: 2035 | camelcase "^3.0.0" 2036 | cliui "^3.2.0" 2037 | decamelize "^1.1.1" 2038 | get-caller-file "^1.0.1" 2039 | os-locale "^1.4.0" 2040 | read-pkg-up "^1.0.1" 2041 | require-directory "^2.1.1" 2042 | require-main-filename "^1.0.1" 2043 | set-blocking "^2.0.0" 2044 | string-width "^1.0.2" 2045 | which-module "^1.0.0" 2046 | y18n "^3.2.1" 2047 | yargs-parser "^4.2.0" 2048 | 2049 | yargs@~3.10.0: 2050 | version "3.10.0" 2051 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" 2052 | integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= 2053 | dependencies: 2054 | camelcase "^1.0.2" 2055 | cliui "^2.1.0" 2056 | decamelize "^1.0.0" 2057 | window-size "0.1.0" 2058 | --------------------------------------------------------------------------------