├── .gitignore ├── LICENSE ├── README.md ├── build.gradle.kts ├── cloudbuild.yaml ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── package-lock.json ├── package.json ├── settings.gradle.kts ├── src ├── main │ ├── appengine │ │ └── app.yaml │ ├── js │ │ └── app.js │ ├── kotlin │ │ └── io │ │ │ └── rsocket │ │ │ └── demo │ │ │ ├── RsocketDemoApplication.kt │ │ │ ├── api │ │ │ ├── Event.kt │ │ │ ├── JoinEvent.kt │ │ │ └── moshi.kt │ │ │ ├── chat │ │ │ └── ChatController.kt │ │ │ ├── config │ │ │ └── RSocketDemoConfig.kt │ │ │ ├── setup │ │ │ └── ConnectController.kt │ │ │ ├── timer │ │ │ └── TimerController.kt │ │ │ ├── twitter │ │ │ ├── TwitterController.kt │ │ │ └── model │ │ │ │ ├── Entities.kt │ │ │ │ ├── ExtendedEntities.kt │ │ │ │ ├── HashTag.kt │ │ │ │ ├── Media.kt │ │ │ │ ├── Place.kt │ │ │ │ ├── Symbol.kt │ │ │ │ ├── Tweet.kt │ │ │ │ ├── Url.kt │ │ │ │ ├── User.kt │ │ │ │ ├── UserMention.kt │ │ │ │ └── VideoInfo.kt │ │ │ └── web │ │ │ └── MainController.kt │ ├── proto │ │ └── api.proto │ └── resources │ │ ├── application-dev.properties │ │ ├── application-gcp.properties │ │ ├── application.properties │ │ ├── bootstrap-dev.properties │ │ ├── bootstrap-gcp.properties │ │ ├── bootstrap.properties │ │ ├── logback.xml │ │ ├── static │ │ └── js │ │ │ └── app.js │ │ └── templates │ │ └── index.html └── test │ └── kotlin │ └── io │ └── rsocket │ └── demo │ └── RsocketDemoApplicationTests.kt ├── webpack.config.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | !**/src/main/**/build/ 6 | !**/src/test/**/build/ 7 | 8 | ### STS ### 9 | .apt_generated 10 | .classpath 11 | .factorypath 12 | .project 13 | .settings 14 | .springBeans 15 | .sts4-cache 16 | bin/ 17 | !**/src/main/**/bin/ 18 | !**/src/test/**/bin/ 19 | 20 | ### IntelliJ IDEA ### 21 | .idea 22 | *.iws 23 | *.iml 24 | *.ipr 25 | out/ 26 | !**/src/main/**/out/ 27 | !**/src/test/**/out/ 28 | 29 | ### NetBeans ### 30 | /nbproject/private/ 31 | /nbbuild/ 32 | /dist/ 33 | /nbdist/ 34 | /.nb-gradle/ 35 | 36 | ### VS Code ### 37 | .vscode/ 38 | 39 | /node_modules/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # rsocket-demo 2 | Demo server for rsocket 3 | 4 | ## Local Development 5 | 6 | To edit the homepage (including the JavaScript example code), do the following: 7 | 8 | - Fork/clone the repo and `cd` to the root directory. 9 | - Install the JavaScript dependencies with; 10 | 11 | yarn build 12 | 13 | - The generated code in `src/main/resources/static/js/` should be 14 | checked in. 15 | 16 | - Run local server 17 | 18 | heroku local web 19 | 20 | - Hit http://localhost:8080 in a webbrowser 21 | 22 | - Hit ws://localhost:8080/rsocket with rsocket 23 | -------------------------------------------------------------------------------- /build.gradle.kts: -------------------------------------------------------------------------------- 1 | import org.jetbrains.kotlin.gradle.tasks.KotlinCompile 2 | 3 | plugins { 4 | id("org.springframework.boot") version "2.5.3" 5 | id("io.spring.dependency-management") version "1.0.11.RELEASE" 6 | id("com.google.cloud.tools.jib") version "3.1.2" 7 | kotlin("jvm") version "1.5.21" 8 | kotlin("plugin.spring") version "1.5.21" 9 | id("com.squareup.wire") version "4.0.0-alpha.3" 10 | } 11 | 12 | group = "io.rsocket.demo" 13 | version = "0.0.1-SNAPSHOT" 14 | 15 | repositories { 16 | mavenCentral() 17 | maven(url = "https://jitpack.io") { 18 | group = "com.github.yschimke" 19 | } 20 | } 21 | 22 | java { 23 | toolchain { 24 | languageVersion.set(JavaLanguageVersion.of(11)) 25 | } 26 | } 27 | 28 | extra["springCloudGcpVersion"] = "2.0.3" 29 | extra["springCloudVersion"] = "2020.0.3" 30 | extra["testcontainersVersion"] = "1.15.3" 31 | 32 | dependencies { 33 | implementation("org.springframework.boot:spring-boot-starter-rsocket") 34 | implementation("org.springframework.boot:spring-boot-starter-webflux") 35 | implementation("com.fasterxml.jackson.module:jackson-module-kotlin") 36 | implementation("org.springframework.boot:spring-boot-starter-thymeleaf") 37 | implementation("org.springframework.boot:spring-boot-starter-actuator") 38 | implementation("com.google.cloud:spring-cloud-gcp-starter-secretmanager") 39 | implementation("com.google.cloud:spring-cloud-gcp-starter") 40 | implementation("io.projectreactor.kotlin:reactor-kotlin-extensions") 41 | implementation("org.jetbrains.kotlin:kotlin-reflect") 42 | implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") 43 | implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor") 44 | 45 | implementation("com.github.yschimke:okurl:2.29") { 46 | exclude(group = "com.squareup.okhttp3") 47 | exclude(group = "ch.qos.logback") 48 | exclude(group = "com.babylon.certificatetransparency", module = "certificatetransparency") 49 | exclude(group = "org.slf4j", module = "slf4j-jdk14") 50 | } 51 | implementation("com.squareup.moshi:moshi:1.12.0") 52 | implementation("com.squareup.moshi:moshi-adapters:1.12.0") 53 | implementation("com.squareup.moshi:moshi-kotlin:1.12.0") 54 | 55 | implementation("com.squareup.wire:wire-runtime:4.0.0-alpha.3") 56 | implementation("com.squareup.wire:wire-moshi-adapter:4.0.0-alpha.3") 57 | implementation("com.squareup.wire:wire-grpc-client:4.0.0-alpha.3") { 58 | exclude(group= "com.squareup.okhttp3") 59 | } 60 | implementation("com.squareup.wire:wire-moshi-adapter:4.0.0-alpha.3") 61 | 62 | implementation("com.squareup.okhttp3:okhttp:5.0.0-alpha.2") 63 | implementation("com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.2") 64 | implementation("com.squareup.okhttp3:okhttp-brotli:5.0.0-alpha.2") 65 | 66 | annotationProcessor("org.springframework.boot:spring-boot-configuration-processor") 67 | 68 | testImplementation("io.projectreactor:reactor-test") 69 | testImplementation("org.testcontainers:junit-jupiter") 70 | testImplementation("org.testcontainers:postgresql") 71 | testImplementation("org.springframework.boot:spring-boot-starter-test") 72 | } 73 | 74 | dependencyManagement { 75 | imports { 76 | mavenBom("com.google.cloud:spring-cloud-gcp-dependencies:${property("springCloudGcpVersion")}") 77 | mavenBom("org.testcontainers:testcontainers-bom:${property("testcontainersVersion")}") 78 | mavenBom("org.springframework.cloud:spring-cloud-dependencies:${property("springCloudVersion")}") 79 | } 80 | } 81 | 82 | wire { 83 | kotlin { 84 | out = "src/main/kotlin" 85 | javaInterop = true 86 | } 87 | } 88 | 89 | jib { 90 | from.image = "gcr.io/distroless/java:11" 91 | 92 | to { 93 | image = "gcr.io/rsocket-demo-1/app" 94 | credHelper = "gcr" 95 | auth { 96 | username = "oauth2accesstoken" 97 | password = gcloudAuthToken() 98 | } 99 | } 100 | container { 101 | ports = listOf("8080") 102 | mainClass = "io.rsocket.demo.RsocketDemoApplicationKt" 103 | 104 | // good defauls intended for Java 8 (>= 8u191) containers 105 | jvmFlags = listOf( 106 | "-server", 107 | "-Djava.awt.headless=true", 108 | "-XX:+UseG1GC", 109 | "-XX:MaxGCPauseMillis=100", 110 | ) 111 | } 112 | } 113 | 114 | tasks.withType { 115 | kotlinOptions { 116 | freeCompilerArgs = listOf("-Xjsr305=strict") 117 | jvmTarget = "11" 118 | } 119 | } 120 | 121 | tasks.withType { 122 | useJUnitPlatform() 123 | } 124 | 125 | fun gcloudAuthToken() = try { 126 | ProcessBuilder("gcloud auth print-access-token".split(' ')) 127 | .redirectOutput(ProcessBuilder.Redirect.PIPE) 128 | .start() 129 | .inputStream.bufferedReader().readText().trim() 130 | } catch (e: Exception) { 131 | e.printStackTrace() 132 | null 133 | } -------------------------------------------------------------------------------- /cloudbuild.yaml: -------------------------------------------------------------------------------- 1 | steps: 2 | - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' 3 | args: [ "./gradlew", "jib", "--image=gcr.io/rsocket-demo-1/app" ] 4 | 5 | - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' 6 | args: [ "gcloud", "run", "deploy", "app", "--image=gcr.io/rsocket-demo-1/app", "--region=europe-west4" ] 7 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rsocket/rsocket-demo/f2444aee30f637cc6a02db40c73b5056dcedae25/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-rc-1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /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/master/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 | APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit 84 | 85 | APP_NAME="Gradle" 86 | APP_BASE_NAME=${0##*/} 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 | MAX_FD=$( ulimit -H -n ) || 147 | warn "Could not query maximum file descriptor limit" 148 | esac 149 | case $MAX_FD in #( 150 | '' | soft) :;; #( 151 | *) 152 | ulimit -n "$MAX_FD" || 153 | warn "Could not set maximum file descriptor limit to $MAX_FD" 154 | esac 155 | fi 156 | 157 | # Collect all arguments for the java command, stacking in reverse order: 158 | # * args from the command line 159 | # * the main class name 160 | # * -classpath 161 | # * -D...appname settings 162 | # * --module-path (only if needed) 163 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. 164 | 165 | # For Cygwin or MSYS, switch paths to Windows format before running java 166 | if "$cygwin" || "$msys" ; then 167 | APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) 168 | CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) 169 | 170 | JAVACMD=$( cygpath --unix "$JAVACMD" ) 171 | 172 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 173 | for arg do 174 | if 175 | case $arg in #( 176 | -*) false ;; # don't mess with options #( 177 | /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath 178 | [ -e "$t" ] ;; #( 179 | *) false ;; 180 | esac 181 | then 182 | arg=$( cygpath --path --ignore --mixed "$arg" ) 183 | fi 184 | # Roll the args list around exactly as many times as the number of 185 | # args, so each arg winds up back in the position where it started, but 186 | # possibly modified. 187 | # 188 | # NB: a `for` loop captures its iteration list before it begins, so 189 | # changing the positional parameters here affects neither the number of 190 | # iterations, nor the values presented in `arg`. 191 | shift # remove old arg 192 | set -- "$@" "$arg" # push replacement arg 193 | done 194 | fi 195 | 196 | # Collect all arguments for the java command; 197 | # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of 198 | # shell script including quotes and variable substitutions, so put them in 199 | # double quotes to make sure that they get re-expanded; and 200 | # * put everything else in single quotes, so that it's not re-expanded. 201 | 202 | set -- \ 203 | "-Dorg.gradle.appname=$APP_BASE_NAME" \ 204 | -classpath "$CLASSPATH" \ 205 | org.gradle.wrapper.GradleWrapperMain \ 206 | "$@" 207 | 208 | # Use "xargs" to parse quoted args. 209 | # 210 | # With -n1 it outputs one arg per line, with the quotes and backslashes removed. 211 | # 212 | # In Bash we could simply go: 213 | # 214 | # readarray ARGS < <( xargs -n1 <<<"$var" ) && 215 | # set -- "${ARGS[@]}" "$@" 216 | # 217 | # but POSIX shell has neither arrays nor command substitution, so instead we 218 | # post-process each arg (as a line of input to sed) to backslash-escape any 219 | # character that might be a shell metacharacter, then use eval to reverse 220 | # that process (while maintaining the separation between arguments), and wrap 221 | # the whole thing up as a single "set" statement. 222 | # 223 | # This will of course break if any of these variables contains a newline or 224 | # an unmatched quote. 225 | # 226 | 227 | eval "set -- $( 228 | printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | 229 | xargs -n1 | 230 | sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | 231 | tr '\n' ' ' 232 | )" '"$@"' 233 | 234 | exec "$JAVACMD" "$@" 235 | -------------------------------------------------------------------------------- /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 | set APP_BASE_NAME=%~n0 30 | set APP_HOME=%DIRNAME% 31 | 32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 34 | 35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 37 | 38 | @rem Find java.exe 39 | if defined JAVA_HOME goto findJavaFromJavaHome 40 | 41 | set JAVA_EXE=java.exe 42 | %JAVA_EXE% -version >NUL 2>&1 43 | if "%ERRORLEVEL%" == "0" goto execute 44 | 45 | echo. 46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 47 | echo. 48 | echo Please set the JAVA_HOME variable in your environment to match the 49 | echo location of your Java installation. 50 | 51 | goto fail 52 | 53 | :findJavaFromJavaHome 54 | set JAVA_HOME=%JAVA_HOME:"=% 55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 56 | 57 | if exist "%JAVA_EXE%" goto execute 58 | 59 | echo. 60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 61 | echo. 62 | echo Please set the JAVA_HOME variable in your environment to match the 63 | echo location of your Java installation. 64 | 65 | goto fail 66 | 67 | :execute 68 | @rem Setup the command line 69 | 70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 71 | 72 | 73 | @rem Execute Gradle 74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 75 | 76 | :end 77 | @rem End local scope for the variables with windows NT shell 78 | if "%ERRORLEVEL%"=="0" goto mainEnd 79 | 80 | :fail 81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 82 | rem the _cmd.exe /c_ return code! 83 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 84 | exit /b 1 85 | 86 | :mainEnd 87 | if "%OS%"=="Windows_NT" endlocal 88 | 89 | :omega 90 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rsocket-demo", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "version": "1.0.0", 9 | "license": "Apache-2.0", 10 | "dependencies": { 11 | "buffer": "^6.0.3", 12 | "rsocket-websocket-client": "^0.0.23", 13 | "webpack": "^5.23.0" 14 | }, 15 | "devDependencies": { 16 | "webpack-cli": "^4.5.0" 17 | } 18 | }, 19 | "node_modules/@discoveryjs/json-ext": { 20 | "version": "0.5.2", 21 | "resolved": "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", 22 | "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", 23 | "dev": true, 24 | "license": "MIT", 25 | "engines": { 26 | "node": ">=10.0.0" 27 | } 28 | }, 29 | "node_modules/@types/eslint": { 30 | "version": "7.2.6", 31 | "resolved": "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.6.tgz", 32 | "integrity": "sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw==", 33 | "license": "MIT", 34 | "dependencies": { 35 | "@types/estree": "*", 36 | "@types/json-schema": "*" 37 | } 38 | }, 39 | "node_modules/@types/eslint-scope": { 40 | "version": "3.7.0", 41 | "resolved": "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", 42 | "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", 43 | "license": "MIT", 44 | "dependencies": { 45 | "@types/eslint": "*", 46 | "@types/estree": "*" 47 | } 48 | }, 49 | "node_modules/@types/estree": { 50 | "version": "0.0.46", 51 | "resolved": "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz", 52 | "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==", 53 | "license": "MIT" 54 | }, 55 | "node_modules/@types/json-schema": { 56 | "version": "7.0.7", 57 | "resolved": "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz", 58 | "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", 59 | "license": "MIT" 60 | }, 61 | "node_modules/@types/node": { 62 | "version": "14.14.31", 63 | "resolved": "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz", 64 | "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==", 65 | "license": "MIT" 66 | }, 67 | "node_modules/@webassemblyjs/ast": { 68 | "version": "1.11.0", 69 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz", 70 | "integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==", 71 | "license": "MIT", 72 | "dependencies": { 73 | "@webassemblyjs/helper-numbers": "1.11.0", 74 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0" 75 | } 76 | }, 77 | "node_modules/@webassemblyjs/floating-point-hex-parser": { 78 | "version": "1.11.0", 79 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz", 80 | "integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==", 81 | "license": "MIT" 82 | }, 83 | "node_modules/@webassemblyjs/helper-api-error": { 84 | "version": "1.11.0", 85 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz", 86 | "integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==", 87 | "license": "MIT" 88 | }, 89 | "node_modules/@webassemblyjs/helper-buffer": { 90 | "version": "1.11.0", 91 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz", 92 | "integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==", 93 | "license": "MIT" 94 | }, 95 | "node_modules/@webassemblyjs/helper-numbers": { 96 | "version": "1.11.0", 97 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz", 98 | "integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==", 99 | "license": "MIT", 100 | "dependencies": { 101 | "@webassemblyjs/floating-point-hex-parser": "1.11.0", 102 | "@webassemblyjs/helper-api-error": "1.11.0", 103 | "@xtuc/long": "4.2.2" 104 | } 105 | }, 106 | "node_modules/@webassemblyjs/helper-wasm-bytecode": { 107 | "version": "1.11.0", 108 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz", 109 | "integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==", 110 | "license": "MIT" 111 | }, 112 | "node_modules/@webassemblyjs/helper-wasm-section": { 113 | "version": "1.11.0", 114 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz", 115 | "integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==", 116 | "license": "MIT", 117 | "dependencies": { 118 | "@webassemblyjs/ast": "1.11.0", 119 | "@webassemblyjs/helper-buffer": "1.11.0", 120 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0", 121 | "@webassemblyjs/wasm-gen": "1.11.0" 122 | } 123 | }, 124 | "node_modules/@webassemblyjs/ieee754": { 125 | "version": "1.11.0", 126 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz", 127 | "integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==", 128 | "license": "MIT", 129 | "dependencies": { 130 | "@xtuc/ieee754": "^1.2.0" 131 | } 132 | }, 133 | "node_modules/@webassemblyjs/leb128": { 134 | "version": "1.11.0", 135 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz", 136 | "integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==", 137 | "license": "Apache-2.0", 138 | "dependencies": { 139 | "@xtuc/long": "4.2.2" 140 | } 141 | }, 142 | "node_modules/@webassemblyjs/utf8": { 143 | "version": "1.11.0", 144 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz", 145 | "integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==", 146 | "license": "MIT" 147 | }, 148 | "node_modules/@webassemblyjs/wasm-edit": { 149 | "version": "1.11.0", 150 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz", 151 | "integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==", 152 | "license": "MIT", 153 | "dependencies": { 154 | "@webassemblyjs/ast": "1.11.0", 155 | "@webassemblyjs/helper-buffer": "1.11.0", 156 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0", 157 | "@webassemblyjs/helper-wasm-section": "1.11.0", 158 | "@webassemblyjs/wasm-gen": "1.11.0", 159 | "@webassemblyjs/wasm-opt": "1.11.0", 160 | "@webassemblyjs/wasm-parser": "1.11.0", 161 | "@webassemblyjs/wast-printer": "1.11.0" 162 | } 163 | }, 164 | "node_modules/@webassemblyjs/wasm-gen": { 165 | "version": "1.11.0", 166 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz", 167 | "integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==", 168 | "license": "MIT", 169 | "dependencies": { 170 | "@webassemblyjs/ast": "1.11.0", 171 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0", 172 | "@webassemblyjs/ieee754": "1.11.0", 173 | "@webassemblyjs/leb128": "1.11.0", 174 | "@webassemblyjs/utf8": "1.11.0" 175 | } 176 | }, 177 | "node_modules/@webassemblyjs/wasm-opt": { 178 | "version": "1.11.0", 179 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz", 180 | "integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==", 181 | "license": "MIT", 182 | "dependencies": { 183 | "@webassemblyjs/ast": "1.11.0", 184 | "@webassemblyjs/helper-buffer": "1.11.0", 185 | "@webassemblyjs/wasm-gen": "1.11.0", 186 | "@webassemblyjs/wasm-parser": "1.11.0" 187 | } 188 | }, 189 | "node_modules/@webassemblyjs/wasm-parser": { 190 | "version": "1.11.0", 191 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz", 192 | "integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==", 193 | "license": "MIT", 194 | "dependencies": { 195 | "@webassemblyjs/ast": "1.11.0", 196 | "@webassemblyjs/helper-api-error": "1.11.0", 197 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0", 198 | "@webassemblyjs/ieee754": "1.11.0", 199 | "@webassemblyjs/leb128": "1.11.0", 200 | "@webassemblyjs/utf8": "1.11.0" 201 | } 202 | }, 203 | "node_modules/@webassemblyjs/wast-printer": { 204 | "version": "1.11.0", 205 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz", 206 | "integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==", 207 | "license": "MIT", 208 | "dependencies": { 209 | "@webassemblyjs/ast": "1.11.0", 210 | "@xtuc/long": "4.2.2" 211 | } 212 | }, 213 | "node_modules/@webpack-cli/configtest": { 214 | "version": "1.0.1", 215 | "resolved": "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.1.tgz", 216 | "integrity": "sha512-B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ==", 217 | "dev": true, 218 | "license": "MIT", 219 | "peerDependencies": { 220 | "webpack": "4.x.x || 5.x.x", 221 | "webpack-cli": "4.x.x" 222 | } 223 | }, 224 | "node_modules/@webpack-cli/info": { 225 | "version": "1.2.2", 226 | "resolved": "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.2.tgz", 227 | "integrity": "sha512-5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ==", 228 | "dev": true, 229 | "license": "MIT", 230 | "dependencies": { 231 | "envinfo": "^7.7.3" 232 | }, 233 | "peerDependencies": { 234 | "webpack-cli": "4.x.x" 235 | } 236 | }, 237 | "node_modules/@webpack-cli/serve": { 238 | "version": "1.3.0", 239 | "resolved": "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.3.0.tgz", 240 | "integrity": "sha512-k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw==", 241 | "dev": true, 242 | "license": "MIT", 243 | "peerDependencies": { 244 | "webpack-cli": "4.x.x" 245 | }, 246 | "peerDependenciesMeta": { 247 | "webpack-dev-server": { 248 | "optional": true 249 | } 250 | } 251 | }, 252 | "node_modules/@xtuc/ieee754": { 253 | "version": "1.2.0", 254 | "resolved": "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", 255 | "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", 256 | "license": "BSD-3-Clause" 257 | }, 258 | "node_modules/@xtuc/long": { 259 | "version": "4.2.2", 260 | "resolved": "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz", 261 | "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", 262 | "license": "Apache-2.0" 263 | }, 264 | "node_modules/acorn": { 265 | "version": "8.0.5", 266 | "resolved": "https://registry.yarnpkg.com/acorn/-/acorn-8.0.5.tgz", 267 | "integrity": "sha512-v+DieK/HJkJOpFBETDJioequtc3PfxsWMaxIdIwujtF7FEV/MAyDQLlm6/zPvr7Mix07mLh6ccVwIsloceodlg==", 268 | "license": "MIT", 269 | "bin": { 270 | "acorn": "bin/acorn" 271 | }, 272 | "engines": { 273 | "node": ">=0.4.0" 274 | } 275 | }, 276 | "node_modules/ajv": { 277 | "version": "6.12.6", 278 | "resolved": "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz", 279 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 280 | "license": "MIT", 281 | "dependencies": { 282 | "fast-deep-equal": "^3.1.1", 283 | "fast-json-stable-stringify": "^2.0.0", 284 | "json-schema-traverse": "^0.4.1", 285 | "uri-js": "^4.2.2" 286 | }, 287 | "funding": { 288 | "type": "github", 289 | "url": "https://github.com/sponsors/epoberezkin" 290 | } 291 | }, 292 | "node_modules/ajv-keywords": { 293 | "version": "3.5.2", 294 | "resolved": "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", 295 | "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", 296 | "license": "MIT", 297 | "peerDependencies": { 298 | "ajv": "^6.9.1" 299 | } 300 | }, 301 | "node_modules/ansi-colors": { 302 | "version": "4.1.1", 303 | "resolved": "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz", 304 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", 305 | "dev": true, 306 | "license": "MIT", 307 | "engines": { 308 | "node": ">=6" 309 | } 310 | }, 311 | "node_modules/asap": { 312 | "version": "2.0.6", 313 | "resolved": "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz", 314 | "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", 315 | "license": "MIT" 316 | }, 317 | "node_modules/base64-js": { 318 | "version": "1.5.1", 319 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 320 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 321 | "funding": [ 322 | { 323 | "type": "github", 324 | "url": "https://github.com/sponsors/feross" 325 | }, 326 | { 327 | "type": "patreon", 328 | "url": "https://www.patreon.com/feross" 329 | }, 330 | { 331 | "type": "consulting", 332 | "url": "https://feross.org/support" 333 | } 334 | ] 335 | }, 336 | "node_modules/browserslist": { 337 | "version": "4.16.3", 338 | "resolved": "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz", 339 | "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", 340 | "license": "MIT", 341 | "dependencies": { 342 | "caniuse-lite": "^1.0.30001181", 343 | "colorette": "^1.2.1", 344 | "electron-to-chromium": "^1.3.649", 345 | "escalade": "^3.1.1", 346 | "node-releases": "^1.1.70" 347 | }, 348 | "bin": { 349 | "browserslist": "cli.js" 350 | }, 351 | "engines": { 352 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 353 | }, 354 | "funding": { 355 | "type": "opencollective", 356 | "url": "https://opencollective.com/browserslist" 357 | } 358 | }, 359 | "node_modules/buffer": { 360 | "version": "6.0.3", 361 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", 362 | "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", 363 | "funding": [ 364 | { 365 | "type": "github", 366 | "url": "https://github.com/sponsors/feross" 367 | }, 368 | { 369 | "type": "patreon", 370 | "url": "https://www.patreon.com/feross" 371 | }, 372 | { 373 | "type": "consulting", 374 | "url": "https://feross.org/support" 375 | } 376 | ], 377 | "dependencies": { 378 | "base64-js": "^1.3.1", 379 | "ieee754": "^1.2.1" 380 | } 381 | }, 382 | "node_modules/buffer-from": { 383 | "version": "1.1.1", 384 | "resolved": "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz", 385 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 386 | "license": "MIT" 387 | }, 388 | "node_modules/caniuse-lite": { 389 | "version": "1.0.30001190", 390 | "resolved": "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001190.tgz", 391 | "integrity": "sha512-62KVw474IK8E+bACBYhRS0/L6o/1oeAVkpF2WetjV58S5vkzNh0/Rz3lD8D4YCbOTqi0/aD4X3LtoP7V5xnuAg==", 392 | "license": "CC-BY-4.0" 393 | }, 394 | "node_modules/chrome-trace-event": { 395 | "version": "1.0.2", 396 | "resolved": "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", 397 | "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", 398 | "license": "MIT", 399 | "dependencies": { 400 | "tslib": "^1.9.0" 401 | }, 402 | "engines": { 403 | "node": ">=6.0" 404 | } 405 | }, 406 | "node_modules/clone-deep": { 407 | "version": "4.0.1", 408 | "resolved": "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz", 409 | "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", 410 | "dev": true, 411 | "license": "MIT", 412 | "dependencies": { 413 | "is-plain-object": "^2.0.4", 414 | "kind-of": "^6.0.2", 415 | "shallow-clone": "^3.0.0" 416 | }, 417 | "engines": { 418 | "node": ">=6" 419 | } 420 | }, 421 | "node_modules/colorette": { 422 | "version": "1.2.1", 423 | "resolved": "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz", 424 | "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", 425 | "license": "MIT" 426 | }, 427 | "node_modules/commander": { 428 | "version": "7.1.0", 429 | "resolved": "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz", 430 | "integrity": "sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==", 431 | "dev": true, 432 | "license": "MIT", 433 | "engines": { 434 | "node": ">= 10" 435 | } 436 | }, 437 | "node_modules/core-js": { 438 | "version": "3.9.0", 439 | "resolved": "https://registry.yarnpkg.com/core-js/-/core-js-3.9.0.tgz", 440 | "integrity": "sha512-PyFBJaLq93FlyYdsndE5VaueA9K5cNB7CGzeCj191YYLhkQM0gdZR2SKihM70oF0wdqKSKClv/tEBOpoRmdOVQ==", 441 | "hasInstallScript": true, 442 | "license": "MIT", 443 | "funding": { 444 | "type": "opencollective", 445 | "url": "https://opencollective.com/core-js" 446 | } 447 | }, 448 | "node_modules/cross-fetch": { 449 | "version": "3.0.6", 450 | "resolved": "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.6.tgz", 451 | "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==", 452 | "license": "MIT", 453 | "dependencies": { 454 | "node-fetch": "2.6.1" 455 | } 456 | }, 457 | "node_modules/cross-spawn": { 458 | "version": "7.0.3", 459 | "resolved": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz", 460 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 461 | "dev": true, 462 | "license": "MIT", 463 | "dependencies": { 464 | "path-key": "^3.1.0", 465 | "shebang-command": "^2.0.0", 466 | "which": "^2.0.1" 467 | }, 468 | "engines": { 469 | "node": ">= 8" 470 | } 471 | }, 472 | "node_modules/electron-to-chromium": { 473 | "version": "1.3.671", 474 | "resolved": "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.671.tgz", 475 | "integrity": "sha512-RTD97QkdrJKaKwRv9h/wGAaoR2lGxNXEcBXS31vjitgTPwTWAbLdS7cEsBK68eEQy7p6YyT8D5BxBEYHu2SuwQ==", 476 | "license": "ISC" 477 | }, 478 | "node_modules/enhanced-resolve": { 479 | "version": "5.7.0", 480 | "resolved": "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz", 481 | "integrity": "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==", 482 | "license": "MIT", 483 | "dependencies": { 484 | "graceful-fs": "^4.2.4", 485 | "tapable": "^2.2.0" 486 | }, 487 | "engines": { 488 | "node": ">=10.13.0" 489 | } 490 | }, 491 | "node_modules/enquirer": { 492 | "version": "2.3.6", 493 | "resolved": "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz", 494 | "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", 495 | "dev": true, 496 | "license": "MIT", 497 | "dependencies": { 498 | "ansi-colors": "^4.1.1" 499 | }, 500 | "engines": { 501 | "node": ">=8.6" 502 | } 503 | }, 504 | "node_modules/envinfo": { 505 | "version": "7.7.4", 506 | "resolved": "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.4.tgz", 507 | "integrity": "sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ==", 508 | "dev": true, 509 | "license": "MIT", 510 | "bin": { 511 | "envinfo": "dist/cli.js" 512 | }, 513 | "engines": { 514 | "node": ">=4" 515 | } 516 | }, 517 | "node_modules/es-module-lexer": { 518 | "version": "0.3.26", 519 | "resolved": "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.3.26.tgz", 520 | "integrity": "sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA==", 521 | "license": "MIT" 522 | }, 523 | "node_modules/escalade": { 524 | "version": "3.1.1", 525 | "resolved": "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz", 526 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 527 | "license": "MIT", 528 | "engines": { 529 | "node": ">=6" 530 | } 531 | }, 532 | "node_modules/eslint-scope": { 533 | "version": "5.1.1", 534 | "resolved": "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz", 535 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 536 | "license": "BSD-2-Clause", 537 | "dependencies": { 538 | "esrecurse": "^4.3.0", 539 | "estraverse": "^4.1.1" 540 | }, 541 | "engines": { 542 | "node": ">=8.0.0" 543 | } 544 | }, 545 | "node_modules/esrecurse": { 546 | "version": "4.3.0", 547 | "resolved": "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz", 548 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 549 | "license": "BSD-2-Clause", 550 | "dependencies": { 551 | "estraverse": "^5.2.0" 552 | }, 553 | "engines": { 554 | "node": ">=4.0" 555 | } 556 | }, 557 | "node_modules/esrecurse/node_modules/estraverse": { 558 | "version": "5.2.0", 559 | "resolved": "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz", 560 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", 561 | "license": "BSD-2-Clause", 562 | "engines": { 563 | "node": ">=4.0" 564 | } 565 | }, 566 | "node_modules/estraverse": { 567 | "version": "4.3.0", 568 | "resolved": "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz", 569 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 570 | "license": "BSD-2-Clause", 571 | "engines": { 572 | "node": ">=4.0" 573 | } 574 | }, 575 | "node_modules/events": { 576 | "version": "3.2.0", 577 | "resolved": "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz", 578 | "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", 579 | "license": "MIT", 580 | "engines": { 581 | "node": ">=0.8.x" 582 | } 583 | }, 584 | "node_modules/execa": { 585 | "version": "5.0.0", 586 | "resolved": "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz", 587 | "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", 588 | "dev": true, 589 | "license": "MIT", 590 | "dependencies": { 591 | "cross-spawn": "^7.0.3", 592 | "get-stream": "^6.0.0", 593 | "human-signals": "^2.1.0", 594 | "is-stream": "^2.0.0", 595 | "merge-stream": "^2.0.0", 596 | "npm-run-path": "^4.0.1", 597 | "onetime": "^5.1.2", 598 | "signal-exit": "^3.0.3", 599 | "strip-final-newline": "^2.0.0" 600 | }, 601 | "engines": { 602 | "node": ">=10" 603 | }, 604 | "funding": { 605 | "url": "https://github.com/sindresorhus/execa?sponsor=1" 606 | } 607 | }, 608 | "node_modules/fast-deep-equal": { 609 | "version": "3.1.3", 610 | "resolved": "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 611 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 612 | "license": "MIT" 613 | }, 614 | "node_modules/fast-json-stable-stringify": { 615 | "version": "2.1.0", 616 | "resolved": "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 617 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 618 | "license": "MIT" 619 | }, 620 | "node_modules/fastest-levenshtein": { 621 | "version": "1.0.12", 622 | "resolved": "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", 623 | "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", 624 | "dev": true, 625 | "license": "MIT" 626 | }, 627 | "node_modules/fbjs": { 628 | "version": "2.0.0", 629 | "resolved": "https://registry.yarnpkg.com/fbjs/-/fbjs-2.0.0.tgz", 630 | "integrity": "sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ==", 631 | "license": "MIT", 632 | "dependencies": { 633 | "core-js": "^3.6.4", 634 | "cross-fetch": "^3.0.4", 635 | "fbjs-css-vars": "^1.0.0", 636 | "loose-envify": "^1.0.0", 637 | "object-assign": "^4.1.0", 638 | "promise": "^7.1.1", 639 | "setimmediate": "^1.0.5", 640 | "ua-parser-js": "^0.7.18" 641 | } 642 | }, 643 | "node_modules/fbjs-css-vars": { 644 | "version": "1.0.2", 645 | "resolved": "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", 646 | "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", 647 | "license": "MIT" 648 | }, 649 | "node_modules/find-up": { 650 | "version": "4.1.0", 651 | "resolved": "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz", 652 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 653 | "dev": true, 654 | "license": "MIT", 655 | "dependencies": { 656 | "locate-path": "^5.0.0", 657 | "path-exists": "^4.0.0" 658 | }, 659 | "engines": { 660 | "node": ">=8" 661 | } 662 | }, 663 | "node_modules/function-bind": { 664 | "version": "1.1.1", 665 | "resolved": "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz", 666 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 667 | "dev": true, 668 | "license": "MIT" 669 | }, 670 | "node_modules/get-stream": { 671 | "version": "6.0.0", 672 | "resolved": "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz", 673 | "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", 674 | "dev": true, 675 | "license": "MIT", 676 | "engines": { 677 | "node": ">=10" 678 | }, 679 | "funding": { 680 | "url": "https://github.com/sponsors/sindresorhus" 681 | } 682 | }, 683 | "node_modules/glob-to-regexp": { 684 | "version": "0.4.1", 685 | "resolved": "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", 686 | "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", 687 | "license": "BSD-2-Clause" 688 | }, 689 | "node_modules/graceful-fs": { 690 | "version": "4.2.6", 691 | "resolved": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz", 692 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", 693 | "license": "ISC" 694 | }, 695 | "node_modules/has": { 696 | "version": "1.0.3", 697 | "resolved": "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz", 698 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 699 | "dev": true, 700 | "license": "MIT", 701 | "dependencies": { 702 | "function-bind": "^1.1.1" 703 | }, 704 | "engines": { 705 | "node": ">= 0.4.0" 706 | } 707 | }, 708 | "node_modules/has-flag": { 709 | "version": "4.0.0", 710 | "resolved": "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz", 711 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 712 | "license": "MIT", 713 | "engines": { 714 | "node": ">=8" 715 | } 716 | }, 717 | "node_modules/human-signals": { 718 | "version": "2.1.0", 719 | "resolved": "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz", 720 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", 721 | "dev": true, 722 | "license": "Apache-2.0", 723 | "engines": { 724 | "node": ">=10.17.0" 725 | } 726 | }, 727 | "node_modules/ieee754": { 728 | "version": "1.2.1", 729 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 730 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 731 | "funding": [ 732 | { 733 | "type": "github", 734 | "url": "https://github.com/sponsors/feross" 735 | }, 736 | { 737 | "type": "patreon", 738 | "url": "https://www.patreon.com/feross" 739 | }, 740 | { 741 | "type": "consulting", 742 | "url": "https://feross.org/support" 743 | } 744 | ] 745 | }, 746 | "node_modules/import-local": { 747 | "version": "3.0.2", 748 | "resolved": "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz", 749 | "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", 750 | "dev": true, 751 | "license": "MIT", 752 | "dependencies": { 753 | "pkg-dir": "^4.2.0", 754 | "resolve-cwd": "^3.0.0" 755 | }, 756 | "bin": { 757 | "import-local-fixture": "fixtures/cli.js" 758 | }, 759 | "engines": { 760 | "node": ">=8" 761 | } 762 | }, 763 | "node_modules/interpret": { 764 | "version": "2.2.0", 765 | "resolved": "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz", 766 | "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", 767 | "dev": true, 768 | "license": "MIT", 769 | "engines": { 770 | "node": ">= 0.10" 771 | } 772 | }, 773 | "node_modules/is-core-module": { 774 | "version": "2.2.0", 775 | "resolved": "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz", 776 | "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", 777 | "dev": true, 778 | "license": "MIT", 779 | "dependencies": { 780 | "has": "^1.0.3" 781 | }, 782 | "funding": { 783 | "url": "https://github.com/sponsors/ljharb" 784 | } 785 | }, 786 | "node_modules/is-plain-object": { 787 | "version": "2.0.4", 788 | "resolved": "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz", 789 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", 790 | "dev": true, 791 | "license": "MIT", 792 | "dependencies": { 793 | "isobject": "^3.0.1" 794 | }, 795 | "engines": { 796 | "node": ">=0.10.0" 797 | } 798 | }, 799 | "node_modules/is-stream": { 800 | "version": "2.0.0", 801 | "resolved": "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz", 802 | "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", 803 | "dev": true, 804 | "license": "MIT", 805 | "engines": { 806 | "node": ">=8" 807 | } 808 | }, 809 | "node_modules/isexe": { 810 | "version": "2.0.0", 811 | "resolved": "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz", 812 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 813 | "dev": true, 814 | "license": "ISC" 815 | }, 816 | "node_modules/isobject": { 817 | "version": "3.0.1", 818 | "resolved": "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz", 819 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", 820 | "dev": true, 821 | "license": "MIT", 822 | "engines": { 823 | "node": ">=0.10.0" 824 | } 825 | }, 826 | "node_modules/jest-worker": { 827 | "version": "26.6.2", 828 | "resolved": "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz", 829 | "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", 830 | "license": "MIT", 831 | "dependencies": { 832 | "@types/node": "*", 833 | "merge-stream": "^2.0.0", 834 | "supports-color": "^7.0.0" 835 | }, 836 | "engines": { 837 | "node": ">= 10.13.0" 838 | } 839 | }, 840 | "node_modules/js-tokens": { 841 | "version": "4.0.0", 842 | "resolved": "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz", 843 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 844 | "license": "MIT" 845 | }, 846 | "node_modules/json-parse-better-errors": { 847 | "version": "1.0.2", 848 | "resolved": "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 849 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 850 | "license": "MIT" 851 | }, 852 | "node_modules/json-schema-traverse": { 853 | "version": "0.4.1", 854 | "resolved": "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 855 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 856 | "license": "MIT" 857 | }, 858 | "node_modules/kind-of": { 859 | "version": "6.0.3", 860 | "resolved": "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz", 861 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", 862 | "dev": true, 863 | "license": "MIT", 864 | "engines": { 865 | "node": ">=0.10.0" 866 | } 867 | }, 868 | "node_modules/loader-runner": { 869 | "version": "4.2.0", 870 | "resolved": "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz", 871 | "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", 872 | "license": "MIT", 873 | "engines": { 874 | "node": ">=6.11.5" 875 | } 876 | }, 877 | "node_modules/locate-path": { 878 | "version": "5.0.0", 879 | "resolved": "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz", 880 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 881 | "dev": true, 882 | "license": "MIT", 883 | "dependencies": { 884 | "p-locate": "^4.1.0" 885 | }, 886 | "engines": { 887 | "node": ">=8" 888 | } 889 | }, 890 | "node_modules/loose-envify": { 891 | "version": "1.4.0", 892 | "resolved": "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz", 893 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 894 | "license": "MIT", 895 | "dependencies": { 896 | "js-tokens": "^3.0.0 || ^4.0.0" 897 | }, 898 | "bin": { 899 | "loose-envify": "cli.js" 900 | } 901 | }, 902 | "node_modules/merge-stream": { 903 | "version": "2.0.0", 904 | "resolved": "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz", 905 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 906 | "license": "MIT" 907 | }, 908 | "node_modules/mime-db": { 909 | "version": "1.46.0", 910 | "resolved": "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz", 911 | "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", 912 | "license": "MIT", 913 | "engines": { 914 | "node": ">= 0.6" 915 | } 916 | }, 917 | "node_modules/mime-types": { 918 | "version": "2.1.29", 919 | "resolved": "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz", 920 | "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", 921 | "license": "MIT", 922 | "dependencies": { 923 | "mime-db": "1.46.0" 924 | }, 925 | "engines": { 926 | "node": ">= 0.6" 927 | } 928 | }, 929 | "node_modules/mimic-fn": { 930 | "version": "2.1.0", 931 | "resolved": "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz", 932 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 933 | "dev": true, 934 | "license": "MIT", 935 | "engines": { 936 | "node": ">=6" 937 | } 938 | }, 939 | "node_modules/neo-async": { 940 | "version": "2.6.2", 941 | "resolved": "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz", 942 | "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", 943 | "license": "MIT" 944 | }, 945 | "node_modules/node-fetch": { 946 | "version": "2.6.1", 947 | "resolved": "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz", 948 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", 949 | "license": "MIT", 950 | "engines": { 951 | "node": "4.x || >=6.0.0" 952 | } 953 | }, 954 | "node_modules/node-releases": { 955 | "version": "1.1.70", 956 | "resolved": "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz", 957 | "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==", 958 | "license": "MIT" 959 | }, 960 | "node_modules/npm-run-path": { 961 | "version": "4.0.1", 962 | "resolved": "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz", 963 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 964 | "dev": true, 965 | "license": "MIT", 966 | "dependencies": { 967 | "path-key": "^3.0.0" 968 | }, 969 | "engines": { 970 | "node": ">=8" 971 | } 972 | }, 973 | "node_modules/object-assign": { 974 | "version": "4.1.1", 975 | "resolved": "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz", 976 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 977 | "license": "MIT", 978 | "engines": { 979 | "node": ">=0.10.0" 980 | } 981 | }, 982 | "node_modules/onetime": { 983 | "version": "5.1.2", 984 | "resolved": "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz", 985 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 986 | "dev": true, 987 | "license": "MIT", 988 | "dependencies": { 989 | "mimic-fn": "^2.1.0" 990 | }, 991 | "engines": { 992 | "node": ">=6" 993 | }, 994 | "funding": { 995 | "url": "https://github.com/sponsors/sindresorhus" 996 | } 997 | }, 998 | "node_modules/p-limit": { 999 | "version": "3.1.0", 1000 | "resolved": "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz", 1001 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 1002 | "license": "MIT", 1003 | "dependencies": { 1004 | "yocto-queue": "^0.1.0" 1005 | }, 1006 | "engines": { 1007 | "node": ">=10" 1008 | }, 1009 | "funding": { 1010 | "url": "https://github.com/sponsors/sindresorhus" 1011 | } 1012 | }, 1013 | "node_modules/p-locate": { 1014 | "version": "4.1.0", 1015 | "resolved": "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz", 1016 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 1017 | "dev": true, 1018 | "license": "MIT", 1019 | "dependencies": { 1020 | "p-limit": "^2.2.0" 1021 | }, 1022 | "engines": { 1023 | "node": ">=8" 1024 | } 1025 | }, 1026 | "node_modules/p-locate/node_modules/p-limit": { 1027 | "version": "2.3.0", 1028 | "resolved": "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz", 1029 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 1030 | "dev": true, 1031 | "license": "MIT", 1032 | "dependencies": { 1033 | "p-try": "^2.0.0" 1034 | }, 1035 | "engines": { 1036 | "node": ">=6" 1037 | }, 1038 | "funding": { 1039 | "url": "https://github.com/sponsors/sindresorhus" 1040 | } 1041 | }, 1042 | "node_modules/p-try": { 1043 | "version": "2.2.0", 1044 | "resolved": "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz", 1045 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 1046 | "dev": true, 1047 | "license": "MIT", 1048 | "engines": { 1049 | "node": ">=6" 1050 | } 1051 | }, 1052 | "node_modules/path-exists": { 1053 | "version": "4.0.0", 1054 | "resolved": "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz", 1055 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 1056 | "dev": true, 1057 | "license": "MIT", 1058 | "engines": { 1059 | "node": ">=8" 1060 | } 1061 | }, 1062 | "node_modules/path-key": { 1063 | "version": "3.1.1", 1064 | "resolved": "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz", 1065 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1066 | "dev": true, 1067 | "license": "MIT", 1068 | "engines": { 1069 | "node": ">=8" 1070 | } 1071 | }, 1072 | "node_modules/path-parse": { 1073 | "version": "1.0.6", 1074 | "resolved": "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz", 1075 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 1076 | "dev": true, 1077 | "license": "MIT" 1078 | }, 1079 | "node_modules/pkg-dir": { 1080 | "version": "4.2.0", 1081 | "resolved": "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz", 1082 | "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", 1083 | "dev": true, 1084 | "license": "MIT", 1085 | "dependencies": { 1086 | "find-up": "^4.0.0" 1087 | }, 1088 | "engines": { 1089 | "node": ">=8" 1090 | } 1091 | }, 1092 | "node_modules/promise": { 1093 | "version": "7.3.1", 1094 | "resolved": "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz", 1095 | "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", 1096 | "license": "MIT", 1097 | "dependencies": { 1098 | "asap": "~2.0.3" 1099 | } 1100 | }, 1101 | "node_modules/punycode": { 1102 | "version": "2.1.1", 1103 | "resolved": "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz", 1104 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1105 | "license": "MIT", 1106 | "engines": { 1107 | "node": ">=6" 1108 | } 1109 | }, 1110 | "node_modules/randombytes": { 1111 | "version": "2.1.0", 1112 | "resolved": "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz", 1113 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 1114 | "license": "MIT", 1115 | "dependencies": { 1116 | "safe-buffer": "^5.1.0" 1117 | } 1118 | }, 1119 | "node_modules/rechoir": { 1120 | "version": "0.7.0", 1121 | "resolved": "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz", 1122 | "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", 1123 | "dev": true, 1124 | "license": "MIT", 1125 | "dependencies": { 1126 | "resolve": "^1.9.0" 1127 | }, 1128 | "engines": { 1129 | "node": ">= 0.10" 1130 | } 1131 | }, 1132 | "node_modules/resolve": { 1133 | "version": "1.20.0", 1134 | "resolved": "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz", 1135 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", 1136 | "dev": true, 1137 | "license": "MIT", 1138 | "dependencies": { 1139 | "is-core-module": "^2.2.0", 1140 | "path-parse": "^1.0.6" 1141 | }, 1142 | "funding": { 1143 | "url": "https://github.com/sponsors/ljharb" 1144 | } 1145 | }, 1146 | "node_modules/resolve-cwd": { 1147 | "version": "3.0.0", 1148 | "resolved": "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz", 1149 | "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", 1150 | "dev": true, 1151 | "license": "MIT", 1152 | "dependencies": { 1153 | "resolve-from": "^5.0.0" 1154 | }, 1155 | "engines": { 1156 | "node": ">=8" 1157 | } 1158 | }, 1159 | "node_modules/resolve-from": { 1160 | "version": "5.0.0", 1161 | "resolved": "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz", 1162 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 1163 | "dev": true, 1164 | "license": "MIT", 1165 | "engines": { 1166 | "node": ">=8" 1167 | } 1168 | }, 1169 | "node_modules/rsocket-core": { 1170 | "version": "0.0.23", 1171 | "resolved": "https://registry.yarnpkg.com/rsocket-core/-/rsocket-core-0.0.23.tgz", 1172 | "integrity": "sha512-c+D/ucwc9xQi2viqaIUKe5px6w2lD56Ar+kgRGhPcPttCYj+ovtH5cXpZZingkBe3sbkc54osj2agC9+Y/8J/g==", 1173 | "license": "BSD-3-Clause", 1174 | "dependencies": { 1175 | "fbjs": "^2.0.0", 1176 | "rsocket-flowable": "^0.0.23", 1177 | "rsocket-types": "^0.0.23" 1178 | } 1179 | }, 1180 | "node_modules/rsocket-flowable": { 1181 | "version": "0.0.23", 1182 | "resolved": "https://registry.yarnpkg.com/rsocket-flowable/-/rsocket-flowable-0.0.23.tgz", 1183 | "integrity": "sha512-fIZvpPNUoFlpyrJ1SdHm4QSDvVK9E+NlzvGz2oJP3A8FHS6GWpDLc5YYD3dhih1ZkL0/mS6mSQfxdQl7x2NO5g==", 1184 | "license": "BSD-3-Clause", 1185 | "dependencies": { 1186 | "fbjs": "^2.0.0" 1187 | } 1188 | }, 1189 | "node_modules/rsocket-types": { 1190 | "version": "0.0.23", 1191 | "resolved": "https://registry.yarnpkg.com/rsocket-types/-/rsocket-types-0.0.23.tgz", 1192 | "integrity": "sha512-tFuBukMJCV33784TH8mYUlVlxc1rbqhwE+K4U733p6pPmOSD6KjRZ6vQTOQCuWMCOOpa0aWxhp5A8oqFaHP0zA==", 1193 | "license": "BSD-3-Clause", 1194 | "dependencies": { 1195 | "fbjs": "^2.0.0", 1196 | "rsocket-flowable": "^0.0.23" 1197 | } 1198 | }, 1199 | "node_modules/rsocket-websocket-client": { 1200 | "version": "0.0.23", 1201 | "resolved": "https://registry.yarnpkg.com/rsocket-websocket-client/-/rsocket-websocket-client-0.0.23.tgz", 1202 | "integrity": "sha512-AB1gbFHlZU46vUF3ob7Kpq61OtqNhiwzTfCoMGhW4Y8+eYbrUOnJblLjpfgVtP39hPe2bhg15wI8hcVvR2phSA==", 1203 | "license": "BSD-3-Clause", 1204 | "dependencies": { 1205 | "fbjs": "^2.0.0", 1206 | "rsocket-core": "^0.0.23", 1207 | "rsocket-flowable": "^0.0.23", 1208 | "rsocket-types": "^0.0.23" 1209 | } 1210 | }, 1211 | "node_modules/safe-buffer": { 1212 | "version": "5.2.1", 1213 | "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz", 1214 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1215 | "funding": [ 1216 | { 1217 | "type": "github", 1218 | "url": "https://github.com/sponsors/feross" 1219 | }, 1220 | { 1221 | "type": "patreon", 1222 | "url": "https://www.patreon.com/feross" 1223 | }, 1224 | { 1225 | "type": "consulting", 1226 | "url": "https://feross.org/support" 1227 | } 1228 | ], 1229 | "license": "MIT" 1230 | }, 1231 | "node_modules/schema-utils": { 1232 | "version": "3.0.0", 1233 | "resolved": "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz", 1234 | "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", 1235 | "license": "MIT", 1236 | "dependencies": { 1237 | "@types/json-schema": "^7.0.6", 1238 | "ajv": "^6.12.5", 1239 | "ajv-keywords": "^3.5.2" 1240 | }, 1241 | "engines": { 1242 | "node": ">= 10.13.0" 1243 | }, 1244 | "funding": { 1245 | "type": "opencollective", 1246 | "url": "https://opencollective.com/webpack" 1247 | } 1248 | }, 1249 | "node_modules/serialize-javascript": { 1250 | "version": "5.0.1", 1251 | "resolved": "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz", 1252 | "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", 1253 | "license": "BSD-3-Clause", 1254 | "dependencies": { 1255 | "randombytes": "^2.1.0" 1256 | } 1257 | }, 1258 | "node_modules/setimmediate": { 1259 | "version": "1.0.5", 1260 | "resolved": "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz", 1261 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", 1262 | "license": "MIT" 1263 | }, 1264 | "node_modules/shallow-clone": { 1265 | "version": "3.0.1", 1266 | "resolved": "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz", 1267 | "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", 1268 | "dev": true, 1269 | "license": "MIT", 1270 | "dependencies": { 1271 | "kind-of": "^6.0.2" 1272 | }, 1273 | "engines": { 1274 | "node": ">=8" 1275 | } 1276 | }, 1277 | "node_modules/shebang-command": { 1278 | "version": "2.0.0", 1279 | "resolved": "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz", 1280 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1281 | "dev": true, 1282 | "license": "MIT", 1283 | "dependencies": { 1284 | "shebang-regex": "^3.0.0" 1285 | }, 1286 | "engines": { 1287 | "node": ">=8" 1288 | } 1289 | }, 1290 | "node_modules/shebang-regex": { 1291 | "version": "3.0.0", 1292 | "resolved": "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz", 1293 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1294 | "dev": true, 1295 | "license": "MIT", 1296 | "engines": { 1297 | "node": ">=8" 1298 | } 1299 | }, 1300 | "node_modules/signal-exit": { 1301 | "version": "3.0.3", 1302 | "resolved": "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz", 1303 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", 1304 | "dev": true, 1305 | "license": "ISC" 1306 | }, 1307 | "node_modules/source-list-map": { 1308 | "version": "2.0.1", 1309 | "resolved": "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz", 1310 | "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", 1311 | "license": "MIT" 1312 | }, 1313 | "node_modules/source-map": { 1314 | "version": "0.6.1", 1315 | "resolved": "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz", 1316 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1317 | "license": "BSD-3-Clause", 1318 | "engines": { 1319 | "node": ">=0.10.0" 1320 | } 1321 | }, 1322 | "node_modules/source-map-support": { 1323 | "version": "0.5.19", 1324 | "resolved": "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz", 1325 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", 1326 | "license": "MIT", 1327 | "dependencies": { 1328 | "buffer-from": "^1.0.0", 1329 | "source-map": "^0.6.0" 1330 | } 1331 | }, 1332 | "node_modules/strip-final-newline": { 1333 | "version": "2.0.0", 1334 | "resolved": "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 1335 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", 1336 | "dev": true, 1337 | "license": "MIT", 1338 | "engines": { 1339 | "node": ">=6" 1340 | } 1341 | }, 1342 | "node_modules/supports-color": { 1343 | "version": "7.2.0", 1344 | "resolved": "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz", 1345 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1346 | "license": "MIT", 1347 | "dependencies": { 1348 | "has-flag": "^4.0.0" 1349 | }, 1350 | "engines": { 1351 | "node": ">=8" 1352 | } 1353 | }, 1354 | "node_modules/tapable": { 1355 | "version": "2.2.0", 1356 | "resolved": "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz", 1357 | "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", 1358 | "license": "MIT", 1359 | "engines": { 1360 | "node": ">=6" 1361 | } 1362 | }, 1363 | "node_modules/terser": { 1364 | "version": "5.6.0", 1365 | "resolved": "https://registry.yarnpkg.com/terser/-/terser-5.6.0.tgz", 1366 | "integrity": "sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA==", 1367 | "license": "BSD-2-Clause", 1368 | "dependencies": { 1369 | "commander": "^2.20.0", 1370 | "source-map": "~0.7.2", 1371 | "source-map-support": "~0.5.19" 1372 | }, 1373 | "bin": { 1374 | "terser": "bin/terser" 1375 | }, 1376 | "engines": { 1377 | "node": ">=10" 1378 | } 1379 | }, 1380 | "node_modules/terser-webpack-plugin": { 1381 | "version": "5.1.1", 1382 | "resolved": "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz", 1383 | "integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==", 1384 | "license": "MIT", 1385 | "dependencies": { 1386 | "jest-worker": "^26.6.2", 1387 | "p-limit": "^3.1.0", 1388 | "schema-utils": "^3.0.0", 1389 | "serialize-javascript": "^5.0.1", 1390 | "source-map": "^0.6.1", 1391 | "terser": "^5.5.1" 1392 | }, 1393 | "engines": { 1394 | "node": ">= 10.13.0" 1395 | }, 1396 | "funding": { 1397 | "type": "opencollective", 1398 | "url": "https://opencollective.com/webpack" 1399 | }, 1400 | "peerDependencies": { 1401 | "webpack": "^5.1.0" 1402 | } 1403 | }, 1404 | "node_modules/terser/node_modules/commander": { 1405 | "version": "2.20.3", 1406 | "resolved": "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz", 1407 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 1408 | "license": "MIT" 1409 | }, 1410 | "node_modules/terser/node_modules/source-map": { 1411 | "version": "0.7.3", 1412 | "resolved": "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz", 1413 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 1414 | "license": "BSD-3-Clause", 1415 | "engines": { 1416 | "node": ">= 8" 1417 | } 1418 | }, 1419 | "node_modules/tslib": { 1420 | "version": "1.14.1", 1421 | "resolved": "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz", 1422 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", 1423 | "license": "0BSD" 1424 | }, 1425 | "node_modules/ua-parser-js": { 1426 | "version": "0.7.24", 1427 | "resolved": "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.24.tgz", 1428 | "integrity": "sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw==", 1429 | "license": "MIT", 1430 | "engines": { 1431 | "node": "*" 1432 | } 1433 | }, 1434 | "node_modules/uri-js": { 1435 | "version": "4.4.1", 1436 | "resolved": "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz", 1437 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 1438 | "license": "BSD-2-Clause", 1439 | "dependencies": { 1440 | "punycode": "^2.1.0" 1441 | } 1442 | }, 1443 | "node_modules/v8-compile-cache": { 1444 | "version": "2.2.0", 1445 | "resolved": "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", 1446 | "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", 1447 | "dev": true, 1448 | "license": "MIT" 1449 | }, 1450 | "node_modules/watchpack": { 1451 | "version": "2.1.1", 1452 | "resolved": "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz", 1453 | "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", 1454 | "license": "MIT", 1455 | "dependencies": { 1456 | "glob-to-regexp": "^0.4.1", 1457 | "graceful-fs": "^4.1.2" 1458 | }, 1459 | "engines": { 1460 | "node": ">=10.13.0" 1461 | } 1462 | }, 1463 | "node_modules/webpack": { 1464 | "version": "5.23.0", 1465 | "resolved": "https://registry.yarnpkg.com/webpack/-/webpack-5.23.0.tgz", 1466 | "integrity": "sha512-RC6dwDuRxiU75F8XC4H08NtzUrMfufw5LDnO8dTtaKU2+fszEdySCgZhNwSBBn516iNaJbQI7T7OPHIgCwcJmg==", 1467 | "license": "MIT", 1468 | "dependencies": { 1469 | "@types/eslint-scope": "^3.7.0", 1470 | "@types/estree": "^0.0.46", 1471 | "@webassemblyjs/ast": "1.11.0", 1472 | "@webassemblyjs/wasm-edit": "1.11.0", 1473 | "@webassemblyjs/wasm-parser": "1.11.0", 1474 | "acorn": "^8.0.4", 1475 | "browserslist": "^4.14.5", 1476 | "chrome-trace-event": "^1.0.2", 1477 | "enhanced-resolve": "^5.7.0", 1478 | "es-module-lexer": "^0.3.26", 1479 | "eslint-scope": "^5.1.1", 1480 | "events": "^3.2.0", 1481 | "glob-to-regexp": "^0.4.1", 1482 | "graceful-fs": "^4.2.4", 1483 | "json-parse-better-errors": "^1.0.2", 1484 | "loader-runner": "^4.2.0", 1485 | "mime-types": "^2.1.27", 1486 | "neo-async": "^2.6.2", 1487 | "schema-utils": "^3.0.0", 1488 | "tapable": "^2.1.1", 1489 | "terser-webpack-plugin": "^5.1.1", 1490 | "watchpack": "^2.0.0", 1491 | "webpack-sources": "^2.1.1" 1492 | }, 1493 | "bin": { 1494 | "webpack": "bin/webpack.js" 1495 | }, 1496 | "engines": { 1497 | "node": ">=10.13.0" 1498 | }, 1499 | "funding": { 1500 | "type": "opencollective", 1501 | "url": "https://opencollective.com/webpack" 1502 | }, 1503 | "peerDependenciesMeta": { 1504 | "webpack-cli": { 1505 | "optional": true 1506 | } 1507 | } 1508 | }, 1509 | "node_modules/webpack-cli": { 1510 | "version": "4.5.0", 1511 | "resolved": "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.5.0.tgz", 1512 | "integrity": "sha512-wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q==", 1513 | "dev": true, 1514 | "license": "MIT", 1515 | "dependencies": { 1516 | "@discoveryjs/json-ext": "^0.5.0", 1517 | "@webpack-cli/configtest": "^1.0.1", 1518 | "@webpack-cli/info": "^1.2.2", 1519 | "@webpack-cli/serve": "^1.3.0", 1520 | "colorette": "^1.2.1", 1521 | "commander": "^7.0.0", 1522 | "enquirer": "^2.3.6", 1523 | "execa": "^5.0.0", 1524 | "fastest-levenshtein": "^1.0.12", 1525 | "import-local": "^3.0.2", 1526 | "interpret": "^2.2.0", 1527 | "rechoir": "^0.7.0", 1528 | "v8-compile-cache": "^2.2.0", 1529 | "webpack-merge": "^5.7.3" 1530 | }, 1531 | "bin": { 1532 | "webpack-cli": "bin/cli.js" 1533 | }, 1534 | "engines": { 1535 | "node": ">=10.13.0" 1536 | }, 1537 | "peerDependencies": { 1538 | "webpack": "4.x.x || 5.x.x" 1539 | }, 1540 | "peerDependenciesMeta": { 1541 | "@webpack-cli/generators": { 1542 | "optional": true 1543 | }, 1544 | "@webpack-cli/init": { 1545 | "optional": true 1546 | }, 1547 | "@webpack-cli/migrate": { 1548 | "optional": true 1549 | }, 1550 | "webpack-bundle-analyzer": { 1551 | "optional": true 1552 | }, 1553 | "webpack-dev-server": { 1554 | "optional": true 1555 | } 1556 | } 1557 | }, 1558 | "node_modules/webpack-merge": { 1559 | "version": "5.7.3", 1560 | "resolved": "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz", 1561 | "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", 1562 | "dev": true, 1563 | "license": "MIT", 1564 | "dependencies": { 1565 | "clone-deep": "^4.0.1", 1566 | "wildcard": "^2.0.0" 1567 | }, 1568 | "engines": { 1569 | "node": ">=10.0.0" 1570 | } 1571 | }, 1572 | "node_modules/webpack-sources": { 1573 | "version": "2.2.0", 1574 | "resolved": "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz", 1575 | "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", 1576 | "license": "MIT", 1577 | "dependencies": { 1578 | "source-list-map": "^2.0.1", 1579 | "source-map": "^0.6.1" 1580 | }, 1581 | "engines": { 1582 | "node": ">=10.13.0" 1583 | } 1584 | }, 1585 | "node_modules/which": { 1586 | "version": "2.0.2", 1587 | "resolved": "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz", 1588 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1589 | "dev": true, 1590 | "license": "ISC", 1591 | "dependencies": { 1592 | "isexe": "^2.0.0" 1593 | }, 1594 | "bin": { 1595 | "node-which": "bin/node-which" 1596 | }, 1597 | "engines": { 1598 | "node": ">= 8" 1599 | } 1600 | }, 1601 | "node_modules/wildcard": { 1602 | "version": "2.0.0", 1603 | "resolved": "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz", 1604 | "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", 1605 | "dev": true, 1606 | "license": "MIT" 1607 | }, 1608 | "node_modules/yocto-queue": { 1609 | "version": "0.1.0", 1610 | "resolved": "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz", 1611 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 1612 | "license": "MIT", 1613 | "engines": { 1614 | "node": ">=10" 1615 | }, 1616 | "funding": { 1617 | "url": "https://github.com/sponsors/sindresorhus" 1618 | } 1619 | } 1620 | }, 1621 | "dependencies": { 1622 | "@discoveryjs/json-ext": { 1623 | "version": "0.5.2", 1624 | "resolved": "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", 1625 | "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", 1626 | "dev": true 1627 | }, 1628 | "@types/eslint": { 1629 | "version": "7.2.6", 1630 | "resolved": "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.6.tgz", 1631 | "integrity": "sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw==", 1632 | "requires": { 1633 | "@types/estree": "*", 1634 | "@types/json-schema": "*" 1635 | } 1636 | }, 1637 | "@types/eslint-scope": { 1638 | "version": "3.7.0", 1639 | "resolved": "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", 1640 | "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", 1641 | "requires": { 1642 | "@types/eslint": "*", 1643 | "@types/estree": "*" 1644 | } 1645 | }, 1646 | "@types/estree": { 1647 | "version": "0.0.46", 1648 | "resolved": "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz", 1649 | "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==" 1650 | }, 1651 | "@types/json-schema": { 1652 | "version": "7.0.7", 1653 | "resolved": "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz", 1654 | "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==" 1655 | }, 1656 | "@types/node": { 1657 | "version": "14.14.31", 1658 | "resolved": "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz", 1659 | "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==" 1660 | }, 1661 | "@webassemblyjs/ast": { 1662 | "version": "1.11.0", 1663 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz", 1664 | "integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==", 1665 | "requires": { 1666 | "@webassemblyjs/helper-numbers": "1.11.0", 1667 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0" 1668 | } 1669 | }, 1670 | "@webassemblyjs/floating-point-hex-parser": { 1671 | "version": "1.11.0", 1672 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz", 1673 | "integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==" 1674 | }, 1675 | "@webassemblyjs/helper-api-error": { 1676 | "version": "1.11.0", 1677 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz", 1678 | "integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==" 1679 | }, 1680 | "@webassemblyjs/helper-buffer": { 1681 | "version": "1.11.0", 1682 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz", 1683 | "integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==" 1684 | }, 1685 | "@webassemblyjs/helper-numbers": { 1686 | "version": "1.11.0", 1687 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz", 1688 | "integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==", 1689 | "requires": { 1690 | "@webassemblyjs/floating-point-hex-parser": "1.11.0", 1691 | "@webassemblyjs/helper-api-error": "1.11.0", 1692 | "@xtuc/long": "4.2.2" 1693 | } 1694 | }, 1695 | "@webassemblyjs/helper-wasm-bytecode": { 1696 | "version": "1.11.0", 1697 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz", 1698 | "integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==" 1699 | }, 1700 | "@webassemblyjs/helper-wasm-section": { 1701 | "version": "1.11.0", 1702 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz", 1703 | "integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==", 1704 | "requires": { 1705 | "@webassemblyjs/ast": "1.11.0", 1706 | "@webassemblyjs/helper-buffer": "1.11.0", 1707 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0", 1708 | "@webassemblyjs/wasm-gen": "1.11.0" 1709 | } 1710 | }, 1711 | "@webassemblyjs/ieee754": { 1712 | "version": "1.11.0", 1713 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz", 1714 | "integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==", 1715 | "requires": { 1716 | "@xtuc/ieee754": "^1.2.0" 1717 | } 1718 | }, 1719 | "@webassemblyjs/leb128": { 1720 | "version": "1.11.0", 1721 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz", 1722 | "integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==", 1723 | "requires": { 1724 | "@xtuc/long": "4.2.2" 1725 | } 1726 | }, 1727 | "@webassemblyjs/utf8": { 1728 | "version": "1.11.0", 1729 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz", 1730 | "integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==" 1731 | }, 1732 | "@webassemblyjs/wasm-edit": { 1733 | "version": "1.11.0", 1734 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz", 1735 | "integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==", 1736 | "requires": { 1737 | "@webassemblyjs/ast": "1.11.0", 1738 | "@webassemblyjs/helper-buffer": "1.11.0", 1739 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0", 1740 | "@webassemblyjs/helper-wasm-section": "1.11.0", 1741 | "@webassemblyjs/wasm-gen": "1.11.0", 1742 | "@webassemblyjs/wasm-opt": "1.11.0", 1743 | "@webassemblyjs/wasm-parser": "1.11.0", 1744 | "@webassemblyjs/wast-printer": "1.11.0" 1745 | } 1746 | }, 1747 | "@webassemblyjs/wasm-gen": { 1748 | "version": "1.11.0", 1749 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz", 1750 | "integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==", 1751 | "requires": { 1752 | "@webassemblyjs/ast": "1.11.0", 1753 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0", 1754 | "@webassemblyjs/ieee754": "1.11.0", 1755 | "@webassemblyjs/leb128": "1.11.0", 1756 | "@webassemblyjs/utf8": "1.11.0" 1757 | } 1758 | }, 1759 | "@webassemblyjs/wasm-opt": { 1760 | "version": "1.11.0", 1761 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz", 1762 | "integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==", 1763 | "requires": { 1764 | "@webassemblyjs/ast": "1.11.0", 1765 | "@webassemblyjs/helper-buffer": "1.11.0", 1766 | "@webassemblyjs/wasm-gen": "1.11.0", 1767 | "@webassemblyjs/wasm-parser": "1.11.0" 1768 | } 1769 | }, 1770 | "@webassemblyjs/wasm-parser": { 1771 | "version": "1.11.0", 1772 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz", 1773 | "integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==", 1774 | "requires": { 1775 | "@webassemblyjs/ast": "1.11.0", 1776 | "@webassemblyjs/helper-api-error": "1.11.0", 1777 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0", 1778 | "@webassemblyjs/ieee754": "1.11.0", 1779 | "@webassemblyjs/leb128": "1.11.0", 1780 | "@webassemblyjs/utf8": "1.11.0" 1781 | } 1782 | }, 1783 | "@webassemblyjs/wast-printer": { 1784 | "version": "1.11.0", 1785 | "resolved": "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz", 1786 | "integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==", 1787 | "requires": { 1788 | "@webassemblyjs/ast": "1.11.0", 1789 | "@xtuc/long": "4.2.2" 1790 | } 1791 | }, 1792 | "@webpack-cli/configtest": { 1793 | "version": "1.0.1", 1794 | "resolved": "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.1.tgz", 1795 | "integrity": "sha512-B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ==", 1796 | "dev": true, 1797 | "requires": {} 1798 | }, 1799 | "@webpack-cli/info": { 1800 | "version": "1.2.2", 1801 | "resolved": "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.2.tgz", 1802 | "integrity": "sha512-5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ==", 1803 | "dev": true, 1804 | "requires": { 1805 | "envinfo": "^7.7.3" 1806 | } 1807 | }, 1808 | "@webpack-cli/serve": { 1809 | "version": "1.3.0", 1810 | "resolved": "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.3.0.tgz", 1811 | "integrity": "sha512-k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw==", 1812 | "dev": true, 1813 | "requires": {} 1814 | }, 1815 | "@xtuc/ieee754": { 1816 | "version": "1.2.0", 1817 | "resolved": "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", 1818 | "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" 1819 | }, 1820 | "@xtuc/long": { 1821 | "version": "4.2.2", 1822 | "resolved": "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz", 1823 | "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" 1824 | }, 1825 | "acorn": { 1826 | "version": "8.0.5", 1827 | "resolved": "https://registry.yarnpkg.com/acorn/-/acorn-8.0.5.tgz", 1828 | "integrity": "sha512-v+DieK/HJkJOpFBETDJioequtc3PfxsWMaxIdIwujtF7FEV/MAyDQLlm6/zPvr7Mix07mLh6ccVwIsloceodlg==" 1829 | }, 1830 | "ajv": { 1831 | "version": "6.12.6", 1832 | "resolved": "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz", 1833 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 1834 | "requires": { 1835 | "fast-deep-equal": "^3.1.1", 1836 | "fast-json-stable-stringify": "^2.0.0", 1837 | "json-schema-traverse": "^0.4.1", 1838 | "uri-js": "^4.2.2" 1839 | } 1840 | }, 1841 | "ajv-keywords": { 1842 | "version": "3.5.2", 1843 | "resolved": "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", 1844 | "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", 1845 | "requires": {} 1846 | }, 1847 | "ansi-colors": { 1848 | "version": "4.1.1", 1849 | "resolved": "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz", 1850 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", 1851 | "dev": true 1852 | }, 1853 | "asap": { 1854 | "version": "2.0.6", 1855 | "resolved": "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz", 1856 | "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" 1857 | }, 1858 | "base64-js": { 1859 | "version": "1.5.1", 1860 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 1861 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 1862 | }, 1863 | "browserslist": { 1864 | "version": "4.16.3", 1865 | "resolved": "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz", 1866 | "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", 1867 | "requires": { 1868 | "caniuse-lite": "^1.0.30001181", 1869 | "colorette": "^1.2.1", 1870 | "electron-to-chromium": "^1.3.649", 1871 | "escalade": "^3.1.1", 1872 | "node-releases": "^1.1.70" 1873 | } 1874 | }, 1875 | "buffer": { 1876 | "version": "6.0.3", 1877 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", 1878 | "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", 1879 | "requires": { 1880 | "base64-js": "^1.3.1", 1881 | "ieee754": "^1.2.1" 1882 | } 1883 | }, 1884 | "buffer-from": { 1885 | "version": "1.1.1", 1886 | "resolved": "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz", 1887 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" 1888 | }, 1889 | "caniuse-lite": { 1890 | "version": "1.0.30001190", 1891 | "resolved": "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001190.tgz", 1892 | "integrity": "sha512-62KVw474IK8E+bACBYhRS0/L6o/1oeAVkpF2WetjV58S5vkzNh0/Rz3lD8D4YCbOTqi0/aD4X3LtoP7V5xnuAg==" 1893 | }, 1894 | "chrome-trace-event": { 1895 | "version": "1.0.2", 1896 | "resolved": "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", 1897 | "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", 1898 | "requires": { 1899 | "tslib": "^1.9.0" 1900 | } 1901 | }, 1902 | "clone-deep": { 1903 | "version": "4.0.1", 1904 | "resolved": "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz", 1905 | "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", 1906 | "dev": true, 1907 | "requires": { 1908 | "is-plain-object": "^2.0.4", 1909 | "kind-of": "^6.0.2", 1910 | "shallow-clone": "^3.0.0" 1911 | } 1912 | }, 1913 | "colorette": { 1914 | "version": "1.2.1", 1915 | "resolved": "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz", 1916 | "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" 1917 | }, 1918 | "commander": { 1919 | "version": "7.1.0", 1920 | "resolved": "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz", 1921 | "integrity": "sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==", 1922 | "dev": true 1923 | }, 1924 | "core-js": { 1925 | "version": "3.9.0", 1926 | "resolved": "https://registry.yarnpkg.com/core-js/-/core-js-3.9.0.tgz", 1927 | "integrity": "sha512-PyFBJaLq93FlyYdsndE5VaueA9K5cNB7CGzeCj191YYLhkQM0gdZR2SKihM70oF0wdqKSKClv/tEBOpoRmdOVQ==" 1928 | }, 1929 | "cross-fetch": { 1930 | "version": "3.0.6", 1931 | "resolved": "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.6.tgz", 1932 | "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==", 1933 | "requires": { 1934 | "node-fetch": "2.6.1" 1935 | } 1936 | }, 1937 | "cross-spawn": { 1938 | "version": "7.0.3", 1939 | "resolved": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz", 1940 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 1941 | "dev": true, 1942 | "requires": { 1943 | "path-key": "^3.1.0", 1944 | "shebang-command": "^2.0.0", 1945 | "which": "^2.0.1" 1946 | } 1947 | }, 1948 | "electron-to-chromium": { 1949 | "version": "1.3.671", 1950 | "resolved": "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.671.tgz", 1951 | "integrity": "sha512-RTD97QkdrJKaKwRv9h/wGAaoR2lGxNXEcBXS31vjitgTPwTWAbLdS7cEsBK68eEQy7p6YyT8D5BxBEYHu2SuwQ==" 1952 | }, 1953 | "enhanced-resolve": { 1954 | "version": "5.7.0", 1955 | "resolved": "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz", 1956 | "integrity": "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==", 1957 | "requires": { 1958 | "graceful-fs": "^4.2.4", 1959 | "tapable": "^2.2.0" 1960 | } 1961 | }, 1962 | "enquirer": { 1963 | "version": "2.3.6", 1964 | "resolved": "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz", 1965 | "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", 1966 | "dev": true, 1967 | "requires": { 1968 | "ansi-colors": "^4.1.1" 1969 | } 1970 | }, 1971 | "envinfo": { 1972 | "version": "7.7.4", 1973 | "resolved": "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.4.tgz", 1974 | "integrity": "sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ==", 1975 | "dev": true 1976 | }, 1977 | "es-module-lexer": { 1978 | "version": "0.3.26", 1979 | "resolved": "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.3.26.tgz", 1980 | "integrity": "sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA==" 1981 | }, 1982 | "escalade": { 1983 | "version": "3.1.1", 1984 | "resolved": "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz", 1985 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" 1986 | }, 1987 | "eslint-scope": { 1988 | "version": "5.1.1", 1989 | "resolved": "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz", 1990 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 1991 | "requires": { 1992 | "esrecurse": "^4.3.0", 1993 | "estraverse": "^4.1.1" 1994 | } 1995 | }, 1996 | "esrecurse": { 1997 | "version": "4.3.0", 1998 | "resolved": "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz", 1999 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 2000 | "requires": { 2001 | "estraverse": "^5.2.0" 2002 | }, 2003 | "dependencies": { 2004 | "estraverse": { 2005 | "version": "5.2.0", 2006 | "resolved": "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz", 2007 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" 2008 | } 2009 | } 2010 | }, 2011 | "estraverse": { 2012 | "version": "4.3.0", 2013 | "resolved": "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz", 2014 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" 2015 | }, 2016 | "events": { 2017 | "version": "3.2.0", 2018 | "resolved": "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz", 2019 | "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" 2020 | }, 2021 | "execa": { 2022 | "version": "5.0.0", 2023 | "resolved": "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz", 2024 | "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", 2025 | "dev": true, 2026 | "requires": { 2027 | "cross-spawn": "^7.0.3", 2028 | "get-stream": "^6.0.0", 2029 | "human-signals": "^2.1.0", 2030 | "is-stream": "^2.0.0", 2031 | "merge-stream": "^2.0.0", 2032 | "npm-run-path": "^4.0.1", 2033 | "onetime": "^5.1.2", 2034 | "signal-exit": "^3.0.3", 2035 | "strip-final-newline": "^2.0.0" 2036 | } 2037 | }, 2038 | "fast-deep-equal": { 2039 | "version": "3.1.3", 2040 | "resolved": "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 2041 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 2042 | }, 2043 | "fast-json-stable-stringify": { 2044 | "version": "2.1.0", 2045 | "resolved": "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 2046 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 2047 | }, 2048 | "fastest-levenshtein": { 2049 | "version": "1.0.12", 2050 | "resolved": "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", 2051 | "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", 2052 | "dev": true 2053 | }, 2054 | "fbjs": { 2055 | "version": "2.0.0", 2056 | "resolved": "https://registry.yarnpkg.com/fbjs/-/fbjs-2.0.0.tgz", 2057 | "integrity": "sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ==", 2058 | "requires": { 2059 | "core-js": "^3.6.4", 2060 | "cross-fetch": "^3.0.4", 2061 | "fbjs-css-vars": "^1.0.0", 2062 | "loose-envify": "^1.0.0", 2063 | "object-assign": "^4.1.0", 2064 | "promise": "^7.1.1", 2065 | "setimmediate": "^1.0.5", 2066 | "ua-parser-js": "^0.7.18" 2067 | } 2068 | }, 2069 | "fbjs-css-vars": { 2070 | "version": "1.0.2", 2071 | "resolved": "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", 2072 | "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" 2073 | }, 2074 | "find-up": { 2075 | "version": "4.1.0", 2076 | "resolved": "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz", 2077 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 2078 | "dev": true, 2079 | "requires": { 2080 | "locate-path": "^5.0.0", 2081 | "path-exists": "^4.0.0" 2082 | } 2083 | }, 2084 | "function-bind": { 2085 | "version": "1.1.1", 2086 | "resolved": "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz", 2087 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 2088 | "dev": true 2089 | }, 2090 | "get-stream": { 2091 | "version": "6.0.0", 2092 | "resolved": "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz", 2093 | "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", 2094 | "dev": true 2095 | }, 2096 | "glob-to-regexp": { 2097 | "version": "0.4.1", 2098 | "resolved": "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", 2099 | "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" 2100 | }, 2101 | "graceful-fs": { 2102 | "version": "4.2.6", 2103 | "resolved": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz", 2104 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" 2105 | }, 2106 | "has": { 2107 | "version": "1.0.3", 2108 | "resolved": "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz", 2109 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 2110 | "dev": true, 2111 | "requires": { 2112 | "function-bind": "^1.1.1" 2113 | } 2114 | }, 2115 | "has-flag": { 2116 | "version": "4.0.0", 2117 | "resolved": "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz", 2118 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 2119 | }, 2120 | "human-signals": { 2121 | "version": "2.1.0", 2122 | "resolved": "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz", 2123 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", 2124 | "dev": true 2125 | }, 2126 | "ieee754": { 2127 | "version": "1.2.1", 2128 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 2129 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" 2130 | }, 2131 | "import-local": { 2132 | "version": "3.0.2", 2133 | "resolved": "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz", 2134 | "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", 2135 | "dev": true, 2136 | "requires": { 2137 | "pkg-dir": "^4.2.0", 2138 | "resolve-cwd": "^3.0.0" 2139 | } 2140 | }, 2141 | "interpret": { 2142 | "version": "2.2.0", 2143 | "resolved": "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz", 2144 | "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", 2145 | "dev": true 2146 | }, 2147 | "is-core-module": { 2148 | "version": "2.2.0", 2149 | "resolved": "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz", 2150 | "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", 2151 | "dev": true, 2152 | "requires": { 2153 | "has": "^1.0.3" 2154 | } 2155 | }, 2156 | "is-plain-object": { 2157 | "version": "2.0.4", 2158 | "resolved": "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz", 2159 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", 2160 | "dev": true, 2161 | "requires": { 2162 | "isobject": "^3.0.1" 2163 | } 2164 | }, 2165 | "is-stream": { 2166 | "version": "2.0.0", 2167 | "resolved": "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz", 2168 | "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", 2169 | "dev": true 2170 | }, 2171 | "isexe": { 2172 | "version": "2.0.0", 2173 | "resolved": "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz", 2174 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2175 | "dev": true 2176 | }, 2177 | "isobject": { 2178 | "version": "3.0.1", 2179 | "resolved": "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz", 2180 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", 2181 | "dev": true 2182 | }, 2183 | "jest-worker": { 2184 | "version": "26.6.2", 2185 | "resolved": "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz", 2186 | "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", 2187 | "requires": { 2188 | "@types/node": "*", 2189 | "merge-stream": "^2.0.0", 2190 | "supports-color": "^7.0.0" 2191 | } 2192 | }, 2193 | "js-tokens": { 2194 | "version": "4.0.0", 2195 | "resolved": "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz", 2196 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 2197 | }, 2198 | "json-parse-better-errors": { 2199 | "version": "1.0.2", 2200 | "resolved": "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 2201 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" 2202 | }, 2203 | "json-schema-traverse": { 2204 | "version": "0.4.1", 2205 | "resolved": "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 2206 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 2207 | }, 2208 | "kind-of": { 2209 | "version": "6.0.3", 2210 | "resolved": "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz", 2211 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", 2212 | "dev": true 2213 | }, 2214 | "loader-runner": { 2215 | "version": "4.2.0", 2216 | "resolved": "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz", 2217 | "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==" 2218 | }, 2219 | "locate-path": { 2220 | "version": "5.0.0", 2221 | "resolved": "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz", 2222 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 2223 | "dev": true, 2224 | "requires": { 2225 | "p-locate": "^4.1.0" 2226 | } 2227 | }, 2228 | "loose-envify": { 2229 | "version": "1.4.0", 2230 | "resolved": "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz", 2231 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 2232 | "requires": { 2233 | "js-tokens": "^3.0.0 || ^4.0.0" 2234 | } 2235 | }, 2236 | "merge-stream": { 2237 | "version": "2.0.0", 2238 | "resolved": "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz", 2239 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" 2240 | }, 2241 | "mime-db": { 2242 | "version": "1.46.0", 2243 | "resolved": "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz", 2244 | "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" 2245 | }, 2246 | "mime-types": { 2247 | "version": "2.1.29", 2248 | "resolved": "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz", 2249 | "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", 2250 | "requires": { 2251 | "mime-db": "1.46.0" 2252 | } 2253 | }, 2254 | "mimic-fn": { 2255 | "version": "2.1.0", 2256 | "resolved": "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz", 2257 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 2258 | "dev": true 2259 | }, 2260 | "neo-async": { 2261 | "version": "2.6.2", 2262 | "resolved": "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz", 2263 | "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" 2264 | }, 2265 | "node-fetch": { 2266 | "version": "2.6.1", 2267 | "resolved": "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz", 2268 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" 2269 | }, 2270 | "node-releases": { 2271 | "version": "1.1.70", 2272 | "resolved": "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz", 2273 | "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==" 2274 | }, 2275 | "npm-run-path": { 2276 | "version": "4.0.1", 2277 | "resolved": "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz", 2278 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 2279 | "dev": true, 2280 | "requires": { 2281 | "path-key": "^3.0.0" 2282 | } 2283 | }, 2284 | "object-assign": { 2285 | "version": "4.1.1", 2286 | "resolved": "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz", 2287 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 2288 | }, 2289 | "onetime": { 2290 | "version": "5.1.2", 2291 | "resolved": "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz", 2292 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 2293 | "dev": true, 2294 | "requires": { 2295 | "mimic-fn": "^2.1.0" 2296 | } 2297 | }, 2298 | "p-limit": { 2299 | "version": "3.1.0", 2300 | "resolved": "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz", 2301 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 2302 | "requires": { 2303 | "yocto-queue": "^0.1.0" 2304 | } 2305 | }, 2306 | "p-locate": { 2307 | "version": "4.1.0", 2308 | "resolved": "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz", 2309 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 2310 | "dev": true, 2311 | "requires": { 2312 | "p-limit": "^2.2.0" 2313 | }, 2314 | "dependencies": { 2315 | "p-limit": { 2316 | "version": "2.3.0", 2317 | "resolved": "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz", 2318 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 2319 | "dev": true, 2320 | "requires": { 2321 | "p-try": "^2.0.0" 2322 | } 2323 | } 2324 | } 2325 | }, 2326 | "p-try": { 2327 | "version": "2.2.0", 2328 | "resolved": "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz", 2329 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 2330 | "dev": true 2331 | }, 2332 | "path-exists": { 2333 | "version": "4.0.0", 2334 | "resolved": "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz", 2335 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 2336 | "dev": true 2337 | }, 2338 | "path-key": { 2339 | "version": "3.1.1", 2340 | "resolved": "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz", 2341 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 2342 | "dev": true 2343 | }, 2344 | "path-parse": { 2345 | "version": "1.0.6", 2346 | "resolved": "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz", 2347 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 2348 | "dev": true 2349 | }, 2350 | "pkg-dir": { 2351 | "version": "4.2.0", 2352 | "resolved": "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz", 2353 | "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", 2354 | "dev": true, 2355 | "requires": { 2356 | "find-up": "^4.0.0" 2357 | } 2358 | }, 2359 | "promise": { 2360 | "version": "7.3.1", 2361 | "resolved": "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz", 2362 | "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", 2363 | "requires": { 2364 | "asap": "~2.0.3" 2365 | } 2366 | }, 2367 | "punycode": { 2368 | "version": "2.1.1", 2369 | "resolved": "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz", 2370 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 2371 | }, 2372 | "randombytes": { 2373 | "version": "2.1.0", 2374 | "resolved": "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz", 2375 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 2376 | "requires": { 2377 | "safe-buffer": "^5.1.0" 2378 | } 2379 | }, 2380 | "rechoir": { 2381 | "version": "0.7.0", 2382 | "resolved": "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz", 2383 | "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", 2384 | "dev": true, 2385 | "requires": { 2386 | "resolve": "^1.9.0" 2387 | } 2388 | }, 2389 | "resolve": { 2390 | "version": "1.20.0", 2391 | "resolved": "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz", 2392 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", 2393 | "dev": true, 2394 | "requires": { 2395 | "is-core-module": "^2.2.0", 2396 | "path-parse": "^1.0.6" 2397 | } 2398 | }, 2399 | "resolve-cwd": { 2400 | "version": "3.0.0", 2401 | "resolved": "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz", 2402 | "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", 2403 | "dev": true, 2404 | "requires": { 2405 | "resolve-from": "^5.0.0" 2406 | } 2407 | }, 2408 | "resolve-from": { 2409 | "version": "5.0.0", 2410 | "resolved": "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz", 2411 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 2412 | "dev": true 2413 | }, 2414 | "rsocket-core": { 2415 | "version": "0.0.23", 2416 | "resolved": "https://registry.yarnpkg.com/rsocket-core/-/rsocket-core-0.0.23.tgz", 2417 | "integrity": "sha512-c+D/ucwc9xQi2viqaIUKe5px6w2lD56Ar+kgRGhPcPttCYj+ovtH5cXpZZingkBe3sbkc54osj2agC9+Y/8J/g==", 2418 | "requires": { 2419 | "fbjs": "^2.0.0", 2420 | "rsocket-flowable": "^0.0.23", 2421 | "rsocket-types": "^0.0.23" 2422 | } 2423 | }, 2424 | "rsocket-flowable": { 2425 | "version": "0.0.23", 2426 | "resolved": "https://registry.yarnpkg.com/rsocket-flowable/-/rsocket-flowable-0.0.23.tgz", 2427 | "integrity": "sha512-fIZvpPNUoFlpyrJ1SdHm4QSDvVK9E+NlzvGz2oJP3A8FHS6GWpDLc5YYD3dhih1ZkL0/mS6mSQfxdQl7x2NO5g==", 2428 | "requires": { 2429 | "fbjs": "^2.0.0" 2430 | } 2431 | }, 2432 | "rsocket-types": { 2433 | "version": "0.0.23", 2434 | "resolved": "https://registry.yarnpkg.com/rsocket-types/-/rsocket-types-0.0.23.tgz", 2435 | "integrity": "sha512-tFuBukMJCV33784TH8mYUlVlxc1rbqhwE+K4U733p6pPmOSD6KjRZ6vQTOQCuWMCOOpa0aWxhp5A8oqFaHP0zA==", 2436 | "requires": { 2437 | "fbjs": "^2.0.0", 2438 | "rsocket-flowable": "^0.0.23" 2439 | } 2440 | }, 2441 | "rsocket-websocket-client": { 2442 | "version": "0.0.23", 2443 | "resolved": "https://registry.yarnpkg.com/rsocket-websocket-client/-/rsocket-websocket-client-0.0.23.tgz", 2444 | "integrity": "sha512-AB1gbFHlZU46vUF3ob7Kpq61OtqNhiwzTfCoMGhW4Y8+eYbrUOnJblLjpfgVtP39hPe2bhg15wI8hcVvR2phSA==", 2445 | "requires": { 2446 | "fbjs": "^2.0.0", 2447 | "rsocket-core": "^0.0.23", 2448 | "rsocket-flowable": "^0.0.23", 2449 | "rsocket-types": "^0.0.23" 2450 | } 2451 | }, 2452 | "safe-buffer": { 2453 | "version": "5.2.1", 2454 | "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz", 2455 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 2456 | }, 2457 | "schema-utils": { 2458 | "version": "3.0.0", 2459 | "resolved": "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz", 2460 | "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", 2461 | "requires": { 2462 | "@types/json-schema": "^7.0.6", 2463 | "ajv": "^6.12.5", 2464 | "ajv-keywords": "^3.5.2" 2465 | } 2466 | }, 2467 | "serialize-javascript": { 2468 | "version": "5.0.1", 2469 | "resolved": "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz", 2470 | "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", 2471 | "requires": { 2472 | "randombytes": "^2.1.0" 2473 | } 2474 | }, 2475 | "setimmediate": { 2476 | "version": "1.0.5", 2477 | "resolved": "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz", 2478 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" 2479 | }, 2480 | "shallow-clone": { 2481 | "version": "3.0.1", 2482 | "resolved": "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz", 2483 | "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", 2484 | "dev": true, 2485 | "requires": { 2486 | "kind-of": "^6.0.2" 2487 | } 2488 | }, 2489 | "shebang-command": { 2490 | "version": "2.0.0", 2491 | "resolved": "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz", 2492 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 2493 | "dev": true, 2494 | "requires": { 2495 | "shebang-regex": "^3.0.0" 2496 | } 2497 | }, 2498 | "shebang-regex": { 2499 | "version": "3.0.0", 2500 | "resolved": "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz", 2501 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 2502 | "dev": true 2503 | }, 2504 | "signal-exit": { 2505 | "version": "3.0.3", 2506 | "resolved": "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz", 2507 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", 2508 | "dev": true 2509 | }, 2510 | "source-list-map": { 2511 | "version": "2.0.1", 2512 | "resolved": "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz", 2513 | "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" 2514 | }, 2515 | "source-map": { 2516 | "version": "0.6.1", 2517 | "resolved": "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz", 2518 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 2519 | }, 2520 | "source-map-support": { 2521 | "version": "0.5.19", 2522 | "resolved": "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz", 2523 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", 2524 | "requires": { 2525 | "buffer-from": "^1.0.0", 2526 | "source-map": "^0.6.0" 2527 | } 2528 | }, 2529 | "strip-final-newline": { 2530 | "version": "2.0.0", 2531 | "resolved": "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 2532 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", 2533 | "dev": true 2534 | }, 2535 | "supports-color": { 2536 | "version": "7.2.0", 2537 | "resolved": "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz", 2538 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2539 | "requires": { 2540 | "has-flag": "^4.0.0" 2541 | } 2542 | }, 2543 | "tapable": { 2544 | "version": "2.2.0", 2545 | "resolved": "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz", 2546 | "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==" 2547 | }, 2548 | "terser": { 2549 | "version": "5.6.0", 2550 | "resolved": "https://registry.yarnpkg.com/terser/-/terser-5.6.0.tgz", 2551 | "integrity": "sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA==", 2552 | "requires": { 2553 | "commander": "^2.20.0", 2554 | "source-map": "~0.7.2", 2555 | "source-map-support": "~0.5.19" 2556 | }, 2557 | "dependencies": { 2558 | "commander": { 2559 | "version": "2.20.3", 2560 | "resolved": "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz", 2561 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" 2562 | }, 2563 | "source-map": { 2564 | "version": "0.7.3", 2565 | "resolved": "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz", 2566 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" 2567 | } 2568 | } 2569 | }, 2570 | "terser-webpack-plugin": { 2571 | "version": "5.1.1", 2572 | "resolved": "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz", 2573 | "integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==", 2574 | "requires": { 2575 | "jest-worker": "^26.6.2", 2576 | "p-limit": "^3.1.0", 2577 | "schema-utils": "^3.0.0", 2578 | "serialize-javascript": "^5.0.1", 2579 | "source-map": "^0.6.1", 2580 | "terser": "^5.5.1" 2581 | } 2582 | }, 2583 | "tslib": { 2584 | "version": "1.14.1", 2585 | "resolved": "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz", 2586 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 2587 | }, 2588 | "ua-parser-js": { 2589 | "version": "0.7.24", 2590 | "resolved": "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.24.tgz", 2591 | "integrity": "sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw==" 2592 | }, 2593 | "uri-js": { 2594 | "version": "4.4.1", 2595 | "resolved": "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz", 2596 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 2597 | "requires": { 2598 | "punycode": "^2.1.0" 2599 | } 2600 | }, 2601 | "v8-compile-cache": { 2602 | "version": "2.2.0", 2603 | "resolved": "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", 2604 | "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", 2605 | "dev": true 2606 | }, 2607 | "watchpack": { 2608 | "version": "2.1.1", 2609 | "resolved": "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz", 2610 | "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", 2611 | "requires": { 2612 | "glob-to-regexp": "^0.4.1", 2613 | "graceful-fs": "^4.1.2" 2614 | } 2615 | }, 2616 | "webpack": { 2617 | "version": "5.23.0", 2618 | "resolved": "https://registry.yarnpkg.com/webpack/-/webpack-5.23.0.tgz", 2619 | "integrity": "sha512-RC6dwDuRxiU75F8XC4H08NtzUrMfufw5LDnO8dTtaKU2+fszEdySCgZhNwSBBn516iNaJbQI7T7OPHIgCwcJmg==", 2620 | "requires": { 2621 | "@types/eslint-scope": "^3.7.0", 2622 | "@types/estree": "^0.0.46", 2623 | "@webassemblyjs/ast": "1.11.0", 2624 | "@webassemblyjs/wasm-edit": "1.11.0", 2625 | "@webassemblyjs/wasm-parser": "1.11.0", 2626 | "acorn": "^8.0.4", 2627 | "browserslist": "^4.14.5", 2628 | "chrome-trace-event": "^1.0.2", 2629 | "enhanced-resolve": "^5.7.0", 2630 | "es-module-lexer": "^0.3.26", 2631 | "eslint-scope": "^5.1.1", 2632 | "events": "^3.2.0", 2633 | "glob-to-regexp": "^0.4.1", 2634 | "graceful-fs": "^4.2.4", 2635 | "json-parse-better-errors": "^1.0.2", 2636 | "loader-runner": "^4.2.0", 2637 | "mime-types": "^2.1.27", 2638 | "neo-async": "^2.6.2", 2639 | "schema-utils": "^3.0.0", 2640 | "tapable": "^2.1.1", 2641 | "terser-webpack-plugin": "^5.1.1", 2642 | "watchpack": "^2.0.0", 2643 | "webpack-sources": "^2.1.1" 2644 | } 2645 | }, 2646 | "webpack-cli": { 2647 | "version": "4.5.0", 2648 | "resolved": "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.5.0.tgz", 2649 | "integrity": "sha512-wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q==", 2650 | "dev": true, 2651 | "requires": { 2652 | "@discoveryjs/json-ext": "^0.5.0", 2653 | "@webpack-cli/configtest": "^1.0.1", 2654 | "@webpack-cli/info": "^1.2.2", 2655 | "@webpack-cli/serve": "^1.3.0", 2656 | "colorette": "^1.2.1", 2657 | "commander": "^7.0.0", 2658 | "enquirer": "^2.3.6", 2659 | "execa": "^5.0.0", 2660 | "fastest-levenshtein": "^1.0.12", 2661 | "import-local": "^3.0.2", 2662 | "interpret": "^2.2.0", 2663 | "rechoir": "^0.7.0", 2664 | "v8-compile-cache": "^2.2.0", 2665 | "webpack-merge": "^5.7.3" 2666 | } 2667 | }, 2668 | "webpack-merge": { 2669 | "version": "5.7.3", 2670 | "resolved": "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz", 2671 | "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", 2672 | "dev": true, 2673 | "requires": { 2674 | "clone-deep": "^4.0.1", 2675 | "wildcard": "^2.0.0" 2676 | } 2677 | }, 2678 | "webpack-sources": { 2679 | "version": "2.2.0", 2680 | "resolved": "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz", 2681 | "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", 2682 | "requires": { 2683 | "source-list-map": "^2.0.1", 2684 | "source-map": "^0.6.1" 2685 | } 2686 | }, 2687 | "which": { 2688 | "version": "2.0.2", 2689 | "resolved": "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz", 2690 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2691 | "dev": true, 2692 | "requires": { 2693 | "isexe": "^2.0.0" 2694 | } 2695 | }, 2696 | "wildcard": { 2697 | "version": "2.0.0", 2698 | "resolved": "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz", 2699 | "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", 2700 | "dev": true 2701 | }, 2702 | "yocto-queue": { 2703 | "version": "0.1.0", 2704 | "resolved": "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz", 2705 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" 2706 | } 2707 | } 2708 | } 2709 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rsocket-demo", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "repository": "https://github.com/yschimke/rsocket-demo.git", 6 | "author": "Yuri Schimke ", 7 | "license": "Apache-2.0", 8 | "dependencies": { 9 | "buffer": "^6.0.3", 10 | "rsocket-websocket-client": "^0.0.23", 11 | "webpack": "^5.23.0" 12 | }, 13 | "scripts": { 14 | "build": "webpack" 15 | }, 16 | "devDependencies": { 17 | "webpack-cli": "^4.5.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "rsocket-demo" 2 | 3 | pluginManagement { 4 | repositories { 5 | gradlePluginPortal() 6 | mavenCentral() 7 | } 8 | resolutionStrategy { 9 | eachPlugin { 10 | if (requested.id.id == "com.google.cloud.tools.appengine") { 11 | useModule("com.google.cloud.tools:appengine-gradle-plugin:${requested.version}") 12 | } else if (requested.id.id == "com.squareup.wire") { 13 | useModule("com.squareup.wire:wire-gradle-plugin:${requested.version}") 14 | } 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/appengine/app.yaml: -------------------------------------------------------------------------------- 1 | runtime: java 2 | env: flex 3 | runtime_config: 4 | jdk: openjdk8 5 | resources: 6 | cpu: 2 7 | memory_gb: 2.3 8 | disk_size_gb: 10 9 | automatic_scaling: 10 | min_instances: 0 11 | target_concurrent_requests: 100 12 | instance_class: F2 13 | env_variables: 14 | SPRING_PROFILES_ACTIVE: "gcp" 15 | handlers: 16 | - url: /.* 17 | script: this field is required, but ignored 18 | network: 19 | session_affinity: true 20 | liveness_check: 21 | path: "/actuator/health" 22 | readiness_check: 23 | path: "/actuator/health" 24 | -------------------------------------------------------------------------------- /src/main/js/app.js: -------------------------------------------------------------------------------- 1 | import {RSocketClient, JsonSerializers} from 'rsocket-core'; 2 | import RSocketWebSocketClient from 'rsocket-websocket-client'; 3 | const { Flowable } = require('rsocket-flowable'); 4 | 5 | function addMessage(message) { 6 | var ul = document.getElementById("messages"); 7 | var li = document.createElement("li"); 8 | li.appendChild(document.createTextNode(message)); 9 | if (ul.childNodes.length == 0) { 10 | ul.appendChild(li); 11 | } else { 12 | if (ul.childNodes.length > 19) { 13 | ul.removeChild(ul.lastChild); 14 | } 15 | ul.insertBefore(li, ul.firstChild); 16 | } 17 | } 18 | 19 | function main() { 20 | const url = location.origin.replace(/^http/, 'ws') + "/rsocket"; 21 | 22 | // Create an instance of a client 23 | const client = new RSocketClient({ 24 | setup: { 25 | keepAlive: 60000, 26 | lifetime: 180000, 27 | dataMimeType: 'application/json', 28 | metadataMimeType: 'message/x.rsocket.routing.v0', 29 | }, 30 | transport: new RSocketWebSocketClient({url: url}), 31 | }); 32 | 33 | const stream = Flowable.just({ 34 | data: '{"join": {"name": "Web"}}', 35 | metadata: String.fromCharCode('chat/web'.length) + 'chat/web', 36 | }); 37 | 38 | // Open the connection 39 | client.connect().subscribe({ 40 | onComplete: socket => { 41 | socket.requestChannel(stream).subscribe({ 42 | onComplete: () => console.log('complete'), 43 | onError: e => console.error(e), 44 | onNext: payload => { 45 | addMessage(payload.data); 46 | }, 47 | onSubscribe: subscription => { 48 | subscription.request(10000000); 49 | }, 50 | }); 51 | }, 52 | onError: e => console.error(e), 53 | onSubscribe: cancel => {/* call cancel() to abort */} 54 | }); 55 | } 56 | 57 | document.addEventListener('DOMContentLoaded', main); -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/RsocketDemoApplication.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo 2 | 3 | import io.rsocket.core.Resume 4 | import io.rsocket.demo.config.RSocketDemoConfig 5 | import org.apache.commons.logging.LogFactory 6 | import org.springframework.beans.factory.annotation.Value 7 | import org.springframework.boot.autoconfigure.SpringBootApplication 8 | import org.springframework.boot.context.properties.ConfigurationPropertiesScan 9 | import org.springframework.boot.rsocket.server.RSocketServerCustomizer 10 | import org.springframework.boot.runApplication 11 | import org.springframework.context.annotation.Bean 12 | import org.springframework.context.event.ContextRefreshedEvent 13 | import org.springframework.context.event.EventListener 14 | import java.time.Duration 15 | 16 | @SpringBootApplication 17 | @ConfigurationPropertiesScan("io.rsocket.demo.config") 18 | class RsocketDemoApplication(val properties: RSocketDemoConfig) { 19 | private val logger = LogFactory.getLog(RsocketDemoApplication::class.java) 20 | 21 | @Value("\${spring.profiles.active:}") 22 | private val activeProfile: String? = null 23 | 24 | @EventListener 25 | fun onApplicationEvent(event: ContextRefreshedEvent) { 26 | logger.info("Started: $activeProfile ${properties.tokens.twitter?.length}") 27 | } 28 | 29 | @Bean 30 | fun rSocketResume(): RSocketServerCustomizer { 31 | return RSocketServerCustomizer { 32 | logger.info("Configuring resume for 15 minutes") 33 | it.resume(Resume() 34 | .sessionDuration(Duration.ofMinutes(15)) 35 | ) 36 | } 37 | } 38 | } 39 | 40 | fun main(args: Array) { 41 | runApplication(*args) 42 | } 43 | -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/api/Event.kt: -------------------------------------------------------------------------------- 1 | // Code generated by Wire protocol buffer compiler, do not edit. 2 | // Source: io.rsocket.demo.api.Event in api.proto 3 | package io.rsocket.demo.api 4 | 5 | import com.squareup.wire.FieldEncoding 6 | import com.squareup.wire.Message 7 | import com.squareup.wire.ProtoAdapter 8 | import com.squareup.wire.ProtoReader 9 | import com.squareup.wire.ProtoWriter 10 | import com.squareup.wire.Syntax.PROTO_3 11 | import com.squareup.wire.WireField 12 | import com.squareup.wire.`internal`.sanitize 13 | import kotlin.Any 14 | import kotlin.Boolean 15 | import kotlin.Int 16 | import kotlin.Long 17 | import kotlin.String 18 | import kotlin.Unit 19 | import kotlin.jvm.JvmField 20 | import okio.ByteString 21 | 22 | public class Event( 23 | @field:WireField( 24 | tag = 1, 25 | adapter = "com.squareup.wire.ProtoAdapter#STRING", 26 | label = WireField.Label.OMIT_IDENTITY 27 | ) 28 | @JvmField 29 | public val type: String = "", 30 | @field:WireField( 31 | tag = 2, 32 | adapter = "io.rsocket.demo.api.JoinEvent#ADAPTER", 33 | label = WireField.Label.OMIT_IDENTITY 34 | ) 35 | @JvmField 36 | public val join: JoinEvent? = null, 37 | unknownFields: ByteString = ByteString.EMPTY 38 | ) : Message(ADAPTER, unknownFields) { 39 | public override fun newBuilder(): Builder { 40 | val builder = Builder() 41 | builder.type = type 42 | builder.join = join 43 | builder.addUnknownFields(unknownFields) 44 | return builder 45 | } 46 | 47 | public override fun equals(other: Any?): Boolean { 48 | if (other === this) return true 49 | if (other !is Event) return false 50 | if (unknownFields != other.unknownFields) return false 51 | if (type != other.type) return false 52 | if (join != other.join) return false 53 | return true 54 | } 55 | 56 | public override fun hashCode(): Int { 57 | var result = super.hashCode 58 | if (result == 0) { 59 | result = unknownFields.hashCode() 60 | result = result * 37 + (type?.hashCode() ?: 0) 61 | result = result * 37 + (join?.hashCode() ?: 0) 62 | super.hashCode = result 63 | } 64 | return result 65 | } 66 | 67 | public override fun toString(): String { 68 | val result = mutableListOf() 69 | result += """type=${sanitize(type)}""" 70 | if (join != null) result += """join=$join""" 71 | return result.joinToString(prefix = "Event{", separator = ", ", postfix = "}") 72 | } 73 | 74 | public fun copy( 75 | type: String = this.type, 76 | join: JoinEvent? = this.join, 77 | unknownFields: ByteString = this.unknownFields 78 | ): Event = Event(type, join, unknownFields) 79 | 80 | public class Builder : Message.Builder() { 81 | @JvmField 82 | public var type: String = "" 83 | 84 | @JvmField 85 | public var join: JoinEvent? = null 86 | 87 | public fun type(type: String): Builder { 88 | this.type = type 89 | return this 90 | } 91 | 92 | public fun join(join: JoinEvent?): Builder { 93 | this.join = join 94 | return this 95 | } 96 | 97 | public override fun build(): Event = Event( 98 | type = type, 99 | join = join, 100 | unknownFields = buildUnknownFields() 101 | ) 102 | } 103 | 104 | public companion object { 105 | @JvmField 106 | public val ADAPTER: ProtoAdapter = object : ProtoAdapter( 107 | FieldEncoding.LENGTH_DELIMITED, 108 | Event::class, 109 | "type.googleapis.com/io.rsocket.demo.api.Event", 110 | PROTO_3, 111 | null 112 | ) { 113 | public override fun encodedSize(`value`: Event): Int { 114 | var size = value.unknownFields.size 115 | if (value.type != "") size += ProtoAdapter.STRING.encodedSizeWithTag(1, value.type) 116 | if (value.join != null) size += JoinEvent.ADAPTER.encodedSizeWithTag(2, value.join) 117 | return size 118 | } 119 | 120 | public override fun encode(writer: ProtoWriter, `value`: Event): Unit { 121 | if (value.type != "") ProtoAdapter.STRING.encodeWithTag(writer, 1, value.type) 122 | if (value.join != null) JoinEvent.ADAPTER.encodeWithTag(writer, 2, value.join) 123 | writer.writeBytes(value.unknownFields) 124 | } 125 | 126 | public override fun decode(reader: ProtoReader): Event { 127 | var type: String = "" 128 | var join: JoinEvent? = null 129 | val unknownFields = reader.forEachTag { tag -> 130 | when (tag) { 131 | 1 -> type = ProtoAdapter.STRING.decode(reader) 132 | 2 -> join = JoinEvent.ADAPTER.decode(reader) 133 | else -> reader.readUnknownField(tag) 134 | } 135 | } 136 | return Event( 137 | type = type, 138 | join = join, 139 | unknownFields = unknownFields 140 | ) 141 | } 142 | 143 | public override fun redact(`value`: Event): Event = value.copy( 144 | join = value.join?.let(JoinEvent.ADAPTER::redact), 145 | unknownFields = ByteString.EMPTY 146 | ) 147 | } 148 | 149 | private const val serialVersionUID: Long = 0L 150 | } 151 | } 152 | -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/api/JoinEvent.kt: -------------------------------------------------------------------------------- 1 | // Code generated by Wire protocol buffer compiler, do not edit. 2 | // Source: io.rsocket.demo.api.JoinEvent in api.proto 3 | package io.rsocket.demo.api 4 | 5 | import com.squareup.wire.FieldEncoding 6 | import com.squareup.wire.Message 7 | import com.squareup.wire.ProtoAdapter 8 | import com.squareup.wire.ProtoReader 9 | import com.squareup.wire.ProtoWriter 10 | import com.squareup.wire.Syntax.PROTO_3 11 | import com.squareup.wire.WireField 12 | import com.squareup.wire.`internal`.sanitize 13 | import kotlin.Any 14 | import kotlin.Boolean 15 | import kotlin.Int 16 | import kotlin.Long 17 | import kotlin.String 18 | import kotlin.Unit 19 | import kotlin.jvm.JvmField 20 | import okio.ByteString 21 | 22 | public class JoinEvent( 23 | @field:WireField( 24 | tag = 1, 25 | adapter = "com.squareup.wire.ProtoAdapter#STRING", 26 | label = WireField.Label.OMIT_IDENTITY 27 | ) 28 | @JvmField 29 | public val name: String = "", 30 | unknownFields: ByteString = ByteString.EMPTY 31 | ) : Message(ADAPTER, unknownFields) { 32 | public override fun newBuilder(): Builder { 33 | val builder = Builder() 34 | builder.name = name 35 | builder.addUnknownFields(unknownFields) 36 | return builder 37 | } 38 | 39 | public override fun equals(other: Any?): Boolean { 40 | if (other === this) return true 41 | if (other !is JoinEvent) return false 42 | if (unknownFields != other.unknownFields) return false 43 | if (name != other.name) return false 44 | return true 45 | } 46 | 47 | public override fun hashCode(): Int { 48 | var result = super.hashCode 49 | if (result == 0) { 50 | result = unknownFields.hashCode() 51 | result = result * 37 + (name?.hashCode() ?: 0) 52 | super.hashCode = result 53 | } 54 | return result 55 | } 56 | 57 | public override fun toString(): String { 58 | val result = mutableListOf() 59 | result += """name=${sanitize(name)}""" 60 | return result.joinToString(prefix = "JoinEvent{", separator = ", ", postfix = "}") 61 | } 62 | 63 | public fun copy(name: String = this.name, unknownFields: ByteString = this.unknownFields): 64 | JoinEvent = JoinEvent(name, unknownFields) 65 | 66 | public class Builder : Message.Builder() { 67 | @JvmField 68 | public var name: String = "" 69 | 70 | public fun name(name: String): Builder { 71 | this.name = name 72 | return this 73 | } 74 | 75 | public override fun build(): JoinEvent = JoinEvent( 76 | name = name, 77 | unknownFields = buildUnknownFields() 78 | ) 79 | } 80 | 81 | public companion object { 82 | @JvmField 83 | public val ADAPTER: ProtoAdapter = object : ProtoAdapter( 84 | FieldEncoding.LENGTH_DELIMITED, 85 | JoinEvent::class, 86 | "type.googleapis.com/io.rsocket.demo.api.JoinEvent", 87 | PROTO_3, 88 | null 89 | ) { 90 | public override fun encodedSize(`value`: JoinEvent): Int { 91 | var size = value.unknownFields.size 92 | if (value.name != "") size += ProtoAdapter.STRING.encodedSizeWithTag(1, value.name) 93 | return size 94 | } 95 | 96 | public override fun encode(writer: ProtoWriter, `value`: JoinEvent): Unit { 97 | if (value.name != "") ProtoAdapter.STRING.encodeWithTag(writer, 1, value.name) 98 | writer.writeBytes(value.unknownFields) 99 | } 100 | 101 | public override fun decode(reader: ProtoReader): JoinEvent { 102 | var name: String = "" 103 | val unknownFields = reader.forEachTag { tag -> 104 | when (tag) { 105 | 1 -> name = ProtoAdapter.STRING.decode(reader) 106 | else -> reader.readUnknownField(tag) 107 | } 108 | } 109 | return JoinEvent( 110 | name = name, 111 | unknownFields = unknownFields 112 | ) 113 | } 114 | 115 | public override fun redact(`value`: JoinEvent): JoinEvent = value.copy( 116 | unknownFields = ByteString.EMPTY 117 | ) 118 | } 119 | 120 | private const val serialVersionUID: Long = 0L 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/api/moshi.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.api 2 | 3 | import com.squareup.moshi.Moshi 4 | import com.squareup.moshi.adapters.Rfc3339DateJsonAdapter 5 | import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory 6 | import com.squareup.wire.WireJsonAdapterFactory 7 | import kotlinx.coroutines.flow.Flow 8 | import kotlinx.coroutines.flow.map 9 | import java.util.Date 10 | 11 | val moshi = Moshi.Builder() 12 | .add(WireJsonAdapterFactory()) 13 | .add(KotlinJsonAdapterFactory()) 14 | .add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe()) 15 | .build()!! 16 | 17 | inline fun Flow.encode(): Flow { 18 | val adapter = moshi.adapter(T::class.java) 19 | return this.map { adapter.toJson(it) as String } 20 | } -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/chat/ChatController.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.chat 2 | 3 | import io.rsocket.demo.api.Event 4 | import io.rsocket.demo.api.encode 5 | import io.rsocket.demo.config.RSocketDemoConfig 6 | import kotlinx.coroutines.flow.Flow 7 | import kotlinx.coroutines.flow.first 8 | import kotlinx.coroutines.flow.map 9 | import kotlinx.coroutines.flow.onCompletion 10 | import kotlinx.coroutines.flow.onStart 11 | import kotlinx.coroutines.reactive.asFlow 12 | import org.springframework.beans.factory.annotation.Autowired 13 | import org.springframework.messaging.handler.annotation.DestinationVariable 14 | import org.springframework.messaging.handler.annotation.MessageMapping 15 | import org.springframework.stereotype.Controller 16 | import reactor.core.publisher.Flux.interval 17 | import java.time.Duration.ofMillis 18 | 19 | @Controller 20 | class ChatController @Autowired constructor(val properties: RSocketDemoConfig) { 21 | val people = mutableListOf() 22 | 23 | @MessageMapping(value = ["chat/{roomName}"]) 24 | suspend fun room( 25 | @DestinationVariable roomName: String, 26 | events: Flow 27 | ): Flow { 28 | val name = events.first().join?.name ?: "anon" 29 | 30 | return interval(ofMillis(500L)).asFlow() 31 | .onStart { people.add(name) } 32 | .onCompletion { people.remove(name) } 33 | .map { 34 | Event(type = "$roomName $people $it") 35 | }.encode() 36 | } 37 | } -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/config/RSocketDemoConfig.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.config 2 | 3 | import org.springframework.boot.context.properties.ConfigurationProperties 4 | import org.springframework.boot.context.properties.ConstructorBinding 5 | 6 | @ConstructorBinding 7 | @ConfigurationProperties("democonfig") 8 | data class RSocketDemoConfig(var siteurl: String, val tokens: Tokens) { 9 | data class Tokens(var twitter: String? = null) 10 | } -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/setup/ConnectController.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.setup 2 | 3 | import org.slf4j.Logger 4 | import org.slf4j.LoggerFactory 5 | import org.springframework.messaging.rsocket.RSocketRequester 6 | import org.springframework.messaging.rsocket.annotation.ConnectMapping 7 | import org.springframework.stereotype.Controller 8 | 9 | @Controller 10 | class ConnectController { 11 | val logger: Logger = LoggerFactory.getLogger(ConnectController::class.java) 12 | 13 | @ConnectMapping 14 | fun handle(requester: RSocketRequester) { 15 | logger.debug("connected $requester") 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/timer/TimerController.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.timer 2 | 3 | import io.rsocket.demo.config.RSocketDemoConfig 4 | import kotlinx.coroutines.flow.Flow 5 | import kotlinx.coroutines.reactive.asFlow 6 | import org.springframework.beans.factory.annotation.Autowired 7 | import org.springframework.messaging.handler.annotation.MessageMapping 8 | import org.springframework.stereotype.Controller 9 | import reactor.core.publisher.Flux 10 | import java.time.Duration 11 | 12 | @Controller 13 | class TimerController @Autowired constructor(val properties: RSocketDemoConfig) { 14 | @MessageMapping(value = ["", "timer"]) 15 | suspend fun timer(): Flow { 16 | return Flux.interval(Duration.ofMillis(500L)).asFlow() 17 | } 18 | } -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/twitter/TwitterController.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.twitter 2 | 3 | import com.baulsupp.okurl.authenticator.AuthenticatingInterceptor 4 | import com.baulsupp.okurl.credentials.TokenValue 5 | import com.baulsupp.okurl.kotlin.execute 6 | import com.baulsupp.okurl.kotlin.request 7 | import com.baulsupp.okurl.moshi.Rfc3339InstantJsonAdapter 8 | import com.baulsupp.okurl.services.mapbox.model.MapboxLatLongAdapter 9 | import com.baulsupp.okurl.services.twitter.TwitterAuthInterceptor 10 | import com.squareup.moshi.Moshi 11 | import com.squareup.moshi.adapters.Rfc3339DateJsonAdapter 12 | import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory 13 | import io.rsocket.demo.config.RSocketDemoConfig 14 | import io.rsocket.demo.twitter.model.Tweet 15 | import kotlinx.coroutines.ExperimentalCoroutinesApi 16 | import kotlinx.coroutines.flow.Flow 17 | import kotlinx.coroutines.flow.asFlow 18 | import kotlinx.coroutines.flow.flow 19 | import kotlinx.coroutines.flow.mapNotNull 20 | import kotlinx.coroutines.flow.onCompletion 21 | import okhttp3.OkHttpClient 22 | import org.springframework.messaging.handler.annotation.MessageMapping 23 | import org.springframework.stereotype.Controller 24 | import java.nio.charset.StandardCharsets 25 | import java.util.Date 26 | 27 | @ExperimentalCoroutinesApi 28 | @Controller("twitter") 29 | class TwitterController(val properties: RSocketDemoConfig) { 30 | val twitterAuth = run { 31 | val twitterToken = properties.tokens.twitter 32 | 33 | if (twitterToken.isNullOrEmpty()) { 34 | null 35 | } else { 36 | TwitterAuthInterceptor().serviceDefinition.parseCredentialsString(twitterToken) 37 | } 38 | } 39 | 40 | @MessageMapping("searchTweets") 41 | suspend fun requestResponse(query: String?): Flow { 42 | val twitterAuth = twitterAuth 43 | ?: return flow { 44 | throw IllegalStateException("No twitter auth token configured") 45 | } 46 | 47 | val s = client.execute( 48 | request( 49 | url = "https://stream.twitter.com/1.1/statuses/filter.json?track=$query", 50 | tokenSet = TokenValue(twitterAuth) 51 | ) 52 | ) 53 | 54 | val r = s.body!!.source() 55 | .inputStream() 56 | .bufferedReader(StandardCharsets.UTF_8) 57 | 58 | return r.lineSequence() 59 | .asFlow() 60 | .onCompletion { 61 | s.close() 62 | } 63 | .mapNotNull { 64 | @Suppress("BlockingMethodInNonBlockingContext") 65 | parseTweet(it) 66 | } 67 | } 68 | 69 | companion object { 70 | private val moshi = Moshi.Builder() 71 | .add(MapboxLatLongAdapter()) 72 | .add(KotlinJsonAdapterFactory()) 73 | .add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe()) 74 | .add(Rfc3339InstantJsonAdapter()) 75 | .build()!! 76 | 77 | fun parseTweet(it: String): Tweet = tweetAdapter.fromJson(it)!! 78 | 79 | private val tweetAdapter = moshi.adapter(Tweet::class.java)!! 80 | 81 | val client = OkHttpClient.Builder() 82 | .addInterceptor( 83 | AuthenticatingInterceptor(com.baulsupp.okurl.credentials.CredentialsStore.NONE) 84 | ) 85 | // .eventListenerFactory(LoggingEventListener.Factory()) 86 | .build() 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/twitter/model/Entities.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.twitter.model 2 | 3 | data class Entities( 4 | val media: List? = null, 5 | val hashtags: List? = null, 6 | val urls: List? = null, 7 | val userMention: List? = null, 8 | val symbols: List? = null 9 | ) -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/twitter/model/ExtendedEntities.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.twitter.model 2 | 3 | data class ExtendedEntities( 4 | val media: List? = null 5 | ) -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/twitter/model/HashTag.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.twitter.model 2 | 3 | data class HashTag( 4 | val indices: List? = null, 5 | val text: String? = null 6 | ) -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/twitter/model/Media.kt: -------------------------------------------------------------------------------- 1 | 2 | package io.rsocket.demo.twitter.model 3 | 4 | data class Media( 5 | val display_url: String? = null, 6 | val expanded_url: String? = null, 7 | val id: Long? = null, 8 | val id_str: String? = null, 9 | val indices: List? = null, 10 | val media_url: String? = null, 11 | val media_url_https: String? = null, 12 | val sizes: Sizes? = null, 13 | val type: String? = null, 14 | val url: String? = null, 15 | val video_info: VideoInfo? = null 16 | ) { 17 | data class Sizes( 18 | val large: Size? = null, 19 | val medium: Size? = null, 20 | val small: Size? = null, 21 | val thumb: Size? = null 22 | ) { 23 | data class Size( 24 | val h: Int? = null, 25 | val resize: String? = null, 26 | val w: Int? = null 27 | ) 28 | } 29 | } -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/twitter/model/Place.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.twitter.model 2 | 3 | data class Place( 4 | val bounding_box: BoundingBox? = null, 5 | val country: String? = null, 6 | val country_code: String? = null, 7 | val full_name: String? = null, 8 | val id: String? = null, 9 | val name: String? = null, 10 | val place_type: String? = null, 11 | val url: String? = null 12 | ) { 13 | data class BoundingBox( 14 | val coordinates: List>>, 15 | val type: String 16 | ) 17 | } -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/twitter/model/Symbol.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.twitter.model 2 | 3 | data class Symbol( 4 | val indices: List? = null, 5 | val text: String? = null 6 | ) -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/twitter/model/Tweet.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.twitter.model 2 | 3 | data class Tweet( 4 | val created_at: String? = null, 5 | val favorite_count: Int? = null, 6 | val id_str: String? = null, 7 | val in_reply_to_screen_name: String? = null, 8 | val in_reply_to_status_id_str: String? = null, 9 | val in_reply_to_user_id_str: String? = null, 10 | val is_quote_status: Boolean? = null, 11 | val lang: String? = null, 12 | val quote_count: Int? = null, 13 | val reply_count: Int? = null, 14 | val retweet_count: Int? = null, 15 | val retweeted: Boolean? = null, 16 | val source: String? = null, 17 | val text: String? = null, 18 | val timestamp_ms: String? = null, 19 | val truncated: Boolean? = null, 20 | val user: User? = null, 21 | val place: Place? = null, 22 | val entities: Entities? = null, 23 | val extended_entities: Entities? = null 24 | ) -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/twitter/model/Url.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.twitter.model 2 | 3 | data class Url( 4 | val display_url: String? = null, 5 | val expanded_url: String? = null, 6 | val indices: List? = null, 7 | val unwound: Unwound? = null, 8 | val url: String? = null 9 | ) { 10 | data class Unwound( 11 | val description: String? = null, 12 | val status: Int? = null, 13 | val title: String? = null, 14 | val url: String? = null 15 | ) 16 | } -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/twitter/model/User.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.twitter.model 2 | 3 | data class User( 4 | val description: String? = null, 5 | val followers_count: Int? = null, 6 | val id_str: String? = null, 7 | val name: String? = null, 8 | val profile_background_image_url_https: String? = null, 9 | val profile_image_url_https: String? = null, 10 | val `protected`: Boolean? = null, 11 | val screen_name: String? = null, 12 | val url: String? = null, 13 | val verified: Boolean? = null 14 | ) -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/twitter/model/UserMention.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.twitter.model 2 | 3 | data class UserMention( 4 | val id: Int? = null, 5 | val id_str: String? = null, 6 | val indices: List? = null, 7 | val name: String? = null, 8 | val screen_name: String? = null 9 | ) -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/twitter/model/VideoInfo.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.twitter.model 2 | 3 | data class VideoInfo( 4 | val aspect_ratio: List? = null, 5 | val duration_millis: Int? = null, 6 | val variants: List? = null 7 | ) { 8 | data class Variant( 9 | val bitrate: Int? = null, 10 | val content_type: String? = null, 11 | val url: String? = null 12 | ) 13 | } -------------------------------------------------------------------------------- /src/main/kotlin/io/rsocket/demo/web/MainController.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo.web 2 | 3 | import org.springframework.beans.factory.annotation.Value 4 | import org.springframework.stereotype.Controller 5 | import org.springframework.ui.Model 6 | import org.springframework.web.bind.annotation.GetMapping 7 | 8 | @Controller 9 | class MainController { 10 | @GetMapping("/") 11 | fun index( 12 | model: Model, 13 | @Value("\${democonfig.siteurl}") siteUrl: String, 14 | @Value("\${democonfig.rsocketurl}") rsocketUrl: String 15 | ): String { 16 | model.addAttribute("siteUrl", siteUrl) 17 | model.addAttribute("rsocketUrl", rsocketUrl) 18 | return "index" 19 | } 20 | } -------------------------------------------------------------------------------- /src/main/proto/api.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | import "google/protobuf/wrappers.proto"; 3 | 4 | package io.rsocket.demo.api; 5 | 6 | option java_package = "io.rsocket.demo.api"; 7 | 8 | message Event { 9 | string type = 1; 10 | JoinEvent join = 2; 11 | } 12 | 13 | message JoinEvent { 14 | string name = 1; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/resources/application-dev.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rsocket/rsocket-demo/f2444aee30f637cc6a02db40c73b5056dcedae25/src/main/resources/application-dev.properties -------------------------------------------------------------------------------- /src/main/resources/application-gcp.properties: -------------------------------------------------------------------------------- 1 | democonfig.siteurl=https://demo.rsocket.io/ 2 | democonfig.rsocketurl=wss://demo.rsocket.io/rsocket 3 | democonfig.tokens.twitter=${sm://twitterauthtoken} -------------------------------------------------------------------------------- /src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.rsocket.server.transport=websocket 2 | spring.rsocket.server.mapping-path=/rsocket 3 | spring.main.banner-mode=off 4 | 5 | democonfig.siteurl=http://localhost:8080/ 6 | democonfig.rsocketurl=ws://localhost:8080/rsocket 7 | democonfig.tokens.twitter= 8 | -------------------------------------------------------------------------------- /src/main/resources/bootstrap-dev.properties: -------------------------------------------------------------------------------- 1 | #spring.cloud.gcp.secretmanager.enabled=false 2 | #spring.cloud.gcp.secretmanager.credentials.location=file:localsecrets.json 3 | -------------------------------------------------------------------------------- /src/main/resources/bootstrap-gcp.properties: -------------------------------------------------------------------------------- 1 | spring.cloud.gcp.secretmanager.enabled=true 2 | -------------------------------------------------------------------------------- /src/main/resources/bootstrap.properties: -------------------------------------------------------------------------------- 1 | spring.cloud.gcp.secretmanager.enabled=false 2 | -------------------------------------------------------------------------------- /src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/main/resources/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | 12 | 14 | 15 | 16 | 17 |
18 |

RSocket Demo Web App

19 |

Documentation to go here 20 |

21 | 22 |
23 |
24 |     $ brew install yschimke/tap/rsocket-cli
25 |     $ rsocket-cli 
26 |     $ rsocket-cli  --route=searchTweets -i spring
27 |     $ rsocket-cli  --route chat/hello --channel -i '{"join": {"name": "Yuri"}}'
28 |     
29 | 30 |
31 | 32 |
    33 | 34 |
35 | 36 | 37 |
38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/test/kotlin/io/rsocket/demo/RsocketDemoApplicationTests.kt: -------------------------------------------------------------------------------- 1 | package io.rsocket.demo 2 | 3 | import org.junit.jupiter.api.Test 4 | import org.springframework.boot.test.context.SpringBootTest 5 | 6 | @SpringBootTest 7 | class RsocketDemoApplicationTests { 8 | 9 | @Test 10 | fun contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const webpack = require('webpack'); 3 | 4 | module.exports = { 5 | entry: path.resolve(__dirname, './src/main/js/app.js'), 6 | output: { 7 | path: path.resolve(__dirname, './src/main/resources/static/js/'), 8 | filename: 'app.js', 9 | }, 10 | mode: 'development', 11 | }; 12 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@discoveryjs/json-ext@^0.5.0": 6 | "integrity" "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==" 7 | "resolved" "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz" 8 | "version" "0.5.2" 9 | 10 | "@types/eslint-scope@^3.7.0": 11 | "integrity" "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==" 12 | "resolved" "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz" 13 | "version" "3.7.0" 14 | dependencies: 15 | "@types/eslint" "*" 16 | "@types/estree" "*" 17 | 18 | "@types/eslint@*": 19 | "integrity" "sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw==" 20 | "resolved" "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.6.tgz" 21 | "version" "7.2.6" 22 | dependencies: 23 | "@types/estree" "*" 24 | "@types/json-schema" "*" 25 | 26 | "@types/estree@*", "@types/estree@^0.0.46": 27 | "integrity" "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==" 28 | "resolved" "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz" 29 | "version" "0.0.46" 30 | 31 | "@types/json-schema@*", "@types/json-schema@^7.0.6": 32 | "integrity" "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==" 33 | "resolved" "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz" 34 | "version" "7.0.7" 35 | 36 | "@types/node@*": 37 | "integrity" "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==" 38 | "resolved" "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz" 39 | "version" "14.14.31" 40 | 41 | "@webassemblyjs/ast@1.11.0": 42 | "integrity" "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==" 43 | "resolved" "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz" 44 | "version" "1.11.0" 45 | dependencies: 46 | "@webassemblyjs/helper-numbers" "1.11.0" 47 | "@webassemblyjs/helper-wasm-bytecode" "1.11.0" 48 | 49 | "@webassemblyjs/floating-point-hex-parser@1.11.0": 50 | "integrity" "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==" 51 | "resolved" "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz" 52 | "version" "1.11.0" 53 | 54 | "@webassemblyjs/helper-api-error@1.11.0": 55 | "integrity" "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==" 56 | "resolved" "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz" 57 | "version" "1.11.0" 58 | 59 | "@webassemblyjs/helper-buffer@1.11.0": 60 | "integrity" "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==" 61 | "resolved" "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz" 62 | "version" "1.11.0" 63 | 64 | "@webassemblyjs/helper-numbers@1.11.0": 65 | "integrity" "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==" 66 | "resolved" "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz" 67 | "version" "1.11.0" 68 | dependencies: 69 | "@webassemblyjs/floating-point-hex-parser" "1.11.0" 70 | "@webassemblyjs/helper-api-error" "1.11.0" 71 | "@xtuc/long" "4.2.2" 72 | 73 | "@webassemblyjs/helper-wasm-bytecode@1.11.0": 74 | "integrity" "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==" 75 | "resolved" "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz" 76 | "version" "1.11.0" 77 | 78 | "@webassemblyjs/helper-wasm-section@1.11.0": 79 | "integrity" "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==" 80 | "resolved" "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz" 81 | "version" "1.11.0" 82 | dependencies: 83 | "@webassemblyjs/ast" "1.11.0" 84 | "@webassemblyjs/helper-buffer" "1.11.0" 85 | "@webassemblyjs/helper-wasm-bytecode" "1.11.0" 86 | "@webassemblyjs/wasm-gen" "1.11.0" 87 | 88 | "@webassemblyjs/ieee754@1.11.0": 89 | "integrity" "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==" 90 | "resolved" "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz" 91 | "version" "1.11.0" 92 | dependencies: 93 | "@xtuc/ieee754" "^1.2.0" 94 | 95 | "@webassemblyjs/leb128@1.11.0": 96 | "integrity" "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==" 97 | "resolved" "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz" 98 | "version" "1.11.0" 99 | dependencies: 100 | "@xtuc/long" "4.2.2" 101 | 102 | "@webassemblyjs/utf8@1.11.0": 103 | "integrity" "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==" 104 | "resolved" "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz" 105 | "version" "1.11.0" 106 | 107 | "@webassemblyjs/wasm-edit@1.11.0": 108 | "integrity" "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==" 109 | "resolved" "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz" 110 | "version" "1.11.0" 111 | dependencies: 112 | "@webassemblyjs/ast" "1.11.0" 113 | "@webassemblyjs/helper-buffer" "1.11.0" 114 | "@webassemblyjs/helper-wasm-bytecode" "1.11.0" 115 | "@webassemblyjs/helper-wasm-section" "1.11.0" 116 | "@webassemblyjs/wasm-gen" "1.11.0" 117 | "@webassemblyjs/wasm-opt" "1.11.0" 118 | "@webassemblyjs/wasm-parser" "1.11.0" 119 | "@webassemblyjs/wast-printer" "1.11.0" 120 | 121 | "@webassemblyjs/wasm-gen@1.11.0": 122 | "integrity" "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==" 123 | "resolved" "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz" 124 | "version" "1.11.0" 125 | dependencies: 126 | "@webassemblyjs/ast" "1.11.0" 127 | "@webassemblyjs/helper-wasm-bytecode" "1.11.0" 128 | "@webassemblyjs/ieee754" "1.11.0" 129 | "@webassemblyjs/leb128" "1.11.0" 130 | "@webassemblyjs/utf8" "1.11.0" 131 | 132 | "@webassemblyjs/wasm-opt@1.11.0": 133 | "integrity" "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==" 134 | "resolved" "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz" 135 | "version" "1.11.0" 136 | dependencies: 137 | "@webassemblyjs/ast" "1.11.0" 138 | "@webassemblyjs/helper-buffer" "1.11.0" 139 | "@webassemblyjs/wasm-gen" "1.11.0" 140 | "@webassemblyjs/wasm-parser" "1.11.0" 141 | 142 | "@webassemblyjs/wasm-parser@1.11.0": 143 | "integrity" "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==" 144 | "resolved" "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz" 145 | "version" "1.11.0" 146 | dependencies: 147 | "@webassemblyjs/ast" "1.11.0" 148 | "@webassemblyjs/helper-api-error" "1.11.0" 149 | "@webassemblyjs/helper-wasm-bytecode" "1.11.0" 150 | "@webassemblyjs/ieee754" "1.11.0" 151 | "@webassemblyjs/leb128" "1.11.0" 152 | "@webassemblyjs/utf8" "1.11.0" 153 | 154 | "@webassemblyjs/wast-printer@1.11.0": 155 | "integrity" "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==" 156 | "resolved" "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz" 157 | "version" "1.11.0" 158 | dependencies: 159 | "@webassemblyjs/ast" "1.11.0" 160 | "@xtuc/long" "4.2.2" 161 | 162 | "@webpack-cli/configtest@^1.0.1": 163 | "integrity" "sha512-B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ==" 164 | "resolved" "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.1.tgz" 165 | "version" "1.0.1" 166 | 167 | "@webpack-cli/info@^1.2.2": 168 | "integrity" "sha512-5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ==" 169 | "resolved" "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.2.tgz" 170 | "version" "1.2.2" 171 | dependencies: 172 | "envinfo" "^7.7.3" 173 | 174 | "@webpack-cli/serve@^1.3.0": 175 | "integrity" "sha512-k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw==" 176 | "resolved" "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.3.0.tgz" 177 | "version" "1.3.0" 178 | 179 | "@xtuc/ieee754@^1.2.0": 180 | "integrity" "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" 181 | "resolved" "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz" 182 | "version" "1.2.0" 183 | 184 | "@xtuc/long@4.2.2": 185 | "integrity" "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" 186 | "resolved" "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz" 187 | "version" "4.2.2" 188 | 189 | "acorn@^8.0.4": 190 | "integrity" "sha512-v+DieK/HJkJOpFBETDJioequtc3PfxsWMaxIdIwujtF7FEV/MAyDQLlm6/zPvr7Mix07mLh6ccVwIsloceodlg==" 191 | "resolved" "https://registry.yarnpkg.com/acorn/-/acorn-8.0.5.tgz" 192 | "version" "8.0.5" 193 | 194 | "ajv-keywords@^3.5.2": 195 | "integrity" "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" 196 | "resolved" "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz" 197 | "version" "3.5.2" 198 | 199 | "ajv@^6.12.5", "ajv@^6.9.1": 200 | "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" 201 | "resolved" "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz" 202 | "version" "6.12.6" 203 | dependencies: 204 | "fast-deep-equal" "^3.1.1" 205 | "fast-json-stable-stringify" "^2.0.0" 206 | "json-schema-traverse" "^0.4.1" 207 | "uri-js" "^4.2.2" 208 | 209 | "ansi-colors@^4.1.1": 210 | "integrity" "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" 211 | "resolved" "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz" 212 | "version" "4.1.1" 213 | 214 | "asap@~2.0.3": 215 | "integrity" "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" 216 | "resolved" "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz" 217 | "version" "2.0.6" 218 | 219 | "base64-js@^1.3.1": 220 | "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 221 | "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" 222 | "version" "1.5.1" 223 | 224 | "browserslist@^4.14.5": 225 | "integrity" "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==" 226 | "resolved" "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz" 227 | "version" "4.16.3" 228 | dependencies: 229 | "caniuse-lite" "^1.0.30001181" 230 | "colorette" "^1.2.1" 231 | "electron-to-chromium" "^1.3.649" 232 | "escalade" "^3.1.1" 233 | "node-releases" "^1.1.70" 234 | 235 | "buffer-from@^1.0.0": 236 | "integrity" "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" 237 | "resolved" "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz" 238 | "version" "1.1.1" 239 | 240 | "buffer@^6.0.3": 241 | "integrity" "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==" 242 | "resolved" "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" 243 | "version" "6.0.3" 244 | dependencies: 245 | "base64-js" "^1.3.1" 246 | "ieee754" "^1.2.1" 247 | 248 | "caniuse-lite@^1.0.30001181": 249 | "integrity" "sha512-62KVw474IK8E+bACBYhRS0/L6o/1oeAVkpF2WetjV58S5vkzNh0/Rz3lD8D4YCbOTqi0/aD4X3LtoP7V5xnuAg==" 250 | "resolved" "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001190.tgz" 251 | "version" "1.0.30001190" 252 | 253 | "chrome-trace-event@^1.0.2": 254 | "integrity" "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==" 255 | "resolved" "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz" 256 | "version" "1.0.2" 257 | dependencies: 258 | "tslib" "^1.9.0" 259 | 260 | "clone-deep@^4.0.1": 261 | "integrity" "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==" 262 | "resolved" "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz" 263 | "version" "4.0.1" 264 | dependencies: 265 | "is-plain-object" "^2.0.4" 266 | "kind-of" "^6.0.2" 267 | "shallow-clone" "^3.0.0" 268 | 269 | "colorette@^1.2.1": 270 | "integrity" "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" 271 | "resolved" "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz" 272 | "version" "1.2.1" 273 | 274 | "commander@^2.20.0": 275 | "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" 276 | "resolved" "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz" 277 | "version" "2.20.3" 278 | 279 | "commander@^7.0.0": 280 | "integrity" "sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==" 281 | "resolved" "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz" 282 | "version" "7.1.0" 283 | 284 | "core-js@^3.6.4": 285 | "integrity" "sha512-PyFBJaLq93FlyYdsndE5VaueA9K5cNB7CGzeCj191YYLhkQM0gdZR2SKihM70oF0wdqKSKClv/tEBOpoRmdOVQ==" 286 | "resolved" "https://registry.yarnpkg.com/core-js/-/core-js-3.9.0.tgz" 287 | "version" "3.9.0" 288 | 289 | "cross-fetch@^3.0.4": 290 | "integrity" "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==" 291 | "resolved" "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.6.tgz" 292 | "version" "3.0.6" 293 | dependencies: 294 | "node-fetch" "2.6.1" 295 | 296 | "cross-spawn@^7.0.3": 297 | "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" 298 | "resolved" "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz" 299 | "version" "7.0.3" 300 | dependencies: 301 | "path-key" "^3.1.0" 302 | "shebang-command" "^2.0.0" 303 | "which" "^2.0.1" 304 | 305 | "electron-to-chromium@^1.3.649": 306 | "integrity" "sha512-RTD97QkdrJKaKwRv9h/wGAaoR2lGxNXEcBXS31vjitgTPwTWAbLdS7cEsBK68eEQy7p6YyT8D5BxBEYHu2SuwQ==" 307 | "resolved" "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.671.tgz" 308 | "version" "1.3.671" 309 | 310 | "enhanced-resolve@^5.7.0": 311 | "integrity" "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==" 312 | "resolved" "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz" 313 | "version" "5.7.0" 314 | dependencies: 315 | "graceful-fs" "^4.2.4" 316 | "tapable" "^2.2.0" 317 | 318 | "enquirer@^2.3.6": 319 | "integrity" "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==" 320 | "resolved" "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz" 321 | "version" "2.3.6" 322 | dependencies: 323 | "ansi-colors" "^4.1.1" 324 | 325 | "envinfo@^7.7.3": 326 | "integrity" "sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ==" 327 | "resolved" "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.4.tgz" 328 | "version" "7.7.4" 329 | 330 | "es-module-lexer@^0.3.26": 331 | "integrity" "sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA==" 332 | "resolved" "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.3.26.tgz" 333 | "version" "0.3.26" 334 | 335 | "escalade@^3.1.1": 336 | "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" 337 | "resolved" "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz" 338 | "version" "3.1.1" 339 | 340 | "eslint-scope@^5.1.1": 341 | "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==" 342 | "resolved" "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz" 343 | "version" "5.1.1" 344 | dependencies: 345 | "esrecurse" "^4.3.0" 346 | "estraverse" "^4.1.1" 347 | 348 | "esrecurse@^4.3.0": 349 | "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==" 350 | "resolved" "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz" 351 | "version" "4.3.0" 352 | dependencies: 353 | "estraverse" "^5.2.0" 354 | 355 | "estraverse@^4.1.1": 356 | "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" 357 | "resolved" "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz" 358 | "version" "4.3.0" 359 | 360 | "estraverse@^5.2.0": 361 | "integrity" "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" 362 | "resolved" "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz" 363 | "version" "5.2.0" 364 | 365 | "events@^3.2.0": 366 | "integrity" "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" 367 | "resolved" "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz" 368 | "version" "3.2.0" 369 | 370 | "execa@^5.0.0": 371 | "integrity" "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==" 372 | "resolved" "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz" 373 | "version" "5.0.0" 374 | dependencies: 375 | "cross-spawn" "^7.0.3" 376 | "get-stream" "^6.0.0" 377 | "human-signals" "^2.1.0" 378 | "is-stream" "^2.0.0" 379 | "merge-stream" "^2.0.0" 380 | "npm-run-path" "^4.0.1" 381 | "onetime" "^5.1.2" 382 | "signal-exit" "^3.0.3" 383 | "strip-final-newline" "^2.0.0" 384 | 385 | "fast-deep-equal@^3.1.1": 386 | "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 387 | "resolved" "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" 388 | "version" "3.1.3" 389 | 390 | "fast-json-stable-stringify@^2.0.0": 391 | "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 392 | "resolved" "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" 393 | "version" "2.1.0" 394 | 395 | "fastest-levenshtein@^1.0.12": 396 | "integrity" "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==" 397 | "resolved" "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz" 398 | "version" "1.0.12" 399 | 400 | "fbjs-css-vars@^1.0.0": 401 | "integrity" "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" 402 | "resolved" "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz" 403 | "version" "1.0.2" 404 | 405 | "fbjs@^2.0.0": 406 | "integrity" "sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ==" 407 | "resolved" "https://registry.yarnpkg.com/fbjs/-/fbjs-2.0.0.tgz" 408 | "version" "2.0.0" 409 | dependencies: 410 | "core-js" "^3.6.4" 411 | "cross-fetch" "^3.0.4" 412 | "fbjs-css-vars" "^1.0.0" 413 | "loose-envify" "^1.0.0" 414 | "object-assign" "^4.1.0" 415 | "promise" "^7.1.1" 416 | "setimmediate" "^1.0.5" 417 | "ua-parser-js" "^0.7.18" 418 | 419 | "find-up@^4.0.0": 420 | "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" 421 | "resolved" "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz" 422 | "version" "4.1.0" 423 | dependencies: 424 | "locate-path" "^5.0.0" 425 | "path-exists" "^4.0.0" 426 | 427 | "function-bind@^1.1.1": 428 | "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 429 | "resolved" "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz" 430 | "version" "1.1.1" 431 | 432 | "get-stream@^6.0.0": 433 | "integrity" "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==" 434 | "resolved" "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz" 435 | "version" "6.0.0" 436 | 437 | "glob-to-regexp@^0.4.1": 438 | "integrity" "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" 439 | "resolved" "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" 440 | "version" "0.4.1" 441 | 442 | "graceful-fs@^4.1.2", "graceful-fs@^4.2.4": 443 | "integrity" "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" 444 | "resolved" "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz" 445 | "version" "4.2.6" 446 | 447 | "has-flag@^4.0.0": 448 | "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 449 | "resolved" "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz" 450 | "version" "4.0.0" 451 | 452 | "has@^1.0.3": 453 | "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" 454 | "resolved" "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz" 455 | "version" "1.0.3" 456 | dependencies: 457 | "function-bind" "^1.1.1" 458 | 459 | "human-signals@^2.1.0": 460 | "integrity" "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" 461 | "resolved" "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz" 462 | "version" "2.1.0" 463 | 464 | "ieee754@^1.2.1": 465 | "integrity" "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" 466 | "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" 467 | "version" "1.2.1" 468 | 469 | "import-local@^3.0.2": 470 | "integrity" "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==" 471 | "resolved" "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz" 472 | "version" "3.0.2" 473 | dependencies: 474 | "pkg-dir" "^4.2.0" 475 | "resolve-cwd" "^3.0.0" 476 | 477 | "interpret@^2.2.0": 478 | "integrity" "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==" 479 | "resolved" "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz" 480 | "version" "2.2.0" 481 | 482 | "is-core-module@^2.2.0": 483 | "integrity" "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==" 484 | "resolved" "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz" 485 | "version" "2.2.0" 486 | dependencies: 487 | "has" "^1.0.3" 488 | 489 | "is-plain-object@^2.0.4": 490 | "integrity" "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==" 491 | "resolved" "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz" 492 | "version" "2.0.4" 493 | dependencies: 494 | "isobject" "^3.0.1" 495 | 496 | "is-stream@^2.0.0": 497 | "integrity" "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" 498 | "resolved" "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz" 499 | "version" "2.0.0" 500 | 501 | "isexe@^2.0.0": 502 | "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" 503 | "resolved" "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz" 504 | "version" "2.0.0" 505 | 506 | "isobject@^3.0.1": 507 | "integrity" "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" 508 | "resolved" "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz" 509 | "version" "3.0.1" 510 | 511 | "jest-worker@^26.6.2": 512 | "integrity" "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==" 513 | "resolved" "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz" 514 | "version" "26.6.2" 515 | dependencies: 516 | "@types/node" "*" 517 | "merge-stream" "^2.0.0" 518 | "supports-color" "^7.0.0" 519 | 520 | "js-tokens@^3.0.0 || ^4.0.0": 521 | "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 522 | "resolved" "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz" 523 | "version" "4.0.0" 524 | 525 | "json-parse-better-errors@^1.0.2": 526 | "integrity" "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" 527 | "resolved" "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" 528 | "version" "1.0.2" 529 | 530 | "json-schema-traverse@^0.4.1": 531 | "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 532 | "resolved" "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" 533 | "version" "0.4.1" 534 | 535 | "kind-of@^6.0.2": 536 | "integrity" "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" 537 | "resolved" "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz" 538 | "version" "6.0.3" 539 | 540 | "loader-runner@^4.2.0": 541 | "integrity" "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==" 542 | "resolved" "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz" 543 | "version" "4.2.0" 544 | 545 | "locate-path@^5.0.0": 546 | "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==" 547 | "resolved" "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz" 548 | "version" "5.0.0" 549 | dependencies: 550 | "p-locate" "^4.1.0" 551 | 552 | "loose-envify@^1.0.0": 553 | "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==" 554 | "resolved" "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz" 555 | "version" "1.4.0" 556 | dependencies: 557 | "js-tokens" "^3.0.0 || ^4.0.0" 558 | 559 | "merge-stream@^2.0.0": 560 | "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" 561 | "resolved" "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz" 562 | "version" "2.0.0" 563 | 564 | "mime-db@1.46.0": 565 | "integrity" "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" 566 | "resolved" "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz" 567 | "version" "1.46.0" 568 | 569 | "mime-types@^2.1.27": 570 | "integrity" "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==" 571 | "resolved" "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz" 572 | "version" "2.1.29" 573 | dependencies: 574 | "mime-db" "1.46.0" 575 | 576 | "mimic-fn@^2.1.0": 577 | "integrity" "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" 578 | "resolved" "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz" 579 | "version" "2.1.0" 580 | 581 | "neo-async@^2.6.2": 582 | "integrity" "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" 583 | "resolved" "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz" 584 | "version" "2.6.2" 585 | 586 | "node-fetch@2.6.1": 587 | "integrity" "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" 588 | "resolved" "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz" 589 | "version" "2.6.1" 590 | 591 | "node-releases@^1.1.70": 592 | "integrity" "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==" 593 | "resolved" "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz" 594 | "version" "1.1.70" 595 | 596 | "npm-run-path@^4.0.1": 597 | "integrity" "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==" 598 | "resolved" "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz" 599 | "version" "4.0.1" 600 | dependencies: 601 | "path-key" "^3.0.0" 602 | 603 | "object-assign@^4.1.0": 604 | "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 605 | "resolved" "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz" 606 | "version" "4.1.1" 607 | 608 | "onetime@^5.1.2": 609 | "integrity" "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==" 610 | "resolved" "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz" 611 | "version" "5.1.2" 612 | dependencies: 613 | "mimic-fn" "^2.1.0" 614 | 615 | "p-limit@^2.2.0": 616 | "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" 617 | "resolved" "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz" 618 | "version" "2.3.0" 619 | dependencies: 620 | "p-try" "^2.0.0" 621 | 622 | "p-limit@^3.1.0": 623 | "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" 624 | "resolved" "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz" 625 | "version" "3.1.0" 626 | dependencies: 627 | "yocto-queue" "^0.1.0" 628 | 629 | "p-locate@^4.1.0": 630 | "integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==" 631 | "resolved" "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz" 632 | "version" "4.1.0" 633 | dependencies: 634 | "p-limit" "^2.2.0" 635 | 636 | "p-try@^2.0.0": 637 | "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" 638 | "resolved" "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz" 639 | "version" "2.2.0" 640 | 641 | "path-exists@^4.0.0": 642 | "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" 643 | "resolved" "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz" 644 | "version" "4.0.0" 645 | 646 | "path-key@^3.0.0", "path-key@^3.1.0": 647 | "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" 648 | "resolved" "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz" 649 | "version" "3.1.1" 650 | 651 | "path-parse@^1.0.6": 652 | "integrity" "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" 653 | "resolved" "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz" 654 | "version" "1.0.6" 655 | 656 | "pkg-dir@^4.2.0": 657 | "integrity" "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==" 658 | "resolved" "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz" 659 | "version" "4.2.0" 660 | dependencies: 661 | "find-up" "^4.0.0" 662 | 663 | "promise@^7.1.1": 664 | "integrity" "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==" 665 | "resolved" "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz" 666 | "version" "7.3.1" 667 | dependencies: 668 | "asap" "~2.0.3" 669 | 670 | "punycode@^2.1.0": 671 | "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 672 | "resolved" "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz" 673 | "version" "2.1.1" 674 | 675 | "randombytes@^2.1.0": 676 | "integrity" "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==" 677 | "resolved" "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz" 678 | "version" "2.1.0" 679 | dependencies: 680 | "safe-buffer" "^5.1.0" 681 | 682 | "rechoir@^0.7.0": 683 | "integrity" "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==" 684 | "resolved" "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz" 685 | "version" "0.7.0" 686 | dependencies: 687 | "resolve" "^1.9.0" 688 | 689 | "resolve-cwd@^3.0.0": 690 | "integrity" "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==" 691 | "resolved" "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz" 692 | "version" "3.0.0" 693 | dependencies: 694 | "resolve-from" "^5.0.0" 695 | 696 | "resolve-from@^5.0.0": 697 | "integrity" "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" 698 | "resolved" "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz" 699 | "version" "5.0.0" 700 | 701 | "resolve@^1.9.0": 702 | "integrity" "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==" 703 | "resolved" "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz" 704 | "version" "1.20.0" 705 | dependencies: 706 | "is-core-module" "^2.2.0" 707 | "path-parse" "^1.0.6" 708 | 709 | "rsocket-core@^0.0.23": 710 | "integrity" "sha512-c+D/ucwc9xQi2viqaIUKe5px6w2lD56Ar+kgRGhPcPttCYj+ovtH5cXpZZingkBe3sbkc54osj2agC9+Y/8J/g==" 711 | "resolved" "https://registry.yarnpkg.com/rsocket-core/-/rsocket-core-0.0.23.tgz" 712 | "version" "0.0.23" 713 | dependencies: 714 | "fbjs" "^2.0.0" 715 | "rsocket-flowable" "^0.0.23" 716 | "rsocket-types" "^0.0.23" 717 | 718 | "rsocket-flowable@^0.0.23": 719 | "integrity" "sha512-fIZvpPNUoFlpyrJ1SdHm4QSDvVK9E+NlzvGz2oJP3A8FHS6GWpDLc5YYD3dhih1ZkL0/mS6mSQfxdQl7x2NO5g==" 720 | "resolved" "https://registry.yarnpkg.com/rsocket-flowable/-/rsocket-flowable-0.0.23.tgz" 721 | "version" "0.0.23" 722 | dependencies: 723 | "fbjs" "^2.0.0" 724 | 725 | "rsocket-types@^0.0.23": 726 | "integrity" "sha512-tFuBukMJCV33784TH8mYUlVlxc1rbqhwE+K4U733p6pPmOSD6KjRZ6vQTOQCuWMCOOpa0aWxhp5A8oqFaHP0zA==" 727 | "resolved" "https://registry.yarnpkg.com/rsocket-types/-/rsocket-types-0.0.23.tgz" 728 | "version" "0.0.23" 729 | dependencies: 730 | "fbjs" "^2.0.0" 731 | "rsocket-flowable" "^0.0.23" 732 | 733 | "rsocket-websocket-client@^0.0.23": 734 | "integrity" "sha512-AB1gbFHlZU46vUF3ob7Kpq61OtqNhiwzTfCoMGhW4Y8+eYbrUOnJblLjpfgVtP39hPe2bhg15wI8hcVvR2phSA==" 735 | "resolved" "https://registry.yarnpkg.com/rsocket-websocket-client/-/rsocket-websocket-client-0.0.23.tgz" 736 | "version" "0.0.23" 737 | dependencies: 738 | "fbjs" "^2.0.0" 739 | "rsocket-core" "^0.0.23" 740 | "rsocket-flowable" "^0.0.23" 741 | "rsocket-types" "^0.0.23" 742 | 743 | "safe-buffer@^5.1.0": 744 | "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 745 | "resolved" "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz" 746 | "version" "5.2.1" 747 | 748 | "schema-utils@^3.0.0": 749 | "integrity" "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==" 750 | "resolved" "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz" 751 | "version" "3.0.0" 752 | dependencies: 753 | "@types/json-schema" "^7.0.6" 754 | "ajv" "^6.12.5" 755 | "ajv-keywords" "^3.5.2" 756 | 757 | "serialize-javascript@^5.0.1": 758 | "integrity" "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==" 759 | "resolved" "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz" 760 | "version" "5.0.1" 761 | dependencies: 762 | "randombytes" "^2.1.0" 763 | 764 | "setimmediate@^1.0.5": 765 | "integrity" "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" 766 | "resolved" "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz" 767 | "version" "1.0.5" 768 | 769 | "shallow-clone@^3.0.0": 770 | "integrity" "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==" 771 | "resolved" "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz" 772 | "version" "3.0.1" 773 | dependencies: 774 | "kind-of" "^6.0.2" 775 | 776 | "shebang-command@^2.0.0": 777 | "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" 778 | "resolved" "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz" 779 | "version" "2.0.0" 780 | dependencies: 781 | "shebang-regex" "^3.0.0" 782 | 783 | "shebang-regex@^3.0.0": 784 | "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" 785 | "resolved" "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz" 786 | "version" "3.0.0" 787 | 788 | "signal-exit@^3.0.3": 789 | "integrity" "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" 790 | "resolved" "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz" 791 | "version" "3.0.3" 792 | 793 | "source-list-map@^2.0.1": 794 | "integrity" "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" 795 | "resolved" "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz" 796 | "version" "2.0.1" 797 | 798 | "source-map-support@~0.5.19": 799 | "integrity" "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==" 800 | "resolved" "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz" 801 | "version" "0.5.19" 802 | dependencies: 803 | "buffer-from" "^1.0.0" 804 | "source-map" "^0.6.0" 805 | 806 | "source-map@^0.6.0", "source-map@^0.6.1": 807 | "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 808 | "resolved" "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz" 809 | "version" "0.6.1" 810 | 811 | "source-map@~0.7.2": 812 | "integrity" "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" 813 | "resolved" "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz" 814 | "version" "0.7.3" 815 | 816 | "strip-final-newline@^2.0.0": 817 | "integrity" "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" 818 | "resolved" "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz" 819 | "version" "2.0.0" 820 | 821 | "supports-color@^7.0.0": 822 | "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" 823 | "resolved" "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz" 824 | "version" "7.2.0" 825 | dependencies: 826 | "has-flag" "^4.0.0" 827 | 828 | "tapable@^2.1.1", "tapable@^2.2.0": 829 | "integrity" "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==" 830 | "resolved" "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz" 831 | "version" "2.2.0" 832 | 833 | "terser-webpack-plugin@^5.1.1": 834 | "integrity" "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==" 835 | "resolved" "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz" 836 | "version" "5.1.1" 837 | dependencies: 838 | "jest-worker" "^26.6.2" 839 | "p-limit" "^3.1.0" 840 | "schema-utils" "^3.0.0" 841 | "serialize-javascript" "^5.0.1" 842 | "source-map" "^0.6.1" 843 | "terser" "^5.5.1" 844 | 845 | "terser@^5.5.1": 846 | "integrity" "sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA==" 847 | "resolved" "https://registry.yarnpkg.com/terser/-/terser-5.6.0.tgz" 848 | "version" "5.6.0" 849 | dependencies: 850 | "commander" "^2.20.0" 851 | "source-map" "~0.7.2" 852 | "source-map-support" "~0.5.19" 853 | 854 | "tslib@^1.9.0": 855 | "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 856 | "resolved" "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz" 857 | "version" "1.14.1" 858 | 859 | "ua-parser-js@^0.7.18": 860 | "integrity" "sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw==" 861 | "resolved" "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.24.tgz" 862 | "version" "0.7.24" 863 | 864 | "uri-js@^4.2.2": 865 | "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" 866 | "resolved" "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz" 867 | "version" "4.4.1" 868 | dependencies: 869 | "punycode" "^2.1.0" 870 | 871 | "v8-compile-cache@^2.2.0": 872 | "integrity" "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==" 873 | "resolved" "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz" 874 | "version" "2.2.0" 875 | 876 | "watchpack@^2.0.0": 877 | "integrity" "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==" 878 | "resolved" "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz" 879 | "version" "2.1.1" 880 | dependencies: 881 | "glob-to-regexp" "^0.4.1" 882 | "graceful-fs" "^4.1.2" 883 | 884 | "webpack-cli@^4.5.0", "webpack-cli@4.x.x": 885 | "integrity" "sha512-wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q==" 886 | "resolved" "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.5.0.tgz" 887 | "version" "4.5.0" 888 | dependencies: 889 | "@discoveryjs/json-ext" "^0.5.0" 890 | "@webpack-cli/configtest" "^1.0.1" 891 | "@webpack-cli/info" "^1.2.2" 892 | "@webpack-cli/serve" "^1.3.0" 893 | "colorette" "^1.2.1" 894 | "commander" "^7.0.0" 895 | "enquirer" "^2.3.6" 896 | "execa" "^5.0.0" 897 | "fastest-levenshtein" "^1.0.12" 898 | "import-local" "^3.0.2" 899 | "interpret" "^2.2.0" 900 | "rechoir" "^0.7.0" 901 | "v8-compile-cache" "^2.2.0" 902 | "webpack-merge" "^5.7.3" 903 | 904 | "webpack-merge@^5.7.3": 905 | "integrity" "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==" 906 | "resolved" "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz" 907 | "version" "5.7.3" 908 | dependencies: 909 | "clone-deep" "^4.0.1" 910 | "wildcard" "^2.0.0" 911 | 912 | "webpack-sources@^2.1.1": 913 | "integrity" "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==" 914 | "resolved" "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz" 915 | "version" "2.2.0" 916 | dependencies: 917 | "source-list-map" "^2.0.1" 918 | "source-map" "^0.6.1" 919 | 920 | "webpack@^5.1.0", "webpack@^5.23.0", "webpack@4.x.x || 5.x.x": 921 | "integrity" "sha512-RC6dwDuRxiU75F8XC4H08NtzUrMfufw5LDnO8dTtaKU2+fszEdySCgZhNwSBBn516iNaJbQI7T7OPHIgCwcJmg==" 922 | "resolved" "https://registry.yarnpkg.com/webpack/-/webpack-5.23.0.tgz" 923 | "version" "5.23.0" 924 | dependencies: 925 | "@types/eslint-scope" "^3.7.0" 926 | "@types/estree" "^0.0.46" 927 | "@webassemblyjs/ast" "1.11.0" 928 | "@webassemblyjs/wasm-edit" "1.11.0" 929 | "@webassemblyjs/wasm-parser" "1.11.0" 930 | "acorn" "^8.0.4" 931 | "browserslist" "^4.14.5" 932 | "chrome-trace-event" "^1.0.2" 933 | "enhanced-resolve" "^5.7.0" 934 | "es-module-lexer" "^0.3.26" 935 | "eslint-scope" "^5.1.1" 936 | "events" "^3.2.0" 937 | "glob-to-regexp" "^0.4.1" 938 | "graceful-fs" "^4.2.4" 939 | "json-parse-better-errors" "^1.0.2" 940 | "loader-runner" "^4.2.0" 941 | "mime-types" "^2.1.27" 942 | "neo-async" "^2.6.2" 943 | "schema-utils" "^3.0.0" 944 | "tapable" "^2.1.1" 945 | "terser-webpack-plugin" "^5.1.1" 946 | "watchpack" "^2.0.0" 947 | "webpack-sources" "^2.1.1" 948 | 949 | "which@^2.0.1": 950 | "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" 951 | "resolved" "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz" 952 | "version" "2.0.2" 953 | dependencies: 954 | "isexe" "^2.0.0" 955 | 956 | "wildcard@^2.0.0": 957 | "integrity" "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==" 958 | "resolved" "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz" 959 | "version" "2.0.0" 960 | 961 | "yocto-queue@^0.1.0": 962 | "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" 963 | "resolved" "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz" 964 | "version" "0.1.0" 965 | --------------------------------------------------------------------------------