diff --git a/.flake8 b/.flake8
index 1accc5b1..f63765b0 100644
--- a/.flake8
+++ b/.flake8
@@ -1,3 +1,3 @@
[flake8]
max-line-length = 88
-ignore = E501, E203, W503 # line length, whitespace before ':', line break before binary operator
+ignore = E501, E203, W503, E402, E231 # line length, whitespace before ':', line break before binary operator, module level import not at top of file
diff --git a/.github/workflows/build_executable.yml b/.github/workflows/build_executable.yml
index 36cbd6dc..d57977f8 100644
--- a/.github/workflows/build_executable.yml
+++ b/.github/workflows/build_executable.yml
@@ -12,13 +12,13 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- os: [ubuntu-latest, windows-latest, macos-latest]
+ os: [ubuntu-latest, macos-latest]
python-version: [3.8]
include:
- os: ubuntu-latest
buildname: linux
- - os: windows-latest
- buildname: windows
+ # - os: windows-latest
+ # buildname: windows
- os: macos-latest
buildname: mac
steps:
@@ -35,7 +35,7 @@ jobs:
run: |
nox --non-interactive --session build_executable_${{ matrix.buildname }}
- name: Upload ${{ matrix.buildname }} executable
- if: github.ref == 'refs/heads/master'
+ # if: github.ref == 'refs/heads/master'
uses: actions/upload-artifact@v1
with:
name: gdbgui_${{ matrix.buildname }}
diff --git a/.gitignore b/.gitignore
index 2ebb68d0..40e33454 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,5 @@ yarn-error.log
venv
.vscode
site
-build.js
-build.js.map
+gdbgui/static/js/*
__pycache__
diff --git a/.vulture_whitelist.py b/.vulture_whitelist.py
new file mode 100644
index 00000000..c3ed3d2a
--- /dev/null
+++ b/.vulture_whitelist.py
@@ -0,0 +1,3 @@
+_.sessions # unused attribute (noxfile.py:7)
+_.reuse_existing_virtualenvs # unused attribute (noxfile.py:6)
+_.secret_key # unused attribute (gdbgui/backend.py:104)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2a5c5fea..4f7fe8a1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,20 @@
# gdbgui release history
## development
+**Breaking Changes**
+* Removed support for Windows
+* Replaced `--gdb` flag with `--gdb-cmd`. The `--gdb-cmd` argument specifies the gdb executable as well as all arguments you wish to pass to gdb at startup, for example `--gdb-cmd "gdb -nx"`. The existing `-g` argument is an alias for `--gdb-cmd`.
+* Removed `--rr` flag. Use `--gdb-cmd rr replay` instead.
+* Removed deprecated and hidden `--hide-gdbgui-upgrades` argument. It will now raise an error.
+
+**Additional Changes**
+* Replaced single terminal on frontend with three terminals: an interactive xterm terminal running gdb, a gdbgui console for diagnostic messages, and a terminal connected to the inferior application being debugged.
+* Updates to the dashboard
+* Add ability to specify gdb command from the browser. This can now be accomplished from the dashboard.
* Removed gdbgui binaries from source control. They can now be downloaded as artifacts of [releases](https://github.com/cs01/gdbgui/releases).
+* [documentation] Fix bug when generating md5 checksum for binary releases
+* Remove "shutdown" button in UI
+
## 0.13.2.1
* No end user changes. This release builds the gdbgui executables with GitHub actions.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 412d8678..bd56f120 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -2,9 +2,9 @@ Thanks for your interest in contributing to gdbgui!
If your change is small, go ahead and submit a pull request. If it is substantial, create a GitHub issue to discuss it before making the change.
-## Development Instructions
+## Dependencies
-gdbgui uses [nox](https://github.com/theacodes/nox) to automate various tasks. You will need it installed on your system before continuing.
+1.) [nox](https://github.com/theacodes/nox) is used to automate various tasks. You will need it installed on your system before continuing.
You can install it with pipx (recommended):
```
@@ -15,72 +15,33 @@ or pip:
> pip install --user nox
```
-### Step 1: Compile JavaScript Code
+2.) [yarn](https://yarnpkg.com/) is used for managing JavaScript files
-gdbgui compiles JavaScript source code into a single .js file.
-
-Note that `yarn` can be replaced with `npm`:
-
-First install JavaScript dependencies:
-```bash
-yarn install
+## Developing
+Development can be done with one simple step:
```
-
-To watch JavaScript files for changes and build non-optimized code for each change, use
-```
-yarn start
+> nox -s develop
```
+This will install all Python and JavaScript dependencies, and build and watch Python and JavaScript files for changes, automatically reloading as things are changed.
-This is useful for iterating on changes.
-
-To build once for production-optimized code, you can run
-```
-yarn build
-```
-
-### Step 2: Run Server
+Make sure you [turn your cache off](https://www.technipages.com/google-chrome-how-to-completely-disable-cache) so that changes made locally are reflected in the page.
+## Running and Adding tests
```bash
-git clone https://github.com/cs01/gdbgui
-cd gdbgui
-nox -s develop-3.7 # replace with desired Python version
-source .nox/develop-3-7/bin/activate # replace with desired Python version
+> nox
```
-You are now in a virtual environment with gdbgui's dependencies installed. When finished, type `deactivate` to leave the virtual environment.
+runs all applicable tests and linting.
-```bash
-python -m gdbgui --debug
+Python tests are in `gdbgui/tests`. They are run as part of the above command, but can be run with
```
-
-The `--debug` flag:
-
-1. Automatically reloads the server when it detects changes you've made
-1. Adds a new component at the bottom of the right sidebar called "gdb machine interface output" that displays the raw gdb mi output to help you debug.
-1. Displays all changes to state data in the browser's developer console, such as `rendered_source_file_fullname null -> /home/chad/git/gdbgui/examples/hello.c`
-
-
-### Step 3: Make your changes
-
-Open the browser to view gdbgui. Refresh the page as you make changes to JavaScript code.
-
-!!! Note
-
- Make sure you have caching turned off in your browser. In Chrome, for example, this is a setting in the developer console.
-
-### Step 4: Run and Add tests
-
-To continue, you must have nox installed.
-
-```bash
-nox
+> nox -s python_tests
```
-runs gdbgui unit tests.
-
-If you have changed any Python code, add new tests to `gdbgui/tests/test_app.py` as necessary.
-
-JavaScript tests are minimal, so you will have to manually excercise any code paths that may be affected.
+JavaScript tests are in `gdbgui/src/js/tests`. They are run as part of the above command, but can be run with
+```
+> nox -s js_tests
+```
## Documentation
diff --git a/MANIFEST.in b/MANIFEST.in
index 430c880e..05a0e704 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -2,6 +2,10 @@ include README.md
include LICENSE
graft gdbgui
+# these files are built and must be included in distribution
+# but shouldn't be included in git repository since they
+# are generated
+graft gdbgui/static/js
prune examples
prune downloads
@@ -16,6 +20,7 @@ exclude mypy.ini
exclude .eslintrc.json
exclude .coveragerc
exclude .flake8
+exclude .vulture_whitelist.py
exclude .prettierrc.js
exclude jest.config.js
exclude make_executable.py
@@ -29,3 +34,5 @@ exclude yarn.lock
exclude noxfile.py
exclude CHANGELOG.md
exclude CONTRIBUTING.md
+exclude postcss.config.js
+exclude tailwind.config.js
diff --git a/README.md b/README.md
index b79fdaaf..2cd3add6 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
-A modern, browser-based frontend to gdb (gnu debugger)
+A browser-based frontend to gdb (gnu debugger)
diff --git a/docs/examples.md b/docs/examples.md
index 836deb5c..05695a1e 100644
--- a/docs/examples.md
+++ b/docs/examples.md
@@ -14,33 +14,34 @@ gdbgui
set the inferior program, pass argument, set a breakpoint at main
```
-gdbgui "./myprogram myarg -myflag"
+gdbgui --args ./myprogram myarg -myflag
```
-alternate way to do the same thing (note the lack of quotes)
```
-gdbgui --args ./myprogram myarg command -myflag
+gdbgui "./myprogram myarg -myflag"
```
use gdb binary not on your $PATH
```
-gdbgui -g build/mygdb
+gdbgui --gdb-cmd build/mygdb
```
-run on port 8080 instead of the default port
+Pass arbitrary arguments directly to gdb when it is launched
```
-gdbgui --port 8080
+gdbgui --gdb-cmd="gdb -x gdbcmds.txt"
```
-Pass arbitrary arguments directly to gdb when it is launched
+run on port 8080 instead of the default port
```
-gdbgui --gdb-args="-x gdbcmds.txt"
+gdbgui --port 8080
```
+
+
run on a server and host on 0.0.0.0. Accessible to the outside world as long as port 80 is not blocked.
```
@@ -63,13 +64,13 @@ gdbgui -r --auth --key private.key --cert host.cert
Use Mozilla's [record and replay](https://rr-project.org) (rr) debugging supplement to gdb. rr lets your record a program (usually with a hard-to-reproduce bug in it), then deterministically replay it as many times as you want. You can even step forwards and backwards.
```
-gdbgui --rr
+gdbgui --gdb-cmd "rr replay"
```
Use recording other than the most recent one
```
-gdbgui --rr RECORDED_DIRECTORY
+gdbgui --gdb-cmd "rr replay RECORDED_DIRECTORY"
```
Don't automatically open the browser when launching
diff --git a/docs/gettingstarted.md b/docs/gettingstarted.md
index 4a255429..ce4a068e 100644
--- a/docs/gettingstarted.md
+++ b/docs/gettingstarted.md
@@ -1,9 +1,13 @@
-Now that you have `gdbgui` installed, all you need to do is run
+Before running `gdbgui`, you should compile your program with debug symbols and a lower level of optimization, so code isn't optimized out before runtime. To include debug symbols with `gcc` use `-ggdb`, with `rustc` use `-g`. To disable most optimizations in `gcc` use the `-O0` flag, with `rustc` use `-O`.
+
+For more details, consult your compiler's documentation or a search engine.
+
+Now that you have `gdbgui` installed and your program compiled with debug symbols, all you need to do is run
```
gdbgui
```
-which will start gdbgui's server and open a new tab in your browser. That tab contains a fully functional frontend running `gdb`!
+This will start gdbgui's server and open a new tab in your browser. That tab contains a fully functional frontend running `gdb`!
You can see gdbgui in action on [YouTube](https://www.youtube.com/channel/UCUCOSclB97r9nd54NpXMV5A).
@@ -32,10 +36,3 @@ The following keyboard shortcuts are available when the focus is not in an input
* Up: u or up arrow
* Next Instruction: m
* Step Instruction: ,
-
-
-## Debugging Faults
-
-If your program exits unexpectedly from something like a SEGFAULT, gdbgui displays a button in the console to re-enter the state the program was in when it exited. This allows you to inspect the stack, the line on which the program exited, memory, variables, registers, etc.
-
-![](https://raw.githubusercontent.com/cs01/gdbgui/master/screenshots/SIGSEV.png)
diff --git a/docs/guides.md b/docs/guides.md
index c4d5cc95..41d02fe6 100644
--- a/docs/guides.md
+++ b/docs/guides.md
@@ -7,8 +7,9 @@ Remember, these guides, like gdbgui, are **open source** and can be edited by yo
After downloading gdbgui, you can launch it like so:
* `gdbgui` (or whatever the binary name is, i.e. `gdbgui_0.10.0.0`)
-* `gdbgui "./mybinary -myarg value -flag1 -flag2"` (note the quotes around the arguments)
-* `gdbgui --args "./mybinary -myarg value -flag1 -flag2"` (note the quotes around the arguments)
+* `gdbgui --args ./mybinary -myarg value -flag1 -flag2`
+
+Make sure the program you want to debug was compiled with debug symbols. See the getting started section for more details.
A new tab in your browser will open with gdbgui in it. If a browser tab did not open, navigate to the ip/port that gdbgui is being served on (i.e. http://localhost:5000).
@@ -42,9 +43,11 @@ cd myprog
cargo build
```
-You can start debugging with a simple
+You can start debugging with
-`gdbgui target/debug/myprog`
+```
+gdbgui --args target/debug/myprog
+```
There are a couple of small difficulties.
@@ -72,11 +75,10 @@ You can load this into gdb with the following command (changed as appropriate):
symbol-file /Users/user/git/gdbgui/examples/rust/target/debug/deps/hello-486956f9dde465e5
```
-2.) The GDB pretty-printing macros that Rust ships with. GDB can't find these by default,
-which makes it print the message
+2.) The GDB pretty-printing macros that Rust ships with. GDB can't find these by default, which makes it print the message
```
-warning: Missing auto-load script at offset 0 in section .debug_gdb_scripts of file /home/phil/temp/myprog/target/debug/myprog.
+warning: Missing auto-load script at offset 0 in section .debug_gdb_scripts of file /home/temp/myprog/target/debug/myprog.
Use `info auto-load python-scripts [REGEXP]' to list them.
```
@@ -106,7 +108,7 @@ Then you can launch `gdb` or `gdbgui` and connect to it. In `gdbgui`, use the dr
Read more at the [gdbserver homepage](https://sourceware.org/gdb/onlinedocs/gdb/Server.html).
-If the machine gdbgui is running on and the target being debugged have different architectures, make sure gdb is built properly. See []
+If the machine gdbgui is running on and the target being debugged have different architectures, make sure gdb is built properly (see `Remote Debugging Between Different Architectures`).
## Remote Debugging Between Different Architectures
diff --git a/docs/index.md b/docs/index.md
index cf9d0a31..b0c3aec7 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -3,7 +3,7 @@
-A modern, browser-based frontend to gdb (gnu debugger)
+A browser-based frontend to gdb (gnu debugger)
diff --git a/docs/installation.md b/docs/installation.md
index 72ae967a..45aed249 100644
--- a/docs/installation.md
+++ b/docs/installation.md
@@ -94,6 +94,8 @@ instructions](http://andresabino.com/2015/04/14/codesign-gdb-on-mac-os-x-yosemit
### Windows Dependencies
+Note that windows is only supported for gdbgui versions less than 0.14.
+
- [Python 3](https://www.python.org/downloads/windows/)
- gdb, make, gcc
diff --git a/docs/screenshots.md b/docs/screenshots.md
index fbcd7cd9..4a7b77b2 100644
--- a/docs/screenshots.md
+++ b/docs/screenshots.md
@@ -2,7 +2,7 @@
![image](https://github.com/cs01/gdbgui/raw/master/screenshots/gdbgui2.png)
Enter the binary and args just as you'd call them on the command line.
-Binary is restored when gdbgui is opened at a later time.
+The binary is restored when gdbgui is opened at a later time.
![image](https://github.com/cs01/gdbgui/raw/master/screenshots/load_binary_and_args.png)
@@ -11,7 +11,7 @@ Next, Step, Return, Next Instruction, Step Instruction.
![image](https://github.com/cs01/gdbgui/raw/master/screenshots/controls.png)
-If using an Intel CPU and running Linux, gdbgui also works in conjunction with [rr](http://rr-project.org/) to let you debug in reverse.
+If the environment supports reverse debugging, such as when using an Intel CPU and running Linux and debugging with [rr](http://rr-project.org/), gdbgui allows you to debug in reverse.
![image](https://github.com/cs01/gdbgui/raw/master/screenshots/reverse_debugging.png)
## Stack/Threads
@@ -22,13 +22,10 @@ pointing and clicking.
![image](https://github.com/cs01/gdbgui/raw/master/screenshots/stack_and_threads.png)
-## Send Signal to Inferior
+## Send Signal to Inferior (debugged) Process
Choose from any signal your OS supports to send to the inferior. For example, to mock `CTRL+C` in plain gdb, you can send `SIGINT` to interrupt the inferior process. If the inferior process is hung for some reason, you can send `SIGKILL`, etc.
![image](https://github.com/cs01/gdbgui/raw/master/screenshots/send_signal.png)
-Signals are also recognized by `gdbgui`, and a button is presented to let you step back into the program and inspect the program's state in case it exits unexpectedly.
-![image](https://github.com/cs01/gdbgui/raw/master/screenshots/SIGSEV.png)
-
## Source Code
View source, assembly, add breakpoints. All symbols used to compile the
diff --git a/examples/c/hello.c b/examples/c/hello.c
index 984da5a6..c4e0340a 100644
--- a/examples/c/hello.c
+++ b/examples/c/hello.c
@@ -1,21 +1,23 @@
#include
#include
-
-void say_something(const char* str)
+void say_something(const char *str)
{
printf("%s\n", str);
}
-struct mystruct_t {
+struct mystruct_t
+{
int value;
char letter;
char *string;
- struct {
+ struct
+ {
double dbl;
} substruct; /* named sub-struct */
- struct {
+ struct
+ {
float fp;
}; /* anonymous struct */
@@ -27,8 +29,8 @@ struct mystruct_t {
};
};
-
-int main(int argc, char **argv) {
+int main(int argc, char **argv)
+{
printf("Hello World\n");
int retval = 1;
@@ -46,11 +48,13 @@ int main(int argc, char **argv) {
s.unionint = 0;
s.uniondouble = 1.0;
- for (int i = 0; i < 2; i++) {
+ for (int i = 0; i < 2; i++)
+ {
printf("i is %d\n", i);
}
- if (!strcmp(s.string, "pass")) {
+ if (!strcmp(s.string, "pass"))
+ {
retval = 0;
}
diff --git a/examples/c/input.c b/examples/c/input.c
new file mode 100644
index 00000000..e3bde8e3
--- /dev/null
+++ b/examples/c/input.c
@@ -0,0 +1,11 @@
+#include
+#include
+
+int main(int argc, char **argv)
+{
+ char name[20];
+ printf("Hello. What's your name?\n");
+ fgets(name, 20, stdin);
+ printf("Hi there, %s", name);
+ return 0;
+}
diff --git a/examples/c/makefile b/examples/c/makefile
index f3ecd392..34800b93 100644
--- a/examples/c/makefile
+++ b/examples/c/makefile
@@ -1,17 +1,21 @@
-GDBGUI=../../gdbgui/backend.py
+ROOT:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
hello: hello.c
gcc hello.c -o hello_c.a -std=c99 -g
- $(GDBGUI) hello_c.a
+ @echo Run with gdbgui: gdbgui --args $(ROOT)/hello_c.a
+
+input: input.c
+ gcc input.c -o input.a -std=c99 -g
+ @echo Run with gdbgui: gdbgui --args $(ROOT)/input.a
debug_segfault: debug_segfault.c
gcc debug_segfault.c -g -o debug_segfault.a -std=c99
- $(GDBGUI) debug_segfault.a
+ @echo Run with gdbgui: gdbgui --args $(ROOT)/debug_segfault.a
threads: threads.c
gcc threads.c -o threads.a -std=c99 -lpthread -g
- $(GDBGUI) threads.a
+ @echo Run with gdbgui: gdbgui --args $(ROOT)/threads.a
sleeper: sleeper.c
gcc sleeper.c -o sleeper.a -std=c99 -g
- $(GDBGUI) sleeper.a
+ @echo Run with gdbgui: gdbgui --args $(ROOT)/sleeper.a
diff --git a/examples/cpp/makefile b/examples/cpp/makefile
index 15cee550..c2963fb5 100644
--- a/examples/cpp/makefile
+++ b/examples/cpp/makefile
@@ -2,16 +2,16 @@ GDBGUI=../../gdbgui/backend.py
hello: hello.cpp
g++ hello.cpp -o hello_cpp.a -std=c++11 -g
- $(GDBGUI) hello_cpp.a
+ @echo Run with gdbgui: gdbgui --args hello_cpp.a
linked_list: linked_list.cpp
g++ linked_list.cpp -o linked_list_cpp.a -std=c++11 -g
- $(GDBGUI) linked_list_cpp.a
+ @echo Run with gdbgui: gdbgui --args linked_list_cpp.a
smart_ptr_demo: smart_ptr_demo.cpp
g++ smart_ptr_demo.cpp -o smart_ptr_demo_cpp.a -std=c++11 -g
- $(GDBGUI) smart_ptr_demo_cpp.a
+ @echo Run with gdbgui: gdbgui --args smart_ptr_demo_cpp.a
sin: sin.cpp
g++ sin.cpp -o sin_cpp.a -std=c++11 -g
- $(GDBGUI) sin_cpp.a
+ @echo Run with gdbgui: gdbgui --args sin_cpp.a
diff --git a/examples/fortran/makefile b/examples/fortran/makefile
index 4e0cd0b9..2a35a0e2 100644
--- a/examples/fortran/makefile
+++ b/examples/fortran/makefile
@@ -2,4 +2,4 @@ GDBGUI=../../gdbgui/backend.py
array_demo: fortran_array.f90
gfortran fortran_array.f90 -o array_f90.a -g
- $(GDBGUI) array_f90.a
+ @echo Run with gdbgui: gdbgui --args array_f90.a
diff --git a/examples/golang/makefile b/examples/golang/makefile
index e24c490e..2095b14a 100644
--- a/examples/golang/makefile
+++ b/examples/golang/makefile
@@ -2,4 +2,4 @@ GDBGUI=../../gdbgui/backend.py
hello: hello.go
go build -o hello_go.a -gccgoflags "-w" hello.go
- $(GDBGUI) hello_go.a
+ @echo Run with gdbgui: gdbgui --args hello_go.a
diff --git a/gdbgui/VERSION.txt b/gdbgui/VERSION.txt
index d087633b..2b3d2e2d 100644
--- a/gdbgui/VERSION.txt
+++ b/gdbgui/VERSION.txt
@@ -1 +1 @@
-0.13.2.1
+0.14.0.0
\ No newline at end of file
diff --git a/gdbgui/backend.py b/gdbgui/backend.py
index e20bc962..f7f73a4d 100755
--- a/gdbgui/backend.py
+++ b/gdbgui/backend.py
@@ -12,16 +12,14 @@
import os
import platform
import re
-import shlex
import signal
import socket
+import shlex
import sys
import traceback
import webbrowser
-from distutils.spawn import find_executable
from functools import wraps
-
-import pygdbmi # type: ignore
+from typing import Dict, List, Optional
from flask import (
Flask,
Response,
@@ -34,13 +32,11 @@
)
from flask_compress import Compress # type: ignore
from flask_socketio import SocketIO, emit # type: ignore
-from pygdbmi.gdbcontroller import NoGdbProcessError # type: ignore
from pygments.lexers import get_lexer_for_filename # type: ignore
from gdbgui import __version__, htmllistformatter
-from gdbgui.statemanager import StateManager
+from gdbgui.sessionmanager import SessionManager, DebugSession
-pyinstaller_env_var_base_dir = "_MEIPASS"
pyinstaller_base_dir = getattr(sys, "_MEIPASS", None)
using_pyinstaller = pyinstaller_base_dir is not None
if using_pyinstaller:
@@ -70,6 +66,7 @@ def get_ssl_context(private_key, certificate): # noqa
logger = logging.getLogger(__name__)
logger.setLevel(logging.WARNING)
+logging.basicConfig(format="(%(asctime)s) %(msg)s")
class ColorFormatter(logging.Formatter):
@@ -101,12 +98,10 @@ def format(self, record):
app.config["initial_binary_and_args"] = []
app.config["gdb_path"] = DEFAULT_GDB_EXECUTABLE
-app.config["gdb_cmd_file"] = None
+app.config["gdb_command"] = None
app.config["TEMPLATES_AUTO_RELOAD"] = True
-app.config["LLDB"] = False # assume false, okay to change later
app.config["project_home"] = None
app.config["remap_sources"] = {}
-app.config["rr"] = False
app.secret_key = binascii.hexlify(os.urandom(24)).decode("utf-8")
@@ -119,13 +114,13 @@ def csrf_protect_all_post_and_cross_origin_requests():
logger.warning("Received cross origin request. Aborting")
abort(403)
if request.method in ["POST", "PUT"]:
- token = session.get("csrf_token")
- if token == request.form.get("csrf_token"):
+ server_token = session.get("csrf_token")
+ if server_token == request.form.get("csrf_token"):
return success
-
- elif token == request.environ.get("HTTP_X_CSRFTOKEN"):
+ elif server_token == request.environ.get("HTTP_X_CSRFTOKEN"):
+ return success
+ elif request.json and server_token == request.json.get("csrf_token"):
return success
-
else:
logger.warning("Received invalid csrf token. Aborting")
abort(403)
@@ -171,12 +166,12 @@ def add_csrf_token_to_session():
session["csrf_token"] = binascii.hexlify(os.urandom(20)).decode("utf-8")
-socketio = SocketIO()
-_state = StateManager(app.config)
+socketio = SocketIO(manage_session=False)
+manager = SessionManager(app.config)
def setup_backend(
- serve=True,
+ *,
host=DEFAULT_HOST,
port=DEFAULT_PORT,
debug=False,
@@ -185,10 +180,8 @@ def setup_backend(
testing=False,
private_key=None,
certificate=None,
- LLDB=False,
):
"""Run the server of the gdb gui"""
- app.config["LLDB"] = LLDB
kwargs = {}
ssl_context = get_ssl_context(private_key, certificate)
@@ -240,7 +233,10 @@ def setup_backend(
b = webbrowser.get(browsername) if browsername else webbrowser
b.open(url_with_prefix)
else:
- print(colorize("View gdbgui at %s%s:%d" % (protocol, url[0], url[1])))
+ print(colorize(f"View gdbgui at {protocol}{url[0]}:{url[1]}"))
+ print(
+ colorize(f"View gdbgui dashboard at {protocol}{url[0]}:{url[1]}/dashboard")
+ )
print("exit gdbgui by pressing CTRL+C")
@@ -251,45 +247,13 @@ def setup_backend(
port=int(port),
host=host,
extra_files=get_extra_files(),
- **kwargs
+ **kwargs,
)
except KeyboardInterrupt:
# Process was interrupted by ctrl+c on keyboard, show message
pass
-def verify_gdb_exists(gdb_path):
- if find_executable(gdb_path) is None:
- pygdbmi.printcolor.print_red(
- 'gdb executable "%s" was not found. Verify the executable exists, or that it is a directory on your $PATH environment variable.'
- % gdb_path
- )
- if USING_WINDOWS:
- print(
- 'Install gdb (package name "mingw32-gdb") using MinGW (https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download), then ensure gdb is on your "Path" environement variable: Control Panel > System Properties > Environment Variables > System Variables > Path'
- )
- else:
- print('try "sudo apt-get install gdb" for Linux or "brew install gdb"')
- sys.exit(1)
- elif "lldb" in gdb_path.lower() and "lldb-mi" not in app.config["gdb_path"].lower():
- pygdbmi.printcolor.print_red(
- 'gdbgui cannot use the standard lldb executable. You must use an executable with "lldb-mi" in its name.'
- )
- sys.exit(1)
-
-
-def dbprint(*args):
- """print only if app.debug is truthy"""
- if app and app.debug:
- if USING_WINDOWS:
- print("DEBUG: " + " ".join(args))
-
- else:
- CYELLOW2 = "\33[93m"
- NORMAL = "\033[0m"
- print(CYELLOW2 + "DEBUG: " + " ".join(args) + NORMAL)
-
-
def colorize(text):
if IS_A_TTY and not USING_WINDOWS:
return "\033[1;32m" + text + "\x1b[0m"
@@ -300,6 +264,15 @@ def colorize(text):
@socketio.on("connect", namespace="/gdb_listener")
def client_connected():
+ """Connect a websocket client to a debug session
+
+ This is the main intial connection.
+
+ Depending on the arguments passed, the client will connect
+ to an existing debug session, or create a new one.
+ A message is a emitted back to the client with details on
+ the debug session that was created or connected to.
+ """
if is_cross_origin(request):
logger.warning("Received cross origin request. Aborting")
abort(403)
@@ -321,40 +294,107 @@ def client_connected():
)
return
- # see if user wants to connect to existing gdb pid
desired_gdbpid = int(request.args.get("gdbpid", 0))
-
- payload = _state.connect_client(request.sid, desired_gdbpid)
- logger.info(
- 'Client websocket connected in async mode "%s", id %s'
- % (socketio.async_mode, request.sid)
- )
-
- # tell the client browser tab which gdb pid is a dedicated to it
- emit("gdb_pid", payload)
+ try:
+ if desired_gdbpid:
+ # connect to exiting debug session
+ debug_session = manager.connect_client_to_debug_session(
+ desired_gdbpid=desired_gdbpid, client_id=request.sid
+ )
+ emit(
+ "debug_session_connection_event",
+ {
+ "ok": True,
+ "started_new_gdb_process": False,
+ "pid": debug_session.pid,
+ "message": f"Connected to existing gdb process {desired_gdbpid}",
+ },
+ )
+ else:
+ # start new debug session
+ gdb_command = request.args.get("gdb_command", app.config["gdb_command"])
+ mi_version = request.args.get("mi_version", "mi2")
+ debug_session = manager.add_new_debug_session(
+ gdb_command=gdb_command, mi_version=mi_version, client_id=request.sid
+ )
+ emit(
+ "debug_session_connection_event",
+ {
+ "ok": True,
+ "started_new_gdb_process": True,
+ "message": f"Started new gdb process, pid {debug_session.pid}",
+ "pid": debug_session.pid,
+ },
+ )
+ except Exception as e:
+ emit(
+ "debug_session_connection_event",
+ {"message": f"Failed to establish gdb session: {e}", "ok": False},
+ )
# Make sure there is a reader thread reading. One thread reads all instances.
- if _state.gdb_reader_thread is None:
- _state.gdb_reader_thread = socketio.start_background_task(
- target=read_and_forward_gdb_output
+ if manager.gdb_reader_thread is None:
+ manager.gdb_reader_thread = socketio.start_background_task(
+ target=read_and_forward_gdb_and_pty_output
)
logger.info("Created background thread to read gdb responses")
+@socketio.on("pty_interaction", namespace="/gdb_listener")
+def pty_interaction(message):
+ """Write a character to the user facing pty"""
+ debug_session = manager.debug_session_from_client_id(request.sid)
+ if not debug_session:
+ emit(
+ "error_running_gdb_command",
+ {"message": f"no gdb session available for client id {request.sid}"},
+ )
+ return
+
+ try:
+ data = message.get("data")
+ pty_name = data.get("pty_name")
+ if pty_name == "user_pty":
+ pty = debug_session.pty_for_gdb
+ elif pty_name == "program_pty":
+ pty = debug_session.pty_for_debugged_program
+ else:
+ raise ValueError(f"Unknown pty: {pty_name}")
+
+ action = data.get("action")
+ if action == "write":
+ key = data["key"]
+ pty.write(key)
+ elif action == "set_winsize":
+ pty.set_winsize(data["rows"], data["cols"])
+ else:
+ raise ValueError(f"Unknown action {action}")
+ except Exception:
+ err = traceback.format_exc()
+ logger.error(err)
+ emit("error_running_gdb_command", {"message": err})
+
+
@socketio.on("run_gdb_command", namespace="/gdb_listener")
-def run_gdb_command(message):
- """
- Endpoint for a websocket route.
- Runs a gdb command.
- Responds only if an error occurs when trying to write the command to
- gdb
- """
- controller = _state.get_controller_from_client_id(request.sid)
- if controller is not None:
+def run_gdb_command(message: Dict[str, str]):
+ """Write commands to gdbgui's gdb mi pty"""
+ client_id = request.sid # type: ignore
+ debug_session = manager.debug_session_from_client_id(client_id)
+ if not debug_session:
+ emit("error_running_gdb_command", {"message": "no session"})
+ return
+ pty_mi = debug_session.pygdbmi_controller
+ if pty_mi is not None:
try:
# the command (string) or commands (list) to run
- cmd = message["cmd"]
- controller.write(cmd, read_response=False)
+ cmds = message["cmd"]
+ for cmd in cmds:
+ pty_mi.write(
+ cmd + "\n",
+ timeout_sec=0,
+ raise_error_on_timeout=False,
+ read_response=False,
+ )
except Exception:
err = traceback.format_exc()
@@ -384,7 +424,7 @@ def send_msg_to_clients(client_ids, msg, error=False):
def remove_gdb_controller():
gdbpid = int(request.form.get("gdbpid"))
- orphaned_client_ids = _state.remove_gdb_controller_by_pid(gdbpid)
+ orphaned_client_ids = manager.remove_debug_session_by_pid(gdbpid)
num_removed = len(orphaned_client_ids)
send_msg_to_clients(
@@ -404,7 +444,7 @@ def remove_gdb_controller():
@socketio.on("disconnect", namespace="/gdb_listener")
def client_disconnected():
"""do nothing if client disconnects"""
- _state.disconnect_client(request.sid)
+ manager.disconnect_client(request.sid)
logger.info("Client websocket disconnected, id %s" % (request.sid))
@@ -413,28 +453,28 @@ def test_disconnect():
print("Client websocket disconnected", request.sid)
-def read_and_forward_gdb_output():
+def read_and_forward_gdb_and_pty_output():
"""A task that runs on a different thread, and emits websocket messages
of gdb responses"""
while True:
socketio.sleep(0.05)
- controllers_to_remove = []
- controller_items = _state.controller_to_client_ids.items()
- for controller, client_ids in controller_items:
+ debug_sessions_to_remove = []
+ for debug_session, client_ids in manager.debug_session_to_client_ids.items():
try:
try:
- response = controller.get_gdb_response(
+ response = debug_session.pygdbmi_controller.get_gdb_response(
timeout_sec=0, raise_error_on_timeout=False
)
- except NoGdbProcessError:
+
+ except Exception:
response = None
send_msg_to_clients(
client_ids,
"The underlying gdb process has been killed. This tab will no longer function as expected.",
error=True,
)
- controllers_to_remove.append(controller)
+ debug_sessions_to_remove.append(debug_session)
if response:
for client_id in client_ids:
@@ -454,12 +494,45 @@ def read_and_forward_gdb_output():
except Exception:
logger.error(traceback.format_exc())
- for controller in controllers_to_remove:
- _state.remove_gdb_controller(controller)
+ debug_sessions_to_remove += check_and_forward_pty_output()
+ for debug_session in set(debug_sessions_to_remove):
+ manager.remove_debug_session(debug_session)
-def server_error(obj):
- return jsonify(obj), 500
+def check_and_forward_pty_output() -> List[DebugSession]:
+ debug_sessions_to_remove = []
+ for debug_session, client_ids in manager.debug_session_to_client_ids.items():
+ try:
+ response = debug_session.pty_for_gdb.read()
+ if response is not None:
+ for client_id in client_ids:
+ socketio.emit(
+ "user_pty_response",
+ response,
+ namespace="/gdb_listener",
+ room=client_id,
+ )
+
+ response = debug_session.pty_for_debugged_program.read()
+ if response is not None:
+ for client_id in client_ids:
+ socketio.emit(
+ "program_pty_response",
+ response,
+ namespace="/gdb_listener",
+ room=client_id,
+ )
+ except Exception as e:
+ debug_sessions_to_remove.append(debug_session)
+ for client_id in client_ids:
+ socketio.emit(
+ "fatal_server_error",
+ {"message": str(e)},
+ namespace="/gdb_listener",
+ room=client_id,
+ )
+ logger.error(e, exc_info=True)
+ return debug_sessions_to_remove
def client_error(obj):
@@ -522,35 +595,28 @@ def wrapper(*args, **kwargs):
@authenticate
def gdbgui():
"""Render the main gdbgui interface"""
- interpreter = "lldb" if app.config["LLDB"] else "gdb"
gdbpid = request.args.get("gdbpid", 0)
- initial_gdb_user_command = request.args.get("initial_gdb_user_command", "")
-
+ gdb_command = request.args.get("gdb_command", app.config["gdb_command"])
add_csrf_token_to_session()
THEMES = ["monokai", "light"]
- # fmt: off
initial_data = {
"csrf_token": session["csrf_token"],
"gdbgui_version": __version__,
"gdbpid": gdbpid,
- "initial_gdb_user_command": initial_gdb_user_command,
- "interpreter": interpreter,
+ "gdb_command": gdb_command,
"initial_binary_and_args": app.config["initial_binary_and_args"],
"project_home": app.config["project_home"],
"remap_sources": app.config["remap_sources"],
- "rr": app.config["rr"],
"themes": THEMES,
"signals": SIGNAL_NAME_TO_OBJ,
"using_windows": USING_WINDOWS,
}
- # fmt: on
return render_template(
"gdbgui.html",
version=__version__,
debug=app.debug,
- interpreter=interpreter,
initial_data=initial_data,
themes=THEMES,
)
@@ -607,40 +673,32 @@ def dashboard():
GdbController instance"""
return render_template(
"dashboard.html",
- processes=_state.get_dashboard_data(),
+ gdbgui_sessions=manager.get_dashboard_data(),
csrf_token=session["csrf_token"],
+ default_command=app.config["gdb_command"],
)
-@app.route("/shutdown", methods=["GET"])
+@app.route("/dashboard_data", methods=["GET"])
@authenticate
-def shutdown_webview():
- add_csrf_token_to_session()
- return render_template(
- "shutdown.html", debug=app.debug, csrf_token=session["csrf_token"]
- )
-
-
-@app.route("/help")
-def help():
- return redirect("https://github.com/cs01/gdbgui/blob/master/HELP.md")
-
+def dashboard_data():
+ return jsonify(manager.get_dashboard_data())
-@app.route("/_shutdown", methods=["POST"])
-def _shutdown():
- try:
- _state.exit_all_gdb_processes()
- except Exception:
- logger.error("failed to exit gdb subprocces")
- logger.error(traceback.format_exc())
- pid = os.getpid()
- if app.debug:
- os.kill(pid, signal.SIGINT)
+@app.route("/kill_session", methods=["PUT"])
+@authenticate
+def kill_session():
+ pid = request.json.get("gdbpid")
+ if pid:
+ manager.remove_debug_session_by_pid(pid)
+ return jsonify({"success": True})
else:
- socketio.stop()
+ return Response("Missing required parameter: gdbpid", 401,)
- return jsonify({})
+
+@app.route("/help")
+def help_route():
+ return redirect("https://github.com/cs01/gdbgui/blob/master/HELP.md")
@app.route("/get_last_modified_unix_sec", methods=["GET"])
@@ -765,7 +823,9 @@ def get_gdbgui_auth_user_credentials(auth_file, user, password):
def get_parser():
- parser = argparse.ArgumentParser(description=__doc__)
+ parser = argparse.ArgumentParser(
+ description=__doc__, formatter_class=argparse.ArgumentDefaultsHelpFormatter,
+ )
gdb_group = parser.add_argument_group(title="gdb settings")
args_group = parser.add_mutually_exclusive_group()
@@ -775,36 +835,26 @@ def get_parser():
gdb_group.add_argument(
"-g",
- "--gdb",
- help="Path to debugger. Default: %s" % DEFAULT_GDB_EXECUTABLE,
+ "--gdb-cmd",
+ help="""
+ gdb binary and arguments to run. If passing arguments,
+ enclose in quotes.
+ If using rr, it should be specified here with
+ 'rr replay'.
+ Examples: gdb, /path/to/gdb, 'gdb --command=FILE -ix', 'rr replay'
+
+ """,
default=DEFAULT_GDB_EXECUTABLE,
)
- gdb_group.add_argument(
- "--gdb-args",
- help=(
- "Arguments passed directly to gdb when gdb is invoked. "
- 'For example,--gdb-args="--nx --tty=/dev/ttys002"'
- ),
- default="",
- )
- gdb_group.add_argument(
- "--rr",
- action="store_true",
- help=(
- "Use `rr replay` instead of gdb. Replays last recording by default. "
- "Replay arbitrary recording by passing recorded directory as an argument. "
- "i.e. gdbgui /recorded/dir --rr. See http://rr-project.org/."
- ),
- )
network.add_argument(
"-p",
"--port",
- help="The port on which gdbgui will be hosted. Default: %s" % DEFAULT_PORT,
+ help="The port on which gdbgui will be hosted",
default=DEFAULT_PORT,
)
network.add_argument(
"--host",
- help="The host ip address on which gdbgui serve. Default: %s" % DEFAULT_HOST,
+ help="The host ip address on which gdbgui serve",
default=DEFAULT_HOST,
)
network.add_argument(
@@ -847,7 +897,7 @@ def get_parser():
help=(
"Replace compile-time source paths to local source paths. "
"Pass valid JSON key/value pairs."
- 'i.e. --remap-sources=\'{"/buildmachine": "/home/chad"}\''
+ 'i.e. --remap-sources=\'{"/buildmachine": "/current/machine"}\''
),
)
other.add_argument(
@@ -856,11 +906,6 @@ def get_parser():
)
other.add_argument("-v", "--version", help="Print version", action="store_true")
- other.add_argument(
- "--hide-gdbgui-upgrades",
- help=argparse.SUPPRESS, # deprecated. left so calls to gdbgui don't break
- action="store_true",
- )
other.add_argument(
"-n",
"--no-browser",
@@ -879,22 +924,20 @@ def get_parser():
"Pass this flag when debugging gdbgui itself to automatically reload the server when changes are detected",
action="store_true",
)
-
args_group.add_argument(
- "cmd",
+ "debug_program",
nargs="?",
- type=lambda prog: [prog],
- help="The executable file and any arguments to pass to it."
+ help="The executable file you wish to debug, and any arguments to pass to it."
" To pass flags to the binary, wrap in quotes, or use --args instead."
" Example: gdbgui ./mybinary [other-gdbgui-args...]"
" Example: gdbgui './mybinary myarg -flag1 -flag2' [other gdbgui args...]",
- default=[],
+ default=None,
)
args_group.add_argument(
"--args",
nargs=argparse.REMAINDER,
- help="Specify the executable file and any arguments to pass to it. All arguments are"
- " taken literally, so if used, this must be the last argument"
+ help="Specify the executable file you wish to debug and any arguments to pass to it. All arguments are"
+ " taken literally, so if used, this must be the last argument. This can also be specified later in the frontend."
" passed to gdbgui."
" Example: gdbgui [...] --args ./mybinary myarg -flag1 -flag2",
default=[],
@@ -902,28 +945,33 @@ def get_parser():
return parser
+def get_initial_binary_and_args(
+ user_supplied_args: List[str], debug_program_and_args: Optional[str]
+) -> List[str]:
+ if debug_program_and_args:
+ # passed via positional
+ return shlex.split(debug_program_and_args)
+ else:
+ # passed via --args
+ return user_supplied_args
+
+
def main():
"""Entry point from command line"""
parser = get_parser()
args = parser.parse_args()
-
- if args.debug:
- logger.setLevel(logging.NOTSET)
-
if args.version:
print(__version__)
return
- cmd = args.cmd or args.args
-
if args.no_browser and args.browser:
print("Cannot specify no-browser and browser. Must specify one or the other.")
exit(1)
- app.config["initial_binary_and_args"] = cmd
- app.config["gdb_args"] = shlex.split(args.gdb_args)
- app.config["rr"] = args.rr
- app.config["gdb_path"] = args.gdb
+ app.config["gdb_command"] = args.gdb_cmd
+ app.config["initial_binary_and_args"] = get_initial_binary_and_args(
+ args.args, args.debug_program
+ )
app.config["gdbgui_auth_user_credentials"] = get_gdbgui_auth_user_credentials(
args.auth_file, args.user, args.password
)
@@ -938,7 +986,6 @@ def main():
print(e)
exit(1)
- verify_gdb_exists(app.config["gdb_path"])
if args.remote:
args.host = "0.0.0.0"
args.no_browser = True
@@ -948,7 +995,7 @@ def main():
"accessible IP address. See gdbgui --help."
)
- if warn_startup_with_shell_off(platform.platform().lower(), args.gdb_args):
+ if warn_startup_with_shell_off(platform.platform().lower(), args.gdb_cmd):
logger.warning(
"You may need to set startup-with-shell off when running on a mac. i.e.\n"
" gdbgui --gdb-args='--init-eval-command=\"set startup-with-shell off\"'\n"
@@ -957,7 +1004,6 @@ def main():
)
setup_backend(
- serve=True,
host=args.host,
port=int(args.port),
debug=bool(args.debug),
@@ -968,7 +1014,7 @@ def main():
)
-def warn_startup_with_shell_off(platform, gdb_args):
+def warn_startup_with_shell_off(platform: str, gdb_args: str):
"""return True if user may need to turn shell off
if mac OS version is 16 (sierra) or higher, may need to set shell off due
to os's security requirements
diff --git a/gdbgui/ptylib.py b/gdbgui/ptylib.py
new file mode 100644
index 00000000..7f2443c1
--- /dev/null
+++ b/gdbgui/ptylib.py
@@ -0,0 +1,83 @@
+import os
+
+USING_WINDOWS = os.name == "nt"
+if USING_WINDOWS:
+ raise RuntimeError(
+ "Windows is not supported at this time. "
+ + "Versions lower than 0.14.x. are Windows compatible."
+ )
+import pty
+import select
+import struct
+import signal
+from typing import Optional
+import shlex
+import termios
+import fcntl
+
+
+class Pty:
+ max_read_bytes = 1024 * 20
+
+ def __init__(self, *, cmd: Optional[str] = None, echo: bool = True):
+ if cmd:
+ (child_pid, fd) = pty.fork()
+ if child_pid == 0:
+ # this is the child process fork.
+ # anything printed here will show up in the pty, including the output
+ # of this subprocess
+ def sigint_handler(_sig, _frame):
+ # prevent SIGINT (ctrl+c) from exiting
+ # the whole program
+ pass
+
+ signal.signal(signal.SIGINT, sigint_handler)
+ args = shlex.split(cmd)
+ os.execvp(args[0], args)
+
+ else:
+ # this is the parent process fork.
+ # store child fd and pid
+ self.stdin = fd
+ self.stdout = fd
+ self.pid = child_pid
+ else:
+ (master, slave) = pty.openpty()
+ self.stdin = master
+ self.stdout = master
+ self.name = os.ttyname(slave)
+ self.set_echo(echo)
+
+ def set_echo(self, echo_on: bool) -> None:
+ (iflag, oflag, cflag, lflag, ispeed, ospeed, cc) = termios.tcgetattr(self.stdin)
+ if echo_on:
+ lflag = lflag & termios.ECHO # type: ignore
+ else:
+ lflag = lflag & ~termios.ECHO # type: ignore
+ termios.tcsetattr(
+ self.stdin,
+ termios.TCSANOW,
+ [iflag, oflag, cflag, lflag, ispeed, ospeed, cc],
+ )
+
+ def set_winsize(self, rows: int, cols: int):
+ xpix = 0
+ ypix = 0
+ winsize = struct.pack("HHHH", rows, cols, xpix, ypix)
+ if self.stdin is None:
+ raise RuntimeError("fd stdin not assigned")
+ fcntl.ioctl(self.stdin, termios.TIOCSWINSZ, winsize)
+
+ def read(self) -> Optional[str]:
+ if self.stdout is None:
+ return "done"
+ timeout_sec = 0
+ (data_to_read, _, _) = select.select([self.stdout], [], [], timeout_sec)
+ if data_to_read:
+ response = os.read(self.stdout, self.max_read_bytes).decode()
+ return response
+ return None
+
+ def write(self, data: str):
+ edata = data.encode()
+ os.write(self.stdin, edata)
diff --git a/gdbgui/sessionmanager.py b/gdbgui/sessionmanager.py
new file mode 100644
index 00000000..8e987091
--- /dev/null
+++ b/gdbgui/sessionmanager.py
@@ -0,0 +1,171 @@
+import logging
+import traceback
+from typing import Any, Dict, List, Optional, Set
+from pygdbmi.IoManager import IoManager
+from collections import defaultdict
+from .ptylib import Pty
+import os
+import datetime
+import signal
+
+logger = logging.getLogger(__name__)
+
+
+class DebugSession:
+ def __init__(
+ self,
+ *,
+ pygdbmi_controller: IoManager,
+ pty_for_gdbgui: Pty,
+ pty_for_gdb: Pty,
+ pty_for_debugged_program: Pty,
+ command: str,
+ mi_version: str,
+ pid: int,
+ ):
+ self.command = command
+ self.pygdbmi_controller = pygdbmi_controller
+ self.pty_for_gdbgui = pty_for_gdbgui
+ self.pty_for_gdb = pty_for_gdb
+ self.pty_for_debugged_program = pty_for_debugged_program
+ self.mi_version = mi_version
+ self.pid = pid
+ self.start_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
+ self.client_ids: Set[str] = set()
+
+ def terminate(self):
+ if self.pid:
+ try:
+ os.kill(self.pid, signal.SIGKILL)
+ except Exception as e:
+ logger.error(f"Failed to kill pid {self.pid}: {str(e)}")
+
+ self.pygdbmi_controller = None
+
+ def to_dict(self):
+ return {
+ "pid": self.pid,
+ "start_time": self.start_time,
+ "command": self.command,
+ "c2": "hi",
+ "client_ids": list(self.client_ids),
+ }
+
+ def add_client(self, client_id: str):
+ self.client_ids.add(client_id)
+
+ def remove_client(self, client_id: str):
+ self.client_ids.discard(client_id)
+ if len(self.client_ids) == 0:
+ self.terminate()
+
+
+class SessionManager(object):
+ def __init__(self, app_config: Dict[str, Any]):
+ self.debug_session_to_client_ids: Dict[DebugSession, List[str]] = defaultdict(
+ list
+ ) # key is controller, val is list of client ids
+
+ self.gdb_reader_thread = None
+ self.config = app_config
+
+ def connect_client_to_debug_session(
+ self, *, desired_gdbpid: int, client_id: str
+ ) -> DebugSession:
+ debug_session = self.debug_session_from_pid(desired_gdbpid)
+
+ if not debug_session:
+ raise ValueError(f"No existing gdb process with pid {desired_gdbpid}")
+ debug_session.add_client(client_id)
+ self.debug_session_to_client_ids[debug_session].append(client_id)
+ return debug_session
+
+ def add_new_debug_session(
+ self, *, gdb_command: str, mi_version: str, client_id: str
+ ) -> DebugSession:
+ pty_for_debugged_program = Pty()
+ pty_for_gdbgui = Pty(echo=False)
+ gdbgui_startup_cmds = [
+ f"new-ui {mi_version} {pty_for_gdbgui.name}",
+ f"set inferior-tty {pty_for_debugged_program.name}",
+ ]
+ # instead of writing to the pty after it starts, add startup
+ # commands to gdb. This allows gdb to be run as sudo and prompt for a
+ # password, for example.
+ gdbgui_startup_cmds_str = " ".join([f"-ex='{c}'" for c in gdbgui_startup_cmds])
+ pty_for_gdb = Pty(cmd=f"{gdb_command} {gdbgui_startup_cmds_str}")
+
+ pid = pty_for_gdb.pid
+ debug_session = DebugSession(
+ pygdbmi_controller=IoManager(
+ os.fdopen(pty_for_gdbgui.stdin, mode="wb", buffering=0),
+ os.fdopen(pty_for_gdbgui.stdout, mode="rb", buffering=0),
+ None,
+ ),
+ pty_for_gdbgui=pty_for_gdbgui,
+ pty_for_gdb=pty_for_gdb,
+ pty_for_debugged_program=pty_for_debugged_program,
+ command=gdb_command,
+ mi_version=mi_version,
+ pid=pid,
+ )
+ debug_session.add_client(client_id)
+ self.debug_session_to_client_ids[debug_session] = [client_id]
+ return debug_session
+
+ def remove_debug_session_by_pid(self, gdbpid: int) -> List[str]:
+ debug_session = self.debug_session_from_pid(gdbpid)
+ if debug_session:
+ orphaned_client_ids = self.remove_debug_session(debug_session)
+ else:
+ logger.info(f"could not find debug session with gdb pid {gdbpid}")
+ orphaned_client_ids = []
+ return orphaned_client_ids
+
+ def remove_debug_session(self, debug_session: DebugSession) -> List[str]:
+ logger.info(f"Removing debug session for pid {debug_session.pid}")
+ try:
+ debug_session.terminate()
+ except Exception:
+ logger.error(traceback.format_exc())
+ orphaned_client_ids = self.debug_session_to_client_ids.pop(debug_session, [])
+ return orphaned_client_ids
+
+ def remove_debug_sessions_with_no_clients(self) -> None:
+ to_remove = []
+ for debug_session, _ in self.debug_session_to_client_ids.items():
+ if len(debug_session.client_ids) == 0:
+ to_remove.append(debug_session)
+ for debug_session in to_remove:
+ self.remove_debug_session(debug_session)
+
+ def get_pid_from_debug_session(self, debug_session: DebugSession) -> Optional[int]:
+ if debug_session and debug_session.pid:
+ return debug_session.pid
+ return None
+
+ def debug_session_from_pid(self, pid: int) -> Optional[DebugSession]:
+ for debug_session in self.debug_session_to_client_ids:
+ this_pid = self.get_pid_from_debug_session(debug_session)
+ if this_pid == pid:
+ return debug_session
+ return None
+
+ def debug_session_from_client_id(self, client_id: str) -> Optional[DebugSession]:
+ for debug_session, client_ids in self.debug_session_to_client_ids.items():
+ if client_id in client_ids:
+ return debug_session
+ return None
+
+ def get_dashboard_data(self) -> List[DebugSession]:
+ return [
+ debug_session.to_dict()
+ for debug_session in self.debug_session_to_client_ids.keys()
+ ]
+
+ def disconnect_client(self, client_id: str):
+ for debug_session, client_ids in self.debug_session_to_client_ids.items():
+ if client_id in client_ids:
+ client_ids.remove(client_id)
+ debug_session.remove_client(client_id)
+ self.remove_debug_sessions_with_no_clients()
diff --git a/gdbgui/src/js/Actions.js b/gdbgui/src/js/Actions.ts
similarity index 78%
rename from gdbgui/src/js/Actions.js
rename to gdbgui/src/js/Actions.ts
index 36c50150..9a3a00eb 100644
--- a/gdbgui/src/js/Actions.js
+++ b/gdbgui/src/js/Actions.ts
@@ -1,9 +1,9 @@
import { store } from "statorgfc";
-import GdbApi from "./GdbApi.jsx";
-import SourceCode from "./SourceCode.jsx";
-import Locals from "./Locals.jsx";
-import Memory from "./Memory.jsx";
-import constants from "./constants.js";
+import GdbApi from "./GdbApi";
+import SourceCode from "./SourceCode";
+import Locals from "./Locals";
+import Memory from "./Memory";
+import constants from "./constants";
import React from "react";
void React; // using jsx implicity uses React
@@ -32,8 +32,11 @@ const Actions = {
constants.source_code_selection_states.PAUSED_FRAME
);
store.set("paused_on_frame", frame);
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'fullname' does not exist on type '{}'.
store.set("fullname_to_render", frame.fullname);
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'line' does not exist on type '{}'.
store.set("line_of_source_to_flash", parseInt(frame.line));
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'addr' does not exist on type '{}'.
store.set("current_assembly_address", frame.addr);
store.set("source_code_infinite_scrolling", false);
SourceCode.make_current_line_visible();
@@ -54,35 +57,43 @@ const Actions = {
refresh_state_for_gdb_pause: function() {
GdbApi.run_gdb_command(GdbApi._get_refresh_state_for_pause_cmds());
},
- execute_console_command: function(command) {
+ execute_console_command: function(command: any) {
if (store.get("refresh_state_after_sending_console_command")) {
GdbApi.run_command_and_refresh_state(command);
} else {
GdbApi.run_gdb_command(command);
}
},
+ onConsoleCommandRun: function() {
+ if (store.get("refresh_state_after_sending_console_command")) {
+ GdbApi.run_gdb_command(GdbApi._get_refresh_state_for_pause_cmds());
+ }
+ },
clear_console: function() {
store.set("gdb_console_entries", []);
},
- add_console_entries: function(entries, type) {
- if (!_.isArray(entries)) {
+ add_console_entries: function(entries: any, type: any) {
+ if (type === constants.console_entry_type.STD_OUT) {
+ // ignore
+ return;
+ }
+ if (!Array.isArray(entries)) {
entries = [entries];
}
- const typed_entries = entries.map(entry => {
- return { type: type, value: entry };
- });
-
- const previous_entries = store.get("gdb_console_entries");
- const MAX_NUM_ENTRIES = 1000;
- const new_entries = previous_entries.concat(typed_entries);
- if (new_entries.length > MAX_NUM_ENTRIES) {
- new_entries.splice(0, new_entries.length - MAX_NUM_ENTRIES);
+ const pty = store.get("gdbguiPty");
+ if (pty) {
+ entries.forEach((data: any) => {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'colorTypeMap' does not exist on type 'Re... Remove this comment to see the full error message
+ pty.write(constants.colorTypeMap[type] ?? constants.xtermColors["reset"]);
+ pty.writeln(data);
+ pty.write(constants.xtermColors["reset"]);
+ });
+ } else {
+ console.error("Pty not available. New entries are:", entries);
}
-
- store.set("gdb_console_entries", new_entries);
},
- add_gdb_response_to_console(mi_obj) {
+ add_gdb_response_to_console(mi_obj: any) {
if (!mi_obj) {
return;
}
@@ -120,12 +131,12 @@ const Actions = {
toggle_modal_visibility() {
store.set("show_modal", !store.get("show_modal"));
},
- show_modal(header, body) {
+ show_modal(header: any, body: any) {
store.set("modal_header", header);
store.set("modal_body", body);
store.set("show_modal", true);
},
- set_gdb_binary_and_arguments(binary, args) {
+ set_gdb_binary_and_arguments(binary: any, args: any) {
// remove list of source files associated with the loaded binary since we're loading a new one
store.set("source_file_paths", []);
store.set("language", "c_family");
@@ -135,7 +146,7 @@ const Actions = {
GdbApi.run_gdb_command(cmds);
GdbApi.get_inferior_binary_last_modified_unix_sec(binary);
},
- connect_to_gdbserver(user_input) {
+ connect_to_gdbserver(user_input: any) {
// https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Target-Manipulation.html#GDB_002fMI-Target-Manipulation
store.set("source_file_paths", []);
store.set("language", "c_family");
@@ -162,7 +173,7 @@ const Actions = {
}
GdbApi.run_gdb_command(cmds);
},
- attach_to_process(user_input) {
+ attach_to_process(user_input: any) {
// https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Target-Manipulation.html#GDB_002fMI-Target-Manipulation
GdbApi.run_gdb_command(`-target-attach ${user_input}`);
},
@@ -170,12 +181,12 @@ const Actions = {
store.set("source_file_paths", []);
GdbApi.run_gdb_command("-file-list-exec-source-files");
},
- view_file(fullname, line) {
+ view_file(fullname: any, line: any) {
store.set("fullname_to_render", fullname);
store.set("source_code_infinite_scrolling", false);
Actions.set_line_state(line);
},
- set_line_state(line) {
+ set_line_state(line: any) {
store.set("source_code_infinite_scrolling", false);
store.set(
"source_code_selection_state",
@@ -192,30 +203,19 @@ const Actions = {
}
store.set("cached_source_files", cached_source_files);
},
- update_max_lines_of_code_to_fetch(new_value) {
+ update_max_lines_of_code_to_fetch(new_value: any) {
if (new_value <= 0) {
new_value = constants.default_max_lines_of_code_to_fetch;
}
store.set("max_lines_of_code_to_fetch", new_value);
localStorage.setItem("max_lines_of_code_to_fetch", JSON.stringify(new_value));
},
- show_upgrade_modal() {
- const body = (
-
- );
- Actions.show_modal("upgrade to pro for this feature", body);
- },
- send_signal(signal_name, pid) {
+ send_signal(signal_name: any, pid: any) {
$.ajax({
beforeSend: function(xhr) {
xhr.setRequestHeader(
"x-csrftoken",
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'initial_data'.
initial_data.csrf_token
); /* global initial_data */
},
@@ -232,6 +232,7 @@ const Actions = {
error: function(response) {
if (response.responseJSON && response.responseJSON.message) {
Actions.add_console_entries(
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
_.escape(response.responseJSON.message),
constants.console_entry_type.STD_ERR
);
diff --git a/gdbgui/src/js/BinaryLoader.jsx b/gdbgui/src/js/BinaryLoader.tsx
similarity index 76%
rename from gdbgui/src/js/BinaryLoader.jsx
rename to gdbgui/src/js/BinaryLoader.tsx
index 33c9c59a..0bc187fc 100644
--- a/gdbgui/src/js/BinaryLoader.jsx
+++ b/gdbgui/src/js/BinaryLoader.tsx
@@ -1,8 +1,8 @@
import React from "react";
-import constants from "./constants.js";
-import Actions from "./Actions.js";
-import Util from "./Util.js";
-import ToolTipTourguide from "./ToolTipTourguide.jsx";
+import constants from "./constants";
+import Actions from "./Actions";
+import Util from "./Util";
+import ToolTipTourguide from "./ToolTipTourguide";
const TARGET_TYPES = {
file: "file",
@@ -11,29 +11,38 @@ const TARGET_TYPES = {
target_download: "target_download"
};
+type State = any;
+
/**
* The BinaryLoader component allows the user to select their binary
* and specify inputs
*/
-class BinaryLoader extends React.Component {
- constructor(props) {
+class BinaryLoader extends React.Component<{}, State> {
+ constructor(props: {}) {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
this.state = {
past_binaries: [],
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'initial_user_input' does not exist on ty... Remove this comment to see the full error message
user_input: props.initial_user_input.join(" "),
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'initial_user_input' does not exist on ty... Remove this comment to see the full error message
initial_set_target_app: props.initial_user_input.length, // if user supplied initial binary, load it immediately
target_type: TARGET_TYPES.file
};
try {
+ // @ts-expect-error ts-migrate(2542) FIXME: Index signature in type 'Readonly' only permi... Remove this comment to see the full error message
this.state.past_binaries = _.uniq(
+ // @ts-expect-error ts-migrate(2345) FIXME: Type 'null' is not assignable to type 'string'.
JSON.parse(localStorage.getItem("past_binaries"))
);
if (!this.state.user_input) {
let most_recent_binary = this.state.past_binaries[0];
+ // @ts-expect-error ts-migrate(2542) FIXME: Index signature in type 'Readonly' only permi... Remove this comment to see the full error message
this.state.user_input = most_recent_binary;
}
} catch (err) {
+ // @ts-expect-error ts-migrate(2542) FIXME: Index signature in type 'Readonly' only permi... Remove this comment to see the full error message
this.state.past_binaries = [];
}
}
@@ -120,6 +129,7 @@ class BinaryLoader extends React.Component {
/>
- {this.state.past_binaries.map((b, i) => (
+ {this.state.past_binaries.map((b: any, i: any) => (
{b}
))}
@@ -167,12 +178,13 @@ class BinaryLoader extends React.Component {
this.set_target_app();
}
}
- onkeyup_user_input(e) {
+ onkeyup_user_input(e: any) {
if (e.keyCode === constants.ENTER_BUTTON_NUM) {
this.set_target_app();
}
}
- onchange_user_inpu(e) {
+ onchange_user_inpu(e: any) {
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'initial_data'.
if (initial_data.using_windows) {
// replace backslashes with forward slashes when using windows
this.setState({ user_input: e.target.value.replace(/\\/g, "/") });
@@ -184,12 +196,15 @@ class BinaryLoader extends React.Component {
this.set_target_app();
}
// save to list of binaries used that autopopulates the input dropdown
- _add_user_input_to_history(binary_and_args) {
- _.remove(this.state.past_binaries, i => i === binary_and_args);
+ _add_user_input_to_history(binary_and_args: any) {
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
+ _.remove(this.state.past_binaries, (i: any) => i === binary_and_args);
this.state.past_binaries.unshift(binary_and_args); // add to beginning
this.setState({ past_binaries: this.state.past_binaries });
+ // @ts-expect-error ts-migrate(2345) FIXME: Type 'never[]' is not assignable to type 'string'.
localStorage.setItem("past_binaries", JSON.stringify(this.state.past_binaries) || []);
+ // @ts-expect-error ts-migrate(2345) FIXME: Type 'null' is not assignable to type 'string'.
let num_gdbgui_sessions = parseInt(localStorage.getItem("num_gdbgui_sessions"));
if (isNaN(num_gdbgui_sessions)) {
num_gdbgui_sessions = 0;
@@ -201,10 +216,10 @@ class BinaryLoader extends React.Component {
* @param {string} user_input raw input from user
* @return {Object} { the binary (string) and arguments (array) parsed from user input }
*/
- _parse_binary_and_args_from_user_input(user_input) {
+ _parse_binary_and_args_from_user_input(user_input: any) {
let list_of_params = Util.string_to_array_safe_quotes(user_input),
binary = "",
- args = [],
+ args: any = [],
len = list_of_params.length;
if (len === 1) {
binary = list_of_params[0];
@@ -215,9 +230,9 @@ class BinaryLoader extends React.Component {
return { binary: binary, args: args.join(" ") };
}
set_target_app() {
- let user_input = _.trim(this.state.user_input);
+ let user_input = this.state.user_input.trim();
- if (_.trim(user_input) === "") {
+ if (user_input === "") {
Actions.add_console_entries(
"input cannot be empty",
constants.console_entry_type.GDBGUI_OUTPUT
diff --git a/gdbgui/src/js/Breakpoints.jsx b/gdbgui/src/js/Breakpoints.tsx
similarity index 76%
rename from gdbgui/src/js/Breakpoints.jsx
rename to gdbgui/src/js/Breakpoints.tsx
index 6b189343..9ab482e4 100644
--- a/gdbgui/src/js/Breakpoints.jsx
+++ b/gdbgui/src/js/Breakpoints.tsx
@@ -1,47 +1,57 @@
import React from "react";
import { store } from "statorgfc";
-import GdbApi from "./GdbApi.jsx";
-import Actions from "./Actions.js";
-import Util from "./Util.js";
-import FileOps from "./FileOps.jsx";
+import GdbApi from "./GdbApi";
+import Actions from "./Actions";
+import Util from "./Util";
+import FileOps from "./FileOps";
import { FileLink } from "./Links";
-import constants from "./constants.js";
+import constants from "./constants";
const BreakpointSourceLineCache = {
_cache: {},
- get_line: function(fullname, linenum) {
+ get_line: function(fullname: any, linenum: any) {
if (
+ // @ts-expect-error ts-migrate(7053) FIXME: Property 'fullname' does not exist on type '{}'.
BreakpointSourceLineCache._cache["fullname"] !== undefined &&
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
_.isString(BreakpointSourceLineCache._cache["fullname"][linenum])
) {
+ // @ts-expect-error ts-migrate(7053) FIXME: Property 'fullname' does not exist on type '{}'.
return BreakpointSourceLineCache._cache["fullname"][linenum];
}
return null;
},
- add_line: function(fullname, linenum, escaped_text) {
+ add_line: function(fullname: any, linenum: any, escaped_text: any) {
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
if (!_.isObject(BreakpointSourceLineCache._cache["fullname"])) {
+ // @ts-expect-error ts-migrate(7053) FIXME: Property 'fullname' does not exist on type '{}'.
BreakpointSourceLineCache._cache["fullname"] = {};
}
+ // @ts-expect-error ts-migrate(7053) FIXME: Property 'fullname' does not exist on type '{}'.
BreakpointSourceLineCache._cache["fullname"][linenum] = escaped_text;
}
};
-class Breakpoint extends React.Component {
- constructor(props) {
+type BreakpointState = any;
+
+class Breakpoint extends React.Component<{}, BreakpointState> {
+ constructor(props: {}) {
super(props);
this.state = {
breakpoint_condition: "",
editing_breakpoint_condition: false
};
}
- get_source_line(fullname, linenum) {
+ get_source_line(fullname: any, linenum: any) {
// if we have the source file cached, we can display the line of text
const MAX_CHARS_TO_SHOW_FROM_SOURCE = 40;
let line = null;
if (BreakpointSourceLineCache.get_line(fullname, linenum)) {
line = BreakpointSourceLineCache.get_line(fullname, linenum);
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 3 arguments, but got 2.
} else if (FileOps.line_is_cached(fullname, linenum)) {
let syntax_highlighted_line = FileOps.get_line_from_file(fullname, linenum);
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
line = _.trim(Util.get_text_from_html(syntax_highlighted_line));
if (line.length > MAX_CHARS_TO_SHOW_FROM_SOURCE) {
@@ -59,7 +69,7 @@ class Breakpoint extends React.Component {
}
return "(file not cached)";
}
- get_delete_jsx(bkpt_num_to_delete) {
+ get_delete_jsx(bkpt_num_to_delete: any) {
return (
);
}
- get_num_times_hit(bkpt) {
+ get_num_times_hit(bkpt: any) {
if (
bkpt.times === undefined || // E.g. 'bkpt' is a child breakpoint
bkpt.times == 0
@@ -86,24 +96,25 @@ class Breakpoint extends React.Component {
return `${bkpt.times} hits`;
}
}
- on_change_bkpt_cond(e) {
+ on_change_bkpt_cond(e: any) {
this.setState({
breakpoint_condition: e.target.value,
editing_breakpoint_condition: true
});
}
- on_key_up_bktp_cond(number, e) {
+ on_key_up_bktp_cond(number: any, e: any) {
if (e.keyCode === constants.ENTER_BUTTON_NUM) {
this.setState({ editing_breakpoint_condition: false });
Breakpoints.set_breakpoint_condition(e.target.value, number);
}
}
- on_break_cond_click(e) {
+ on_break_cond_click(e: any) {
this.setState({
editing_breakpoint_condition: true
});
}
render() {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'bkpt' does not exist on type 'Readonly<{... Remove this comment to see the full error message
let b = this.props.bkpt,
checked = b.enabled === "y" ? "checked" : "",
source_line = this.get_source_line(b.fullname_to_display, b.line);
@@ -219,8 +230,7 @@ class Breakpoint extends React.Component {
style={{
width: "100%",
fontSize: "0.9em",
- borderWidth: "1px",
- borderColor: "black"
+ borderWidth: "0px"
}}
className="lighttext table-condensed"
>
@@ -229,6 +239,7 @@ class Breakpoint extends React.Component {
Breakpoints.enable_or_disable_bkpt(checked, b.number)}
/>
@@ -252,12 +263,15 @@ class Breakpoint extends React.Component {
class Breakpoints extends React.Component {
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(this, ["breakpoints"]);
}
render() {
let breakpoints_jsx = [];
for (let b of store.get("breakpoints")) {
+ // @ts-expect-error ts-migrate(2322) FIXME: Property 'bkpt' does not exist on type 'IntrinsicA... Remove this comment to see the full error message
breakpoints_jsx.push( );
}
@@ -267,37 +281,37 @@ class Breakpoints extends React.Component {
return no breakpoints ;
}
}
- static enable_or_disable_bkpt(checked, bkpt_num) {
+ static enable_or_disable_bkpt(checked: any, bkpt_num: any) {
if (checked) {
GdbApi.run_gdb_command([`-break-disable ${bkpt_num}`, GdbApi.get_break_list_cmd()]);
} else {
GdbApi.run_gdb_command([`-break-enable ${bkpt_num}`, GdbApi.get_break_list_cmd()]);
}
}
- static set_breakpoint_condition(condition, bkpt_num) {
+ static set_breakpoint_condition(condition: any, bkpt_num: any) {
GdbApi.run_gdb_command([
`-break-condition ${bkpt_num} ${condition}`,
GdbApi.get_break_list_cmd()
]);
}
- static remove_breakpoint_if_present(fullname, line) {
+ static remove_breakpoint_if_present(fullname: any, line: any) {
if (Breakpoints.has_breakpoint(fullname, line)) {
let number = Breakpoints.get_breakpoint_number(fullname, line);
let cmd = [GdbApi.get_delete_break_cmd(number), GdbApi.get_break_list_cmd()];
GdbApi.run_gdb_command(cmd);
}
}
- static add_or_remove_breakpoint(fullname, line) {
+ static add_or_remove_breakpoint(fullname: any, line: any) {
if (Breakpoints.has_breakpoint(fullname, line)) {
Breakpoints.remove_breakpoint_if_present(fullname, line);
} else {
Breakpoints.add_breakpoint(fullname, line);
}
}
- static add_breakpoint(fullname, line) {
+ static add_breakpoint(fullname: any, line: any) {
GdbApi.run_gdb_command(GdbApi.get_insert_break_cmd(fullname, line));
}
- static has_breakpoint(fullname, line) {
+ static has_breakpoint(fullname: any, line: any) {
let bkpts = store.get("breakpoints");
for (let b of bkpts) {
if (b.fullname === fullname && b.line == line) {
@@ -306,7 +320,7 @@ class Breakpoints extends React.Component {
}
return false;
}
- static get_breakpoint_number(fullname, line) {
+ static get_breakpoint_number(fullname: any, line: any) {
let bkpts = store.get("breakpoints");
for (let b of bkpts) {
if (b.fullname === fullname && b.line == line) {
@@ -315,31 +329,31 @@ class Breakpoints extends React.Component {
}
console.error(`could not find breakpoint for ${fullname}:${line}`);
}
- static delete_breakpoint(breakpoint_number) {
+ static delete_breakpoint(breakpoint_number: any) {
GdbApi.run_gdb_command([
GdbApi.get_delete_break_cmd(breakpoint_number),
GdbApi.get_break_list_cmd()
]);
}
- static get_breakpoint_lines_for_file(fullname) {
+ static get_breakpoint_lines_for_file(fullname: any) {
return store
.get("breakpoints")
- .filter(b => b.fullname_to_display === fullname && b.enabled === "y")
- .map(b => parseInt(b.line));
+ .filter((b: any) => b.fullname_to_display === fullname && b.enabled === "y")
+ .map((b: any) => parseInt(b.line));
}
- static get_disabled_breakpoint_lines_for_file(fullname) {
+ static get_disabled_breakpoint_lines_for_file(fullname: any) {
return store
.get("breakpoints")
- .filter(b => b.fullname_to_display === fullname && b.enabled !== "y")
- .map(b => parseInt(b.line));
+ .filter((b: any) => b.fullname_to_display === fullname && b.enabled !== "y")
+ .map((b: any) => parseInt(b.line));
}
- static get_conditional_breakpoint_lines_for_file(fullname) {
+ static get_conditional_breakpoint_lines_for_file(fullname: any) {
return store
.get("breakpoints")
- .filter(b => b.fullname_to_display === fullname && b.cond !== undefined)
- .map(b => parseInt(b.line));
+ .filter((b: any) => b.fullname_to_display === fullname && b.cond !== undefined)
+ .map((b: any) => parseInt(b.line));
}
- static save_breakpoints(payload) {
+ static save_breakpoints(payload: any) {
store.set("breakpoints", []);
if (payload && payload.BreakpointTable && payload.BreakpointTable.body) {
for (let breakpoint of payload.BreakpointTable.body) {
@@ -347,7 +361,7 @@ class Breakpoints extends React.Component {
}
}
}
- static save_breakpoint(breakpoint) {
+ static save_breakpoint(breakpoint: any) {
let bkpt = Object.assign({}, breakpoint);
bkpt.is_parent_breakpoint = bkpt.addr === "(MULTIPLE)";
diff --git a/gdbgui/src/js/ControlButtons.jsx b/gdbgui/src/js/ControlButtons.tsx
similarity index 80%
rename from gdbgui/src/js/ControlButtons.jsx
rename to gdbgui/src/js/ControlButtons.tsx
index bbc6b758..d9c36ea8 100644
--- a/gdbgui/src/js/ControlButtons.jsx
+++ b/gdbgui/src/js/ControlButtons.tsx
@@ -1,12 +1,16 @@
import React from "react";
-import Actions from "./Actions.js";
-import GdbApi from "./GdbApi.jsx";
+import Actions from "./Actions";
+import GdbApi from "./GdbApi";
import { store } from "statorgfc";
-class ControlButtons extends React.Component {
+type State = any;
+
+class ControlButtons extends React.Component<{}, State> {
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(this, ["gdb_pid"]);
}
render() {
@@ -30,6 +34,7 @@ class ControlButtons extends React.Component {
type="button"
title={
"Continue until breakpoint is hit or inferior program exits keyboard shortcut: c" +
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'initial_data'.
(initial_data.rr ? ". shift + c for reverse." : "")
}
className={btn_class}
@@ -40,7 +45,7 @@ class ControlButtons extends React.Component {
Actions.send_signal("SIGINT", this.state.gdb_pid)}
type="button"
- title="Send Interrupt signal (SIGINT) to gdb process to pause it and allow interaction with it"
+ title="Send Interrupt signal (SIGINT) to gdb process to pause it (if it's running)"
className={btn_class}
>
@@ -52,6 +57,7 @@ class ControlButtons extends React.Component {
type="button"
title={
"Step over next function call keyboard shortcut: n or right arrow" +
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'initial_data'.
(initial_data.rr ? ". shift + n for reverse." : "")
}
className={btn_class}
@@ -65,6 +71,7 @@ class ControlButtons extends React.Component {
type="button"
title={
"Step into next function call keyboard shortcut: s or down arrow" +
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'initial_data'.
(initial_data.rr ? ". shift + s for reverse." : "")
}
className={btn_class}
@@ -88,6 +95,7 @@ class ControlButtons extends React.Component {
type="button"
title={
"Next Instruction: Execute one machine instruction, stepping over function calls keyboard shortcut: m" +
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'initial_data'.
(initial_data.rr ? ". shift + m for reverse." : "")
}
className="btn btn-default"
@@ -100,6 +108,7 @@ class ControlButtons extends React.Component {
type="button"
title={
"Step Instruction: Execute one machine instruction, stepping into function calls keyboard shortcut: ','" +
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'initial_data'.
(initial_data.rr ? ". shift + , for reverse." : "")
}
className="btn btn-default"
diff --git a/gdbgui/src/js/CopyToClipboard.tsx b/gdbgui/src/js/CopyToClipboard.tsx
index 95a6f3ca..78477f34 100644
--- a/gdbgui/src/js/CopyToClipboard.tsx
+++ b/gdbgui/src/js/CopyToClipboard.tsx
@@ -1,5 +1,5 @@
import * as React from "react";
-import ToolTip from "./ToolTip.jsx";
+import ToolTip from "./ToolTip";
import { store } from "statorgfc";
type Props = {
diff --git a/gdbgui/src/js/Expressions.jsx b/gdbgui/src/js/Expressions.tsx
similarity index 64%
rename from gdbgui/src/js/Expressions.jsx
rename to gdbgui/src/js/Expressions.tsx
index 4f8a13a2..5c14661f 100644
--- a/gdbgui/src/js/Expressions.jsx
+++ b/gdbgui/src/js/Expressions.tsx
@@ -1,32 +1,38 @@
import React from "react";
import { store } from "statorgfc";
-import GdbVariable from "./GdbVariable.jsx";
-import constants from "./constants.js";
+import GdbVariable from "./GdbVariable";
+import constants from "./constants";
class Expressions extends React.Component {
+ objs_to_delete: any;
+ objs_to_render: any;
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(this, ["expressions"]);
}
render() {
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
let sorted_expression_objs = _.sortBy(
store.get("expressions"),
- unsorted_obj => unsorted_obj.expression
+ (unsorted_obj: any) => unsorted_obj.expression
);
// only render variables in scope that were not created for the Locals component
this.objs_to_render = sorted_expression_objs.filter(
- obj => obj.in_scope === "true" && obj.expr_type === "expr"
+ (obj: any) => obj.in_scope === "true" && obj.expr_type === "expr"
);
this.objs_to_delete = sorted_expression_objs.filter(
- obj => obj.in_scope === "invalid"
+ (obj: any) => obj.in_scope === "invalid"
);
// delete invalid objects
- this.objs_to_delete.map(obj => GdbVariable.delete_gdb_variable(obj.name));
+ this.objs_to_delete.map((obj: any) => GdbVariable.delete_gdb_variable(obj.name));
- let content = this.objs_to_render.map(obj => (
+ let content = this.objs_to_render.map((obj: any) => (
o.fullname !== fullname);
FileFetcher._fetch_next();
@@ -100,6 +106,7 @@ let FileFetcher = {
}
if (FileFetcher._queue.length) {
let obj = FileFetcher._queue.shift();
+ // @ts-expect-error ts-migrate(2532) FIXME: Object is possibly 'undefined'.
FileFetcher._fetch(obj.fullname, obj.start_line, obj.end_line);
}
},
@@ -107,7 +114,7 @@ let FileFetcher = {
FileFetcher._is_fetching = false;
FileFetcher._fetch_next();
},
- fetch: function(fullname, start_line, end_line) {
+ fetch: function(fullname: any, start_line: any, end_line: any) {
if (!start_line) {
start_line = 1;
console.warn("expected start line");
@@ -124,6 +131,7 @@ let FileFetcher = {
return;
}
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'any' is not assignable to type 'never'.
FileFetcher._queue.push({ fullname, start_line, end_line });
FileFetcher._fetch_next();
}
@@ -134,6 +142,7 @@ const FileOps = {
unfetchable_disassembly_addresses: {},
disassembly_addr_being_fetched: null,
init: function() {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'subscribeToKeys' does not exist on type ... Remove this comment to see the full error message
store.subscribeToKeys(
[
"inferior_program",
@@ -145,7 +154,6 @@ const FileOps = {
"missing_files",
"files_being_fetched",
"gdb_version_array",
- "interpreter",
"fullname_to_render",
"line_of_source_to_flash",
"cached_source_files",
@@ -154,7 +162,7 @@ const FileOps = {
FileOps._store_change_callback
);
},
- user_select_file_to_view: function(fullname, line) {
+ user_select_file_to_view: function(fullname: any, line: any) {
store.set(
"source_code_selection_state",
constants.source_code_selection_states.USER_SELECTION
@@ -221,9 +229,9 @@ const FileOps = {
);
},
get_start_and_end_lines(
- fullname,
- require_cached_line_num,
- source_code_infinite_scrolling
+ fullname: any,
+ require_cached_line_num: any,
+ source_code_infinite_scrolling: any
) {
let start_line, end_line;
if (source_code_infinite_scrolling) {
@@ -243,6 +251,7 @@ const FileOps = {
end_line = Math.ceil(start_line + store.get("max_lines_of_code_to_fetch"));
if (source_file_obj) {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 2 arguments, but got 1.
end_line = Math.ceil(Math.min(end_line, FileOps.get_num_lines_in_file(fullname))); // don't go past the end of the line
}
if (start_line > end_line) {
@@ -256,16 +265,17 @@ const FileOps = {
return { start_line, end_line, require_cached_line_num };
},
update_source_code_state(
- fullname,
- start_line,
- require_cached_line_num,
- end_line,
- assembly_is_cached,
- file_is_missing,
- is_paused,
- paused_addr
+ fullname: any,
+ start_line: any,
+ require_cached_line_num: any,
+ end_line: any,
+ assembly_is_cached: any,
+ file_is_missing: any,
+ is_paused: any,
+ paused_addr: any
) {
const states = constants.source_code_states,
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 3 arguments, but got 2.
line_is_cached = FileOps.line_is_cached(fullname, require_cached_line_num);
if (fullname && line_is_cached) {
@@ -275,6 +285,7 @@ const FileOps = {
assembly_is_cached ? states.ASSM_AND_SOURCE_CACHED : states.SOURCE_CACHED
);
store.set("source_linenum_to_display_start", start_line);
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 2 arguments, but got 1.
end_line = Math.min(end_line, FileOps.get_num_lines_in_file(fullname));
store.set("source_linenum_to_display_end", end_line);
} else if (fullname && !file_is_missing) {
@@ -287,7 +298,7 @@ const FileOps = {
paused_addr &&
store
.get("disassembly_for_missing_file")
- .some(obj => parseInt(obj.address, 16) === parseInt(paused_addr, 16))
+ .some((obj: any) => parseInt(obj.address, 16) === parseInt(paused_addr, 16))
) {
store.set("source_code_state", states.ASSM_CACHED);
} else if (is_paused && paused_addr) {
@@ -304,7 +315,7 @@ const FileOps = {
store.set("source_code_state", states.NONE_AVAILABLE);
}
},
- get_num_lines_in_file: function(fullname, source_file_obj) {
+ get_num_lines_in_file: function(fullname: any, source_file_obj: any) {
if (!source_file_obj) {
source_file_obj = FileOps.get_source_file_obj_from_cache(fullname);
}
@@ -318,7 +329,7 @@ const FileOps = {
}
return source_file_obj.num_lines_in_file;
},
- lines_are_cached: function(fullname, start_line, end_line) {
+ lines_are_cached: function(fullname: any, start_line: any, end_line: any) {
let source_file_obj = FileOps.get_source_file_obj_from_cache(fullname),
linenum = start_line;
if (!source_file_obj) {
@@ -340,7 +351,7 @@ const FileOps = {
}
return true;
},
- line_is_cached: function(fullname, linenum, source_file_obj) {
+ line_is_cached: function(fullname: any, linenum: any, source_file_obj: any) {
if (!source_file_obj) {
source_file_obj = FileOps.get_source_file_obj_from_cache(fullname);
}
@@ -350,14 +361,14 @@ const FileOps = {
source_file_obj.source_code_obj[linenum] !== undefined
);
},
- get_line_from_file: function(fullname, linenum) {
+ get_line_from_file: function(fullname: any, linenum: any) {
let source_file_obj = FileOps.get_source_file_obj_from_cache(fullname);
if (!source_file_obj) {
return null;
}
return source_file_obj.source_code_obj[linenum];
},
- assembly_is_cached: function(fullname) {
+ assembly_is_cached: function(fullname: any) {
let source_file_obj = FileOps.get_source_file_obj_from_cache(fullname);
return (
source_file_obj &&
@@ -365,7 +376,7 @@ const FileOps = {
Object.keys(source_file_obj.assembly).length
);
},
- get_source_file_obj_from_cache: function(fullname) {
+ get_source_file_obj_from_cache: function(fullname: any) {
let cached_files = store.get("cached_source_files");
for (let sf of cached_files) {
if (sf.fullname === fullname) {
@@ -375,10 +386,10 @@ const FileOps = {
return null;
},
add_source_file_to_cache: function(
- fullname,
- source_code_obj,
- last_modified_unix_sec,
- num_lines_in_file
+ fullname: any,
+ source_code_obj: any,
+ last_modified_unix_sec: any,
+ num_lines_in_file: any
) {
let cached_file_obj = FileOps.get_source_file_obj_from_cache(fullname);
if (cached_file_obj === null) {
@@ -409,7 +420,10 @@ const FileOps = {
/**
* Show modal warning if user is trying to show a file that was modified after the binary was compiled
*/
- show_modal_if_file_modified_after_binary(fullname, src_last_modified_unix_sec) {
+ show_modal_if_file_modified_after_binary(
+ fullname: any,
+ src_last_modified_unix_sec: any
+ ) {
if (store.get("inferior_binary_path")) {
if (
src_last_modified_unix_sec >
@@ -423,10 +437,12 @@ const FileOps = {
was compiled. Recompile the binary, then try again. Otherwise the source code
may not match the binary.
+ {/* @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'moment'. */}
{`Source file: ${fullname}, modified ${moment(
src_last_modified_unix_sec * 1000
).format(constants.DATE_FORMAT)}`}
+ {/* @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'moment'. */}
{`Binary: ${store.get("inferior_binary_path")}, modified ${moment(
store.get("inferior_binary_path_last_modified_unix_sec") * 1000
).format(constants.DATE_FORMAT)}`}
@@ -438,7 +454,7 @@ const FileOps = {
}
}
},
- get_cached_assembly_for_file: function(fullname) {
+ get_cached_assembly_for_file: function(fullname: any) {
for (let file of store.get("cached_source_files")) {
if (file.fullname === fullname) {
return file.assembly;
@@ -488,6 +504,7 @@ const FileOps = {
let source_file_obj = FileOps.get_source_file_obj_from_cache(fullname);
if (source_file_obj) {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 2 arguments, but got 1.
end_line = Math.min(end_line, FileOps.get_num_lines_in_file(fullname)); // don't go past the end of the line
}
@@ -502,10 +519,10 @@ const FileOps = {
store.get("source_linenum_to_display_end")
);
},
- is_missing_file: function(fullname) {
+ is_missing_file: function(fullname: any) {
return store.get("missing_files").indexOf(fullname) !== -1;
},
- add_missing_file: function(fullname) {
+ add_missing_file: function(fullname: any) {
let missing_files = store.get("missing_files");
missing_files.push(fullname);
store.set("missing_files", missing_files);
@@ -516,7 +533,7 @@ const FileOps = {
* TODO not sure which version this change occured in. I know in 7.7 it needs the '3' option,
* and in 7.11 it needs the '4' option. I should test the various version at some point.
*/
- get_dissasembly_format_num: function(gdb_version_array) {
+ get_dissasembly_format_num: function(gdb_version_array: any) {
if (gdb_version_array.length === 0) {
// assuming new version, but we shouldn't ever not know the version...
return 4;
@@ -530,17 +547,17 @@ const FileOps = {
return 4;
}
},
- get_fetch_disassembly_command: function(fullname, start_line, mi_response_format) {
+ get_fetch_disassembly_command: function(
+ fullname: any,
+ start_line: any,
+ mi_response_format: any
+ ) {
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
if (_.isString(fullname)) {
- if (store.get("interpreter") === "gdb") {
- return (
- constants.INLINE_DISASSEMBLY_STR +
- `-data-disassemble -f ${fullname} -l ${start_line} -n 1000 -- ${mi_response_format}`
- );
- } else {
- console.log("TODOLLDB - get mi command to disassemble");
- return `disassemble --frame`;
- }
+ return (
+ constants.INLINE_DISASSEMBLY_STR +
+ `-data-disassemble -f ${fullname} -l ${start_line} -n 1000 -- ${mi_response_format}`
+ );
} else {
console.warn("not fetching undefined file");
}
@@ -549,8 +566,10 @@ const FileOps = {
* Fetch disassembly for current file/line.
*/
fetch_assembly_cur_line: function(mi_response_format = null) {
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
if (mi_response_format === null || !_.isNumber(mi_response_format)) {
// try to determine response format based on our guess of the gdb version being used
+ // @ts-expect-error ts-migrate(2322) FIXME: Type '4' is not assignable to type 'null'.
mi_response_format = FileOps.get_dissasembly_format_num(
store.get("gdb_version_array")
);
@@ -563,7 +582,7 @@ const FileOps = {
}
FileOps.fetch_disassembly(fullname, line, mi_response_format);
},
- fetch_disassembly: function(fullname, start_line, mi_response_format) {
+ fetch_disassembly: function(fullname: any, start_line: any, mi_response_format: any) {
let cmd = FileOps.get_fetch_disassembly_command(
fullname,
start_line,
@@ -573,12 +592,15 @@ const FileOps = {
GdbApi.run_gdb_command(cmd);
}
},
- fetch_disassembly_for_missing_file: function(hex_addr) {
+ fetch_disassembly_for_missing_file: function(hex_addr: any) {
// https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Data-Manipulation.html
if (window.isNaN(hex_addr)) {
return;
}
-
+ Actions.add_console_entries(
+ "Fetching assembly since file is missing",
+ constants.console_entry_type.GDBGUI_OUTPUT
+ );
let start = parseInt(hex_addr, 16),
end = start + 100;
FileOps.disassembly_addr_being_fetched = hex_addr;
@@ -589,8 +611,13 @@ const FileOps = {
},
fetch_disassembly_for_missing_file_failed: function() {
let addr_being_fetched = FileOps.disassembly_addr_being_fetched;
+ // @ts-expect-error ts-migrate(2538) FIXME: Type 'null' cannot be used as an index type.
FileOps.unfetchable_disassembly_addresses[addr_being_fetched] = true;
FileOps.disassembly_addr_being_fetched = null;
+ Actions.add_console_entries(
+ "Failed to retrieve assembly for missing file",
+ constants.console_entry_type.GDBGUI_OUTPUT
+ );
},
/**
* Save assembly and render source code if desired
@@ -598,14 +625,15 @@ const FileOps = {
* @param mi_token (int): corresponds to either null (when src file is known and exists),
* constants.DISASSEMBLY_FOR_MISSING_FILE_INT when source file is undefined or does not exist on filesystem
*/
- save_new_assembly: function(mi_assembly, mi_token) {
+ save_new_assembly: function(mi_assembly: any, mi_token: any) {
FileOps.disassembly_addr_being_fetched = null;
- if (!_.isArray(mi_assembly) || mi_assembly.length === 0) {
+ if (!Array.isArray(mi_assembly) || mi_assembly.length === 0) {
console.error("Attempted to save unexpected assembly", mi_assembly);
}
let fullname = mi_assembly[0].fullname;
+ // @ts-expect-error ts-migrate(2551) FIXME: Property 'DISASSEMBLY_FOR_MISSING_FILE_INT' does n... Remove this comment to see the full error message
if (mi_token === constants.DISASSEMBLY_FOR_MISSING_FILE_INT) {
store.set("disassembly_for_missing_file", mi_assembly);
return;
@@ -615,6 +643,7 @@ const FileOps = {
// and values corresponding to asm instructions for that line
let assembly_to_save = {};
for (let obj of mi_assembly) {
+ // @ts-expect-error ts-migrate(7053) FIXME: No index signature with a parameter of type 'numbe... Remove this comment to see the full error message
assembly_to_save[parseInt(obj.line)] = obj.line_asm_insn;
}
@@ -623,7 +652,9 @@ const FileOps = {
if (cached_file.fullname === fullname) {
cached_file.assembly = Object.assign(cached_file.assembly, assembly_to_save);
+ // @ts-expect-error ts-migrate(2345) FIXME: Argument of type 'string[]' is not assignable to p... Remove this comment to see the full error message
let max_assm_line = Math.max(Object.keys(cached_file.assembly)),
+ // @ts-expect-error ts-migrate(2345) FIXME: Argument of type 'string[]' is not assignable to p... Remove this comment to see the full error message
max_source_line = Math.max(Object.keys(cached_file.source_code_obj));
if (max_assm_line > max_source_line) {
cached_file.source_code_obj[max_assm_line] = "";
diff --git a/gdbgui/src/js/FileSystem.jsx b/gdbgui/src/js/FileSystem.tsx
similarity index 58%
rename from gdbgui/src/js/FileSystem.jsx
rename to gdbgui/src/js/FileSystem.tsx
index 0032ac45..0ce8c02d 100644
--- a/gdbgui/src/js/FileSystem.jsx
+++ b/gdbgui/src/js/FileSystem.tsx
@@ -1,17 +1,20 @@
import React from "react";
class FileSystem extends React.Component {
- get_node_jsx(node, depth = 0) {
+ nodecount: any;
+ get_node_jsx(node: any, depth = 0) {
if (!node) {
return null;
}
this.nodecount++;
- let get_child_jsx_for_node = node => {
+ let get_child_jsx_for_node = (node: any) => {
if (!(node.children && node.toggled)) {
return null;
}
- return
{node.children.map(child => this.get_node_jsx(child, depth + 1))} ;
+ return (
+ {node.children.map((child: any) => this.get_node_jsx(child, depth + 1))}
+ );
};
let indent = "\u00A0\u00A0\u00A0".repeat(depth),
glyph = null;
@@ -24,6 +27,7 @@ class FileSystem extends React.Component {
let onClickName = null;
if (is_file) {
onClickName = () => {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'onClickName' does not exist on type 'Rea... Remove this comment to see the full error message
this.props.onClickName(node);
};
}
@@ -35,9 +39,11 @@ class FileSystem extends React.Component {
{
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'onToggle' does not exist on type 'Readon... Remove this comment to see the full error message
this.props.onToggle(node);
}}
/>
+ {/* @ts-expect-error ts-migrate(2322) FIXME: Type 'null' is not assignable to type '((event: Mo... Remove this comment to see the full error message */}
{node.name}
{get_child_jsx_for_node(node)}
@@ -49,6 +55,7 @@ class FileSystem extends React.Component {
this.nodecount = -1;
return (
+ {/* @ts-expect-error ts-migrate(2339) FIXME: Property 'rootnode' does not exist on type 'Readon... Remove this comment to see the full error message */}
{this.get_node_jsx(this.props.rootnode)}
);
diff --git a/gdbgui/src/js/FoldersView.jsx b/gdbgui/src/js/FoldersView.tsx
similarity index 77%
rename from gdbgui/src/js/FoldersView.jsx
rename to gdbgui/src/js/FoldersView.tsx
index 391fd4b5..0ea830bf 100644
--- a/gdbgui/src/js/FoldersView.jsx
+++ b/gdbgui/src/js/FoldersView.tsx
@@ -1,10 +1,10 @@
import React from "react";
import { store } from "statorgfc";
-import FileOps from "./FileOps.jsx";
-import constants from "./constants.js";
-import SourceFileAutocomplete from "./SourceFileAutocomplete.jsx";
-import FileSystem from "./FileSystem.jsx";
-import Actions from "./Actions.js";
+import FileOps from "./FileOps";
+import constants from "./constants";
+import SourceFileAutocomplete from "./SourceFileAutocomplete";
+import FileSystem from "./FileSystem";
+import Actions from "./Actions";
const default_rootnode = {
name: 'Load inferior program, then click "Fetch source files" to populate this window',
@@ -12,7 +12,7 @@ const default_rootnode = {
toggled: false
};
-function get_child_node_with_name(name, curnode) {
+function get_child_node_with_name(name: any, curnode: any) {
if (!curnode.children) {
return null;
}
@@ -24,12 +24,17 @@ function get_child_node_with_name(name, curnode) {
return null;
}
-class FoldersView extends React.Component {
- constructor(props) {
+type State = any;
+
+class FoldersView extends React.Component<{}, State> {
+ max_filesystem_entries: any;
+ project_home: any;
+ constructor(props: {}) {
super(props);
this.state = {
rootnode: default_rootnode
};
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(
this,
["source_code_state", "source_file_paths"],
@@ -37,6 +42,7 @@ class FoldersView extends React.Component {
);
this.max_filesystem_entries = 300;
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'initial_data'.
this.project_home = initial_data.project_home; /* global initial_data */
this.onToggle = this.onToggle.bind(this);
this.onClickName = this.onClickName.bind(this);
@@ -103,6 +109,7 @@ class FoldersView extends React.Component {
)}
);
}
- onClickName(node) {
+ onClickName(node: any) {
let curnode = node,
path = [];
while (curnode) {
@@ -127,7 +134,7 @@ class FoldersView extends React.Component {
FileOps.user_select_file_to_view(path.join("/"), 1);
}
}
- reveal_path(path) {
+ reveal_path(path: any) {
if (!path) {
return;
}
@@ -140,7 +147,7 @@ class FoldersView extends React.Component {
path = path.replace(this.project_home, "");
}
- let names = path.split("/").filter(n => n !== ""),
+ let names = path.split("/").filter((n: any) => n !== ""),
curnode = this.state.rootnode;
curnode.toggled = true; // expand the root
@@ -158,13 +165,13 @@ class FoldersView extends React.Component {
}
this.setState({ rootnode: this.state.rootnode, cursor: curnode });
}
- update_filesystem_data(keys) {
+ update_filesystem_data(keys: any) {
if (keys.indexOf("source_file_paths") === -1) {
return;
}
let source_paths = this.state.source_file_paths;
- if (!_.isArray(source_paths) || !source_paths.length) {
+ if (!Array.isArray(source_paths) || !source_paths.length) {
this.setState({
rootnode: default_rootnode
});
@@ -190,8 +197,9 @@ class FoldersView extends React.Component {
}
for (let path of relative_source_paths) {
let new_node,
- names = path.split("/").filter(n => n !== ""),
+ names = path.split("/").filter((n: any) => n !== ""),
curnode = rootnode,
+ // @ts-expect-error ts-migrate(2448) FIXME: Block-scoped variable 'depth' used before its decl... Remove this comment to see the full error message
toggled = depth === 0;
let depth = 0;
for (let name of names) {
@@ -201,10 +209,13 @@ class FoldersView extends React.Component {
curnode = child;
} else {
// add child and set it to cur node
+ // @ts-expect-error ts-migrate(2322) FIXME: Object literal may only specify known properties, ... Remove this comment to see the full error message
new_node = { name: name, toggled: toggled, parent: curnode };
if (curnode.children) {
+ // @ts-expect-error ts-migrate(2345) FIXME: Argument of type '{ name: any; toggled: boolean; p... Remove this comment to see the full error message
curnode.children.push(new_node);
} else {
+ // @ts-expect-error ts-migrate(2322) FIXME: Type '{ name: any; toggled: boolean; parent: { nam... Remove this comment to see the full error message
curnode.children = [new_node];
}
curnode = new_node;
@@ -216,12 +227,12 @@ class FoldersView extends React.Component {
this.setState({ rootnode: rootnode });
}
- onToggle(node) {
+ onToggle(node: any) {
node.toggled = !node.toggled;
this.setState({ rootnode: this.state.rootnode });
}
expand_all() {
- let callback = node => {
+ let callback = (node: any) => {
node.toggled = true;
};
for (let top_level_child of this.state.rootnode.children) {
@@ -230,7 +241,7 @@ class FoldersView extends React.Component {
this.setState({ rootnode: this.state.rootnode });
}
collapse_all() {
- let callback = node => {
+ let callback = (node: any) => {
node.toggled = false;
};
for (let top_level_child of this.state.rootnode.children) {
@@ -238,7 +249,7 @@ class FoldersView extends React.Component {
}
this.setState({ rootnode: this.state.rootnode });
}
- _dfs(node, callback) {
+ _dfs(node: any, callback: any) {
callback(node);
if (node.children) {
for (let child of node.children) {
diff --git a/gdbgui/src/js/GdbApi.jsx b/gdbgui/src/js/GdbApi.tsx
similarity index 64%
rename from gdbgui/src/js/GdbApi.jsx
rename to gdbgui/src/js/GdbApi.tsx
index f78dad5c..a69167ba 100644
--- a/gdbgui/src/js/GdbApi.jsx
+++ b/gdbgui/src/js/GdbApi.tsx
@@ -3,23 +3,29 @@
* to send various commands to gdb, to and to dispatch gdb responses to gdbgui.
*/
import { store } from "statorgfc";
-import Registers from "./Registers.jsx";
-import Memory from "./Memory.jsx";
-import Actions from "./Actions.js";
-import GdbVariable from "./GdbVariable.jsx";
-import constants from "./constants.js";
-import process_gdb_response from "./process_gdb_response.js";
+import Registers from "./Registers";
+import Memory from "./Memory";
+import Actions from "./Actions";
+import GdbVariable from "./GdbVariable";
+import constants from "./constants";
+import process_gdb_response from "./process_gdb_response";
import React from "react";
+import io from "socket.io-client";
void React; // needed when using JSX, but not marked as used
-
/* global debug */
// print to console if debug is true
-let debug_print;
+let log: {
+ (arg0: string): void;
+ (...data: any[]): void;
+ (message?: any, ...optionalParams: any[]): void;
+ (): void;
+};
+// @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'debug'.
if (debug) {
- debug_print = console.info;
+ log = console.info;
} else {
- debug_print = function() {
+ log = function() {
// stubbed out
};
}
@@ -28,81 +34,119 @@ if (debug) {
* This object contains methods to interact with
* gdb, but does not directly render anything in the DOM.
*/
+// @ts-expect-error ts-migrate(2339) FIXME: Property 'initial_data' does not exist on type 'Wi... Remove this comment to see the full error message
+const initial_data = window.initial_data;
+let socket: SocketIOClient.Socket;
const GdbApi = {
+ getSocket: function() {
+ return socket;
+ },
init: function() {
const TIMEOUT_MIN = 5;
- /* global io */
- /* global initial_data */
- GdbApi.socket = io.connect(`/gdb_listener`, {
+ socket = io.connect(`/gdb_listener`, {
timeout: TIMEOUT_MIN * 60 * 1000,
- query: `csrf_token=${initial_data.csrf_token}&gdbpid=${initial_data.gdbpid}`
+ query: {
+ csrf_token: initial_data.csrf_token,
+ gdbpid: initial_data.gdbpid,
+ gdb_command: initial_data.gdb_command
+ }
});
- GdbApi.socket.on("connect", function() {
- debug_print("connected");
+ socket.on("connect", function() {
+ log("connected");
+ const queuedGdbCommands = store.get("queuedGdbCommands");
+ if (queuedGdbCommands) {
+ GdbApi.run_gdb_command(queuedGdbCommands);
+ store.set("queuedGdbCommands", []);
+ }
});
- GdbApi.socket.on("gdb_response", function(response_array) {
+ socket.on("gdb_response", function(response_array: any) {
+ // @ts-expect-error ts-migrate(2769) FIXME: Argument of type 'null' is not assignable to param... Remove this comment to see the full error message
clearTimeout(GdbApi._waiting_for_response_timeout);
store.set("waiting_for_response", false);
process_gdb_response(response_array);
});
-
- GdbApi.socket.on("error_running_gdb_command", function(data) {
+ socket.on("fatal_server_error", function(data: { message: null | string }) {
+ Actions.add_console_entries(
+ `Message from server: ${data.message}`,
+ constants.console_entry_type.STD_ERR
+ );
+ socket.close();
+ });
+ socket.on("error_running_gdb_command", function(data: { message: any }) {
Actions.add_console_entries(
`Error occurred on server when running gdb command: ${data.message}`,
constants.console_entry_type.STD_ERR
);
+ socket.close();
});
- GdbApi.socket.on("server_error", function(data) {
+ socket.on("server_error", function(data: { message: any }) {
Actions.add_console_entries(
`Server message: ${data.message}`,
constants.console_entry_type.STD_ERR
);
});
- GdbApi.socket.on("gdb_pid", function(gdb_pid_obj) {
- let gdb_pid = gdb_pid_obj.pid,
- message = gdb_pid_obj.message,
- error = gdb_pid_obj.error,
- using_existing = gdb_pid_obj.using_existing;
-
- Actions.add_console_entries(
- message,
- error
- ? constants.console_entry_type.STD_ERR
- : constants.console_entry_type.GDBGUI_OUTPUT
- );
+ socket.on("debug_session_connection_event", function(gdb_pid_obj: {
+ pid: number;
+ message: string | void;
+ ok: boolean;
+ started_new_gdb_process: boolean;
+ }) {
+ const gdb_pid = gdb_pid_obj.pid;
+ const message = gdb_pid_obj.message;
+ const error = !gdb_pid_obj.ok;
+ const started_new_gdb_process = gdb_pid_obj.started_new_gdb_process;
+ if (message) {
+ Actions.add_console_entries(
+ message,
+ error
+ ? constants.console_entry_type.STD_ERR
+ : constants.console_entry_type.GDBGUI_OUTPUT
+ );
+ }
+ if (error) {
+ socket.close();
+ return;
+ }
store.set("gdb_pid", gdb_pid);
- Actions.add_console_entries(
- `${store.get("interpreter")} process ${gdb_pid} is running for this tab`,
- constants.console_entry_type.GDBGUI_OUTPUT
- );
- if (using_existing) {
- Actions.refresh_state_for_gdb_pause();
- } else {
+
+ if (started_new_gdb_process) {
GdbApi.run_initial_commands();
+ } else {
+ Actions.refresh_state_for_gdb_pause();
}
});
- GdbApi.socket.on("disconnect", function() {
+ socket.on("disconnect", function() {
// we no longer need to warn the user before they exit the page since the gdb process
// on the server is already gone
window.onbeforeunload = () => null;
- // show modal
Actions.show_modal(
"",
-
- The gdbgui server has shutdown. This tab will no longer function as expected.
-
+ <>
+
+ The connection to the gdb session has been closed. This tab will no longer
+ function as expected.
+
+
+ To start a new session or connect to a different session, go to the{" "}
+ dashboard .
+
+ >
);
- debug_print("disconnected");
- if (debug) {
- window.location.reload(true);
- }
+ Actions.add_console_entries(
+ `The connection to the gdb session has been closed. To start a new session, go to ${window.location.origin}/dashboard`,
+ constants.console_entry_type.STD_ERR
+ );
+
+ // if (debug) {
+ // window.location.reload(true);
+ // }
});
},
_waiting_for_response_timeout: null,
@@ -111,14 +155,11 @@ const GdbApi = {
GdbApi.run_gdb_command("-exec-run");
},
run_initial_commands: function() {
- const cmds = ["set breakpoint pending on"];
+ const cmds = ["-list-features", "-list-target-features"];
for (const src in initial_data.remap_sources) {
const dst = initial_data.remap_sources[src];
cmds.push(`set substitute-path "${src}" "${dst}"`);
}
- if (initial_data.initial_gdb_user_command) {
- cmds.push(initial_data.initial_gdb_user_command);
- }
GdbApi.run_gdb_command(cmds);
},
inferior_is_paused: function() {
@@ -172,11 +213,13 @@ const GdbApi = {
Actions.inferior_program_resuming();
GdbApi.run_gdb_command("-exec-interrupt");
},
- send_autocomplete_command: function(command) {
+ send_autocomplete_command: function(command: string) {
Actions.inferior_program_resuming();
GdbApi.run_gdb_command("complete " + command);
},
- click_gdb_cmd_button: function(e) {
+ click_gdb_cmd_button: function(e: {
+ currentTarget: { dataset: { [x: string]: any; cmd: undefined; cmd0: undefined } };
+ }) {
if (e.currentTarget.dataset.cmd !== undefined) {
// run single command
// i.e.
@@ -201,12 +244,12 @@ const GdbApi = {
);
}
},
- select_frame: function(framenum) {
+ select_frame: function(framenum: any) {
// TODO this command is deprecated (https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Stack-Manipulation.html)
// This command in deprecated in favor of passing the ‘--frame’ option to every command.
GdbApi.run_command_and_refresh_state(`-stack-select-frame ${framenum}`);
},
- select_thread_id: function(thread_id) {
+ select_thread_id: function(thread_id: any) {
// TODO this command is deprecated (http://www.sourceware.org/gdb/current/onlinedocs/gdb/GDB_002fMI-Thread-Commands.html)
// This command is deprecated in favor of explicitly using the ‘--thread’ option to each command.
GdbApi.run_command_and_refresh_state(`-thread-select ${thread_id}`);
@@ -218,10 +261,15 @@ const GdbApi = {
waiting_for_response: function() {
store.set("waiting_for_response", true);
const WAIT_TIME_SEC = 10;
+ // @ts-expect-error ts-migrate(2769) FIXME: Argument of type 'null' is not assignable to param... Remove this comment to see the full error message
clearTimeout(GdbApi._waiting_for_response_timeout);
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'Timeout' is not assignable to type 'null'.
GdbApi._waiting_for_response_timeout = setTimeout(() => {
Actions.clear_program_state();
store.set("waiting_for_response", false);
+ if (GdbApi.getSocket().disconnected) {
+ return;
+ }
Actions.add_console_entries(
`No gdb response received after ${WAIT_TIME_SEC} seconds.`,
@@ -255,37 +303,37 @@ const GdbApi = {
* @param cmd: a string or array of strings, that are directly evaluated by gdb
* @return nothing
*/
- run_gdb_command: function(cmd) {
+ run_gdb_command: function(cmd: any) {
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
if (_.trim(cmd) === "") {
return;
}
let cmds = cmd;
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
if (_.isString(cmds)) {
cmds = [cmds];
}
- // add the send command to the console to show commands that are
- // automatically run by gdb
- if (store.get("show_all_sent_commands_in_console")) {
- Actions.add_console_entries(cmds, constants.console_entry_type.SENT_COMMAND);
+ if (socket.connected) {
+ socket.emit("run_gdb_command", { cmd: cmds });
+ GdbApi.waiting_for_response();
+ // add the send command to the console to show commands that are
+ // automatically run by gdb
+ if (store.get("show_all_sent_commands_in_console")) {
+ Actions.add_console_entries(cmds, constants.console_entry_type.SENT_COMMAND);
+ }
+ } else {
+ log("queuing commands");
+ const queuedGdbCommands = store.get("queuedGdbCommands").concat(cmds);
+ store.set("queuedGdbCommands", queuedGdbCommands);
}
-
- GdbApi.waiting_for_response();
- GdbApi.socket.emit("run_gdb_command", { cmd: cmds });
},
- /**
- * Run a user-defined command, then refresh the store
- * @param user_cmd (str or array): command or commands to run before refreshing store
- */
- run_command_and_refresh_state: function(user_cmd) {
- // if(!user_cmd){
- // console.error('missing required argument')
- // return
- // }
- let cmds = [];
- if (_.isArray(user_cmd)) {
+ run_command_and_refresh_state: function(user_cmd: string | any[]) {
+ let cmds: any[] = [];
+ if (Array.isArray(user_cmd)) {
cmds = cmds.concat(user_cmd);
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
} else if (_.isString(user_cmd) && user_cmd.length > 0) {
cmds.push(user_cmd);
}
@@ -312,14 +360,8 @@ const GdbApi = {
// and the name and type for arrays, structures and unions.
constants.IGNORE_ERRORS_TOKEN_STR + "-stack-list-variables --simple-values"
];
- if (store.get("interpreter") === "gdb") {
- // update all user-defined variables in gdb
- cmds.push(constants.IGNORE_ERRORS_TOKEN_STR + "-var-update --all-values *");
- } else if (store.get("interpreter") === "lldb") {
- // the * arg doesn't work, so loop over all
- // names and push commands for each
- cmds = cmds.concat(GdbVariable.get_update_cmds());
- }
+ // update all user-defined variables in gdb
+ cmds.push(constants.IGNORE_ERRORS_TOKEN_STR + "-var-update --all-values *");
// update registers
cmds = cmds.concat(Registers.get_update_cmds());
@@ -338,9 +380,9 @@ const GdbApi = {
refresh_breakpoints: function() {
GdbApi.run_gdb_command([GdbApi.get_break_list_cmd()]);
},
- get_inferior_binary_last_modified_unix_sec(path) {
+ get_inferior_binary_last_modified_unix_sec(path: any) {
$.ajax({
- beforeSend: function(xhr) {
+ beforeSend: function(xhr: { setRequestHeader: (arg0: string, arg1: any) => void }) {
xhr.setRequestHeader("x-csrftoken", initial_data.csrf_token);
},
url: "/get_last_modified_unix_sec",
@@ -351,31 +393,16 @@ const GdbApi = {
error: GdbApi._error_getting_last_modified_unix_sec
});
},
- get_insert_break_cmd: function(fullname, line) {
- if (store.get("interpreter") === "gdb") {
- return [`-break-insert "${fullname}:${line}"`];
- } else {
- console.log("TODOLLDB - find mi-friendly command");
- return [`breakpoint set --file ${fullname} --line ${line}`];
- }
+ get_insert_break_cmd: function(fullname: any, line: any) {
+ return [`-break-insert "${fullname}:${line}"`];
},
- get_delete_break_cmd: function(bkpt_num) {
- if (store.get("interpreter") === "gdb") {
- return `-break-delete ${bkpt_num}`;
- } else {
- console.log("TODOLLDB - find mi-friendly command");
- return `breakpoint delete ${bkpt_num}`;
- }
+ get_delete_break_cmd: function(bkpt_num: any) {
+ return `-break-delete ${bkpt_num}`;
},
get_break_list_cmd: function() {
- if (store.get("interpreter") === "gdb") {
- return "-break-list";
- } else if (store.get("interpreter") === "lldb") {
- console.log("TODOLLDB - find mi-friendly command");
- return "breakpoint list";
- }
+ return "-break-list";
},
- get_load_binary_and_arguments_cmds(binary, args) {
+ get_load_binary_and_arguments_cmds(binary: any, args: any) {
// tell gdb which arguments to use when calling the binary, before loading the binary
let cmds = [
`-exec-arguments ${args}`, // Set the inferior program arguments, to be used in the next `-exec-run`
@@ -388,10 +415,10 @@ const GdbApi = {
cmds.push(GdbApi.get_break_list_cmd());
return cmds;
},
- set_assembly_flavor(flavor) {
- GdbApi.run_gdb_command("set disassembly-flavor " + flavor);
+ set_assembly_flavor(flavor: string) {
+ GdbApi.run_gdb_command(`set disassembly-flavor ${flavor}`);
},
- _recieve_last_modified_unix_sec(data) {
+ _recieve_last_modified_unix_sec(data: { path: any; last_modified_unix_sec: any }) {
if (data.path === store.get("inferior_binary_path")) {
store.set(
"inferior_binary_path_last_modified_unix_sec",
@@ -399,10 +426,11 @@ const GdbApi = {
);
}
},
- _error_getting_last_modified_unix_sec(data) {
+ _error_getting_last_modified_unix_sec(data: any) {
void data;
store.set("inferior_binary_path", null);
}
};
-
+// @ts-expect-error ts-migrate(2339) FIXME: Property 'socket' does not exist on type '{ getSoc... Remove this comment to see the full error message
+GdbApi.socket = socket;
export default GdbApi;
diff --git a/gdbgui/src/js/GdbCommandInput.jsx b/gdbgui/src/js/GdbCommandInput.jsx
deleted file mode 100644
index f4f5357f..00000000
--- a/gdbgui/src/js/GdbCommandInput.jsx
+++ /dev/null
@@ -1,81 +0,0 @@
-import React from "react";
-
-import { store } from "statorgfc";
-import constants from "./constants.js";
-
-class GdbCommandInput extends React.Component {
- componentDidUpdate(prevProps) {
- if (prevProps.current_command_input !== this.props.current_command_input) {
- // command input changed, so put focus on the input
- this.command_input_element.focus();
- }
- }
-
- on_command_input_key_down = event => {
- switch (event.keyCode) {
- case constants.UP_BUTTON_NUM: {
- this.props.get_previous_command_from_history();
- break;
- }
- case constants.DOWN_BUTTON_NUM: {
- this.props.get_next_command_from_history();
- break;
- }
- case constants.TAB_BUTTON_NUM: {
- event.preventDefault();
- this.props.send_autocomplete_command(event.target.value);
- break;
- }
- case constants.ENTER_BUTTON_NUM: {
- this.props.run_command();
- break;
- }
- }
- };
-
- render() {
- const {
- on_current_command_input_change,
- current_command_input,
- clear_console
- } = this.props;
- const interpreter = store.get("interpreter");
- const message = `enter ${interpreter} command. To interrupt inferior, send SIGINT.`;
- let input_value = current_command_input;
-
- return (
-
- );
- }
-}
-
-export default GdbCommandInput;
diff --git a/gdbgui/src/js/GdbConsole.jsx b/gdbgui/src/js/GdbConsole.jsx
deleted file mode 100644
index 58849034..00000000
--- a/gdbgui/src/js/GdbConsole.jsx
+++ /dev/null
@@ -1,129 +0,0 @@
-// component to display output from gdb, as well as gdbgui diagnostic messages
-//
-import React from "react";
-
-import GdbApi from "./GdbApi.jsx";
-import constants from "./constants.js";
-
-const pre_escape = string => {
- return string
- .replace(/\\n/g, "\n")
- .replace(/\\"/g, '"')
- .replace(/\\t/g, " ");
-};
-
-class GdbConsole extends React.Component {
- componentDidUpdate() {
- this.scroll_to_bottom();
- }
- scroll_to_bottom() {
- this.console_end.scrollIntoView({
- block: "end",
- inline: "nearest",
- behavior: "smooth"
- });
- }
- backtrace_button_clicked = event => {
- event.preventDefault();
- GdbApi.backtrace();
- };
-
- render_entries(console_entries) {
- return console_entries.map((entry, index) => {
- switch (entry.type) {
- case constants.console_entry_type.STD_OUT: {
- let escaped_value = pre_escape(entry.value);
- return (
-
- {escaped_value}
-
- );
- }
- case constants.console_entry_type.STD_ERR: {
- let escaped_value = pre_escape(entry.value);
- return (
-
- {escaped_value}
-
- );
- }
- case constants.console_entry_type.GDBGUI_OUTPUT: {
- let escaped_value = pre_escape(entry.value);
- return (
-
- {escaped_value}
-
- );
- }
- case constants.console_entry_type.GDBGUI_OUTPUT_RAW: {
- return (
-
- {entry.value}
-
- );
- }
- case constants.console_entry_type.SENT_COMMAND: {
- let escaped_value = pre_escape(entry.value);
- return (
- this.props.on_sent_command_clicked(entry.value)}
- >
- {escaped_value}
-
- );
- }
- case constants.console_entry_type.AUTOCOMPLETE_OPTION: {
- let escaped_value = pre_escape(entry.value);
- return (
- this.props.on_autocomplete_text_clicked(entry.value)}
- >
- {escaped_value}
-
- GdbApi.run_gdb_command(`help ${entry.value}`)}
- >
- help
-
-
- );
- }
- case constants.console_entry_type.BACKTRACE_LINK: {
- let escaped_value = pre_escape(entry.value);
- return (
-
- );
- }
- }
- });
- }
- render() {
- const { console_entries } = this.props;
-
- return (
- (this.console = el)}>
- {this.render_entries(console_entries)}
-
{
- this.console_end = el;
- }}
- />
-
- );
- }
-}
-
-export default GdbConsole;
diff --git a/gdbgui/src/js/GdbConsoleContainer.jsx b/gdbgui/src/js/GdbConsoleContainer.jsx
deleted file mode 100644
index ae6de4bc..00000000
--- a/gdbgui/src/js/GdbConsoleContainer.jsx
+++ /dev/null
@@ -1,191 +0,0 @@
-// gdb console (input/output)
-
-import React from "react";
-
-import { store } from "statorgfc";
-import constants from "./constants.js";
-import GdbApi from "./GdbApi.jsx";
-import GdbCommandInput from "./GdbCommandInput.jsx";
-import GdbConsole from "./GdbConsole.jsx";
-import Actions from "./Actions.js";
-
-let initial_sent_cmds = [];
-try {
- initial_sent_cmds = JSON.parse(localStorage.getItem("sent_cmds")) || [];
-} catch (err) {
- initial_sent_cmds = [];
-}
-
-if (!_.isArray(initial_sent_cmds)) {
- initial_sent_cmds = [];
-}
-
-// object to store array of sent commands, as well as ability
-// to scroll through old commands by maintaining state
-const CommandHistory = {
- index: null,
- sent_cmds: initial_sent_cmds,
- is_history_being_used: false,
- COMMAND_HISTORY_LIMIT: 500,
-
- // up arrow in console triggers this - go to end of array and move toward index 0
- get_previous_command: function() {
- // start at the end if history is not being cycled through
- CH.index = CH.is_history_being_used ? CH.index - 1 : CH.sent_cmds.length - 1;
- CH.is_history_being_used = true;
- if (CH.index < 0) {
- CH.index = 0;
- return null;
- }
-
- return CH.sent_cmds[CH.index];
- },
-
- // down arrow in console triggers this - go to beginning of array and move toward last index
- get_next_command: function() {
- // start at the beginning if history is not being cycled through
- CH.index = CH.is_history_being_used ? CH.index + 1 : 0;
- if (CH.index > CH.sent_cmds.length) {
- CH.index = CH.sent_cmds.length;
- return null;
- }
-
- CH.is_history_being_used = true;
- if (CH.index >= CH.sent_cmds.length) {
- return null;
- }
-
- return CH.sent_cmds[CH.index];
- },
- add_command: function(command) {
- CH.reset();
- if (CH.sent_cmds.indexOf(command) !== -1) {
- // don't add duplicate commands
- return;
- }
- if (CH.sent_cmds.length > CH.COMMAND_HISTORY_LIMIT) {
- // remove a command so we stay under the limit
- CH.sent_cmds.shift();
- }
-
- CH.sent_cmds.push(command);
- localStorage.setItem("sent_cmds", JSON.stringify(CH.sent_cmds));
- },
-
- reset: function() {
- CH.is_history_being_used = false;
- CH.index = 0;
- }
-};
-const CH = CommandHistory;
-
-// component that combines the gdb console output component and input component
-class GdbConsoleContainer extends React.Component {
- constructor() {
- super();
-
- this.state = {
- current_command_input: ""
- };
- store.connectComponentState(
- this,
- ["gdb_console_entries", "gdb_autocomplete_options"],
- this._store_change_callback.bind(this)
- );
- }
- _store_change_callback = () => {
- const autocomplete_options = store.get("gdb_autocomplete_options");
- if (autocomplete_options.length === 1) {
- this.setState({
- current_command_input: `${autocomplete_options[0]} ` // just use the autocomplete value
- });
- store.set("gdb_autocomplete_options", []);
- } else if (autocomplete_options.length > 1) {
- Actions.add_console_entries(
- autocomplete_options,
- constants.console_entry_type.AUTOCOMPLETE_OPTION
- );
- store.set("gdb_autocomplete_options", []);
- }
- };
-
- on_current_command_input_change = value => {
- this.setState({
- current_command_input: value
- });
- };
-
- on_sent_command_clicked = command => {
- CommandHistory.reset();
- this.setState({
- current_command_input: command
- });
- };
-
- on_autocomplete_text_clicked = command => {
- CommandHistory.reset();
- this.setState({
- current_command_input: command + " "
- });
- };
-
- get_previous_command_from_history = () => {
- this.setState({
- current_command_input:
- CommandHistory.get_previous_command(this.state.current_command_input) ||
- this.state.current_command_input
- });
- };
-
- get_next_command_from_history = () => {
- this.setState({
- current_command_input:
- CommandHistory.get_next_command(this.state.current_command_input) ||
- this.state.current_command_input
- });
- };
-
- run_command = () => {
- const command = this.state.current_command_input;
- CommandHistory.add_command(command);
- Actions.add_console_entries(command, constants.console_entry_type.SENT_COMMAND);
- Actions.execute_console_command(command);
-
- this.setState({ current_command_input: "" });
- };
-
- send_autocomplete_command = () => {
- const user_command = this.state.current_command_input;
- GdbApi.send_autocomplete_command(user_command);
- };
-
- render() {
- const {
- gdb_console_entries,
- current_command_input,
- gdb_autocomplete_options
- } = this.state;
-
- return (
-
-
- Actions.clear_console()}
- run_command={this.run_command}
- send_autocomplete_command={this.send_autocomplete_command}
- />
-
- );
- }
-}
-
-export default GdbConsoleContainer;
diff --git a/gdbgui/src/js/GdbMiOutput.jsx b/gdbgui/src/js/GdbMiOutput.tsx
similarity index 76%
rename from gdbgui/src/js/GdbMiOutput.jsx
rename to gdbgui/src/js/GdbMiOutput.tsx
index 07503f47..109bf750 100644
--- a/gdbgui/src/js/GdbMiOutput.jsx
+++ b/gdbgui/src/js/GdbMiOutput.tsx
@@ -9,11 +9,18 @@
import React from "react";
import { store } from "statorgfc";
-class GdbMiOutput extends React.Component {
+type State = any;
+
+class GdbMiOutput extends React.Component<{}, State> {
static MAX_OUTPUT_ENTRIES = 500;
+ _debounced_scroll_to_bottom: any;
+ el: any;
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(this, ["gdb_mi_output"]);
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
this._debounced_scroll_to_bottom = _.debounce(
this._scroll_to_bottom.bind(this),
300,
@@ -48,8 +55,9 @@ class GdbMiOutput extends React.Component {
_scroll_to_bottom() {
this.el.scrollTop = this.el.scrollHeight;
}
- static add_mi_output(mi_obj) {
+ static add_mi_output(mi_obj: any) {
let new_str = JSON.stringify(mi_obj, null, 4)
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 2 arguments, but got 1.
.replace(/[^(\\)]\\n/g)
.replace("<", "<")
.replace(">", ">"),
diff --git a/gdbgui/src/js/GdbVariable.jsx b/gdbgui/src/js/GdbVariable.tsx
similarity index 81%
rename from gdbgui/src/js/GdbVariable.jsx
rename to gdbgui/src/js/GdbVariable.tsx
index 46fd6048..da49c2ae 100644
--- a/gdbgui/src/js/GdbVariable.jsx
+++ b/gdbgui/src/js/GdbVariable.tsx
@@ -5,12 +5,12 @@
* remove them, etc.
*/
import React from "react";
-import Memory from "./Memory.jsx";
-import constants from "./constants.js";
+import Memory from "./Memory";
+import constants from "./constants";
import { store } from "statorgfc";
-import GdbApi from "./GdbApi.jsx";
+import GdbApi from "./GdbApi";
import CopyToClipboard from "./CopyToClipboard";
-import Actions from "./Actions.js";
+import Actions from "./Actions";
/**
* Simple object to manage fetching of child variables. Maintains a queue of parent expressions
@@ -27,14 +27,17 @@ let ChildVarFetcher = {
if (ChildVarFetcher._queue.length) {
let obj = ChildVarFetcher._queue.shift();
ChildVarFetcher.expr_gdb_parent_var_currently_fetching_children =
+ // @ts-expect-error ts-migrate(2532) FIXME: Object is possibly 'undefined'.
obj.expr_of_parent;
ChildVarFetcher._is_fetching = true;
+ // @ts-expect-error ts-migrate(2532) FIXME: Object is possibly 'undefined'.
GdbApi.run_gdb_command(`-var-list-children --all-values "${obj.expr_of_parent}"`);
} else {
ChildVarFetcher.expr_gdb_parent_var_currently_fetching_children = null;
}
},
- fetch_children(expr_of_parent, expr_type) {
+ fetch_children(expr_of_parent: any, expr_type: any) {
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'any' is not assignable to type 'never'.
ChildVarFetcher._queue.push({ expr_of_parent: expr_of_parent, expr_type: expr_type });
ChildVarFetcher._fetch_next_in_queue();
},
@@ -61,7 +64,9 @@ let VarCreator = {
}
if (VarCreator._queue.length) {
let obj = VarCreator._queue.shift(),
+ // @ts-expect-error ts-migrate(2532) FIXME: Object is possibly 'undefined'.
expression = obj.expression,
+ // @ts-expect-error ts-migrate(2532) FIXME: Object is possibly 'undefined'.
expr_type = obj.expr_type;
VarCreator._is_fetching = true;
@@ -92,7 +97,8 @@ let VarCreator = {
* Create a new variable in gdb. gdb automatically chooses and assigns
* a unique variable name.
*/
- create_variable: function(expression, expr_type) {
+ create_variable: function(expression: any, expr_type: any) {
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'any' is not assignable to type 'never'.
VarCreator._queue.push({ expression: expression, expr_type: expr_type });
VarCreator._fetch_next_in_queue();
},
@@ -103,7 +109,7 @@ let VarCreator = {
* new variable is saved locally. The variable UI element is then re-rendered
* @param r (object): gdb mi object
*/
- created_variable(r) {
+ created_variable(r: any) {
let expr = VarCreator.expr_being_created;
if (expr) {
// example payload:
@@ -126,7 +132,7 @@ let VarCreator = {
}
VarCreator._fetch_complete();
},
- fetch_failed(r) {
+ fetch_failed(r: any) {
if (VarCreator.expr_type === "hover") {
// do nothing
} else {
@@ -148,20 +154,29 @@ class GdbVariable extends React.Component {
render() {
const is_root = true;
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'expr_type' does not exist on type 'Reado... Remove this comment to see the full error message
if (this.props.expr_type === "local") {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'obj' does not exist on type 'Readonly<{}... Remove this comment to see the full error message
return this.get_ul_for_local(this.props.obj);
} else {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'obj' does not exist on type 'Readonly<{}... Remove this comment to see the full error message
if (this.props.obj.numchild > 0) {
return this.get_ul_for_var_with_children(
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'expression' does not exist on type 'Read... Remove this comment to see the full error message
this.props.expression,
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'obj' does not exist on type 'Readonly<{}... Remove this comment to see the full error message
this.props.obj,
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'expr_type' does not exist on type 'Reado... Remove this comment to see the full error message
this.props.expr_type,
is_root
);
} else {
return this.get_ul_for_var_without_children(
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'expression' does not exist on type 'Read... Remove this comment to see the full error message
this.props.expression,
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'obj' does not exist on type 'Readonly<{}... Remove this comment to see the full error message
this.props.obj,
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'expr_type' does not exist on type 'Reado... Remove this comment to see the full error message
this.props.expr_type,
is_root
);
@@ -176,8 +191,9 @@ class GdbVariable extends React.Component {
* to create a full-fledged variable for the user to explore. gdbgui will then
* render that instead of the "local".
*/
- get_ul_for_local(local) {
+ get_ul_for_local(local: any) {
let can_be_expanded = local.can_be_expanded,
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
value = _.isString(local.value)
? Memory.make_addrs_into_links_react(local.value)
: local.value,
@@ -192,6 +208,7 @@ class GdbVariable extends React.Component {
{value}
+ {/* @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'. */}
{_.trim(local.type)}
);
@@ -200,7 +217,12 @@ class GdbVariable extends React.Component {
* get unordered list for a variable that has children
* @return unordered list, expanded or collapsed based on the key "show_children_in_ui"
*/
- get_ul_for_var_with_children(expression, mi_obj, expr_type, is_root = false) {
+ get_ul_for_var_with_children(
+ expression: any,
+ mi_obj: any,
+ expr_type: any,
+ is_root = false
+ ) {
let child_tree;
if (mi_obj.show_children_in_ui) {
let content = [];
@@ -234,14 +256,20 @@ class GdbVariable extends React.Component {
expr_type,
is_root,
plus_or_minus,
+ // @ts-expect-error ts-migrate(2345) FIXME: Type 'Element' is not assignable to type 'string'.
child_tree,
mi_obj.numchild
);
}
- get_ul_for_var_without_children(expression, mi_obj, expr_type, is_root = false) {
+ get_ul_for_var_without_children(
+ expression: any,
+ mi_obj: any,
+ expr_type: any,
+ is_root = false
+ ) {
return this._get_ul_for_var(expression, mi_obj, expr_type, is_root);
}
- static _get_value_jsx(obj) {
+ static _get_value_jsx(obj: any) {
let val;
if (obj.is_int) {
val = (
@@ -262,13 +290,14 @@ class GdbVariable extends React.Component {
);
} else {
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
val = _.isString(obj.value)
? Memory.make_addrs_into_links_react(obj.value)
: obj.value;
}
return val;
}
- static change_radix(obj) {
+ static change_radix(obj: any) {
if (obj._radix === 16) {
obj._radix = 2;
} else {
@@ -281,10 +310,10 @@ class GdbVariable extends React.Component {
* Get ul for a variable with or without children
*/
_get_ul_for_var(
- expression,
- mi_obj,
- expr_type,
- is_root,
+ expression: any,
+ mi_obj: any,
+ expr_type: any,
+ is_root: any,
plus_or_minus = "",
child_tree = "",
numchild = 0
@@ -320,6 +349,7 @@ class GdbVariable extends React.Component {
if (mi_obj.can_plot && mi_obj.show_plot) {
// dots are not allowed in the dom as id's. replace with '-'.
let id = mi_obj.dom_id_for_plot;
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'Element' is not assignable to type 'string'.
plot_button = (
);
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'Element' is not assignable to type 'string'.
plot_content =
;
} else if (mi_obj.can_plot && !mi_obj.show_plot) {
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'Element' is not assignable to type 'string'.
plot_button = (
{_.trim(mi_obj.type) || ""}
@@ -363,12 +396,12 @@ class GdbVariable extends React.Component {
);
}
- static _get_full_path(obj) {
+ static _get_full_path(obj: any) {
if (!obj) {
return "";
}
- function update_path(path, obj) {
+ function update_path(path: any, obj: any) {
let potential_addition = obj.expression || obj.exp;
if (
potential_addition === "public" ||
@@ -399,13 +432,13 @@ class GdbVariable extends React.Component {
}
return path;
}
- static create_variable(expression, expr_type) {
+ static create_variable(expression: any, expr_type: any) {
VarCreator.create_variable(expression, expr_type);
}
- static gdb_created_root_variable(r) {
+ static gdb_created_root_variable(r: any) {
VarCreator.created_variable(r);
}
- static gdb_variable_fetch_failed(r) {
+ static gdb_variable_fetch_failed(r: any) {
VarCreator.fetch_failed(r);
}
/**
@@ -414,7 +447,7 @@ class GdbVariable extends React.Component {
* object
* @param r (object): gdb mi object
*/
- static gdb_created_children_variables(r) {
+ static gdb_created_children_variables(r: any) {
// example reponse payload:
// "payload": {
// "has_more": "0",
@@ -451,7 +484,7 @@ class GdbVariable extends React.Component {
let parent_obj = GdbVariable.get_obj_from_gdb_var_name(expressions, parent_name);
if (parent_obj) {
// prepare all the child objects we received for local storage
- let children = r.payload.children.map(child_obj =>
+ let children = r.payload.children.map((child_obj: any) =>
GdbVariable.prepare_gdb_obj_for_storage(child_obj, parent_obj)
);
// save these children as a field to their parent
@@ -477,7 +510,7 @@ class GdbVariable extends React.Component {
* @param obj (object): mi object returned from gdb
* @param expr_type (str): type of expression being created (see store creation for documentation)
*/
- static prepare_gdb_obj_for_storage(obj, parent) {
+ static prepare_gdb_obj_for_storage(obj: any, parent: any) {
let new_obj = Object.assign({}, obj);
// obj was copied, now add some additional fields used by gdbgui
@@ -523,7 +556,7 @@ class GdbVariable extends React.Component {
GdbVariable._update_radix_values(new_obj); // mutates new_obj
return new_obj;
}
- static _update_numeric_properties(obj) {
+ static _update_numeric_properties(obj: any) {
let value = obj.value;
if (obj.value.startsWith("0x")) {
value = parseInt(obj.value, 16);
@@ -533,7 +566,7 @@ class GdbVariable extends React.Component {
obj.can_plot = obj.is_numeric && obj.expr_type === "expr";
obj.is_int = obj.is_numeric ? obj._float_value % 1 === 0 : false;
}
- static _update_radix_values(obj) {
+ static _update_radix_values(obj: any) {
if (obj.is_int) {
obj._int_value_decimal = parseInt(obj.value);
if (obj._radix < 2 || obj._radix > 36) {
@@ -551,7 +584,7 @@ class GdbVariable extends React.Component {
* function render a plot on an existing element
* @param obj: object to make a plot for
*/
- static _make_plot(obj) {
+ static _make_plot(obj: any) {
let id = "#" + obj.dom_id_for_plot, // this div should have been created already
jq = $(id),
data = [],
@@ -564,6 +597,7 @@ class GdbVariable extends React.Component {
}
// make the plot
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'plot' does not exist on type 'JQueryStat... Remove this comment to see the full error message
$.plot(
jq,
[
@@ -602,7 +636,7 @@ class GdbVariable extends React.Component {
* If so, update the dom accordingly
* @param obj: expression object to plot (may have children to plot too)
*/
- static plot_var_and_children(obj) {
+ static plot_var_and_children(obj: any) {
if (obj.show_plot) {
GdbVariable._make_plot(obj);
}
@@ -610,7 +644,7 @@ class GdbVariable extends React.Component {
GdbVariable.plot_var_and_children(child);
}
}
- static fetch_and_show_children_for_var(gdb_var_name) {
+ static fetch_and_show_children_for_var(gdb_var_name: any) {
let expressions = store.get("expressions");
let obj = GdbVariable.get_obj_from_gdb_var_name(expressions, gdb_var_name);
// mutate object by reference
@@ -624,7 +658,7 @@ class GdbVariable extends React.Component {
// already have child data, re-render will occur from event dispatch
}
}
- static hide_children_in_ui(gdb_var_name) {
+ static hide_children_in_ui(gdb_var_name: any) {
let expressions = store.get("expressions"),
obj = GdbVariable.get_obj_from_gdb_var_name(expressions, gdb_var_name);
if (obj) {
@@ -632,10 +666,10 @@ class GdbVariable extends React.Component {
store.set("expressions", expressions);
}
}
- static click_toggle_children_visibility(gdb_variable_name) {
+ static click_toggle_children_visibility(gdb_variable_name: any) {
GdbVariable._toggle_children_visibility(gdb_variable_name);
}
- static _toggle_children_visibility(gdb_var_name) {
+ static _toggle_children_visibility(gdb_var_name: any) {
// get data object, which has field that says whether its expanded or not
let obj = GdbVariable.get_obj_from_gdb_var_name(
store.get("expressions"),
@@ -655,7 +689,7 @@ class GdbVariable extends React.Component {
console.error("developer error - expected to find gdb variable object");
}
}
- static click_toggle_plot(gdb_var_name) {
+ static click_toggle_plot(gdb_var_name: any) {
let expressions = store.get("expressions"),
// get data object, which has field that says whether its expanded or not
obj = GdbVariable.get_obj_from_gdb_var_name(expressions, gdb_var_name);
@@ -665,7 +699,7 @@ class GdbVariable extends React.Component {
}
}
static get_update_cmds() {
- function _get_cmds_for_obj(obj) {
+ function _get_cmds_for_obj(obj: any) {
let cmds = [`-var-update --all-values ${obj.name}`];
for (let child of obj.children) {
cmds = cmds.concat(_get_cmds_for_obj(child));
@@ -673,13 +707,13 @@ class GdbVariable extends React.Component {
return cmds;
}
- let cmds = [];
+ let cmds: any = [];
for (let obj of store.get("expressions")) {
cmds = cmds.concat(_get_cmds_for_obj(obj));
}
return cmds;
}
- static handle_changelist(changelist_array) {
+ static handle_changelist(changelist_array: any) {
for (let changelist of changelist_array) {
let expressions = store.get("expressions"),
obj = GdbVariable.get_obj_from_gdb_var_name(expressions, changelist.name);
@@ -690,7 +724,7 @@ class GdbVariable extends React.Component {
ChildVarFetcher.fetch_children(changelist["name"], obj.expr_type);
}
if ("new_children" in changelist) {
- let new_children = changelist.new_children.map(child_obj =>
+ let new_children = changelist.new_children.map((child_obj: any) =>
GdbVariable.prepare_gdb_obj_for_storage(child_obj, obj)
);
obj.children = obj.children.concat(new_children);
@@ -708,10 +742,10 @@ class GdbVariable extends React.Component {
}
}
}
- static click_draw_tree_gdb_variable(gdb_variable) {
+ static click_draw_tree_gdb_variable(gdb_variable: any) {
store.set("root_gdb_tree_var", gdb_variable);
}
- static delete_gdb_variable(gdbvar) {
+ static delete_gdb_variable(gdbvar: any) {
// delete locally
GdbVariable._delete_local_gdb_var_data(gdbvar);
// delete in gdb too
@@ -721,15 +755,16 @@ class GdbVariable extends React.Component {
* Delete local copy of gdb variable (all its children are deleted too
* since they are stored as fields in the object)
*/
- static _delete_local_gdb_var_data(gdb_var_name) {
+ static _delete_local_gdb_var_data(gdb_var_name: any) {
let expressions = store.get("expressions");
- _.remove(expressions, v => v.name === gdb_var_name);
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
+ _.remove(expressions, (v: any) => v.name === gdb_var_name);
store.set("expressions", expressions);
}
/**
* Locally save the variable to our cached variables
*/
- static save_new_expression(expression, expr_type, obj) {
+ static save_new_expression(expression: any, expr_type: any, obj: any) {
let new_obj = GdbVariable.prepare_gdb_obj_for_storage(obj, null);
new_obj.expression = expression;
let expressions = store.get("expressions");
@@ -739,7 +774,7 @@ class GdbVariable extends React.Component {
/**
* Get child variable with a particular name
*/
- static get_child_with_name(children, name) {
+ static get_child_with_name(children: any, name: any) {
for (let child of children) {
if (child.name === name) {
return child;
@@ -747,14 +782,16 @@ class GdbVariable extends React.Component {
}
return undefined;
}
- static get_root_name_from_gdbvar_name(gdb_var_name) {
+ static get_root_name_from_gdbvar_name(gdb_var_name: any) {
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
if (_.isString(gdb_var_name)) {
return gdb_var_name.split(".")[0];
} else {
return "";
}
}
- static get_child_names_from_gdbvar_name(gdb_var_name) {
+ static get_child_names_from_gdbvar_name(gdb_var_name: any) {
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
if (_.isString(gdb_var_name)) {
return gdb_var_name.split(".").slice(1, gdb_var_name.length);
} else {
@@ -768,13 +805,13 @@ class GdbVariable extends React.Component {
* @param gdb_var_name: gdb variable name to find corresponding cached object. Can have dot notation
* @return: object if found, or undefined if not found
*/
- static get_obj_from_gdb_var_name(expressions, gdb_var_name) {
+ static get_obj_from_gdb_var_name(expressions: any, gdb_var_name: any) {
// gdb provides names in dot notation
// let gdb_var_names = gdb_var_name.split('.'),
let top_level_var_name = GdbVariable.get_root_name_from_gdbvar_name(gdb_var_name),
children_names = GdbVariable.get_child_names_from_gdbvar_name(gdb_var_name);
- let objs = expressions.filter(v => v.name === top_level_var_name);
+ let objs = expressions.filter((v: any) => v.name === top_level_var_name);
if (objs.length === 1) {
// we found our top level object
diff --git a/gdbgui/src/js/GdbguiModal.jsx b/gdbgui/src/js/GdbguiModal.tsx
similarity index 77%
rename from gdbgui/src/js/GdbguiModal.jsx
rename to gdbgui/src/js/GdbguiModal.tsx
index c857eb68..611a66d2 100644
--- a/gdbgui/src/js/GdbguiModal.jsx
+++ b/gdbgui/src/js/GdbguiModal.tsx
@@ -1,10 +1,15 @@
import React from "react";
-import Actions from "./Actions.js";
+import Actions from "./Actions";
import { store } from "statorgfc";
-class Modal extends React.Component {
+type State = any;
+
+class Modal extends React.Component<{}, State> {
+ fullscreen_node: any;
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(this, ["show_modal", "modal_body", "modal_header"]);
}
render() {
diff --git a/gdbgui/src/js/GlobalEvents.js b/gdbgui/src/js/GlobalEvents.ts
similarity index 81%
rename from gdbgui/src/js/GlobalEvents.js
rename to gdbgui/src/js/GlobalEvents.ts
index efad962e..842b57b9 100644
--- a/gdbgui/src/js/GlobalEvents.js
+++ b/gdbgui/src/js/GlobalEvents.ts
@@ -2,18 +2,19 @@
* Setup global DOM events
*/
-import constants from "./constants.js";
-import GdbApi from "./GdbApi.jsx";
+import constants from "./constants";
+import GdbApi from "./GdbApi";
const GlobalEvents = {
init: function() {
- window.onkeydown = function(e) {
+ window.onkeydown = function(e: any) {
if (e.keyCode === constants.ENTER_BUTTON_NUM) {
// when pressing enter in an input, don't redirect entire page!
e.preventDefault();
}
};
$("body").on("keydown", GlobalEvents.body_keydown);
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'tooltip' does not exist on type 'JQuery<... Remove this comment to see the full error message
$('[data-toggle="tooltip"]').tooltip();
window.onbeforeunload = () =>
@@ -23,7 +24,7 @@ const GlobalEvents = {
* keyboard shortcuts to interact with gdb.
* enabled only when key is depressed on a target that is NOT an input.
*/
- body_keydown: function(e) {
+ body_keydown: function(e: any) {
let modifier = e.altKey || e.ctrlKey || e.metaKey;
if (e.target.nodeName !== "INPUT" && !modifier) {
@@ -44,6 +45,7 @@ const GlobalEvents = {
GdbApi.click_next_instruction_button(e.shiftKey);
} else if (e.keyCode === constants.COMMA_BUTTON_NUM) {
GdbApi.click_step_instruction_button(e.shiftKey);
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'initial_data'.
} else if (initial_data.rr && e.keyCode === constants.LEFT_BUTTON_NUM) {
// reverse
GdbApi.click_next_button(true);
diff --git a/gdbgui/src/js/HoverVar.jsx b/gdbgui/src/js/HoverVar.tsx
similarity index 67%
rename from gdbgui/src/js/HoverVar.jsx
rename to gdbgui/src/js/HoverVar.tsx
index 52751ba1..8d6a7c62 100644
--- a/gdbgui/src/js/HoverVar.jsx
+++ b/gdbgui/src/js/HoverVar.tsx
@@ -5,8 +5,8 @@
import React from "react";
import { store } from "statorgfc";
-import constants from "./constants.js";
-import GdbVariable from "./GdbVariable.jsx";
+import constants from "./constants";
+import GdbVariable from "./GdbVariable";
class HoverVar extends React.Component {
static enter_timeout = undefined; // debounce fetching the expression
@@ -14,7 +14,10 @@ class HoverVar extends React.Component {
static left = 0;
static top = 0;
+ obj: any;
+
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
// when hovering over a potential variable
@@ -28,10 +31,11 @@ class HoverVar extends React.Component {
$("body").on("mouseenter", "#hovervar", HoverVar.mouseover_hover_window);
$("body").on("mouseleave", "#hovervar", HoverVar.mouseout_hover_window);
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(this, ["expressions"]);
}
render() {
- let hover_objs = store.get("expressions").filter(o => o.expr_type === "hover"),
+ let hover_objs = store.get("expressions").filter((o: any) => o.expr_type === "hover"),
obj;
if (Array.isArray(hover_objs) && hover_objs.length === 1) {
obj = hover_objs[0];
@@ -45,8 +49,10 @@ class HoverVar extends React.Component {
backgroundColor: "white"
};
return (
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'string' is not assignable to type '"absolute... Remove this comment to see the full error message
no variable hovered
;
}
}
- static mouseover_variable(e) {
+ static mouseover_variable(e: any) {
HoverVar.clear_hover_state();
let rect = e.target.getBoundingClientRect(),
@@ -69,28 +75,31 @@ class HoverVar extends React.Component {
HoverVar.top = rect.bottom;
const WAIT_TIME_SEC = 0.5;
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'Timeout' is not assignable to type 'undefine... Remove this comment to see the full error message
HoverVar.enter_timeout = setTimeout(() => {
if (store.get("inferior_program") === constants.inferior_states.paused) {
let ignore_errors = true;
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 2 arguments, but got 3.
GdbVariable.create_variable(var_name, "hover", ignore_errors);
}
}, WAIT_TIME_SEC * 1000);
}
- static mouseout_variable(e) {
+ static mouseout_variable(e: any) {
void e;
const WAIT_TIME_SEC = 0.1;
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'Timeout' is not assignable to type 'undefine... Remove this comment to see the full error message
HoverVar.exit_timeout = setTimeout(() => {
HoverVar.clear_hover_state();
}, WAIT_TIME_SEC * 1000);
}
- static mouseover_hover_window(e) {
+ static mouseover_hover_window(e: any) {
void e;
// Mouse went from hovering over variable name in source code to
// hovering over the window showing the contents of the variable.
// Don't remove the window in this case.
clearTimeout(HoverVar.exit_timeout);
}
- static mouseout_hover_window(e) {
+ static mouseout_hover_window(e: any) {
void e;
HoverVar.clear_hover_state();
}
@@ -99,8 +108,8 @@ class HoverVar extends React.Component {
clearTimeout(HoverVar.exit_timeout);
let exprs_objs_to_remove = store
.get("expressions")
- .filter(obj => obj.expr_type === "hover");
- exprs_objs_to_remove.map(obj => GdbVariable.delete_gdb_variable(obj.name));
+ .filter((obj: any) => obj.expr_type === "hover");
+ exprs_objs_to_remove.map((obj: any) => GdbVariable.delete_gdb_variable(obj.name));
}
}
diff --git a/gdbgui/src/js/InferiorProgramInfo.jsx b/gdbgui/src/js/InferiorProgramInfo.tsx
similarity index 75%
rename from gdbgui/src/js/InferiorProgramInfo.jsx
rename to gdbgui/src/js/InferiorProgramInfo.tsx
index 09f64619..a5a8ff67 100644
--- a/gdbgui/src/js/InferiorProgramInfo.jsx
+++ b/gdbgui/src/js/InferiorProgramInfo.tsx
@@ -1,10 +1,13 @@
import React from "react";
-import Actions from "./Actions.js";
+import Actions from "./Actions";
import { store } from "statorgfc";
-class InferiorProgramInfo extends React.Component {
+type State = any;
+
+class InferiorProgramInfo extends React.Component<{}, State> {
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
this.get_li_for_signal = this.get_li_for_signal.bind(this);
this.get_dropdown = this.get_dropdown.bind(this);
@@ -12,29 +15,35 @@ class InferiorProgramInfo extends React.Component {
selected_signal: "SIGINT",
other_pid: ""
};
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(this, ["inferior_pid", "gdb_pid"]);
}
- get_li_for_signal(s, signal_key) {
+ get_li_for_signal(s: any, signal_key: any) {
let onclick = function() {
let obj = {};
+ // @ts-expect-error ts-migrate(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
obj[signal_key] = s;
+ // @ts-expect-error ts-migrate(2683) FIXME: 'this' implicitly has type 'any' because it does n... Remove this comment to see the full error message
this.setState(obj);
}.bind(this);
return (
+ {/* @ts-expect-error ts-migrate(2339) FIXME: Property 'signals' does not exist on type 'Readonl... Remove this comment to see the full error message */}
{`${s} (${this.props.signals[s]})`}
);
}
- get_signal_choices(signal_key) {
+ get_signal_choices(signal_key: any) {
let signals = [];
// push SIGINT and SIGKILL to top
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'signals' does not exist on type 'Readonl... Remove this comment to see the full error message
for (let s in this.props.signals) {
if (s === "SIGKILL" || s === "SIGINT") {
signals.push(this.get_li_for_signal(s, signal_key));
}
}
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'signals' does not exist on type 'Readonl... Remove this comment to see the full error message
for (let s in this.props.signals) {
if (s !== "SIGKILL" && s !== "SIGINT") {
signals.push(this.get_li_for_signal(s, signal_key));
diff --git a/gdbgui/src/js/InitialStoreData.js b/gdbgui/src/js/InitialStoreData.ts
similarity index 77%
rename from gdbgui/src/js/InitialStoreData.js
rename to gdbgui/src/js/InitialStoreData.ts
index 53c2e288..79df95b7 100644
--- a/gdbgui/src/js/InitialStoreData.js
+++ b/gdbgui/src/js/InitialStoreData.ts
@@ -1,6 +1,6 @@
/* global initial_data */
/* global debug */
-import constants from "./constants.js";
+import constants from "./constants";
/**
* The initial store data. Keys cannot be added after initialization.
@@ -9,13 +9,16 @@ import constants from "./constants.js";
*/
const initial_store_data = {
// environment
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'debug'.
debug: debug, // if gdbgui is run in debug mode
- interpreter: initial_data.interpreter, // either 'gdb' or 'llvm'
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'initial_data'.
gdbgui_version: initial_data.gdbgui_version,
latest_gdbgui_version: "(not fetched)",
gdb_version: undefined, // this is parsed from gdb's output
gdb_version_array: [], // this is parsed from gdb's output
gdb_pid: undefined,
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'initial_data'.
+ gdb_command: initial_data.gdb_command,
can_fetch_register_values: true, // set to false if using Rust and gdb v7.12.x (see https://github.com/cs01/gdbgui/issues/64)
show_settings: false,
@@ -31,7 +34,9 @@ const initial_store_data = {
textarea_to_copy_to_clipboard: {}, // will be replaced with textarea dom node
// preferences
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'initial_data'.
themes: initial_data.themes,
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'initial_data'.
current_theme: localStorage.getItem("theme") || initial_data.themes[0],
highlight_source_code: true, // get saved boolean to highlight source code
max_lines_of_code_to_fetch: constants.default_max_lines_of_code_to_fetch,
@@ -39,6 +44,7 @@ const initial_store_data = {
pretty_print: true, // whether gdb should "pretty print" variables. There is an option for this in Settings
refresh_state_after_sending_console_command: true, // If true, send commands to refresh GUI store after each command is sent from console
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'debug'.
show_all_sent_commands_in_console: debug, // show all sent commands if in debug mode
inferior_program: constants.inferior_states.unknown,
@@ -100,13 +106,18 @@ const initial_store_data = {
gdb_console_entries: [],
+ // if we try to write something before the websocket is connected, store it here
+ queuedGdbCommands: [],
+
show_filesystem: false,
- middle_panes_split_obj: {}
+ middle_panes_split_obj: {},
+ gdbguiPty: null
};
-function get_stored(key, default_val) {
+function get_stored(key: any, default_val: any) {
try {
if (localStorage.hasOwnProperty(key)) {
+ // @ts-expect-error ts-migrate(2345) FIXME: Type 'null' is not assignable to type 'string'.
let cached = JSON.parse(localStorage.getItem(key));
if (typeof cached === typeof default_val) {
return cached;
@@ -122,12 +133,16 @@ function get_stored(key, default_val) {
// restore saved localStorage data
for (let key in initial_store_data) {
+ // @ts-expect-error ts-migrate(7053) FIXME: No index signature with a parameter of type 'strin... Remove this comment to see the full error message
let default_val = initial_store_data[key];
+ // @ts-expect-error ts-migrate(7053) FIXME: No index signature with a parameter of type 'strin... Remove this comment to see the full error message
initial_store_data[key] = get_stored(key, default_val);
}
if (localStorage.hasOwnProperty("max_lines_of_code_to_fetch")) {
+ // @ts-expect-error ts-migrate(2345) FIXME: Type 'null' is not assignable to type 'string'.
let savedval = JSON.parse(localStorage.getItem("max_lines_of_code_to_fetch"));
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
if (_.isInteger(savedval) && savedval > 0) {
initial_store_data["max_lines_of_code_to_fetch"] = savedval;
}
diff --git a/gdbgui/src/js/Links.tsx b/gdbgui/src/js/Links.tsx
index d8505275..da72d1bc 100644
--- a/gdbgui/src/js/Links.tsx
+++ b/gdbgui/src/js/Links.tsx
@@ -1,4 +1,4 @@
-import Actions from "./Actions.js";
+import Actions from "./Actions";
import * as React from "react";
import CopyToClipboard from "./CopyToClipboard";
import MemoryLink from "./MemoryLink";
@@ -41,7 +41,7 @@ export class FileLink extends React.Component
{
>
{this.props.file}
{sep}
- {line}
+ {line > 0 ? line : ""}
diff --git a/gdbgui/src/js/Locals.jsx b/gdbgui/src/js/Locals.tsx
similarity index 69%
rename from gdbgui/src/js/Locals.jsx
rename to gdbgui/src/js/Locals.tsx
index a3b95d9c..22c3be8d 100644
--- a/gdbgui/src/js/Locals.jsx
+++ b/gdbgui/src/js/Locals.tsx
@@ -5,18 +5,21 @@
import React from "react";
import { store } from "statorgfc";
-import GdbVariable from "./GdbVariable.jsx";
+import GdbVariable from "./GdbVariable";
class Locals extends React.Component {
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(this, ["expressions", "locals"]);
}
render() {
let content = [];
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
let sorted_local_objs = _.sortBy(
store.get("locals"),
- unsorted_obj => unsorted_obj.name
+ (unsorted_obj: any) => unsorted_obj.name
);
for (let local of sorted_local_objs) {
@@ -24,6 +27,7 @@ class Locals extends React.Component {
if (obj) {
content.push(
obj.expr_type === "local");
- exprs_objs_to_remove.map(obj => GdbVariable.delete_gdb_variable(obj.name));
+ .filter((obj: any) => obj.expr_type === "local");
+ exprs_objs_to_remove.map((obj: any) => GdbVariable.delete_gdb_variable(obj.name));
}
static clear() {
store.set("locals", []);
Locals.clear_autocreated_exprs();
}
- static save_locals(locals) {
- let locals_with_meta = locals.map(local => {
+ static save_locals(locals: any) {
+ let locals_with_meta = locals.map((local: any) => {
// add field to local
local.can_be_expanded = Locals.can_local_be_expanded(local) ? true : false;
return local;
});
store.set("locals", locals_with_meta);
}
- static can_local_be_expanded(local) {
+ static can_local_be_expanded(local: any) {
// gdb returns list of locals. We may want to turn that local into a GdbVariable
// to explore its children
if ("value" in local) {
diff --git a/gdbgui/src/js/Memory.jsx b/gdbgui/src/js/Memory.tsx
similarity index 87%
rename from gdbgui/src/js/Memory.jsx
rename to gdbgui/src/js/Memory.tsx
index 60745686..0383e9fe 100644
--- a/gdbgui/src/js/Memory.jsx
+++ b/gdbgui/src/js/Memory.tsx
@@ -6,20 +6,25 @@
*/
import { store } from "statorgfc";
-import GdbApi from "./GdbApi.jsx";
-import constants from "./constants.js";
-import ReactTable from "./ReactTable.jsx";
+import GdbApi from "./GdbApi";
+import constants from "./constants";
+import ReactTable from "./ReactTable";
+// @ts-expect-error ts-migrate(2691) FIXME: An import path cannot end with a '.tsx' extension.... Remove this comment to see the full error message
import MemoryLink from "./MemoryLink.tsx";
import Actions from "./Actions";
import React from "react";
-class Memory extends React.Component {
+type State = any;
+
+class Memory extends React.Component<{}, State> {
static MAX_ADDRESS_DELTA_BYTES = 1000;
static DEFAULT_ADDRESS_DELTA_BYTES = 31;
static DEFAULT_BYTES_PER_LINE = 8;
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(this, [
"memory_cache",
"start_addr",
@@ -114,6 +119,7 @@ class Memory extends React.Component {
]);
}
+ // @ts-expect-error ts-migrate(2769) FIXME: Type 'string' is not assignable to type 'never'.
return ;
}
render() {
@@ -164,12 +170,12 @@ class Memory extends React.Component {
);
}
- static keypress_on_input(e) {
+ static keypress_on_input(e: any) {
if (e.keyCode === constants.ENTER_BUTTON_NUM) {
Memory.fetch_memory_from_state();
}
}
- static set_inputs_from_address(addr) {
+ static set_inputs_from_address(addr: any) {
// set inputs in DOM
store.set("start_addr", "0x" + parseInt(addr, 16).toString(16));
store.set(
@@ -180,7 +186,9 @@ class Memory extends React.Component {
}
static get_gdb_commands_from_state() {
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
let start_addr = parseInt(_.trim(store.get("start_addr")), 16),
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
end_addr = parseInt(_.trim(store.get("end_addr")), 16);
if (!window.isNaN(start_addr) && window.isNaN(end_addr)) {
@@ -188,6 +196,7 @@ class Memory extends React.Component {
}
let cmds = [];
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
if (_.isInteger(start_addr) && end_addr) {
if (start_addr > end_addr) {
end_addr = start_addr + Memory.DEFAULT_ADDRESS_DELTA_BYTES;
@@ -232,6 +241,7 @@ class Memory extends React.Component {
static click_read_preceding_memory() {
// update starting value, then re-fetch
let NUM_ROWS = 3;
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
let start_addr = parseInt(_.trim(store.get("start_addr")), 16),
byte_offset = store.get("bytes_per_line") * NUM_ROWS;
store.set("start_addr", "0x" + (start_addr - byte_offset).toString(16));
@@ -241,6 +251,7 @@ class Memory extends React.Component {
static click_read_more_memory() {
// update ending value, then re-fetch
let NUM_ROWS = 3;
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
let end_addr = parseInt(_.trim(store.get("end_addr")), 16),
byte_offset = store.get("bytes_per_line") * NUM_ROWS;
store.set("end_addr", "0x" + (end_addr + byte_offset).toString(16));
@@ -251,7 +262,7 @@ class Memory extends React.Component {
* @param text: string to convert address-like text into clickable components
* return react component
*/
- static make_addrs_into_links_react(text) {
+ static make_addrs_into_links_react(text: any) {
let matches = text.match(/(0x[\d\w]+)/g);
if (text && matches && matches.length) {
let addr = matches[0];
@@ -274,7 +285,7 @@ class Memory extends React.Component {
}
}
- static add_value_to_cache(hex_str, hex_val) {
+ static add_value_to_cache(hex_str: any, hex_val: any) {
// strip leading zeros off address provided by gdb
// i.e. 0x000123 turns to
// 0x123
diff --git a/gdbgui/src/js/MemoryLink.tsx b/gdbgui/src/js/MemoryLink.tsx
index bac8e860..f75e720f 100644
--- a/gdbgui/src/js/MemoryLink.tsx
+++ b/gdbgui/src/js/MemoryLink.tsx
@@ -1,11 +1,13 @@
import * as React from "react";
-import Memory from "./Memory.jsx";
+import Memory from "./Memory";
-type Props = {
+type OwnProps = {
addr: string;
style?: React.CSSProperties;
};
+type Props = OwnProps & typeof MemoryLink.defaultProps;
+
class MemoryLink extends React.Component {
render() {
// turn 0x00000000000000 into 0x0
diff --git a/gdbgui/src/js/MiddleLeft.jsx b/gdbgui/src/js/MiddleLeft.tsx
similarity index 70%
rename from gdbgui/src/js/MiddleLeft.jsx
rename to gdbgui/src/js/MiddleLeft.tsx
index 0ab35f1b..b3ae19c2 100644
--- a/gdbgui/src/js/MiddleLeft.jsx
+++ b/gdbgui/src/js/MiddleLeft.tsx
@@ -3,11 +3,15 @@
*/
import React from "react";
-import SourceCode from "./SourceCode.jsx";
-import FileOps from "./FileOps.jsx";
+import SourceCode from "./SourceCode";
+import FileOps from "./FileOps";
class MiddleLeft extends React.Component {
+ fetch_more_at_top_timeout: any;
+ onscroll_timeout: any;
+ source_code_container_node: any;
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
this.onscroll_container = this.onscroll_container.bind(this);
this.onscroll_timeout = null;
@@ -25,6 +29,7 @@ class MiddleLeft extends React.Component {
);
}
componentDidMount() {
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'JQuery' is not assignable to ty... Remove this comment to see the full error message
SourceCode.el_code_container = $("#code_container"); // todo: no jquery
if (this.source_code_container_node) {
@@ -43,6 +48,7 @@ class MiddleLeft extends React.Component {
let fetching_for_top = false; // don't fetch for more at bottom and top at same time
if (SourceCode.view_more_top_node) {
let { is_visible } = SourceCode.is_source_line_visible(
+ // @ts-expect-error ts-migrate(2769) FIXME: Argument of type 'null' is not assignable to param... Remove this comment to see the full error message
$(SourceCode.view_more_top_node)
);
if (is_visible) {
@@ -53,6 +59,7 @@ class MiddleLeft extends React.Component {
if (!fetching_for_top && SourceCode.view_more_bottom_node) {
let { is_visible } = SourceCode.is_source_line_visible(
+ // @ts-expect-error ts-migrate(2769) FIXME: Argument of type 'null' is not assignable to param... Remove this comment to see the full error message
$(SourceCode.view_more_bottom_node)
);
if (is_visible) {
diff --git a/gdbgui/src/js/ReactTable.jsx b/gdbgui/src/js/ReactTable.jsx
deleted file mode 100644
index 742daf79..00000000
--- a/gdbgui/src/js/ReactTable.jsx
+++ /dev/null
@@ -1,46 +0,0 @@
-import React from "react";
-
-class TableRow extends React.Component {
- get_tds() {
- let tds = [];
- for (let i in this.props.data) {
- tds.push({this.props.data[i]} );
- }
- return tds;
- }
-
- render() {
- return {this.get_tds()} ;
- }
-}
-
-class ReactTable extends React.Component {
- static defaultProps = { header: [] };
- render_row(row_data, i) {
- return ;
- }
-
- render_head() {
- let ths = [],
- i = 0;
- for (let th_data of this.props.header) {
- ths.push({th_data} );
- i++;
- }
- return ths;
- }
-
- render() {
- let classes = ["table", "table-condensed"].concat(this.props.classes);
- return (
-
-
- {this.render_head()}
-
- {this.props.data.map(this.render_row)}
-
- );
- }
-}
-
-export default ReactTable;
diff --git a/gdbgui/src/js/ReactTable.tsx b/gdbgui/src/js/ReactTable.tsx
new file mode 100644
index 00000000..9476f1bb
--- /dev/null
+++ b/gdbgui/src/js/ReactTable.tsx
@@ -0,0 +1,54 @@
+import React from "react";
+
+class TableRow extends React.Component {
+ className: any;
+ get_tds() {
+ let tds = [];
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'data' does not exist on type 'Readonly<{... Remove this comment to see the full error message
+ for (let i in this.props.data) {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'data' does not exist on type 'Readonly<{... Remove this comment to see the full error message
+ tds.push({this.props.data[i]} );
+ }
+ return tds;
+ }
+
+ render() {
+ return {this.get_tds()} ;
+ }
+}
+
+class ReactTable extends React.Component {
+ static defaultProps = { header: [] };
+ render_row(row_data: any, i: any) {
+ // @ts-expect-error ts-migrate(2769) FIXME: Property 'data' does not exist on type 'IntrinsicA... Remove this comment to see the full error message
+ return ;
+ }
+
+ render_head() {
+ let ths = [],
+ i = 0;
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'header' does not exist on type 'Readonly... Remove this comment to see the full error message
+ for (let th_data of this.props.header) {
+ ths.push({th_data} );
+ i++;
+ }
+ return ths;
+ }
+
+ render() {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'classes' does not exist on type 'Readonl... Remove this comment to see the full error message
+ let classes = ["table", "table-condensed"].concat(this.props.classes);
+ return (
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'style' does not exist on type 'Readonly<... Remove this comment to see the full error message
+
+
+ {this.render_head()}
+
+ {/* @ts-expect-error ts-migrate(2339) FIXME: Property 'data' does not exist on type 'Readonly<{... Remove this comment to see the full error message */}
+ {this.props.data.map(this.render_row)}
+
+ );
+ }
+}
+
+export default ReactTable;
diff --git a/gdbgui/src/js/Registers.jsx b/gdbgui/src/js/Registers.tsx
similarity index 70%
rename from gdbgui/src/js/Registers.jsx
rename to gdbgui/src/js/Registers.tsx
index 18abba62..e423928a 100644
--- a/gdbgui/src/js/Registers.jsx
+++ b/gdbgui/src/js/Registers.tsx
@@ -4,19 +4,23 @@
import React from "react";
import { store } from "statorgfc";
-import constants from "./constants.js";
-import ReactTable from "./ReactTable.jsx";
-import Memory from "./Memory.jsx";
-import GdbApi from "./GdbApi.jsx";
-import register_descriptions from "./register_descriptions.js";
+import constants from "./constants";
+import ReactTable from "./ReactTable";
+import Memory from "./Memory";
+import GdbApi from "./GdbApi";
+import register_descriptions from "./register_descriptions";
const MAX_REGISTER_NAME_FETCH_COUNT = 5;
let register_name_fetch_count = 0,
- register_name_fetch_timeout = null;
+ register_name_fetch_timeout: any = null;
-class Registers extends React.Component {
+type State = any;
+
+class Registers extends React.Component<{}, State> {
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(this, [
"inferior_program",
"previous_register_values",
@@ -26,7 +30,15 @@ class Registers extends React.Component {
]);
}
static get_update_cmds() {
- let cmds = [];
+ let cmds: any = [];
+ if (
+ [constants.inferior_states.paused, constants.inferior_states.running].indexOf(
+ // @ts-expect-error ts-migrate(2345) FIXME: Argument of type 'boolean' is not assignable to pa... Remove this comment to see the full error message
+ store.get("inferior_program") > -1
+ )
+ ) {
+ return cmds;
+ }
if (store.get("can_fetch_register_values") === true) {
if (store.get("register_names").length === 0) {
if (register_name_fetch_count <= MAX_REGISTER_NAME_FETCH_COUNT) {
@@ -48,9 +60,12 @@ class Registers extends React.Component {
}
return cmds;
}
- static cache_register_names(names) {
+ static cache_register_names(names: any) {
// filter out non-empty names
- store.set("register_names", names.filter(name => name));
+ store.set(
+ "register_names",
+ names.filter((name: any) => name)
+ );
}
static clear_register_name_cache() {
store.set("register_names", []);
@@ -90,16 +105,19 @@ class Registers extends React.Component {
for (let i in register_names) {
let name = register_names[i],
- obj = _.find(register_values, v => v["number"] === i),
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
+ obj = _.find(register_values, (v: any) => v["number"] === i),
hex_val_raw = "",
disp_hex_val = "",
disp_dec_val = "",
+ // @ts-expect-error ts-migrate(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
register_description = register_descriptions[name] || "";
if (obj && obj.value) {
hex_val_raw = obj["value"];
- let old_obj = _.find(prev_register_values, v => v["number"] === i),
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
+ let old_obj = _.find(prev_register_values, (v: any) => v["number"] === i),
old_hex_val_raw,
changed = false;
if (old_obj) {
@@ -120,7 +138,9 @@ class Registers extends React.Component {
if (changed) {
name = {name} ;
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'Element' is not assignable to type 'string'.
disp_hex_val = {disp_hex_val} ;
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'Element' is not assignable to type 'string'.
disp_dec_val = {disp_dec_val} ;
}
}
@@ -135,6 +155,7 @@ class Registers extends React.Component {
return (
diff --git a/gdbgui/src/js/RightSidebar.jsx b/gdbgui/src/js/RightSidebar.tsx
similarity index 59%
rename from gdbgui/src/js/RightSidebar.jsx
rename to gdbgui/src/js/RightSidebar.tsx
index 07b12601..e77dbb03 100644
--- a/gdbgui/src/js/RightSidebar.jsx
+++ b/gdbgui/src/js/RightSidebar.tsx
@@ -5,35 +5,47 @@
import React from "react";
-import Breakpoints from "./Breakpoints.jsx";
-import constants from "./constants.js";
-import Expressions from "./Expressions.jsx";
-import GdbMiOutput from "./GdbMiOutput.jsx";
-import InferiorProgramInfo from "./InferiorProgramInfo.jsx";
-import Locals from "./Locals.jsx";
-import Memory from "./Memory.jsx";
-import Registers from "./Registers.jsx";
-import Tree from "./Tree.js";
-import Threads from "./Threads.jsx";
-import ToolTipTourguide from "./ToolTipTourguide.jsx";
-
-let onmouseup_in_parent_callbacks = [],
- onmousemove_in_parent_callbacks = [];
+import Breakpoints from "./Breakpoints";
+import constants from "./constants";
+import Expressions from "./Expressions";
+import GdbMiOutput from "./GdbMiOutput";
+import InferiorProgramInfo from "./InferiorProgramInfo";
+import Locals from "./Locals";
+import Memory from "./Memory";
+import Registers from "./Registers";
+import Tree from "./Tree";
+import Threads from "./Threads";
+import ToolTipTourguide from "./ToolTipTourguide";
+
+let onmouseup_in_parent_callbacks: any = [],
+ onmousemove_in_parent_callbacks: any = [];
let onmouseup_in_parent_callback = function() {
+ // @ts-expect-error ts-migrate(7006) FIXME: Parameter 'fn' implicitly has an 'any' type.
onmouseup_in_parent_callbacks.map(fn => fn());
};
-let onmousemove_in_parent_callback = function(e) {
+let onmousemove_in_parent_callback = function(e: any) {
+ // @ts-expect-error ts-migrate(7006) FIXME: Parameter 'fn' implicitly has an 'any' type.
onmousemove_in_parent_callbacks.map(fn => {
fn(e);
});
};
-class Collapser extends React.Component {
+type OwnCollapserState = any;
+
+type CollapserState = OwnCollapserState & typeof Collapser.defaultProps;
+
+class Collapser extends React.Component<{}, CollapserState> {
static defaultProps = { collapsed: false, id: "" };
- constructor(props) {
+ _height_when_clicked: any;
+ _page_y_orig: any;
+ _resizing: any;
+ collapser_box_node: any;
+ constructor(props: {}) {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
this.state = {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'collapsed' does not exist on type '{}'.
collapsed: props.collapsed,
autosize: true,
height_px: null, // if an integer, force height to this value
@@ -51,7 +63,7 @@ class Collapser extends React.Component {
toggle_visibility() {
this.setState({ collapsed: !this.state.collapsed });
}
- onmousedown_resizer(e) {
+ onmousedown_resizer(e: any) {
this._resizing = true;
this._page_y_orig = e.pageY;
this._height_when_clicked = this.collapser_box_node.clientHeight;
@@ -59,7 +71,7 @@ class Collapser extends React.Component {
onmouseup_resizer() {
this._resizing = false;
}
- onmousemove_resizer(e) {
+ onmousemove_resizer(e: any) {
if (this._resizing) {
let dh = e.pageY - this._page_y_orig;
this.setState({
@@ -79,6 +91,7 @@ class Collapser extends React.Component {
let reset_size_button = "";
if (!this.state.autosize) {
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'Element' is not assignable to type 'string'.
reset_size_button = (
+ {/* @ts-expect-error ts-migrate(2339) FIXME: Property 'title' does not exist on type 'Readonly<... Remove this comment to see the full error message */}
{this.props.title}
... Remove this comment to see the full error message
id={this.props.id}
style={style}
ref={n => (this.collapser_box_node = n)}
>
+ {/* @ts-expect-error ts-migrate(2339) FIXME: Property 'content' does not exist on type 'Readonl... Remove this comment to see the full error message */}
{this.props.content}
@@ -152,8 +170,11 @@ class RightSidebar extends React.Component {
fontSize: "1em"
},
mi_output = "";
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'debug' does not exist on type 'Readonly<... Remove this comment to see the full error message
if (this.props.debug) {
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'Element' is not assignable to type 'string'.
mi_output = (
+ // @ts-expect-error ts-migrate(2322) FIXME: Property 'title' does not exist on type 'Intrinsic... Remove this comment to see the full error message
} />
);
}
@@ -165,6 +186,7 @@ class RightSidebar extends React.Component {
onMouseMove={onmousemove_in_parent_callback}
>
@@ -191,11 +213,15 @@ class RightSidebar extends React.Component {
step_num={5}
/>
+ {/* @ts-expect-error ts-migrate(2322) FIXME: Property 'title' does not exist on type 'Intrinsic... Remove this comment to see the full error message */}
} />
+ {/* @ts-expect-error ts-migrate(2322) FIXME: Property 'title' does not exist on type 'Intrinsic... Remove this comment to see the full error message */}
} />
+ {/* @ts-expect-error ts-migrate(2322) FIXME: Property 'title' does not exist on type 'Intrinsic... Remove this comment to see the full error message */}
} />
@@ -215,12 +241,17 @@ class RightSidebar extends React.Component {
}
/>
+ {/* @ts-expect-error ts-migrate(2322) FIXME: Property 'title' does not exist on type 'Intrinsic... Remove this comment to see the full error message */}
} />
+ {/* @ts-expect-error ts-migrate(2322) FIXME: Property 'title' does not exist on type 'Intrinsic... Remove this comment to see the full error message */}
} />
}
/>
+ {/* @ts-expect-error ts-migrate(2322) FIXME: Property 'title' does not exist on type 'Intrinsic... Remove this comment to see the full error message */}
} />
{mi_output}
diff --git a/gdbgui/src/js/Settings.jsx b/gdbgui/src/js/Settings.tsx
similarity index 86%
rename from gdbgui/src/js/Settings.jsx
rename to gdbgui/src/js/Settings.tsx
index 8bdcbb7b..cc99c3d8 100644
--- a/gdbgui/src/js/Settings.jsx
+++ b/gdbgui/src/js/Settings.tsx
@@ -1,14 +1,19 @@
import { store } from "statorgfc";
-import Actions from "./Actions.js";
-import ToolTip from "./ToolTip.jsx";
+import Actions from "./Actions";
+import ToolTip from "./ToolTip";
import React from "react";
/**
* Settings modal when clicking the gear icon
*/
class Settings extends React.Component {
+ max_source_file_lines_input: any;
+ save_button: any;
+ settings_node: any;
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(this, [
"debug",
"current_theme",
@@ -26,11 +31,11 @@ class Settings extends React.Component {
this
);
}
- static toggle_key(key) {
+ static toggle_key(key: any) {
store.set(key, !store.get(key));
localStorage.setItem(key, JSON.stringify(store.get(key)));
}
- static get_checkbox_row(store_key, text) {
+ static get_checkbox_row(store_key: any, text: any) {
return (
@@ -63,6 +68,7 @@ class Settings extends React.Component {
onClick={() => {
let new_value = parseInt(this.max_source_file_lines_input.value);
Actions.update_max_lines_of_code_to_fetch(new_value);
+ // @ts-expect-error ts-migrate(2345) FIXME: Argument of type '1' is not assignable to paramete... Remove this comment to see the full error message
ToolTip.show_tooltip_on_node("saved!", this.save_button, 1);
}}
>
@@ -108,7 +114,7 @@ class Settings extends React.Component {
localStorage.setItem("theme", e.currentTarget.value);
}}
>
- {store.get("themes").map(t => (
+ {store.get("themes").map((t: any) => (
{t}
))}
diff --git a/gdbgui/src/js/SourceCode.jsx b/gdbgui/src/js/SourceCode.tsx
similarity index 86%
rename from gdbgui/src/js/SourceCode.jsx
rename to gdbgui/src/js/SourceCode.tsx
index 74dd5335..018c7fab 100644
--- a/gdbgui/src/js/SourceCode.jsx
+++ b/gdbgui/src/js/SourceCode.tsx
@@ -4,14 +4,16 @@
import { store } from "statorgfc";
import React from "react";
-import FileOps from "./FileOps.jsx";
-import Breakpoints from "./Breakpoints.jsx";
-import Memory from "./Memory.jsx";
+import FileOps from "./FileOps";
+import Breakpoints from "./Breakpoints";
+import Memory from "./Memory";
import MemoryLink from "./MemoryLink";
-import constants from "./constants.js";
-import Actions from "./Actions.js";
+import constants from "./constants";
+import Actions from "./Actions";
-class SourceCode extends React.Component {
+type State = any;
+
+class SourceCode extends React.Component<{}, State> {
static el_code_container = null; // todo: no jquery
static el_code_container_node = null;
static code_container_node = null;
@@ -19,7 +21,9 @@ class SourceCode extends React.Component {
static view_more_bottom_node = null;
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(this, [
"fullname_to_render",
"cached_source_files",
@@ -148,20 +152,20 @@ class SourceCode extends React.Component {
}
}
}
- click_gutter(line_num) {
+ click_gutter(line_num: any) {
Breakpoints.add_or_remove_breakpoint(this.state.fullname_to_render, line_num);
}
_get_source_line(
- source,
- line_should_flash,
- is_gdb_paused_on_this_line,
- line_num_being_rendered,
- has_bkpt,
- has_disabled_bkpt,
- has_conditional_bkpt,
- assembly_for_line,
- paused_addr
+ source: any,
+ line_should_flash: any,
+ is_gdb_paused_on_this_line: any,
+ line_num_being_rendered: any,
+ has_bkpt: any,
+ has_disabled_bkpt: any,
+ has_conditional_bkpt: any,
+ assembly_for_line: any,
+ paused_addr: any
) {
let row_class = ["srccode"];
@@ -219,7 +223,7 @@ class SourceCode extends React.Component {
);
}
- get_linenum_td(linenum, gutter_cls = "") {
+ get_linenum_td(linenum: any, gutter_cls = "") {
return (
{`(${assm.opcodes})`}
) : (
@@ -258,6 +262,7 @@ class SourceCode extends React.Component {
);
return (
+ {/* @ts-expect-error ts-migrate(2769) FIXME: Property 'fontFamily' is missing in type '{ paddin... Remove this comment to see the full error message */}
{asterisk}
{opcodes /* i.e. mov */}
{instruction}
@@ -272,7 +277,7 @@ class SourceCode extends React.Component {
);
}
- _get_assm_row(key, assm, paused_addr) {
+ _get_assm_row(key: any, assm: any, paused_addr: any) {
return (
@@ -282,7 +287,7 @@ class SourceCode extends React.Component {
);
}
- is_gdb_paused_on_this_line(line_num_being_rendered, line_gdb_is_paused_on) {
+ is_gdb_paused_on_this_line(line_num_being_rendered: any, line_gdb_is_paused_on: any) {
if (this.state.paused_on_frame) {
return (
line_num_being_rendered === line_gdb_is_paused_on &&
@@ -292,8 +297,9 @@ class SourceCode extends React.Component {
return false;
}
}
- get_view_more_tr(fullname, linenum, node_key) {
+ get_view_more_tr(fullname: any, linenum: any, node_key: any) {
return (
+ // @ts-expect-error ts-migrate(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
(SourceCode[node_key] = el)}>
);
}
- get_end_of_file_tr(linenum) {
+ get_end_of_file_tr(linenum: any) {
return (
@@ -318,7 +324,12 @@ class SourceCode extends React.Component {
);
}
- get_line_nums_to_render(source_code_obj, start_linenum, line_to_flash, end_linenum) {
+ get_line_nums_to_render(
+ source_code_obj: any,
+ start_linenum: any,
+ line_to_flash: any,
+ end_linenum: any
+ ) {
let start_linenum_to_render = start_linenum;
let end_linenum_to_render = end_linenum;
let linenum = start_linenum;
@@ -346,13 +357,13 @@ class SourceCode extends React.Component {
return { start_linenum_to_render, end_linenum_to_render };
}
get_body_source_and_assm(
- fullname,
- source_code_obj,
- assembly,
- paused_addr,
- start_linenum,
- end_linenum,
- num_lines_in_file
+ fullname: any,
+ source_code_obj: any,
+ assembly: any,
+ paused_addr: any,
+ start_linenum: any,
+ end_linenum: any,
+ num_lines_in_file: any
) {
let body = [];
@@ -444,7 +455,7 @@ class SourceCode extends React.Component {
return body;
}
- get_body_assembly_only(assm_array, paused_addr) {
+ get_body_assembly_only(assm_array: any, paused_addr: any) {
let body = [],
i = 0;
for (let assm of assm_array) {
@@ -464,13 +475,15 @@ class SourceCode extends React.Component {
static make_current_line_visible() {
return SourceCode._make_jq_selector_visible($("#scroll_to_line"));
}
- static is_source_line_visible(jq_selector) {
+ static is_source_line_visible(jq_selector: any) {
if (jq_selector.length !== 1) {
// make sure something is selected before trying to scroll to it
throw "Unexpected jquery selector";
}
+ // @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
let top_of_container = SourceCode.el_code_container.position().top,
+ // @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
height_of_container = SourceCode.el_code_container.height(),
bottom_of_container = top_of_container + height_of_container,
top_of_line = jq_selector.position().top,
@@ -490,7 +503,7 @@ class SourceCode extends React.Component {
* Used to jump around to various lines
* returns true on success
*/
- static _make_jq_selector_visible(jq_selector) {
+ static _make_jq_selector_visible(jq_selector: any) {
if (jq_selector.length === 1) {
// make sure something is selected before trying to scroll to it
const {
@@ -504,6 +517,7 @@ class SourceCode extends React.Component {
// line is out of view, scroll so it's in the middle of the table
const time_to_scroll = 0;
let scroll_top = top_of_line - (top_of_table + height_of_container / 2);
+ // @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
SourceCode.el_code_container.animate({ scrollTop: scroll_top }, time_to_scroll);
}
return true;
diff --git a/gdbgui/src/js/SourceCodeHeading.jsx b/gdbgui/src/js/SourceCodeHeading.tsx
similarity index 69%
rename from gdbgui/src/js/SourceCodeHeading.jsx
rename to gdbgui/src/js/SourceCodeHeading.tsx
index 51f4223a..9b4b3b3e 100644
--- a/gdbgui/src/js/SourceCodeHeading.jsx
+++ b/gdbgui/src/js/SourceCodeHeading.tsx
@@ -1,12 +1,16 @@
import React from "react";
-import constants from "./constants.js";
+import constants from "./constants";
import { store } from "statorgfc";
import { FileLink } from "./Links";
-import FileOps from "./FileOps.jsx";
+import FileOps from "./FileOps";
-class SourceCodeHeading extends React.Component {
+type State = any;
+
+class SourceCodeHeading extends React.Component<{}, State> {
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(this, [
"fullname_to_render",
"paused_on_frame",
@@ -31,6 +35,7 @@ class SourceCodeHeading extends React.Component {
this.state.fullname_to_render &&
FileOps.get_source_file_obj_from_cache(this.state.fullname_to_render)
) {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 2 arguments, but got 1.
num_lines = FileOps.get_num_lines_in_file(this.state.fullname_to_render);
}
return (
diff --git a/gdbgui/src/js/SourceFileAutocomplete.jsx b/gdbgui/src/js/SourceFileAutocomplete.tsx
similarity index 78%
rename from gdbgui/src/js/SourceFileAutocomplete.jsx
rename to gdbgui/src/js/SourceFileAutocomplete.tsx
index d1e3115b..8d7d4ff9 100644
--- a/gdbgui/src/js/SourceFileAutocomplete.jsx
+++ b/gdbgui/src/js/SourceFileAutocomplete.tsx
@@ -1,8 +1,8 @@
import { store } from "statorgfc";
-import constants from "./constants.js";
-import Actions from "./Actions.js";
-import Util from "./Util.js";
-import FileOps from "./FileOps.jsx";
+import constants from "./constants";
+import Actions from "./Actions";
+import Util from "./Util";
+import FileOps from "./FileOps";
import React from "react";
/**
@@ -14,11 +14,16 @@ import React from "react";
const help_text = "Enter file path to view, press enter";
/* global Awesomplete */
class SourceFileAutocomplete extends React.Component {
+ awesomeplete_input: any;
+ html_input: any;
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'subscribeToKeys' does not exist on type ... Remove this comment to see the full error message
store.subscribeToKeys(["source_file_paths"], this.store_change_callback.bind(this));
}
store_change_callback() {
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
if (!_.isEqual(this.awesomeplete_input._list, store.get("source_file_paths"))) {
this.awesomeplete_input.list = store.get("source_file_paths");
}
@@ -49,8 +54,9 @@ class SourceFileAutocomplete extends React.Component {
);
}
- keyup_source_file_input(e) {
+ keyup_source_file_input(e: any) {
if (e.keyCode === constants.ENTER_BUTTON_NUM) {
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
let user_input = _.trim(e.currentTarget.value);
if (user_input.length === 0) {
@@ -60,6 +66,7 @@ class SourceFileAutocomplete extends React.Component {
let fullname,
default_line = 0,
line;
+ // @ts-expect-error ts-migrate(2345) FIXME: Argument of type 'number' is not assignable to par... Remove this comment to see the full error message
[fullname, line] = Util.parse_fullname_and_line(user_input, default_line);
FileOps.user_select_file_to_view(fullname, line);
} else if (store.get("source_file_paths").length === 0) {
@@ -86,18 +93,19 @@ class SourceFileAutocomplete extends React.Component {
componentDidMount() {
// initialize list of source files
// TODO maybe use a pre-built React component for this
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'Awesomplete'.
this.awesomeplete_input = new Awesomplete("#source_file_input", {
minChars: 0,
maxItems: 10000,
list: [],
// standard sort algorithm (the default Awesomeplete sort is weird)
- sort: (a, b) => {
+ sort: (a: any, b: any) => {
return a < b ? -1 : 1;
}
});
// perform action when an item is selected
- this.html_input.addEventListener("awesomplete-selectcomplete", function(e) {
+ this.html_input.addEventListener("awesomplete-selectcomplete", function(e: any) {
let fullname = e.currentTarget.value;
FileOps.user_select_file_to_view(fullname, 1);
});
diff --git a/gdbgui/src/js/StatusBar.jsx b/gdbgui/src/js/StatusBar.tsx
similarity index 78%
rename from gdbgui/src/js/StatusBar.jsx
rename to gdbgui/src/js/StatusBar.tsx
index aa93d549..0dc609d6 100644
--- a/gdbgui/src/js/StatusBar.jsx
+++ b/gdbgui/src/js/StatusBar.tsx
@@ -1,11 +1,13 @@
import React from "react";
-import Util from "./Util.js";
+import Util from "./Util";
import { store } from "statorgfc";
+type State = any;
+
/**
* Component to render a status message with optional error/warning label
*/
-class StatusBar extends React.Component {
+class StatusBar extends React.Component<{}, State> {
render() {
if (this.state.waiting_for_response) {
return ;
diff --git a/gdbgui/src/js/Terminals.tsx b/gdbgui/src/js/Terminals.tsx
new file mode 100644
index 00000000..d4062bec
--- /dev/null
+++ b/gdbgui/src/js/Terminals.tsx
@@ -0,0 +1,198 @@
+import React from "react";
+import GdbApi from "./GdbApi";
+import { Terminal } from "xterm";
+import { FitAddon } from "xterm-addon-fit";
+import { store } from "statorgfc";
+import "xterm/css/xterm.css";
+import constants from "./constants";
+import Actions from "./Actions";
+
+function customKeyEventHandler(config: {
+ pty_name: string;
+ pty: Terminal;
+ canPaste: boolean;
+ pidStoreKey: string;
+}) {
+ return async (e: KeyboardEvent): Promise => {
+ if (!(e.type === "keydown")) {
+ return true;
+ }
+ if (e.shiftKey && e.ctrlKey) {
+ const key = e.key.toLowerCase();
+ if (key === "c") {
+ const toCopy = config.pty.getSelection();
+ navigator.clipboard.writeText(toCopy);
+ config.pty.focus();
+ return false;
+ } else if (key === "v") {
+ if (!config.canPaste) {
+ return false;
+ }
+ const toPaste = await navigator.clipboard.readText();
+
+ GdbApi.getSocket().emit("pty_interaction", {
+ data: { pty_name: config.pty_name, key: toPaste, action: "write" }
+ });
+ return false;
+ }
+ }
+ return true;
+ };
+}
+export class Terminals extends React.Component {
+ userPtyRef: React.RefObject;
+ programPtyRef: React.RefObject;
+ gdbguiPtyRef: React.RefObject;
+ constructor(props: any) {
+ super(props);
+ this.userPtyRef = React.createRef();
+ this.programPtyRef = React.createRef();
+ this.gdbguiPtyRef = React.createRef();
+ this.terminal = this.terminal.bind(this);
+ }
+
+ terminal(ref: React.RefObject) {
+ let className = " bg-black p-0 m-0 h-full align-baseline ";
+ return (
+
+ );
+ }
+ render() {
+ let terminalsClass = "w-full h-full relative grid grid-cols-3 ";
+ return (
+
+ {this.terminal(this.userPtyRef)}
+ {/* */}
+ {this.terminal(this.gdbguiPtyRef)}
+ {this.terminal(this.programPtyRef)}
+
+ );
+ }
+
+ componentDidMount() {
+ const fitAddon = new FitAddon();
+ const programFitAddon = new FitAddon();
+ const gdbguiFitAddon = new FitAddon();
+
+ const userPty = new Terminal({
+ cursorBlink: true,
+ macOptionIsMeta: true,
+ scrollback: 9999
+ });
+ userPty.loadAddon(fitAddon);
+ userPty.open(this.userPtyRef.current);
+ userPty.writeln(`running command: ${store.get("gdb_command")}`);
+ userPty.writeln("");
+ userPty.attachCustomKeyEventHandler(
+ // @ts-expect-error
+ customKeyEventHandler({
+ pty_name: "user_pty",
+ pty: userPty,
+ canPaste: true,
+ pidStoreKey: "gdb_pid"
+ })
+ );
+ GdbApi.getSocket().on("user_pty_response", function(data: string) {
+ userPty.write(data);
+ });
+ userPty.onKey((data, ev) => {
+ GdbApi.getSocket().emit("pty_interaction", {
+ data: { pty_name: "user_pty", key: data.key, action: "write" }
+ });
+ if (data.domEvent.code === "Enter") {
+ Actions.onConsoleCommandRun();
+ }
+ });
+
+ const programPty = new Terminal({
+ cursorBlink: true,
+ macOptionIsMeta: true,
+ scrollback: 9999
+ });
+ programPty.loadAddon(programFitAddon);
+ programPty.open(this.programPtyRef.current);
+ programPty.attachCustomKeyEventHandler(
+ // @ts-expect-error
+ customKeyEventHandler({
+ pty_name: "program_pty",
+ pty: programPty,
+ canPaste: true,
+ pidStoreKey: "inferior_pid"
+ })
+ );
+ programPty.write(constants.xtermColors.grey);
+ programPty.write(
+ "Program output -- Programs being debugged are connected to this terminal. " +
+ "You can read output and send input to the program from here."
+ );
+ programPty.writeln(constants.xtermColors.reset);
+ GdbApi.getSocket().on("program_pty_response", function(pty_response: string) {
+ programPty.write(pty_response);
+ });
+ programPty.onKey((data, ev) => {
+ GdbApi.getSocket().emit("pty_interaction", {
+ data: { pty_name: "program_pty", key: data.key, action: "write" }
+ });
+ });
+
+ const gdbguiPty = new Terminal({
+ cursorBlink: false,
+ macOptionIsMeta: true,
+ scrollback: 9999,
+ disableStdin: true
+ // theme: { background: "#888" }
+ });
+ gdbguiPty.write(constants.xtermColors.grey);
+ gdbguiPty.writeln("gdbgui output (read-only)");
+ gdbguiPty.writeln(
+ "Copy/Paste available in all terminals with ctrl+shift+c, ctrl+shift+v"
+ );
+ gdbguiPty.write(constants.xtermColors.reset);
+
+ gdbguiPty.attachCustomKeyEventHandler(
+ // @ts-expect-error
+ customKeyEventHandler({ pty_name: "unused", pty: gdbguiPty, canPaste: false })
+ );
+
+ gdbguiPty.loadAddon(gdbguiFitAddon);
+ gdbguiPty.open(this.gdbguiPtyRef.current);
+ // gdbguiPty is written to elsewhere
+ store.set("gdbguiPty", gdbguiPty);
+
+ const interval = setInterval(() => {
+ fitAddon.fit();
+ programFitAddon.fit();
+ gdbguiFitAddon.fit();
+ const socket = GdbApi.getSocket();
+
+ if (socket.disconnected) {
+ return;
+ }
+ socket.emit("pty_interaction", {
+ data: {
+ pty_name: "user_pty",
+ rows: userPty.rows,
+ cols: userPty.cols,
+ action: "set_winsize"
+ }
+ });
+
+ socket.emit("pty_interaction", {
+ data: {
+ pty_name: "program_pty",
+ rows: programPty.rows,
+ cols: programPty.cols,
+ action: "set_winsize"
+ }
+ });
+ }, 2000);
+
+ setTimeout(() => {
+ fitAddon.fit();
+ programFitAddon.fit();
+ gdbguiFitAddon.fit();
+ }, 0);
+ }
+}
diff --git a/gdbgui/src/js/Threads.jsx b/gdbgui/src/js/Threads.tsx
similarity index 77%
rename from gdbgui/src/js/Threads.jsx
rename to gdbgui/src/js/Threads.tsx
index ed754f16..1649c7cc 100644
--- a/gdbgui/src/js/Threads.jsx
+++ b/gdbgui/src/js/Threads.tsx
@@ -1,23 +1,26 @@
import React from "react";
-import ReactTable from "./ReactTable.jsx";
+import ReactTable from "./ReactTable";
import { store } from "statorgfc";
-import GdbApi from "./GdbApi.jsx";
-import Memory from "./Memory.jsx";
+import GdbApi from "./GdbApi";
+import Memory from "./Memory";
import { FileLink } from "./Links";
import MemoryLink from "./MemoryLink";
class FrameArguments extends React.Component {
- render_frame_arg(frame_arg) {
+ render_frame_arg(frame_arg: any) {
return [frame_arg.name, frame_arg.value];
}
render() {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'args' does not exist on type 'Readonly<{... Remove this comment to see the full error message
let frame_args = this.props.args;
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'args' does not exist on type 'Readonly<{... Remove this comment to see the full error message
if (!this.props.args) {
frame_args = [];
}
return (
@@ -25,9 +28,13 @@ class FrameArguments extends React.Component {
}
}
-class Threads extends React.Component {
+type ThreadsState = any;
+
+class Threads extends React.Component<{}, ThreadsState> {
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(this, [
"threads",
"current_thread_id",
@@ -36,11 +43,11 @@ class Threads extends React.Component {
]);
}
- static select_thread_id(thread_id) {
+ static select_thread_id(thread_id: any) {
GdbApi.select_thread_id(thread_id);
}
- static select_frame(framenum) {
+ static select_frame(framenum: any) {
store.set("selected_frame_num", framenum);
store.set("line_of_source_to_flash", null);
store.set("make_current_line_visible", true);
@@ -76,6 +83,7 @@ class Threads extends React.Component {
}
content.push(Threads.get_thread_header(thread, is_current_thread_being_rendered));
content.push(
+ // @ts-expect-error ts-migrate(2769) FIXME: Type 'string' is not assignable to type 'never'.
{content};
}
- static get_stack_for_thread(cur_frame, stack_data, is_current_thread_being_rendered) {
+ static get_stack_for_thread(
+ cur_frame: any,
+ stack_data: any,
+ is_current_thread_being_rendered: any
+ ) {
// each thread provides only the frame that it's paused on (cur_frame).
// we also have the output of `-stack-list-frames` (stack_data), which
// is the full stack of the selected thread
@@ -103,7 +115,7 @@ class Threads extends React.Component {
return [cur_frame];
}
- static get_thread_header(thread, is_current_thread_being_rendered) {
+ static get_thread_header(thread: any, is_current_thread_being_rendered: any) {
let selected,
cls = "";
if (is_current_thread_being_rendered) {
@@ -146,11 +158,11 @@ class Threads extends React.Component {
);
}
static get_frame_row(
- frame,
- is_selected_frame,
- thread_id,
- is_current_thread_being_rendered,
- frame_num
+ frame: any,
+ is_selected_frame: any,
+ thread_id: any,
+ is_current_thread_being_rendered: any,
+ frame_num: any
) {
let onclick;
let classes = [];
@@ -183,15 +195,16 @@ class Threads extends React.Component {
,
,
,
+ // @ts-expect-error ts-migrate(2769) FIXME: Property 'args' does not exist on type 'IntrinsicA... Remove this comment to see the full error message
];
}
static get_row_data_for_stack(
- stack,
- selected_frame_num,
- thread_id,
- is_current_thread_being_rendered
+ stack: any,
+ selected_frame_num: any,
+ thread_id: any,
+ is_current_thread_being_rendered: any
) {
let row_data = [];
let frame_num = 0;
@@ -215,7 +228,7 @@ class Threads extends React.Component {
}
return row_data;
}
- static update_stack(stack) {
+ static update_stack(stack: any) {
store.set("stack", stack);
store.set("paused_on_frame", stack[store.get("selected_frame_num") || 0]);
store.set(
@@ -226,7 +239,7 @@ class Threads extends React.Component {
store.set("current_assembly_address", store.get("paused_on_frame").addr);
store.set("make_current_line_visible", true);
}
- set_thread_id(id) {
+ set_thread_id(id: any) {
store.set("current_thread_id", parseInt(id));
}
}
diff --git a/gdbgui/src/js/ToolTip.jsx b/gdbgui/src/js/ToolTip.tsx
similarity index 67%
rename from gdbgui/src/js/ToolTip.jsx
rename to gdbgui/src/js/ToolTip.tsx
index d972d85e..c7ee8adb 100644
--- a/gdbgui/src/js/ToolTip.jsx
+++ b/gdbgui/src/js/ToolTip.tsx
@@ -2,8 +2,11 @@ import React from "react";
import { store } from "statorgfc";
class ToolTip extends React.Component {
+ timeout: any;
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(this, ["tooltip"]);
this.timeout = null;
}
@@ -15,7 +18,7 @@ class ToolTip extends React.Component {
content: null
});
}
- static show_tooltip_on_node(content, node, show_for_n_sec = null) {
+ static show_tooltip_on_node(content: any, node: any, show_for_n_sec = null) {
store.set("tooltip", {
hidden: false,
show_for_n_sec: show_for_n_sec,
@@ -23,7 +26,8 @@ class ToolTip extends React.Component {
content: content
});
}
- static show_copied_tooltip_on_node(node) {
+ static show_copied_tooltip_on_node(node: any) {
+ // @ts-expect-error ts-migrate(2345) FIXME: Argument of type '1' is not assignable to paramete... Remove this comment to see the full error message
ToolTip.show_tooltip_on_node("copied!", node, 1);
}
render() {
@@ -41,6 +45,7 @@ class ToolTip extends React.Component {
: 0,
left = rect.x - horizontal_buffer + "px",
top = rect.y + tooltip.node.offsetHeight + "px";
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
if (_.isInteger(tooltip.show_for_n_sec)) {
this.timeout = setTimeout(ToolTip.hide_tooltip, tooltip.show_for_n_sec * 1000);
}
@@ -54,6 +59,7 @@ class ToolTip extends React.Component {
border: "1px solid",
position: "fixed",
padding: "5px",
+ // @ts-expect-error ts-migrate(2322) FIXME: Type '"121"' is not assignable to type '"-moz-init... Remove this comment to see the full error message
zIndex: "121"
}}
>
diff --git a/gdbgui/src/js/ToolTipTourguide.jsx b/gdbgui/src/js/ToolTipTourguide.tsx
similarity index 55%
rename from gdbgui/src/js/ToolTipTourguide.jsx
rename to gdbgui/src/js/ToolTipTourguide.tsx
index 675a43d5..a1716d14 100644
--- a/gdbgui/src/js/ToolTipTourguide.jsx
+++ b/gdbgui/src/js/ToolTipTourguide.tsx
@@ -1,14 +1,19 @@
import React from "react";
-import Util from "./Util.js";
+import Util from "./Util";
import { store } from "statorgfc";
-class ToolTipTourguide extends React.Component {
- constructor(props) {
+type State = any;
+
+class ToolTipTourguide extends React.Component<{}, State> {
+ constructor(props: {}) {
super(props);
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'position' does not exist on type '{}'.
if (!props.position && !(props.top && props.left)) {
console.warn("did not receive position");
}
+ // @ts-expect-error ts-migrate(2551) FIXME: Property 'ref' does not exist on type 'ToolTipTour... Remove this comment to see the full error message
this.ref = React.createRef();
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(this, [
"tour_guide_step",
"num_tour_guide_steps",
@@ -35,13 +40,15 @@ class ToolTipTourguide extends React.Component {
Util.persist_value_for_key("show_tour_guide");
}
componentDidUpdate() {
+ // @ts-expect-error ts-migrate(2551) FIXME: Property 'ref' does not exist on type 'ToolTipTour... Remove this comment to see the full error message
if (this.state.show_tour_guide && this.ref.current) {
// need to ensure absolute position is respected by setting parent to
// relative
+ // @ts-expect-error ts-migrate(2551) FIXME: Property 'ref' does not exist on type 'ToolTipTour... Remove this comment to see the full error message
this.ref.current.parentNode.style.position = "relative";
}
}
- get_position(position_name) {
+ get_position(position_name: any) {
let top, left;
switch (position_name) {
case "left":
@@ -70,6 +77,7 @@ class ToolTipTourguide extends React.Component {
left = "50%";
break;
default:
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'position' does not exist on type 'Readon... Remove this comment to see the full error message
console.warn("invalid position " + this.props.position);
top = "100%";
left = "50%";
@@ -80,26 +88,33 @@ class ToolTipTourguide extends React.Component {
render() {
if (!this.state.show_tour_guide) {
return null;
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'step_num' does not exist on type 'Readon... Remove this comment to see the full error message
} else if (this.props.step_num !== this.state.tour_guide_step) {
return null;
}
let top, left;
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'top' does not exist on type 'Readonly<{}... Remove this comment to see the full error message
if (this.props.top && this.props.left) {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'top' does not exist on type 'Readonly<{}... Remove this comment to see the full error message
top = this.props.top;
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'left' does not exist on type 'Readonly<{... Remove this comment to see the full error message
left = this.props.left;
} else {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'position' does not exist on type 'Readon... Remove this comment to see the full error message
[top, left] = this.get_position(this.props.position);
}
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'step_num' does not exist on type 'Readon... Remove this comment to see the full error message
let is_last_step = this.props.step_num + 1 === this.state.num_tour_guide_steps,
dismiss = is_last_step ? null : (
- dismiss
+ Dismiss
);
return (
+ {/* @ts-expect-error ts-migrate(2339) FIXME: Property 'content' does not exist on type 'Readonl... Remove this comment to see the full error message */}
{this.props.content}
+ {/* @ts-expect-error ts-migrate(2339) FIXME: Property 'step_num' does not exist on type 'Readon... Remove this comment to see the full error message */}
{this.props.step_num + 1} of {this.state.num_tour_guide_steps}
{dismiss}
- {is_last_step ? "Let's Do This!" : "next"}
+ {is_last_step ? "Finish" : "Next"}
);
diff --git a/gdbgui/src/js/TopBar.jsx b/gdbgui/src/js/TopBar.tsx
similarity index 88%
rename from gdbgui/src/js/TopBar.jsx
rename to gdbgui/src/js/TopBar.tsx
index cba6d54e..c35a964a 100644
--- a/gdbgui/src/js/TopBar.jsx
+++ b/gdbgui/src/js/TopBar.tsx
@@ -1,40 +1,23 @@
import React from "react";
import { store } from "statorgfc";
-import BinaryLoader from "./BinaryLoader.jsx";
-import ControlButtons from "./ControlButtons.jsx";
-import Settings from "./Settings.jsx";
-import SourceCodeHeading from "./SourceCodeHeading.jsx";
-import ToolTipTourguide from "./ToolTipTourguide.jsx";
-import FileOps from "./FileOps.jsx";
-import GdbApi from "./GdbApi.jsx";
-import Actions from "./Actions.js";
-import constants from "./constants.js";
-import Util from "./Util.js";
+import BinaryLoader from "./BinaryLoader";
+import ControlButtons from "./ControlButtons";
+import Settings from "./Settings";
+import SourceCodeHeading from "./SourceCodeHeading";
+import ToolTipTourguide from "./ToolTipTourguide";
+import FileOps from "./FileOps";
+import GdbApi from "./GdbApi";
+import Actions from "./Actions";
+import constants from "./constants";
+import Util from "./Util";
-let onkeyup_jump_to_line = e => {
+let onkeyup_jump_to_line = (e: any) => {
if (e.keyCode === constants.ENTER_BUTTON_NUM) {
Actions.set_line_state(e.currentTarget.value);
}
};
-let click_shutdown_button = function() {
- // no need to show confirmation before leaving, because we're about to prompt the user
- window.onbeforeunload = () => null;
- // prompt user
- if (
- window.confirm(
- "This will terminate the gdbgui for all browser tabs running gdbgui (and their gdb processes). Continue?"
- ) === true
- ) {
- // user wants to shutdown, redirect them to the shutdown page
- window.location = "/shutdown";
- } else {
- // re-add confirmation before leaving page (when user actually leaves at a later time)
- window.onbeforeunload = () => "some text";
- }
-};
-
let show_license = function() {
Actions.show_modal(
"gdbgui license",
@@ -121,11 +104,6 @@ const menu = (
Session Information
-
-
- Shutdown gdbgui server
-
-
@@ -159,6 +137,7 @@ const menu = (
);
-class TopBar extends React.Component {
+type State = any;
+
+class TopBar extends React.Component<{}, State> {
+ spinner_timeout: any;
+ spinner_timeout_msec: any;
constructor() {
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 1-2 arguments, but got 0.
super();
// state local to the component
this.state = {
@@ -186,6 +170,7 @@ class TopBar extends React.Component {
show_spinner: false
};
// global state attached to this component
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'connectComponentState' does not exist on... Remove this comment to see the full error message
store.connectComponentState(
this,
[
@@ -202,7 +187,7 @@ class TopBar extends React.Component {
this.spinner_timeout = null;
this.spinner_timeout_msec = 5000;
}
- store_update_callback(keys) {
+ store_update_callback(keys: any) {
if (keys.indexOf("waiting_for_response") !== -1) {
this._clear_spinner_timeout();
this.setState({ show_spinner: false });
@@ -237,9 +222,10 @@ class TopBar extends React.Component {
className="btn-group btn-group"
>
e.stopPropagation()}
+ onClick={(e: any) => e.stopPropagation()}
content={
@@ -269,6 +255,7 @@ class TopBar extends React.Component {
constants.source_code_states.ASSM_AND_SOURCE_CACHED ||
this.state.source_code_state === constants.source_code_states.ASSM_CACHED
) {
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'Element' is not assignable to type 'string'.
toggle_assm_button = (
+ {/* @ts-expect-error ts-migrate(2322) FIXME: Property 'initial_user_input' does not exist on ty... Remove this comment to see the full error message */}
{spinner}
{reverse_checkbox}
@@ -361,6 +350,7 @@ class TopBar extends React.Component {
{menu}
+ {/* @ts-expect-error ts-migrate(2322) FIXME: Object literal may only specify known properties, ... Remove this comment to see the full error message */}
{
+ let render_on_enter = (e: any) => {
if (e.keyCode === 13) {
Tree._render();
}
};
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'HTMLElement' is not assignable to type 'null... Remove this comment to see the full error message
Tree.el = document.getElementById(constants.tree_component_id);
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'HTMLElement' is not assignable to type 'null... Remove this comment to see the full error message
Tree.width_input = document.getElementById("tree_width");
+ // @ts-expect-error ts-migrate(2322) FIXME: Type 'HTMLElement' is not assignable to type 'null... Remove this comment to see the full error message
Tree.height_input = document.getElementById("tree_height");
+ // @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
Tree.width_input.onkeyup = render_on_enter;
+ // @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
Tree.height_input.onkeyup = render_on_enter;
},
network: null, // initialize to null
@@ -34,6 +40,7 @@ const Tree = {
_render: function() {
let gdbvar = store.get("root_gdb_tree_var");
if (!gdbvar) {
+ // @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
Tree.el.innerHTML = `
create an Expression, then click
@@ -66,7 +73,9 @@ const Tree = {
Tree._add_nodes_and_edges(
gdb_var_obj,
undefined,
+ // @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
Tree.network.body.nodes,
+ // @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
Tree.network.body.edges
);
} else {
@@ -77,22 +86,29 @@ const Tree = {
Tree.gdb_var_being_updated = null;
},
_update_canvas_size: function() {
+ // @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
if (Tree.network && Tree.network.canvas && Tree.network.canvas.options) {
+ // @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
if (parseInt(Tree.width_input.value)) {
+ // @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
Tree.network.canvas.options["width"] = parseInt(Tree.width_input.value) + "px";
} else {
+ // @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
Tree.network.canvas.options["width"] = "100%";
}
+ // @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
if (Tree.height_input.value) {
+ // @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
Tree.network.canvas.options["height"] = parseInt(Tree.height_input.value) + "px";
} else {
+ // @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
Tree.network.canvas.options["height"] = "100%";
}
}
},
// @param node: gdb variable object
// @return string for node label in the tree
- _get_node_label: function(node) {
+ _get_node_label: function(node: any) {
let label = [];
if (node.value) {
label.push(node.value);
@@ -101,7 +117,7 @@ const Tree = {
label.push(node.type);
}
- if (node.children.some(c => c.numchild === 0)) {
+ if (node.children.some((c: any) => c.numchild === 0)) {
label.push("field(s):");
}
// children field is only populated when user expands a data structure
@@ -136,25 +152,31 @@ const Tree = {
// @param node: gdb variable object that should be added to Tree.nodes
// @param parent: parent node of node. undefined when node is root.
// @return nothing
- _add_nodes_and_edges: function(node, parent) {
+ _add_nodes_and_edges: function(node: any, parent: any) {
// add/update this node
let node_label = Tree._get_node_label(node);
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'nodes' does not exist on type '{ el: nul... Remove this comment to see the full error message
if (node.name in Tree.nodes._data) {
// compare old value and new value
// if value changed, make it yellow!
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'nodes' does not exist on type '{ el: nul... Remove this comment to see the full error message
let old_label = Tree.nodes._data[node.name].label,
bgcolor = node_label === old_label ? "white" : "yellow";
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'nodes' does not exist on type '{ el: nul... Remove this comment to see the full error message
Tree.nodes.update({
id: node.name,
label: Tree._get_node_label(node),
color: { background: bgcolor }
});
} else {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'nodes' does not exist on type '{ el: nul... Remove this comment to see the full error message
Tree.nodes.add({ id: node.name, label: Tree._get_node_label(node) });
}
// add edge from this node to parent if it's not there
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'edges' does not exist on type '{ el: nul... Remove this comment to see the full error message
if (parent && !(node.name in Tree.edges._data)) {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'edges' does not exist on type '{ el: nul... Remove this comment to see the full error message
Tree.edges.add({
id: node.name,
from: parent.name,
@@ -174,8 +196,10 @@ const Tree = {
} else {
// recursively delete to make invisible
for (let child of node.children) {
- Tree._dfs(child, function(node) {
+ Tree._dfs(child, function(node: any) {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'nodes' does not exist on type '{ el: nul... Remove this comment to see the full error message
Tree.nodes.remove({ id: node.name });
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'edges' does not exist on type '{ el: nul... Remove this comment to see the full error message
Tree.edges.remove({ id: node.name });
});
}
@@ -183,7 +207,7 @@ const Tree = {
},
// depth-first search of node and its children. `callback` is run on each node as it is visited by
// this function
- _dfs: function(node, callback) {
+ _dfs: function(node: any, callback: any) {
callback(node);
for (let child of node.children) {
Tree._dfs(child, callback);
@@ -192,14 +216,19 @@ const Tree = {
// sets Tree.network to be a visjs network consisting of root_gdb_var_obj and all its children
// @param root_gdb_var_obj root gdb variable object for which a network should be rendered
// @return nothing
- render_new_network: function(root_gdb_var_obj) {
+ render_new_network: function(root_gdb_var_obj: any) {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'nodes' does not exist on type '{ el: nul... Remove this comment to see the full error message
Tree.nodes = new vis.DataSet();
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'edges' does not exist on type '{ el: nul... Remove this comment to see the full error message
Tree.edges = new vis.DataSet();
+ // @ts-expect-error ts-migrate(2554) FIXME: Expected 2 arguments, but got 1.
Tree._add_nodes_and_edges(root_gdb_var_obj);
// create the network
var data = {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'nodes' does not exist on type '{ el: nul... Remove this comment to see the full error message
nodes: Tree.nodes,
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'edges' does not exist on type '{ el: nul... Remove this comment to see the full error message
edges: Tree.edges
};
@@ -223,11 +252,14 @@ const Tree = {
}
};
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'vis'.
Tree.network = new vis.Network(Tree.el, data, options);
// http://visjs.org/examples/network/events/interactionEvents.html
- Tree.network.on("click", function(params) {
+ // @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
+ Tree.network.on("click", function(params: any) {
// left click toggles child visibility
+ // @ts-expect-error ts-migrate(2683) FIXME: 'this' implicitly has type 'any' because it does n... Remove this comment to see the full error message
let gdb_var_name = this.getNodeAt(params.pointer.DOM);
Tree.gdb_var_being_updated = gdb_var_name;
if (!gdb_var_name) {
diff --git a/gdbgui/src/js/Util.js b/gdbgui/src/js/Util.ts
similarity index 87%
rename from gdbgui/src/js/Util.js
rename to gdbgui/src/js/Util.ts
index 316c8b86..d8eb7392 100644
--- a/gdbgui/src/js/Util.js
+++ b/gdbgui/src/js/Util.ts
@@ -4,7 +4,7 @@ import { store } from "statorgfc";
* Some general utility methods
*/
const Util = {
- persist_value_for_key: function(key) {
+ persist_value_for_key: function(key: any) {
try {
let value = store.get(key);
localStorage.setItem(key, JSON.stringify(value));
@@ -17,7 +17,7 @@ const Util = {
* @param columns: array of strings
* @param data: array of arrays of data
*/
- get_table: function(columns, data, style = "") {
+ get_table: function(columns: any, data: any, style = "") {
var result = [
``
];
@@ -49,7 +49,7 @@ const Util = {
* Escape gdb's output to be browser compatible
* @param s: string to mutate
*/
- escape: function(s) {
+ escape: function(s: any) {
return s
.replace(/>/g, ">")
.replace(/ true
0.0.9, 0.0.8 -> false
*/
- is_newer(latest, current) {
+ is_newer(latest: any, current: any) {
latest = latest.split(".");
current = current.split(".");
if (latest.length !== current.length) {
diff --git a/gdbgui/src/js/constants.js b/gdbgui/src/js/constants.js
deleted file mode 100644
index 281e28af..00000000
--- a/gdbgui/src/js/constants.js
+++ /dev/null
@@ -1,63 +0,0 @@
-let constants = {
- ENTER_BUTTON_NUM: 13,
- TAB_BUTTON_NUM: 9,
- LEFT_BUTTON_NUM: 37,
- UP_BUTTON_NUM: 38,
- RIGHT_BUTTON_NUM: 39,
- DOWN_BUTTON_NUM: 40,
- Y_BUTTON_NUM: 89,
- N_BUTTON_NUM: 78,
- COMMA_BUTTON_NUM: 188,
- DATE_FORMAT: "dddd, MMMM Do YYYY, h:mm:ss a",
- IGNORE_ERRORS_TOKEN_STR: "1",
- DISASSEMBLY_FOR_MISSING_FILE_STR: "2",
- CREATE_VAR_STR: "3",
- INLINE_DISASSEMBLY_STR: "4",
-
- console_entry_type: {
- SENT_COMMAND: "SENT_COMMAND",
- STD_ERR: "STD_ERR",
- STD_OUT: "STD_OUT",
- BACKTRACE_LINK: "BACKTRACE_LINK",
- GDBGUI_OUTPUT: "GDBGUI_OUTPUT",
- GDBGUI_OUTPUT_RAW: "GDBGUI_OUTPUT_RAW",
- AUTOCOMPLETE_OPTION: "AUTOCOMPLETE_OPTION"
- },
-
- source_code_selection_states: {
- USER_SELECTION: "USER_SELECTION",
- PAUSED_FRAME: "PAUSED_FRAME"
- },
-
- source_code_states: {
- ASSM_AND_SOURCE_CACHED: "ASSM_AND_SOURCE_CACHED",
- SOURCE_CACHED: "SOURCE_CACHED",
- FETCHING_SOURCE: "FETCHING_SOURCE",
- ASSM_CACHED: "ASSM_CACHED",
- FETCHING_ASSM: "FETCHING_ASSM",
- ASSM_UNAVAILABLE: "ASSM_UNAVAILABLE",
- FILE_MISSING: "FILE_MISSING",
- NONE_AVAILABLE: "NONE_AVAILABLE"
- },
-
- inferior_states: {
- unknown: "unknown",
- running: "running",
- paused: "paused",
- exited: "exited"
- },
-
- tree_component_id: "tree",
-
- default_max_lines_of_code_to_fetch: 500,
-
- keys_to_not_log_changes_in_console: ["gdb_mi_output", "gdb_console_entries"]
-};
-constants["IGNORE_ERRORS_TOKEN_INT"] = parseInt(constants.IGNORE_ERRORS_TOKEN_STR);
-constants["DISASSEMBLY_FOR_MISSING_FILE_INT"] = parseInt(
- constants.DISASSEMBLY_FOR_MISSING_FILE_STR
-);
-constants["CREATE_VAR_INT"] = parseInt(constants.CREATE_VAR_STR);
-constants["INLINE_DISASSEMBLY_INT"] = parseInt(constants.INLINE_DISASSEMBLY_STR);
-
-export default Object.freeze(constants);
diff --git a/gdbgui/src/js/constants.ts b/gdbgui/src/js/constants.ts
new file mode 100644
index 00000000..690f6e33
--- /dev/null
+++ b/gdbgui/src/js/constants.ts
@@ -0,0 +1,94 @@
+let constants = {
+ ENTER_BUTTON_NUM: 13,
+ TAB_BUTTON_NUM: 9,
+ LEFT_BUTTON_NUM: 37,
+ UP_BUTTON_NUM: 38,
+ RIGHT_BUTTON_NUM: 39,
+ DOWN_BUTTON_NUM: 40,
+ Y_BUTTON_NUM: 89,
+ N_BUTTON_NUM: 78,
+ COMMA_BUTTON_NUM: 188,
+ DATE_FORMAT: "dddd, MMMM Do YYYY, h:mm:ss a",
+ IGNORE_ERRORS_TOKEN_STR: "1",
+ DISASSEMBLY_FOR_MISSING_FILE_STR: "2",
+ CREATE_VAR_STR: "3",
+ INLINE_DISASSEMBLY_STR: "4",
+
+ console_entry_type: {
+ SENT_COMMAND: "SENT_COMMAND",
+ STD_ERR: "STD_ERR",
+ STD_OUT: "STD_OUT",
+ GDBGUI_OUTPUT: "GDBGUI_OUTPUT",
+ GDBGUI_OUTPUT_RAW: "GDBGUI_OUTPUT_RAW",
+ AUTOCOMPLETE_OPTION: "AUTOCOMPLETE_OPTION"
+ },
+
+ source_code_selection_states: {
+ USER_SELECTION: "USER_SELECTION",
+ PAUSED_FRAME: "PAUSED_FRAME"
+ },
+
+ source_code_states: {
+ ASSM_AND_SOURCE_CACHED: "ASSM_AND_SOURCE_CACHED",
+ SOURCE_CACHED: "SOURCE_CACHED",
+ FETCHING_SOURCE: "FETCHING_SOURCE",
+ ASSM_CACHED: "ASSM_CACHED",
+ FETCHING_ASSM: "FETCHING_ASSM",
+ ASSM_UNAVAILABLE: "ASSM_UNAVAILABLE",
+ FILE_MISSING: "FILE_MISSING",
+ NONE_AVAILABLE: "NONE_AVAILABLE"
+ },
+
+ inferior_states: {
+ unknown: "unknown",
+ running: "running",
+ paused: "paused",
+ exited: "exited"
+ },
+
+ tree_component_id: "tree",
+
+ default_max_lines_of_code_to_fetch: 500,
+
+ keys_to_not_log_changes_in_console: ["gdb_mi_output"],
+ xtermColors: {
+ reset: "\x1B[0m",
+ red: "\x1B[31m",
+ grey: "\x1b[1;30m",
+ green: "\x1B[0;32m",
+ lgreen: "\x1B[1;32m",
+ blue: "\x1B[0;34m",
+ lblue: "\x1B[1;34m",
+ yellow: "\x1B[0;33m"
+ }
+};
+
+const colorTypeMap = {};
+// @ts-expect-error ts-migrate(7053) FIXME: No index signature with a parameter of type 'strin... Remove this comment to see the full error message
+colorTypeMap[constants.console_entry_type.STD_OUT] = constants.xtermColors["reset"];
+// @ts-expect-error ts-migrate(7053) FIXME: No index signature with a parameter of type 'strin... Remove this comment to see the full error message
+colorTypeMap[constants.console_entry_type.STD_ERR] = constants.xtermColors["red"];
+// @ts-expect-error ts-migrate(7053) FIXME: No index signature with a parameter of type 'strin... Remove this comment to see the full error message
+colorTypeMap[constants.console_entry_type.SENT_COMMAND] = constants.xtermColors["lblue"];
+// @ts-expect-error ts-migrate(7053) FIXME: No index signature with a parameter of type 'strin... Remove this comment to see the full error message
+colorTypeMap[constants.console_entry_type.GDBGUI_OUTPUT] =
+ constants.xtermColors["yellow"];
+// @ts-expect-error ts-migrate(7053) FIXME: No index signature with a parameter of type 'strin... Remove this comment to see the full error message
+colorTypeMap[constants.console_entry_type.GDBGUI_OUTPUT_RAW] =
+ constants.xtermColors["green"];
+
+// @ts-expect-error ts-migrate(7053) FIXME: Property 'colorTypeMap' does not exist on type '{ ... Remove this comment to see the full error message
+constants["colorTypeMap"] = colorTypeMap;
+
+// @ts-expect-error ts-migrate(2551) FIXME: Property 'IGNORE_ERRORS_TOKEN_INT' does not exist ... Remove this comment to see the full error message
+constants["IGNORE_ERRORS_TOKEN_INT"] = parseInt(constants.IGNORE_ERRORS_TOKEN_STR);
+// @ts-expect-error ts-migrate(2551) FIXME: Property 'DISASSEMBLY_FOR_MISSING_FILE_INT' does n... Remove this comment to see the full error message
+constants["DISASSEMBLY_FOR_MISSING_FILE_INT"] = parseInt(
+ constants.DISASSEMBLY_FOR_MISSING_FILE_STR
+);
+// @ts-expect-error ts-migrate(2551) FIXME: Property 'CREATE_VAR_INT' does not exist on type '... Remove this comment to see the full error message
+constants["CREATE_VAR_INT"] = parseInt(constants.CREATE_VAR_STR);
+// @ts-expect-error ts-migrate(2551) FIXME: Property 'INLINE_DISASSEMBLY_INT' does not exist o... Remove this comment to see the full error message
+constants["INLINE_DISASSEMBLY_INT"] = parseInt(constants.INLINE_DISASSEMBLY_STR);
+
+export default Object.freeze(constants);
diff --git a/gdbgui/src/js/dashboard.tsx b/gdbgui/src/js/dashboard.tsx
new file mode 100644
index 00000000..0b9ebb77
--- /dev/null
+++ b/gdbgui/src/js/dashboard.tsx
@@ -0,0 +1,252 @@
+import ReactDOM from "react-dom";
+import React, { useState } from "react";
+import "../../static/css/tailwind.css";
+
+type GdbguiSession = {
+ pid: number;
+ start_time: string;
+ command: string;
+ client_ids: string[];
+};
+const copyIcon = (
+
+
+
+);
+
+// @ts-expect-error ts-migrate(2339) FIXME: Property 'gdbgui_sessions' does not exist on type ... Remove this comment to see the full error message
+const data: GdbguiSession[] = window.gdbgui_sessions;
+// @ts-expect-error ts-migrate(2339) FIXME: Property 'csrf_token' does not exist on type 'Wind... Remove this comment to see the full error message
+const csrf_token: string = window.csrf_token;
+// @ts-expect-error ts-migrate(2339) FIXME: Property 'default_command' does not exist on type ... Remove this comment to see the full error message
+const default_command: string = window.default_command;
+function GdbguiSession(props: { session: GdbguiSession; updateData: Function }) {
+ const session = props.session;
+ const params = new URLSearchParams({
+ gdbpid: session.pid.toString()
+ }).toString();
+ const url = `${window.location.origin}/?${params}`;
+ const [shareButtonText, setShareButtonText] = useState(copyIcon);
+ const [clickedKill, setClickedKill] = useState(false);
+ let timeout: NodeJS.Timeout;
+ return (
+
+ {session.command}
+ {session.pid}
+ {session.client_ids.length}
+ {session.start_time}
+
+
+ Connect to Session
+
+ {
+ await navigator.clipboard.writeText(url);
+ setShareButtonText(Copied! );
+ if (timeout) {
+ clearTimeout(timeout);
+ }
+ timeout = setTimeout(() => setShareButtonText(copyIcon), 3000);
+ }}
+ >
+ {shareButtonText}
+
+
+
+ {
+ if (clickedKill) {
+ await fetch("/kill_session", {
+ method: "PUT",
+ headers: {
+ "Content-Type": "application/json"
+ },
+ body: JSON.stringify({ gdbpid: session.pid, csrf_token })
+ });
+ await props.updateData();
+ } else {
+ setClickedKill(true);
+ setTimeout(() => {
+ setClickedKill(false);
+ }, 5000);
+ }
+ }}
+ >
+ {clickedKill ? "Click Again to Confirm" : "Kill Session"}
+
+
+
+ );
+}
+
+function redirect(url: string) {
+ window.open(url, "_blank");
+ setTimeout(() => window.location.reload(), 500);
+}
+class StartCommand extends React.Component {
+ constructor(props: any) {
+ super(props);
+ // @ts-expect-error
+ this.state = { value: window.default_command };
+
+ this.handleChange = this.handleChange.bind(this);
+ this.handleSubmit = this.handleSubmit.bind(this);
+ }
+
+ handleChange(event: any) {
+ this.setState({ value: event.target.value });
+ }
+
+ handleSubmit() {
+ const params = new URLSearchParams({
+ gdb_command: this.state.value
+ }).toString();
+ redirect(`/?${params}`);
+ }
+
+ render() {
+ return (
+ <>
+ Enter the gdb command to run in the session.
+
+ {
+ if (event.key.toLowerCase() === "enter") {
+ this.handleSubmit();
+ }
+ }}
+ placeholder="gdb --flag args"
+ />
+
+ Start New Session
+
+
+ >
+ );
+ }
+}
+
+function Nav() {
+ return (
+
+
+
+
+
+ );
+}
+
+class Dashboard extends React.PureComponent {
+ interval: NodeJS.Timeout | undefined;
+ constructor(props: any) {
+ super(props);
+ this.state = { sessions: data };
+ this.updateData = this.updateData.bind(this);
+ }
+ async updateData() {
+ const response = await fetch("/dashboard_data");
+ const sessions = await response.json();
+ this.setState({ sessions });
+ }
+ componentDidMount() {
+ this.interval = setInterval(this.updateData, 5000);
+ }
+ componentWillUnmount() {
+ if (this.interval) {
+ clearInterval(this.interval);
+ }
+ }
+ render() {
+ const sessions = this.state.sessions.map((d, index) => (
+
+ ));
+ return (
+
+
+
+
Start new session
+
+
+ {sessions.length === 1
+ ? "There is 1 gdbgui session running"
+ : `There are ${sessions.length} gdbgui sessions running`}
+
+
+
+
+ Command
+ PID
+ Connected Browsers
+ Start Time
+
+
+
+ {sessions}
+
+
+
+
+ );
+ }
+}
+
+ReactDOM.render( , document.getElementById("dashboard"));
diff --git a/gdbgui/src/js/gdbgui.jsx b/gdbgui/src/js/gdbgui.tsx
similarity index 64%
rename from gdbgui/src/js/gdbgui.jsx
rename to gdbgui/src/js/gdbgui.tsx
index d34752e8..18311fda 100644
--- a/gdbgui/src/js/gdbgui.jsx
+++ b/gdbgui/src/js/gdbgui.tsx
@@ -12,34 +12,40 @@
import ReactDOM from "react-dom";
import React from "react";
+// @ts-expect-error ts-migrate(2305) FIXME: Module '"statorgfc"' has no exported member 'middl... Remove this comment to see the full error message
import { store, middleware } from "statorgfc";
-import Actions from "./Actions.js";
-import constants from "./constants.js";
-import GdbApi from "./GdbApi.jsx";
-import FileOps from "./FileOps.jsx";
-import FoldersView from "./FoldersView.jsx";
-import GdbConsoleContainer from "./GdbConsoleContainer.jsx";
-import GlobalEvents from "./GlobalEvents.js";
-import HoverVar from "./HoverVar.jsx";
-import initial_store_data from "./InitialStoreData.js";
-import MiddleLeft from "./MiddleLeft.jsx";
-import Modal from "./GdbguiModal.jsx";
-import RightSidebar from "./RightSidebar.jsx";
-import Settings from "./Settings.jsx";
-import ToolTip from "./ToolTip.jsx";
-import TopBar from "./TopBar.jsx";
-import ToolTipTourguide from "./ToolTipTourguide.jsx";
+import constants from "./constants";
+import GdbApi from "./GdbApi";
+import FileOps from "./FileOps";
+import FoldersView from "./FoldersView";
+import GlobalEvents from "./GlobalEvents";
+import HoverVar from "./HoverVar";
+import initial_store_data from "./InitialStoreData";
+import MiddleLeft from "./MiddleLeft";
+import Modal from "./GdbguiModal";
+import RightSidebar from "./RightSidebar";
+import Settings from "./Settings";
+import ToolTip from "./ToolTip";
+import TopBar from "./TopBar";
+import ToolTipTourguide from "./ToolTipTourguide";
+
+import "../../static/css/gdbgui.css";
+import "../../static/css/splitjs-gdbgui.css";
+import { Terminals } from "./Terminals";
const store_options = {
immutable: false,
debounce_ms: 10
};
+// @ts-expect-error ts-migrate(2339) FIXME: Property 'initialize' does not exist on type '{ ge... Remove this comment to see the full error message
store.initialize(initial_store_data, store_options);
+// @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'debug'.
if (debug) {
// log call store changes in console except if changed key was in
// constants.keys_to_not_log_changes_in_console
- store.use(function(key, oldval, newval) {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'use' does not exist on type '{ get(key: ... Remove this comment to see the full error message
+ store.use(function(key: any, oldval: any, newval: any) {
if (constants.keys_to_not_log_changes_in_console.indexOf(key) === -1) {
middleware.logChanges(key, oldval, newval);
}
@@ -47,6 +53,7 @@ if (debug) {
});
}
// make this visible in the console
+// @ts-expect-error ts-migrate(2339) FIXME: Property 'store' does not exist on type 'Window & ... Remove this comment to see the full error message
window.store = store;
class Gdbgui extends React.PureComponent {
@@ -58,6 +65,7 @@ class Gdbgui extends React.PureComponent {
render() {
return (
+ {/* @ts-expect-error ts-migrate(2322) FIXME: Property 'initial_user_input' does not exist on ty... Remove this comment to see the full error message */}
@@ -70,6 +78,7 @@ class Gdbgui extends React.PureComponent {
@@ -80,6 +89,7 @@ class Gdbgui extends React.PureComponent {
style={{ width: "100%", height: "100%" }}
>
-
@@ -121,10 +127,13 @@ class Gdbgui extends React.PureComponent {
);
}
componentDidMount() {
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'debug'.
if (debug) {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'getUnwatchedKeys' does not exist on type... Remove this comment to see the full error message
console.warn(store.getUnwatchedKeys());
}
// Split the body into different panes using splitjs (https://github.com/nathancahill/Split.js)
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'Split'.
let middle_panes_split_obj = Split(
["#folders_view", "#source_code_view", "#controls_sidebar"],
{
@@ -136,6 +145,7 @@ class Gdbgui extends React.PureComponent {
}
);
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'Split'.
Split(["#middle", "#bottom"], {
gutterSize: 8,
cursor: "row-resize",
@@ -155,6 +165,7 @@ class Gdbgui extends React.PureComponent {
cache: false,
method: "GET",
success: data => {
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
store.set("latest_gdbgui_version", _.trim(data));
},
error: data => {
diff --git a/gdbgui/src/js/processFeatures.ts b/gdbgui/src/js/processFeatures.ts
new file mode 100644
index 00000000..681622d3
--- /dev/null
+++ b/gdbgui/src/js/processFeatures.ts
@@ -0,0 +1,24 @@
+// https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Support-Commands.html#GDB_002fMI-Support-Commands
+
+import { store } from "statorgfc";
+type Feature =
+ | "thread-info"
+ | "reverse"
+ | "async"
+ | "frozen-varobjs"
+ | "pending-breakpoints"
+ | "data-read-memory-bytes"
+ | "python"
+ | "ada-task-info"
+ | "language-option"
+ | "info-gdb-mi-command"
+ | "undefined-command-error-code"
+ | "exec-run-start-option"
+ | "data-disassemble-a-option"
+ | "breakpoint-notification";
+
+export function processFeatures(features: Array) {
+ if (features.indexOf("reverse") !== -1) {
+ store.set("debug_in_reverse", true);
+ }
+}
diff --git a/gdbgui/src/js/process_gdb_response.js b/gdbgui/src/js/process_gdb_response.tsx
similarity index 72%
rename from gdbgui/src/js/process_gdb_response.js
rename to gdbgui/src/js/process_gdb_response.tsx
index c20c872b..ae988e02 100644
--- a/gdbgui/src/js/process_gdb_response.js
+++ b/gdbgui/src/js/process_gdb_response.tsx
@@ -6,82 +6,56 @@
import React from "react";
import { store } from "statorgfc";
-import GdbMiOutput from "./GdbMiOutput.jsx";
-import Breakpoints from "./Breakpoints.jsx";
-import constants from "./constants.js";
-import Threads from "./Threads.jsx";
-import FileOps from "./FileOps.jsx";
-import Memory from "./Memory.jsx";
-import GdbApi from "./GdbApi.jsx";
-import Locals from "./Locals.jsx";
-import GdbVariable from "./GdbVariable.jsx";
-import Modal from "./GdbguiModal.jsx";
-import Actions from "./Actions.js";
+import GdbMiOutput from "./GdbMiOutput";
+import Breakpoints from "./Breakpoints";
+import constants from "./constants";
+import Threads from "./Threads";
+import FileOps from "./FileOps";
+import Memory from "./Memory";
+import GdbApi from "./GdbApi";
+import Locals from "./Locals";
+import GdbVariable from "./GdbVariable";
+import Modal from "./GdbguiModal";
+import Actions from "./Actions";
+import { processFeatures } from "./processFeatures";
-const process_gdb_response = function(response_array) {
+const process_gdb_response = function(response_array: any) {
/**
* Determines if response is an error and client does not want to be notified of errors for this particular response.
* @param response: gdb mi response object
* @return (bool): true if response should be ignored
*/
- let is_error = response => {
- return response.message === "error";
- },
- ignore_error = response => {
- return (
- response.token === constants.IGNORE_ERRORS_TOKEN_INT ||
- response.token === constants.CREATE_VAR_INT
- );
- },
- is_creating_var = response => {
- return response.token === constants.CREATE_VAR_INT;
- },
- is_autocomplete_response = response_array => {
- let num_responses = response_array.length;
- if (num_responses < 2) {
- return false;
- }
-
- let first_element = response_array[0],
- last_element = response_array[num_responses - 1];
- if (
- first_element.type === "log" &&
- first_element.payload &&
- first_element.payload.startsWith("complete ") &&
- last_element.message === "done" &&
- last_element.stream === "stdout" &&
- last_element.type === "result"
- ) {
- // don't do this unless other checks are true to avoid a potentially expensive slice (copy) of the array
- let gdb_completion_output = response_array.slice(1, num_responses - 1);
- return gdb_completion_output.every(
- c => c.type === "console" && c.stream === "stdout" && c.message === null
- );
- } else {
- return false;
- }
- };
- // if this is an autocomplete response, we will process it here and not
- if (is_autocomplete_response(response_array)) {
- let gdb_completion_output = response_array.slice(1, response_array.length - 1),
- options = gdb_completion_output.map(o => o.payload.replace(/\\n/g, ""));
- store.set("gdb_autocomplete_options", options);
- return;
- }
+ const isError = (response: any) => {
+ return response.message === "error";
+ };
+ const ignoreError = (response: any) => {
+ return (
+ // @ts-expect-error ts-migrate(2551) FIXME: Property 'IGNOREERRORS_TOKEN_INT' does not exist o... Remove this comment to see the full error message
+ response.token === constants.IGNOREERRORS_TOKEN_INT ||
+ // @ts-expect-error ts-migrate(2551) FIXME: Property 'CREATE_VAR_INT' does not exist on type '... Remove this comment to see the full error message
+ response.token === constants.CREATE_VAR_INT
+ );
+ };
+ const isCreatingVar = (response: any) => {
+ // @ts-expect-error ts-migrate(2551) FIXME: Property 'CREATE_VAR_INT' does not exist on type '... Remove this comment to see the full error message
+ return response.token === constants.CREATE_VAR_INT;
+ };
for (let r of response_array) {
// gdb mi output
GdbMiOutput.add_mi_output(r);
- if (is_error(r)) {
- if (is_creating_var(r)) {
+ if (isError(r)) {
+ if (isCreatingVar(r)) {
GdbVariable.gdb_variable_fetch_failed(r);
continue;
- } else if (ignore_error(r)) {
+ } else if (ignoreError(r)) {
continue;
+ // @ts-expect-error ts-migrate(2551) FIXME: Property 'DISASSEMBLY_FOR_MISSING_FILE_INT' does n... Remove this comment to see the full error message
} else if (r.token === constants.DISASSEMBLY_FOR_MISSING_FILE_INT) {
FileOps.fetch_disassembly_for_missing_file_failed();
} else if (
+ // @ts-expect-error ts-migrate(2551) FIXME: Property 'INLINE_DISASSEMBLY_INT' does not exist o... Remove this comment to see the full error message
r.token === constants.INLINE_DISASSEMBLY_INT &&
r.payload &&
r.payload.msg.indexOf("Mode argument must be 0, 1, 2, or 3.") !== -1
@@ -89,6 +63,7 @@ const process_gdb_response = function(response_array) {
// we tried to fetch disassembly for a newer version of gdb, but it didn't work
// try again with mode 3, for older gdb api's
store.set("gdb_version", ["7", "6", "0"]);
+ // @ts-expect-error ts-migrate(2345) FIXME: Argument of type '3' is not assignable to paramete... Remove this comment to see the full error message
FileOps.fetch_assembly_cur_line(3);
} else if (
r.payload &&
@@ -120,12 +95,12 @@ const process_gdb_response = function(response_array) {
let cmds = store
.get("breakpoints")
.filter(
- b =>
+ (b: any) =>
new_bkpt.fullname === b.fullname &&
new_bkpt.func === b.func &&
new_bkpt.line === b.line
)
- .map(b => GdbApi.get_delete_break_cmd(b.number));
+ .map((b: any) => GdbApi.get_delete_break_cmd(b.number));
GdbApi.run_gdb_command(cmds);
// save this breakpoint
@@ -135,6 +110,7 @@ const process_gdb_response = function(response_array) {
// gdb will not return a path, but rather the function name. The function name is
// not a file, and therefore it cannot be displayed. Make sure the path is known before
// trying to render the file of the newly created breakpoint.
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
if (_.isString(bkpt.fullname_to_display)) {
// a normal breakpoint or child breakpoint
Actions.view_file(bkpt.fullname_to_display, parseInt(bkpt.line));
@@ -151,16 +127,15 @@ const process_gdb_response = function(response_array) {
}
if ("threads" in r.payload) {
store.set("threads", r.payload.threads);
- if (store.get("interpreter") === "gdb") {
- store.set("current_thread_id", parseInt(r.payload["current-thread-id"]));
- } else if (store.get("interpreter") === "lldb") {
- // lldb does not provide this
- }
+ store.set("current_thread_id", parseInt(r.payload["current-thread-id"]));
}
if ("register-names" in r.payload) {
let names = r.payload["register-names"];
// filter out empty names
- store.set("register_names", names.filter(name => name !== ""));
+ store.set(
+ "register_names",
+ names.filter((name: any) => name !== "")
+ );
}
if ("register-values" in r.payload) {
store.set("previous_register_values", store.get("current_register_values"));
@@ -171,11 +146,14 @@ const process_gdb_response = function(response_array) {
}
if ("files" in r.payload) {
if (r.payload.files.length > 0) {
- let source_file_paths = _.uniq(r.payload.files.map(f => f.fullname)).sort();
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name '_'.
+ let source_file_paths = _.uniq(
+ r.payload.files.map((f: any) => f.fullname)
+ ).sort();
store.set("source_file_paths", source_file_paths);
let language = "c_family";
- if (source_file_paths.some(p => p.endsWith(".rs"))) {
+ if (source_file_paths.some((p: any) => p.endsWith(".rs"))) {
language = "rust";
let gdb_version_array = store.get("gdb_version_array");
// rust cannot view registers with gdb 7.12.x
@@ -188,7 +166,7 @@ const process_gdb_response = function(response_array) {
);
store.set("can_fetch_register_values", false);
}
- } else if (source_file_paths.some(p => p.endsWith(".go"))) {
+ } else if (source_file_paths.some((p: any) => p.endsWith(".go"))) {
language = "go";
}
store.set("language", language);
@@ -198,6 +176,7 @@ const process_gdb_response = function(response_array) {
]);
if (store.get("inferior_binary_path")) {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'render' does not exist on type 'typeof M... Remove this comment to see the full error message
Modal.render(
"Warning",
@@ -238,6 +217,15 @@ const process_gdb_response = function(response_array) {
if ("name" in r.payload) {
GdbVariable.gdb_created_root_variable(r);
}
+ // features list
+ if ("features" in r.payload) {
+ processFeatures(r.payload.features);
+ }
+ // features list
+ if ("target_features" in r.payload) {
+ // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'processTargetFeatures'.
+ processTargetFeatures(r.payload.target_features);
+ }
} else if (r.type === "result" && r.message === "error") {
// render it in the status bar, and don't render the last response in the array as it does by default
Actions.add_gdb_response_to_console(r);
@@ -261,7 +249,7 @@ const process_gdb_response = function(response_array) {
// GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
let m = /GNU gdb \(.*\)\s+([0-9|.]*)\\n/g;
let a = m.exec(r.payload);
- if (_.isArray(a) && a.length === 2) {
+ if (Array.isArray(a) && a.length === 2) {
store.set("gdb_version", a[1]);
store.set("gdb_version_array", a[1].split("."));
}
@@ -289,6 +277,7 @@ const process_gdb_response = function(response_array) {
r.payload.reason.includes("end-stepping-range")
) {
if (r.payload["new-thread-id"]) {
+ // @ts-expect-error ts-migrate(2339) FIXME: Property 'set_thread_id' does not exist on type 't... Remove this comment to see the full error message
Threads.set_thread_id(r.payload["new-thread-id"]);
}
Actions.inferior_program_paused(r.payload.frame);
@@ -297,24 +286,15 @@ const process_gdb_response = function(response_array) {
if (r.payload["signal-name"] !== "SIGINT") {
Actions.add_console_entries(
- `gdbgui noticed a signal was received (${r.payload["signal-meaning"]}, ${
- r.payload["signal-name"]
- }).`,
+ `Signal received: (${r.payload["signal-meaning"]}, ${r.payload["signal-name"]}).`,
constants.console_entry_type.GDBGUI_OUTPUT
);
Actions.add_console_entries(
- "If the program exited due to a fault, you can attempt to re-enter the state of the program when the fault ",
+ "If the program exited due to a fault, you can attempt to re-enter " +
+ "the state of the program when the fault occurred by running the " +
+ "command 'backtrace' in the gdb terminal.",
constants.console_entry_type.GDBGUI_OUTPUT
);
- Actions.add_console_entries(
- "occurred by clicking the below button.",
- constants.console_entry_type.GDBGUI_OUTPUT
- );
-
- Actions.add_console_entries(
- "Re-Enter Program (backtrace)",
- constants.console_entry_type.BACKTRACE_LINK
- );
}
} else {
console.warn("TODO handle new reason for stopping. Notify developer of this.");
diff --git a/gdbgui/src/js/register_descriptions.js b/gdbgui/src/js/register_descriptions.ts
similarity index 100%
rename from gdbgui/src/js/register_descriptions.js
rename to gdbgui/src/js/register_descriptions.ts
diff --git a/gdbgui/src/js/tests/Util.jest.js b/gdbgui/src/js/tests/Util.jest.ts
similarity index 97%
rename from gdbgui/src/js/tests/Util.jest.js
rename to gdbgui/src/js/tests/Util.jest.ts
index 804f78b1..59826484 100644
--- a/gdbgui/src/js/tests/Util.jest.js
+++ b/gdbgui/src/js/tests/Util.jest.ts
@@ -1,4 +1,4 @@
-import Util from "../Util.js";
+import Util from "../Util";
/* eslint-env jest */
diff --git a/gdbgui/src/js/types.d.ts b/gdbgui/src/js/types.d.ts
index c1425b78..6f0b014b 100644
--- a/gdbgui/src/js/types.d.ts
+++ b/gdbgui/src/js/types.d.ts
@@ -1,5 +1,6 @@
declare module "statorgfc" {
export let store: {
get(key: string): any;
+ set(key: string, value: any): any;
};
}
diff --git a/gdbgui/statemanager.py b/gdbgui/statemanager.py
deleted file mode 100644
index f28232a3..00000000
--- a/gdbgui/statemanager.py
+++ /dev/null
@@ -1,158 +0,0 @@
-import logging
-import traceback
-from collections import defaultdict
-from typing import Any, Dict, List, Optional
-import copy
-from pygdbmi.gdbcontroller import GdbController # type: ignore
-
-logger = logging.getLogger(__name__)
-GDB_MI_FLAG = ["--interpreter=mi2"]
-
-
-class StateManager(object):
- def __init__(self, config: Dict[str, Any]):
- self.controller_to_client_ids: Dict[GdbController, List[str]] = defaultdict(
- list
- ) # key is controller, val is list of client ids
- self.gdb_reader_thread = None
- self.config = config
-
- def get_gdb_args(self):
- gdb_args = copy.copy(GDB_MI_FLAG)
- if self.config["gdb_args"]:
- gdb_args += self.config["gdb_args"]
-
- if self.config["initial_binary_and_args"]:
- gdb_args += ["--args"]
- gdb_args += self.config["initial_binary_and_args"]
- return gdb_args
-
- def connect_client(self, client_id: str, desired_gdbpid: int) -> Dict[str, Any]:
- message = ""
- pid: Optional[int] = 0
- error = False
- using_existing = False
-
- if desired_gdbpid > 0:
- controller = self.get_controller_from_pid(desired_gdbpid)
-
- if controller:
- self.controller_to_client_ids[controller].append(client_id)
- message = (
- "gdbgui is using existing subprocess with pid %s, "
- "originally opened with command %s"
- ) % (str(desired_gdbpid), controller.get_subprocess_cmd())
- using_existing = True
- pid = desired_gdbpid
- else:
- print("error! could not find that pid")
- message = "Could not find a gdb subprocess with pid %s. " % str(
- desired_gdbpid
- )
- error = True
-
- if self.get_controller_from_client_id(client_id) is None:
- logger.info("new sid", client_id)
-
- gdb_args = self.get_gdb_args()
-
- controller = GdbController(
- gdb_path=self.config["gdb_path"],
- gdb_args=gdb_args,
- rr=self.config["rr"],
- )
- self.controller_to_client_ids[controller].append(client_id)
-
- pid = self.get_pid_from_controller(controller)
- if pid is None:
- error = True
- message = "Developer error"
- else:
- message += "gdbgui spawned subprocess with pid %s from command %s." % (
- str(pid),
- controller.get_subprocess_cmd(),
- )
-
- return {
- "pid": pid,
- "message": message,
- "error": error,
- "using_existing": using_existing,
- }
-
- def remove_gdb_controller_by_pid(self, gdbpid: int) -> List[str]:
- controller = self.get_controller_from_pid(gdbpid)
- if controller:
- orphaned_client_ids = self.remove_gdb_controller(controller)
- else:
- logger.info("could not find gdb controller with pid " + str(gdbpid))
- orphaned_client_ids = []
- return orphaned_client_ids
-
- def remove_gdb_controller(self, controller: GdbController) -> List[str]:
- try:
- controller.exit()
- except Exception:
- logger.error(traceback.format_exc())
- orphaned_client_ids = self.controller_to_client_ids.pop(controller, [])
- return orphaned_client_ids
-
- def get_client_ids_from_gdb_pid(self, pid: int) -> List[str]:
- controller = self.get_controller_from_pid(pid)
- return self.controller_to_client_ids.get(controller, [])
-
- def get_client_ids_from_controller(self, controller: GdbController):
- return self.controller_to_client_ids.get(controller, [])
-
- def get_pid_from_controller(self, controller: GdbController) -> Optional[int]:
- if controller and controller.gdb_process:
- return controller.gdb_process.pid
-
- return None
-
- def get_controller_from_pid(self, pid: int) -> Optional[GdbController]:
- for controller in self.controller_to_client_ids:
- this_pid = self.get_pid_from_controller(controller)
- if this_pid == pid:
- return controller
-
- return None
-
- def get_controller_from_client_id(self, client_id: str) -> Optional[GdbController]:
- for controller, client_ids in self.controller_to_client_ids.items():
- if client_id in client_ids:
- return controller
-
- return None
-
- def exit_all_gdb_processes(self):
- logger.info("exiting all subprocesses")
- for controller in self.controller_to_client_ids:
- controller.exit()
- self.controller_to_client_ids.pop(controller)
-
- def get_dashboard_data(self):
- data = {}
- for controller, client_ids in self.controller_to_client_ids.items():
- if controller.gdb_process:
- pid = str(controller.gdb_process.pid)
- else:
- pid = "process no longer exists"
- data[pid] = {
- "cmd": " ".join(controller.cmd),
- "abs_gdb_path": controller.abs_gdb_path,
- "number_of_connected_browser_tabs": len(client_ids),
- "client_ids": client_ids,
- }
- return data
-
- def disconnect_client(self, client_id: str):
- for _, client_ids in self.controller_to_client_ids.items():
- if client_id in client_ids:
- client_ids.remove(client_id)
-
- def _spawn_new_gdb_controller(self):
- pass
-
- def _connect_to_existing_gdb_controller(self):
- pass
diff --git a/gdbgui/static/css/gdbgui.css b/gdbgui/static/css/gdbgui.css
index cc658f3a..71ec63f3 100644
--- a/gdbgui/static/css/gdbgui.css
+++ b/gdbgui/static/css/gdbgui.css
@@ -1,454 +1,450 @@
+@import "tailwindcss/base";
+@import "tailwindcss/components";
+@import "tailwindcss/utilities";
+
/* styling for all html tags */
-body{
- background: #f5f6f7;
- color: grey;
- border-color: grey;
- overflow: hidden;
- padding: 0px;
- height: 100%;
+body {
+ background: #f5f6f7;
+ color: grey;
+ border-color: grey;
+ overflow: hidden;
+ padding: 0px;
+ height: 100%;
}
-pre{
- overflow: visible !important;
+pre {
+ overflow: visible !important;
}
-td{
- vertical-align: top;
+td {
+ vertical-align: top;
}
-
/* styling for generic classes */
-.flip180{
- -webkit-transform: rotate(180deg);
- -moz-transform: rotate(180deg);
- -o-transform: rotate(180deg);
- -ms-transform: rotate(180deg);
- transform: rotate(180deg);
+.flip180 {
+ -webkit-transform: rotate(180deg);
+ -moz-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg);
}
-.inline{
- display: inline;
+.inline {
+ display: inline;
}
-.bold{
- font-weight: bold;
+.bold {
+ font-weight: bold;
}
-.italic{
- font-style: italic;
+.italic {
+ font-style: italic;
}
-.pre{
- white-space: pre;
+.pre {
+ white-space: pre;
}
-.stderr{
- color: #ff3434;
+.monospace {
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
}
-.monospace{
- font-family: Menlo,Monaco,Consolas,"Courier New",monospace;
+.memadr,
+.memadr_react {
+ /* todo - migrate everything to react, then rename memadr_react to memadr */
+ color: #489ce4;
+ text-decoration: none;
}
-.memadr, .memadr_react{ /* todo - migrate everything to react, then rename memadr_react to memadr */
- color: #489ce4;
- text-decoration: none;
+.lighttext {
+ color: #4a4a4a;
}
-.lighttext{
- color: #4a4a4a;
+.glyphicon {
+ /* glyphicons are too bold, make them lighter*/
+ color: #848484;
}
-.glyphicon{
- /* glyphicons are too bold, make them lighter*/
- color: #848484;
+.visibility_toggler {
+ cursor: pointer;
}
-.visibility_toggler{
- cursor: pointer;
+.placeholder {
+ color: #ccc;
+ font-style: italic;
}
-.placeholder{
- color: #ccc;
- font-style: italic;
+.flex {
+ display: flex;
}
-.flex{
- display: flex;
+.flexrow {
+ display: flex;
+ flex-direction: row;
}
-.flexrow{
- display: flex;
- flex-direction: row;
-}
-.flexcol{
- display: flex;
- flex-direction: column;
+.flexcol {
+ display: flex;
+ flex-direction: column;
}
/* components get their own titlebars */
-.titlebar{
- width: 100%;
- color: black;
- background-color: #ddf1ff;
- border-color: #c3c3c3;
- border-width: 1px;
- border-style: solid;
-}
-.pointer{
- cursor: pointer;
-}
-.collapser:hover .rowresizer{
+.titlebar {
+ width: 100%;
+ color: black;
+ background-color: #ddf1ff;
+ border-color: #c3c3c3;
+ border-width: 1px;
+ border-style: solid;
+}
+.pointer {
+ cursor: pointer;
+}
+.collapser:hover .rowresizer {
cursor: row-resize;
height: 10px;
width: 100%;
background-color: white;
background-repeat: no-repeat;
background-position: 50%;
- background-image: url('/static/vendor/images/splitjs/grips/horizontal.png');
+ background-image: url("/static/vendor/images/splitjs/grips/horizontal.png");
}
-.collapser .rowresizer{
+.collapser .rowresizer {
height: 10px;
width: 100%;
background-color: white;
}
-.sent_command{
- color: #00d8ff;
-}
-.sent_command:hover, .autocmplt:hover{
- /* lighten background */
- background-color:rgba(255,255,255,0.1)
-}
+
.disabled {
- background-color: lightgrey;
- opacity: 0.6;
- pointer-events: none;
+ background-color: lightgrey;
+ opacity: 0.6;
+ pointer-events: none;
}
-.margin_sm{
- margin: 2px;
+.margin_sm {
+ margin: 2px;
}
-.no_padding{
- padding: 2px !important;
+.no_padding {
+ padding: 2px !important;
}
-.highlight{
- background: rgba(255, 255, 0, 0.5) !important;
+.highlight {
+ background: rgba(255, 255, 0, 0.5) !important;
}
-div.breakpoint{
- border: solid;
- cursor: pointer;
- /* need top and bottom border so when hovering and showing border on row, there is no "jumping" */
- border-width: 0px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-color: #f5f5f5; /* make border color the same as the background color */
+div.breakpoint {
+ border: solid;
+ cursor: pointer;
+ /* need top and bottom border so when hovering and showing border on row, there is no "jumping" */
+ border-width: 0px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-color: #f5f5f5; /* make border color the same as the background color */
}
-.breakpoint td{
- padding-top: 1px !important;
- padding-bottom: 1px !important;
+.breakpoint td {
+ padding-top: 1px !important;
+ padding-bottom: 1px !important;
}
-.breakpoint:hover{
- background-color: #f5f5f5;
+.breakpoint:hover {
+ background-color: #f5f5f5;
}
-.breakpoint_trashcan, .right_help_icon_show_on_hover{
- margin-right: 5px;
- display: none !important;
+.breakpoint_trashcan,
+.right_help_icon_show_on_hover {
+ margin-right: 5px;
+ display: none !important;
}
div.breakpoint:hover div.breakpoint_trashcan,
-.varLI:hover .right_help_icon_show_on_hover{
- display: inline !important;
-}
-.line_num{
- width: 50px;
- border-width: 0px;
- border-top-width: 1px;
- border-top-color: transparent;
- border-right-width: 1px;
- border-bottom-width: 0px;
- border-style: solid;
- border-right-color: #c7c7c7;
- padding-left: 10px;
- padding-right: 10px;
- font-size: 0.9em;
- color: #ababab;
- cursor: pointer;
+.varLI:hover .right_help_icon_show_on_hover {
+ display: inline !important;
+}
+.line_num {
+ width: 50px;
+ border-width: 0px;
+ border-top-width: 1px;
+ border-top-color: transparent;
+ border-right-width: 1px;
+ border-bottom-width: 0px;
+ border-style: solid;
+ border-right-color: #c7c7c7;
+ padding-left: 10px;
+ padding-right: 10px;
+ font-size: 0.9em;
+ color: #ababab;
+ cursor: pointer;
}
/* the line number has its style changed if it has a breakpoint */
-.line_num.breakpoint, .line_num.disabled_breakpoint{
- color: black;
-}
-.line_num.breakpoint{
- background: #33cdff !important;
- border-style: solid;
- /*border-top-width: 1px;*/
- border-right-width: 0px;
- /*border-bottom-width: 1px;*/
- border-left-width: 0px;
- border-color: transparent;
-}
-.line_num.disabled_breakpoint{
- background: #ffd6d7 !important;
-}
-.line_num.conditional_breakpoint{
- background: #ff9966 !important;
- color:black;
-}
-td.assembly{
- padding-bottom: 0px;
- padding-top: 0px;
- white-space: nowrap;
+.line_num.breakpoint,
+.line_num.disabled_breakpoint {
+ color: black;
+}
+.line_num.breakpoint {
+ background: #33cdff !important;
+ border-style: solid;
+ /*border-top-width: 1px;*/
+ border-right-width: 0px;
+ /*border-bottom-width: 1px;*/
+ border-left-width: 0px;
+ border-color: transparent;
+}
+.line_num.disabled_breakpoint {
+ background: #ffd6d7 !important;
+}
+.line_num.conditional_breakpoint {
+ background: #ff9966 !important;
+ color: black;
+}
+td.assembly {
+ padding-bottom: 0px;
+ padding-top: 0px;
+ white-space: nowrap;
}
/* instruction content */
-.instrContent{
- min-width: 250px;
- display:inline-block;
-}
-#code_table{
- font-family: monospace;
- border-collapse: separate;
- font-size: 0.9em;
-}
-.srccode td{
- padding-left: 3px;
- padding-bottom: 0px;
- padding-top: 0px;
- border-style: solid;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 0px;
- border-color: transparent;
-}
-td.line_num{
- border-style: solid;
- border-right-width: 1px;
- border-top-width: 0px;
- border-bottom-width: 0px;
- border-left-width: 0px;
- border-right-color: #d4d4d4;
- border-top-color: transparent;
- border-bottom-color: transparent;
+.instrContent {
+ min-width: 250px;
+ display: inline-block;
+}
+#code_table {
+ font-family: monospace;
+ border-collapse: separate;
+ font-size: 0.9em;
+}
+.srccode td {
+ padding-left: 3px;
+ padding-bottom: 0px;
+ padding-top: 0px;
+ border-style: solid;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 0px;
+ border-color: transparent;
+}
+td.line_num {
+ border-style: solid;
+ border-right-width: 1px;
+ border-top-width: 0px;
+ border-bottom-width: 0px;
+ border-left-width: 0px;
+ border-right-color: #d4d4d4;
+ border-top-color: transparent;
+ border-bottom-color: transparent;
}
/* wsp == whitespace. Needed to preserve leading whitespace.
this span wraps syntax-highlighted source code */
-.wsp{
- white-space: pre;
+.wsp {
+ white-space: pre;
}
-.current_assembly_command{
- font-weight: bold;
+.current_assembly_command {
+ font-weight: bold;
}
-.padding_left{
- padding-left: 5px;
+.padding_left {
+ padding-left: 5px;
}
-.loc{
- height: 18px
+.loc {
+ height: 18px;
}
.paused_on_line {
- border-width: 0px;
+ border-width: 0px;
}
.dropdown-btn {
- vertical-align: top;
- height: 30px;
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
+ vertical-align: top;
+ height: 30px;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
}
-#memory table{
- font-family: monospace;
+#memory table {
+ font-family: monospace;
}
-.memory_char:empty{
- content: ?;
+.memory_char:empty {
+ content: "?";
}
/* specific styling for ids or components */
-#always_on_top{
- position: fixed;
- top: 0;
- margin-top: 0;
- width: 100%;
- border-bottom: black;
- border-style: solid;
- border-width: 0px;
- z-index: 1000;
- background: #f1f1f1;
-}
-#console_container{
- height: 100%;
- position: relative;
-}
-#console{
- background-color: #292929;
- color: #d6d6d6 !important;
- font-family: Menlo,Monaco,Consolas,"Courier New",monospace !important;
- width: 100%;
- overflow: auto;
- font-size: 0.9em;
- border-bottom: 0;
- border-bottom-left-radius: 0;
- border-bottom-right-radius: 0;
- position: absolute;
- left: 0;
- top: 0;
- bottom: 30px;
+#always_on_top {
+ position: fixed;
+ top: 0;
+ margin-top: 0;
+ width: 100%;
+ border-bottom: black;
+ border-style: solid;
+ border-width: 0px;
+ z-index: 1000;
+ background: #f1f1f1;
}
+/* .chad {
+ @apply font-bold py-2 px-4 rounded;
+}
+.btn-blue {
+ @apply bg-blue-500 text-white;
+}
+.btn-blue:hover {
+ @apply bg-red-700;
+} */
+
#filesystem ul,
-#filesystem li
-{
- listStyleType: none;
+#filesystem li {
+ list-style-type: none;
padding: 0;
}
-#gdb_command_input, #gdb_command_input .gdb_command_input{
- height: 30px;
- border-width: 0;
- background-color: #3c3c3c !important;
- color: #f9f9f9 !important;
- font-family: Menlo,Monaco,Consolas,"Courier New",monospace !important;
+#gdb_command_input,
+#gdb_command_input .gdb_command_input {
+ height: 30px;
+ border-width: 0;
+ background-color: #3c3c3c !important;
+ color: #f9f9f9 !important;
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace !important;
}
-#gdb_command_input{
- width: 100%;
- height: 30px;
- position: absolute;
- bottom: 0px;
- left: 0px;
+#gdb_command_input {
+ width: 100%;
+ height: 30px;
+ position: absolute;
+ bottom: 0px;
+ left: 0px;
}
#gdb_command_input tr td:nth-child(1) {
- width: 30px;
- vertical-align: middle;
+ width: 30px;
+ vertical-align: middle;
}
#gdb_command_input tr td:nth-child(2) {
- width: 100%;
+ width: 100%;
}
#gdb_command_input tr td:nth-child(3) {
- width: 15px;
- vertical-align: middle;
- padding-right: 10px;
-}
-#gdb_command_input .gdb_command_input:focus{
- outline-color: none;
- box-shadow: none;
-}
-.fullscreen_modal{
- padding: 10px;
- width: 100%;
- height: 100%;
- position: fixed;
- left: 0;
- top: 0;
- z-index: 120;
- background: rgba(0,0,0, 0.8);
- overflow: auto;
-}
-.blur{
- filter: blur(3px);
-}
-#gdb_settings_modal{
- width: 800px;
- padding: 40px;
- z-index: 120;
- background: white;
- max-height: 85%;
- overflow: auto;
- margin-left: auto;
- margin-right: auto;
-}
-.modal_content{
- padding: 20px;
- margin-top: 10px;
- margin-left: auto;
- margin-right: auto;
- background: white;
- margin: auto;
- border: 1px solid #888;
- border-radius: 4px;
- width: 500px;
- box-shadow: 0 5px 15px rgba(0,0,0,.5);
+ width: 15px;
+ vertical-align: middle;
+ padding-right: 10px;
+}
+#gdb_command_input .gdb_command_input:focus {
+ outline-color: none;
+ box-shadow: none;
+}
+.fullscreen_modal {
+ padding: 10px;
+ width: 100%;
+ height: 100%;
+ position: fixed;
+ left: 0;
+ top: 0;
+ z-index: 120;
+ background: rgba(0, 0, 0, 0.8);
+ overflow: auto;
+}
+.blur {
+ filter: blur(3px);
+}
+#gdb_settings_modal {
+ width: 800px;
+ padding: 40px;
+ z-index: 120;
+ background: white;
+ max-height: 85%;
+ overflow: auto;
+ margin-left: auto;
+ margin-right: auto;
+}
+.modal_content {
+ padding: 20px;
+ margin-top: 10px;
+ margin-left: auto;
+ margin-right: auto;
+ background: white;
+ margin: auto;
+ border: 1px solid #888;
+ border-radius: 4px;
+ width: 500px;
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
}
-#hovervar{
- background: white;
- width: 350px;
- height: 200px;
- position: absolute;
- top: 0;
- left: 0;
- visibility: none;
- overflow: auto;
- padding: 10px;
- border: solid 1px #989898;
- border-radius: 4px;
- /* http://www.cssmatic.com/box-shadow */
- -webkit-box-shadow: 9px 10px 31px 0px rgba(0,0,0,0.75);
- -moz-box-shadow: 9px 10px 31px 0px rgba(0,0,0,0.75);
- box-shadow: 9px 10px 31px 0px rgba(0,0,0,0.75);
+#hovervar {
+ background: white;
+ width: 350px;
+ height: 200px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ visibility: none;
+ overflow: auto;
+ padding: 10px;
+ border: solid 1px #989898;
+ border-radius: 4px;
+ /* http://www.cssmatic.com/box-shadow */
+ -webkit-box-shadow: 9px 10px 31px 0px rgba(0, 0, 0, 0.75);
+ -moz-box-shadow: 9px 10px 31px 0px rgba(0, 0, 0, 0.75);
+ box-shadow: 9px 10px 31px 0px rgba(0, 0, 0, 0.75);
}
-.otpt{ /* output (shortened to keep dom as small as possible */
- min-height: 1em;
- margin: 2px;
- white-space: pre;
-}
-.gdbguiConsoleOutput{
- color: orange;
- min-height: 1em;
- margin: 2px;
- white-space: pre;
-}
-#gdb_mi_output{
- font-family: Menlo,Monaco,Consolas,"Courier New",monospace;
- overflow: auto;
- font-size: 0.9em;
- height: 300px;
- width: 100%;
+#gdb_mi_output {
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+ overflow: auto;
+ font-size: 0.9em;
+ height: 300px;
+ width: 100%;
}
/* styling for "Expressions" component */
-#expressions li, #locals li, #hovervar li{
- list-style: none;
-}
-#expressions, #locals, #hovervar{
- white-space: nowrap;
- font-family: monospace;
- font-size: 0.9em;
- overflow: auto;
- margin: 0;
- padding: 0;
+#expressions li,
+#locals li,
+#hovervar li {
+ list-style: none;
+}
+#expressions,
+#locals,
+#hovervar {
+ white-space: nowrap;
+ font-family: monospace;
+ font-size: 0.9em;
+ overflow: auto;
+ margin: 0;
+ padding: 0;
}
-.varLI .btn-radix{
- display: none!important;
+.varLI .btn-radix {
+ display: none !important;
}
-.varLI:hover .btn-radix{
- display: inline !important;
+.varLI:hover .btn-radix {
+ display: inline !important;
}
-ul.varUL{
- padding-left: 0;
- padding-top: 0;
- border: 0;
- margin: 0;
+ul.varUL {
+ /* padding-top: 0; */
+ padding-left: 15px;
+ border: 0;
+ margin: 0;
}
/* Show type of variable in lighter text */
-.var_type{
- color: #a0a0a0;
- margin-left: 5px;
- font-style: italic;
-}
-.plot{
- width: 300px;
- height: 200px;
- display: visible;
-}
-#plot_coordinate_tooltip{
- position: fixed;
- display: none;
- border: 1px solid #828282;
- padding: 2px;
- background-color: #f5f5f5;
-}
-#threads ul{
- list-style: none;
- padding: 0;
-}
-#memory table{
- font-size: 0.9em;
+.var_type {
+ color: #a0a0a0;
+ margin-left: 5px;
+ font-style: italic;
+}
+.plot {
+ width: 300px;
+ height: 200px;
+ display: visible;
+}
+#plot_coordinate_tooltip {
+ position: fixed;
+ display: none;
+ border: 1px solid #828282;
+ padding: 2px;
+ background-color: #f5f5f5;
+}
+#threads ul {
+ list-style: none;
+ padding: 0;
+}
+#memory table {
+ font-size: 0.9em;
}
/* Make refresh icon spin - http://www.bootply.com/128062*/
.glyphicon-refresh-animate {
- -animation: spin .7s infinite linear;
- -webkit-animation: webkit-spin .7s infinite linear;
+ -animation: spin 0.7s infinite linear;
+ -webkit-animation: webkit-spin 0.7s infinite linear;
}
@-webkit-keyframes webkit-spin {
- from { -webkit-transform: rotate(0deg);}
- to { -webkit-transform: rotate(360deg);}
+ from {
+ -webkit-transform: rotate(0deg);
+ }
+ to {
+ -webkit-transform: rotate(360deg);
+ }
}
@keyframes spin {
- from { transform: scale(1) rotate(0deg);}
- to { transform: scale(1) rotate(360deg);}
+ from {
+ transform: scale(1) rotate(0deg);
+ }
+ to {
+ transform: scale(1) rotate(360deg);
+ }
+}
+
+button:focus {
+ /* For some reason normalize.css is getting injected into the html page, and it adds a 5px outline
+ on focused buttons */
+ outline-width: 0 !important;
}
diff --git a/gdbgui/static/css/splitjs-gdbgui.css b/gdbgui/static/css/splitjs-gdbgui.css
index ab044f15..f3f41e65 100644
--- a/gdbgui/static/css/splitjs-gdbgui.css
+++ b/gdbgui/static/css/splitjs-gdbgui.css
@@ -1,46 +1,52 @@
/* splitjs is so unopinionated, it doesn't work without specific css classes (float: left) when splitting into two side-by-side
panes ("horizonal" */
/* splitjs classes for splitting the body of the webpage (https://github.com/nathancahill/Split.js) */
-html, body, .splitjs_container { /* for splitjs, it's important that html also has these properties, not just body */
-height: 100%;
-padding: 0;
-margin: 0;
-background-color: #333;
-box-sizing: border-box;
-overflow: hidden;
+html,
+body,
+.splitjs_container {
+ /* for splitjs, it's important that html also has these properties, not just body */
+ height: 100%;
+ padding: 0;
+ margin: 0;
+ background-color: #333;
+ box-sizing: border-box;
+ overflow: hidden;
+ position: relative;
}
.split {
--webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
-overflow-y: hidden;
-overflow-x: hidden;
+ overflow-y: hidden;
+ overflow-x: hidden;
}
.content {
-border: 0px solid #C0C0C0;
-box-shadow: inset 0 1px 2px #e4e4e4;
-background-color: #fff;
-overflow: auto;
-float: left;
-height: 100%;
-width: 100%;
+ border: 0px solid #c0c0c0;
+ box-shadow: inset 0 1px 2px #e4e4e4;
+ background-color: #fff;
+ overflow: auto;
+ float: left;
+ height: 100%;
+ width: 100%;
+ position: relative;
}
-.gutter{
- background: lightgrey;
+.gutter {
+ background: lightgrey;
}
.gutter.gutter-horizontal {
-cursor: col-resize;
+ cursor: col-resize;
}
.gutter.gutter-vertical {
-cursor: row-resize;
+ cursor: row-resize;
}
-.split.split-horizontal, .gutter.gutter-horizontal {
-height: 100%;
-float: left;
+.split.split-horizontal,
+.gutter.gutter-horizontal {
+ height: 100%;
+ float: left;
}
diff --git a/gdbgui/static/css/tailwind.css b/gdbgui/static/css/tailwind.css
new file mode 100644
index 00000000..5881778b
--- /dev/null
+++ b/gdbgui/static/css/tailwind.css
@@ -0,0 +1,9 @@
+@import "tailwindcss/base";
+@import "tailwindcss/components";
+@import "tailwindcss/utilities";
+
+button:focus {
+ /* For some reason normalize.css is getting injected into the html page, and it adds a 5px outline
+ on focused buttons */
+ outline-width: 0;
+}
diff --git a/gdbgui/templates/dashboard.html b/gdbgui/templates/dashboard.html
index d7a146cc..27824c1c 100644
--- a/gdbgui/templates/dashboard.html
+++ b/gdbgui/templates/dashboard.html
@@ -1,70 +1,19 @@
-
+
+
+
gdbgui - dashboard
-
-
-
-
+
-
-
-
-
active gdb processes managed by gdbgui
-
-
- gdb path
- command
- gdb pid
- number of connected browser tabs
-
-
-
- {% for pid, val in processes.items() %}
-
- {{val.abs_gdb_path}}
- {{val.cmd}}
- {{pid}}
- {{val.number_of_connected_browser_tabs}}
-
- View
-
-
- Kill process
-
-
- {% endfor %}
-
-
open tab with new gdb process
-
+
+
Loading dashboard...
+
diff --git a/gdbgui/templates/gdbgui.html b/gdbgui/templates/gdbgui.html
index 505d68c1..5d469ae2 100644
--- a/gdbgui/templates/gdbgui.html
+++ b/gdbgui/templates/gdbgui.html
@@ -1,15 +1,15 @@
-
-
+
+
gdbgui - gdb in a browser
-
-
+
+
-
+
-
+
Loading application, please wait.
Note: JavaScript and cookies must be enabled.
@@ -18,10 +18,8 @@
Loading application, please wait.
-
-
-
-
+
+
-
-
+
{% for theme in themes %}
-
+
{% endfor %}
diff --git a/gdbgui/templates/shutdown.html b/gdbgui/templates/shutdown.html
deleted file mode 100644
index 270dc9bc..00000000
--- a/gdbgui/templates/shutdown.html
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
gdbgui - gdb in a browser
-
-
-
-
-
-
-
-
-
-
- {% if debug == true %}
-
gdbgui not shutting down because debug is true
- {% else %}
-
gdbgui has been shut down
-
- {% endif %}
-
-
-
diff --git a/make_executable.py b/make_executable.py
index 75977173..8f3c6e2e 100644
--- a/make_executable.py
+++ b/make_executable.py
@@ -90,8 +90,9 @@ def verify(binary_path: str, version: str):
def generate_md5(binary: Path, output_file: Path):
+ checksum = hashlib.md5(binary.read_bytes()).hexdigest()
with open(output_file, "w+") as f:
- f.write(hashlib.md5(str(binary).encode()).hexdigest() + "\n")
+ f.write(checksum + "\n")
logging.info(f"Wrote md5 to {output_file}")
diff --git a/mkdocs.yml b/mkdocs.yml
index e3439a48..f4b686dd 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1,5 +1,5 @@
site_name: gdbgui
-site_description: A modern, browser-based frontend to gdb (gnu debugger)
+site_description: A browser-based frontend to gdb (gnu debugger)
theme:
name: "material"
@@ -21,6 +21,6 @@ nav:
- Changelog: "changelog.md"
markdown_extensions:
- - admonition # note blocks, warning blocks -- https://github.com/mkdocs/mkdocs/issues/1659
+ - admonition # note blocks, warning blocks -- https://github.com/mkdocs/mkdocs/issues/1659
- markdown.extensions.codehilite:
guess_lang: false
diff --git a/noxfile.py b/noxfile.py
index 732dd1d4..7700ceba 100644
--- a/noxfile.py
+++ b/noxfile.py
@@ -1,29 +1,50 @@
import nox # type: ignore
from pathlib import Path
from sys import platform
+import subprocess
+nox.options.reuse_existing_virtualenvs = True
nox.options.sessions = ["tests", "lint", "docs"]
python = ["3.6", "3.7", "3.8"]
-
+prettier_command = [
+ "npx",
+ "prettier@1.19.1",
+ "--parser",
+ "typescript",
+ "--config",
+ ".prettierrc.js",
+ "gdbgui/src/js/**/*",
+]
doc_dependencies = [".", "mkdocs", "mkdocs-material"]
-lint_dependencies = ["black", "flake8", "mypy", "check-manifest"]
+lint_dependencies = ["black", "vulture", "flake8", "mypy", "check-manifest"]
+vulture_whitelist = ".vulture_whitelist.py"
files_to_lint = ["gdbgui", "tests"] + [str(p) for p in Path(".").glob("*.py")]
+files_to_lint.remove(vulture_whitelist)
+publish_deps = ["setuptools", "wheel", "twine"]
-@nox.session(reuse_venv=True, python=python)
-def tests(session):
+@nox.session(reuse_venv=True)
+def python_tests(session):
session.install(".", "pytest", "pytest-cov")
tests = session.posargs or ["tests"]
session.run(
"pytest", "--cov=gdbgui", "--cov-config", ".coveragerc", "--cov-report=", *tests
)
+ session.notify("cover")
+
+@nox.session(reuse_venv=True)
+def js_tests(session):
session.run("yarn", "install", external=True)
session.run("yarn", "test", external=True)
session.run("yarn", "build", external=True)
- session.notify("cover")
+
+@nox.session(reuse_venv=True, python=python)
+def tests(session):
+ python_tests(session)
+ js_tests(session)
@nox.session(reuse_venv=True)
@@ -35,32 +56,38 @@ def cover(session):
"report",
"--show-missing",
"--omit=gdbgui/SSLify.py",
- "--fail-under=30",
+ "--fail-under=20",
)
session.run("coverage", "erase")
-@nox.session(reuse_venv=True)
-def lint(session):
+@nox.session()
+def vulture(session):
+ """Find dead code"""
session.run(
- "npx",
- "prettier@1.18.2",
- "--check",
- "--config",
- ".prettierrc.js",
- "gdbgui/src/js/**/*",
- external=True,
+ "vulture",
+ "--ignore-decorators",
+ "@app.*,@socketio.*,@nox.*",
+ *files_to_lint,
+ vulture_whitelist,
+ *session.posargs,
)
- session.install(*lint_dependencies)
+
+
+@nox.session()
+def lint(session):
+ session.install(".", *lint_dependencies)
session.run("black", "--check", *files_to_lint)
session.run("flake8", *files_to_lint)
session.run("mypy", *files_to_lint)
+ vulture(session)
session.run(
- "check-manifest",
- "--ignore",
- "build.js,gdbgui/static/js,gdbgui/static/js/build.js.map",
+ "check-manifest", "--ignore", "gdbgui/static/js/*",
)
session.run("python", "setup.py", "check", "--metadata", "--strict")
+ session.run(
+ *prettier_command, "--check", external=True,
+ )
@nox.session(reuse_venv=True)
@@ -68,13 +95,7 @@ def autoformat(session):
session.install("black")
session.run("black", *files_to_lint)
session.run(
- "npx",
- "prettier@1.18.2",
- "--write",
- "--config",
- ".prettierrc.js",
- "gdbgui/src/js/**/*",
- external=True,
+ *prettier_command, "--write", external=True,
)
@@ -84,19 +105,25 @@ def docs(session):
session.run("mkdocs", "build")
-@nox.session(reuse_venv=True, python=python)
+@nox.session(reuse_venv=True)
def develop(session):
- session.install(*doc_dependencies, *lint_dependencies)
session.install("-e", ".")
- command = "source %s/bin/activate" % (session.virtualenv.location_name)
- session.log("Virtual Environment is ready to be used for development")
- session.log("To use, run: '%s'", command)
+ session.run("yarn", "install", external=True)
+ print("Watching JavaScript file and Python files for changes")
+ with subprocess.Popen(["yarn", "start"]):
+ session.run("python", "gdbgui/backend.py")
+
+
+@nox.session(reuse_venv=True)
+def serve(session):
+ session.install("-e", ".")
+ session.run("python", "gdbgui/backend.py", *session.posargs)
@nox.session(reuse_venv=True)
def build(session):
- session.install("setuptools", "wheel", "twine")
- session.run("rm", "-rf", "dist", external=True)
+ session.install(*publish_deps)
+ session.run("rm", "-rf", "dist", "build", external=True)
session.run("yarn", "build", external=True)
session.run("python", "setup.py", "--quiet", "sdist", "bdist_wheel")
session.run("twine", "check", "dist/*")
@@ -104,6 +131,7 @@ def build(session):
@nox.session(reuse_venv=True)
def publish(session):
+ session.install(*publish_deps)
build(session)
print("REMINDER: Has the changelog been updated?")
session.run("python", "-m", "twine", "upload", "dist/*")
diff --git a/package.json b/package.json
index b813cc87..72c2737c 100644
--- a/package.json
+++ b/package.json
@@ -9,22 +9,39 @@
"prettier": "prettier ./gdbgui/src/js/** --write"
},
"dependencies": {
+ "@types/jquery": "^3.5.1",
+ "@types/socket.io": "^2.1.11",
+ "@types/socket.io-client": "^1.4.33",
"cross-env": "^7.0.2",
+ "css-loader": "^3.6.0",
"prettier": "^1.12.0",
"react": "^16.8",
"react-dom": "^16.4",
+ "socket.io": "2.0.3",
+ "socket.io-client": "2.0.3",
"statorgfc": "^0.1.6",
+ "style-loader": "^1.2.1",
+ "tailwindcss": "^1.5.1",
"webpack": "4.19.0",
- "webpack-cli": "^2.0.14"
+ "webpack-cli": "^2.0.14",
+ "xterm": "4.8.0",
+ "xterm-addon-fit": "^0.4.0",
+ "xterm-addon-web-links": "^0.4.0",
+ "xterm-addon-webgl": "^0.4.0"
},
"devDependencies": {
"@types/jest": "^24.0.11",
"@types/react": "^16.8.7",
"@types/react-dom": "^16.8.2",
+ "autoprefixer": "^9.8.5",
"fork-ts-checker-webpack-plugin": "^1.0.0",
"jest": "^24.3.1",
+ "mini-css-extract-plugin": "^0.9.0",
+ "postcss-cli": "^7.1.1",
+ "postcss-loader": "^3.0.0",
"ts-jest": "^24.0.0",
"ts-loader": "^5.3.3",
+ "ts-migrate": "^0.1.0",
"tslint": "^5.13.1",
"tslint-config-prettier": "^1.18.0",
"tslint-loader": "^3.5.4",
diff --git a/postcss.config.js b/postcss.config.js
new file mode 100644
index 00000000..07119d01
--- /dev/null
+++ b/postcss.config.js
@@ -0,0 +1,4 @@
+const tailwindcss = require("tailwindcss");
+module.exports = {
+ plugins: [tailwindcss("./tailwind.config.js"), require("autoprefixer")]
+};
diff --git a/screenshots/SIGSEV.png b/screenshots/SIGSEV.png
deleted file mode 100644
index 162e3c0b..00000000
Binary files a/screenshots/SIGSEV.png and /dev/null differ
diff --git a/setup.py b/setup.py
index 3f2f1eeb..8fe410ab 100644
--- a/setup.py
+++ b/setup.py
@@ -1,7 +1,14 @@
#!/usr/bin/env python
-import io
import os
+
+USING_WINDOWS = os.name == "nt"
+if USING_WINDOWS:
+ raise RuntimeError(
+ "Windows is not supported at this time. "
+ + "Versions lower than 0.14.x. are Windows compatible."
+ )
+import io
from setuptools import find_packages, setup # type: ignore
CURDIR = os.path.abspath(os.path.dirname(__file__))
@@ -14,7 +21,7 @@
"gevent>=1.2.2, <2.0", # websocket handling
"gevent-websocket>=0.10.1, <0.11", # also websocket
"eventlet>=0.25.0, <0.26", # also websocket
- "pygdbmi>=0.9.0.0, <1.0", # parse gdb output
+ "pygdbmi>=0.10.0.0b0, <0.11", # parse gdb output
"Pygments>=2.2.0, <3.0", # syntax highlighting
]
@@ -64,7 +71,9 @@
install_requires=REQUIRED,
classifiers=[
"Intended Audience :: Developers",
- "Operating System :: OS Independent",
+ "Operating System :: MacOS",
+ "Operating System :: Unix",
+ "Operating System :: POSIX",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
diff --git a/tailwind.config.js b/tailwind.config.js
new file mode 100644
index 00000000..2329dba7
--- /dev/null
+++ b/tailwind.config.js
@@ -0,0 +1,8 @@
+module.exports = {
+ purge: ["./gdbgui/src/js/**", "./gdbgui/templates/*.html"],
+ theme: {
+ extend: {}
+ },
+ variants: {},
+ plugins: []
+};
diff --git a/tests/test_backend.py b/tests/test_backend.py
index c442fd5b..8863c769 100755
--- a/tests/test_backend.py
+++ b/tests/test_backend.py
@@ -35,3 +35,14 @@ def test_load_main_page(test_client):
def test_same_port():
backend.setup_backend(testing=True)
+
+
+def test_get_initial_binary_and_args():
+ assert backend.get_initial_binary_and_args([], "./program --args") == [
+ "./program",
+ "--args",
+ ]
+ assert backend.get_initial_binary_and_args(["./program", "--args",], None) == [
+ "./program",
+ "--args",
+ ]
diff --git a/tests/test_main.py b/tests/test_main.py
deleted file mode 100755
index ea13fd56..00000000
--- a/tests/test_main.py
+++ /dev/null
@@ -1,31 +0,0 @@
-import gdbgui
-import pytest # type: ignore
-import sys
-from gdbgui.statemanager import StateManager, GDB_MI_FLAG
-
-
-@pytest.mark.parametrize(
- "test_argv, expected_gdb_args",
- [
- (["gdbgui"], GDB_MI_FLAG),
- (["gdbgui", "mybin -myargs"], GDB_MI_FLAG + ["mybin", "-myargs"]),
- (
- ["gdbgui", "--gdb-args", "--nx --tty=/dev/ttys002 mybin -myargs"],
- GDB_MI_FLAG + ["--nx", "--tty=/dev/ttys002", "mybin", "-myargs"],
- ),
- (
- ["gdbgui", "-n", "--args", "mybin", "-myargs"],
- GDB_MI_FLAG + ["--args", "mybin", "-myargs"],
- ),
- ],
-)
-def test_arguments_passed_to_gdb(monkeypatch, test_argv, expected_gdb_args):
- def mock_setup_backend(*args, **kwargs):
- pass
-
- monkeypatch.setattr(gdbgui.backend, "setup_backend", mock_setup_backend)
- monkeypatch.setattr(sys, "argv", test_argv)
- gdbgui.backend.main()
-
- state = StateManager(gdbgui.backend.app.config)
- assert len(state.get_gdb_args()) == len(expected_gdb_args)
diff --git a/tsconfig.json b/tsconfig.json
index 15a7dc66..853fc105 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -14,9 +14,8 @@
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
- "target": "es5"
+ "target": "es5",
+ "allowSyntheticDefaultImports": true
},
- "include": [
- "./gdbgui/src/js"
- ]
+ "include": ["./gdbgui/src/js"]
}
diff --git a/webpack.config.js b/webpack.config.js
index be110e46..7162f5c5 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -1,35 +1,43 @@
-const path = require('path');
-const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
+const path = require("path");
+const ForkTsCheckerWebpackPlugin = require("fork-ts-checker-webpack-plugin");
module.exports = {
- entry: './gdbgui/src/js/gdbgui.jsx',
- devtool: 'source-map',
+ entry: {
+ main: "./gdbgui/src/js/gdbgui.tsx",
+ dashboard: "./gdbgui/src/js/dashboard.tsx"
+ },
+ devtool: "source-map",
output: {
- path: path.resolve(__dirname, 'gdbgui/static/js/'),
- filename: 'build.js'
+ path: path.resolve(__dirname, "gdbgui/static/js/")
},
module: {
- rules: [{
- test: /\.(j|t)sx?$/,
- use: [
- {
- loader: 'ts-loader',
- options: {
- experimentalFileCaching: true,
- experimentalWatchApi: true,
- transpileOnly: true
- }
- },
- {
- loader: 'tslint-loader',
- options: {
- fix: true,
- typeCheck: true
+ rules: [
+ {
+ test: /\.css$/,
+ use: ["style-loader", "css-loader", "postcss-loader"]
+ },
+ {
+ test: /\.(j|t)sx?$/,
+ use: [
+ {
+ loader: "ts-loader",
+ options: {
+ experimentalFileCaching: true,
+ experimentalWatchApi: true,
+ transpileOnly: true
+ }
+ },
+ {
+ loader: "tslint-loader",
+ options: {
+ fix: true,
+ typeCheck: true
+ }
}
- }
- ],
- exclude: /node_modules/
- }]
+ ],
+ exclude: /node_modules/
+ }
+ ]
},
plugins: [
new ForkTsCheckerWebpackPlugin({
@@ -38,6 +46,6 @@ module.exports = {
})
],
resolve: {
- extensions: ['.js', '.ts', '.tsx']
+ extensions: [".js", ".ts", ".tsx", ".css"]
}
-}
+};
diff --git a/yarn.lock b/yarn.lock
index 20793431..32555b07 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,213 +2,1013 @@
# yarn lockfile v1
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d"
- integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
+ integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
dependencies:
- "@babel/highlight" "^7.0.0"
+ "@babel/highlight" "^7.10.4"
+
+"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c"
+ integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==
+ dependencies:
+ browserslist "^4.12.0"
+ invariant "^2.2.4"
+ semver "^5.5.0"
"@babel/core@^7.1.0":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30"
- integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==
- dependencies:
- "@babel/code-frame" "^7.5.5"
- "@babel/generator" "^7.5.5"
- "@babel/helpers" "^7.5.5"
- "@babel/parser" "^7.5.5"
- "@babel/template" "^7.4.4"
- "@babel/traverse" "^7.5.5"
- "@babel/types" "^7.5.5"
- convert-source-map "^1.1.0"
+ version "7.11.1"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.1.tgz#2c55b604e73a40dc21b0e52650b11c65cf276643"
+ integrity sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ "@babel/generator" "^7.11.0"
+ "@babel/helper-module-transforms" "^7.11.0"
+ "@babel/helpers" "^7.10.4"
+ "@babel/parser" "^7.11.1"
+ "@babel/template" "^7.10.4"
+ "@babel/traverse" "^7.11.0"
+ "@babel/types" "^7.11.0"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.1"
+ json5 "^2.1.2"
+ lodash "^4.17.19"
+ resolve "^1.3.2"
+ semver "^5.4.1"
+ source-map "^0.5.0"
+
+"@babel/core@^7.1.6":
+ version "7.11.4"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.4.tgz#4301dfdfafa01eeb97f1896c5501a3f0655d4229"
+ integrity sha512-5deljj5HlqRXN+5oJTY7Zs37iH3z3b++KjiKtIsJy1NrjOOVSEaJHEetLBhyu0aQOSNNZ/0IuEAan9GzRuDXHg==
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ "@babel/generator" "^7.11.4"
+ "@babel/helper-module-transforms" "^7.11.0"
+ "@babel/helpers" "^7.10.4"
+ "@babel/parser" "^7.11.4"
+ "@babel/template" "^7.10.4"
+ "@babel/traverse" "^7.11.0"
+ "@babel/types" "^7.11.0"
+ convert-source-map "^1.7.0"
debug "^4.1.0"
- json5 "^2.1.0"
- lodash "^4.17.13"
+ gensync "^1.0.0-beta.1"
+ json5 "^2.1.2"
+ lodash "^4.17.19"
resolve "^1.3.2"
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/generator@^7.4.0", "@babel/generator@^7.5.5":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf"
- integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==
+"@babel/generator@^7.11.0", "@babel/generator@^7.4.0":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.0.tgz#4b90c78d8c12825024568cbe83ee6c9af193585c"
+ integrity sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==
dependencies:
- "@babel/types" "^7.5.5"
+ "@babel/types" "^7.11.0"
jsesc "^2.5.1"
- lodash "^4.17.13"
source-map "^0.5.0"
- trim-right "^1.0.1"
-"@babel/helper-function-name@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
- integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==
+"@babel/generator@^7.11.4":
+ version "7.11.4"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.4.tgz#1ec7eec00defba5d6f83e50e3ee72ae2fee482be"
+ integrity sha512-Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==
dependencies:
- "@babel/helper-get-function-arity" "^7.0.0"
- "@babel/template" "^7.1.0"
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.11.0"
+ jsesc "^2.5.1"
+ source-map "^0.5.0"
-"@babel/helper-get-function-arity@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3"
- integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==
+"@babel/helper-annotate-as-pure@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3"
+ integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.10.4"
-"@babel/helper-plugin-utils@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250"
- integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==
-
-"@babel/helper-split-export-declaration@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677"
- integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3"
+ integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==
dependencies:
- "@babel/types" "^7.4.4"
+ "@babel/helper-explode-assignable-expression" "^7.10.4"
+ "@babel/types" "^7.10.4"
-"@babel/helpers@^7.5.5":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e"
- integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g==
+"@babel/helper-compilation-targets@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2"
+ integrity sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==
dependencies:
- "@babel/template" "^7.4.4"
- "@babel/traverse" "^7.5.5"
- "@babel/types" "^7.5.5"
+ "@babel/compat-data" "^7.10.4"
+ browserslist "^4.12.0"
+ invariant "^2.2.4"
+ levenary "^1.1.1"
+ semver "^5.5.0"
-"@babel/highlight@^7.0.0":
- version "7.5.0"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540"
- integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==
- dependencies:
+"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.10.5":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d"
+ integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==
+ dependencies:
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/helper-member-expression-to-functions" "^7.10.5"
+ "@babel/helper-optimise-call-expression" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-replace-supers" "^7.10.4"
+ "@babel/helper-split-export-declaration" "^7.10.4"
+
+"@babel/helper-create-regexp-features-plugin@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8"
+ integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-regex" "^7.10.4"
+ regexpu-core "^4.7.0"
+
+"@babel/helper-define-map@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30"
+ integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==
+ dependencies:
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/types" "^7.10.5"
+ lodash "^4.17.19"
+
+"@babel/helper-explode-assignable-expression@^7.10.4":
+ version "7.11.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz#2d8e3470252cc17aba917ede7803d4a7a276a41b"
+ integrity sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==
+ dependencies:
+ "@babel/types" "^7.10.4"
+
+"@babel/helper-function-name@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a"
+ integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.10.4"
+ "@babel/template" "^7.10.4"
+ "@babel/types" "^7.10.4"
+
+"@babel/helper-get-function-arity@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2"
+ integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==
+ dependencies:
+ "@babel/types" "^7.10.4"
+
+"@babel/helper-hoist-variables@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e"
+ integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==
+ dependencies:
+ "@babel/types" "^7.10.4"
+
+"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df"
+ integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==
+ dependencies:
+ "@babel/types" "^7.11.0"
+
+"@babel/helper-module-imports@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620"
+ integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==
+ dependencies:
+ "@babel/types" "^7.10.4"
+
+"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359"
+ integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==
+ dependencies:
+ "@babel/helper-module-imports" "^7.10.4"
+ "@babel/helper-replace-supers" "^7.10.4"
+ "@babel/helper-simple-access" "^7.10.4"
+ "@babel/helper-split-export-declaration" "^7.11.0"
+ "@babel/template" "^7.10.4"
+ "@babel/types" "^7.11.0"
+ lodash "^4.17.19"
+
+"@babel/helper-optimise-call-expression@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673"
+ integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==
+ dependencies:
+ "@babel/types" "^7.10.4"
+
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
+ integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
+
+"@babel/helper-regex@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0"
+ integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==
+ dependencies:
+ lodash "^4.17.19"
+
+"@babel/helper-remap-async-to-generator@^7.10.4":
+ version "7.11.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz#4474ea9f7438f18575e30b0cac784045b402a12d"
+ integrity sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-wrap-function" "^7.10.4"
+ "@babel/template" "^7.10.4"
+ "@babel/types" "^7.10.4"
+
+"@babel/helper-replace-supers@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf"
+ integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.10.4"
+ "@babel/helper-optimise-call-expression" "^7.10.4"
+ "@babel/traverse" "^7.10.4"
+ "@babel/types" "^7.10.4"
+
+"@babel/helper-simple-access@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461"
+ integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==
+ dependencies:
+ "@babel/template" "^7.10.4"
+ "@babel/types" "^7.10.4"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.11.0":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729"
+ integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==
+ dependencies:
+ "@babel/types" "^7.11.0"
+
+"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f"
+ integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==
+ dependencies:
+ "@babel/types" "^7.11.0"
+
+"@babel/helper-validator-identifier@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
+ integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
+
+"@babel/helper-wrap-function@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87"
+ integrity sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==
+ dependencies:
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/template" "^7.10.4"
+ "@babel/traverse" "^7.10.4"
+ "@babel/types" "^7.10.4"
+
+"@babel/helpers@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044"
+ integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==
+ dependencies:
+ "@babel/template" "^7.10.4"
+ "@babel/traverse" "^7.10.4"
+ "@babel/types" "^7.10.4"
+
+"@babel/highlight@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
+ integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.10.4"
chalk "^2.0.0"
- esutils "^2.0.2"
js-tokens "^4.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.5.5":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b"
- integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==
+"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.0", "@babel/parser@^7.11.1", "@babel/parser@^7.4.3":
+ version "7.11.3"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.3.tgz#9e1eae46738bcd08e23e867bab43e7b95299a8f9"
+ integrity sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA==
+
+"@babel/parser@^7.1.6", "@babel/parser@^7.11.4":
+ version "7.11.4"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.4.tgz#6fa1a118b8b0d80d0267b719213dc947e88cc0ca"
+ integrity sha512-MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA==
-"@babel/plugin-syntax-object-rest-spread@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e"
- integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==
+"@babel/plugin-proposal-async-generator-functions@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558"
+ integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-remap-async-to-generator" "^7.10.4"
+ "@babel/plugin-syntax-async-generators" "^7.8.0"
+
+"@babel/plugin-proposal-class-properties@^7.1.0", "@babel/plugin-proposal-class-properties@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807"
+ integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-create-class-features-plugin" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-proposal-dynamic-import@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e"
+ integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.0"
+
+"@babel/plugin-proposal-export-namespace-from@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54"
+ integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
-"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237"
- integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==
+"@babel/plugin-proposal-json-strings@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db"
+ integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==
dependencies:
- "@babel/code-frame" "^7.0.0"
- "@babel/parser" "^7.4.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-json-strings" "^7.8.0"
+
+"@babel/plugin-proposal-logical-assignment-operators@^7.11.0":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8"
+ integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a"
+ integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
+
+"@babel/plugin-proposal-numeric-separator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06"
+ integrity sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+
+"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.11.0":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af"
+ integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
+ "@babel/plugin-transform-parameters" "^7.10.4"
+
+"@babel/plugin-proposal-optional-catch-binding@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd"
+ integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
+
+"@babel/plugin-proposal-optional-chaining@^7.11.0":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076"
+ integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.0"
+
+"@babel/plugin-proposal-private-methods@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909"
+ integrity sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d"
+ integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-async-generators@^7.8.0":
+ version "7.8.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
+ integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-class-properties@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c"
+ integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-dynamic-import@^7.8.0":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
+ integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-export-namespace-from@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
+ integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+"@babel/plugin-syntax-flow@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz#53351dd7ae01995e567d04ce42af1a6e0ba846a6"
+ integrity sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-json-strings@^7.8.0":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
+ integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
+ integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
+ integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-numeric-separator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
+ integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
+ integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-catch-binding@^7.8.0":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
+ integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-chaining@^7.8.0":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
+ integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-top-level-await@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d"
+ integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-typescript@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz#2f55e770d3501e83af217d782cb7517d7bb34d25"
+ integrity sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-arrow-functions@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd"
+ integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-async-to-generator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37"
+ integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==
+ dependencies:
+ "@babel/helper-module-imports" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-remap-async-to-generator" "^7.10.4"
+
+"@babel/plugin-transform-block-scoped-functions@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8"
+ integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-block-scoping@^7.10.4":
+ version "7.11.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215"
+ integrity sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-classes@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7"
+ integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-define-map" "^7.10.4"
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/helper-optimise-call-expression" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-replace-supers" "^7.10.4"
+ "@babel/helper-split-export-declaration" "^7.10.4"
+ globals "^11.1.0"
+
+"@babel/plugin-transform-computed-properties@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb"
+ integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-destructuring@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5"
+ integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee"
+ integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-duplicate-keys@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47"
+ integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-exponentiation-operator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e"
+ integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==
+ dependencies:
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-flow-strip-types@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz#c497957f09e86e3df7296271e9eb642876bf7788"
+ integrity sha512-XTadyuqNst88UWBTdLjM+wEY7BFnY2sYtPyAidfC7M/QaZnSuIZpMvLxqGT7phAcnGyWh/XQFLKcGf04CnvxSQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-flow" "^7.10.4"
+
+"@babel/plugin-transform-for-of@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9"
+ integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-function-name@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7"
+ integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==
+ dependencies:
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-literals@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c"
+ integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-member-expression-literals@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7"
+ integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-modules-amd@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1"
+ integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.10.5"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-modules-commonjs@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0"
+ integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-simple-access" "^7.10.4"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-modules-systemjs@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85"
+ integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==
+ dependencies:
+ "@babel/helper-hoist-variables" "^7.10.4"
+ "@babel/helper-module-transforms" "^7.10.5"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-modules-umd@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e"
+ integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6"
+ integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.10.4"
+
+"@babel/plugin-transform-new-target@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888"
+ integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-object-super@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894"
+ integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-replace-supers" "^7.10.4"
+
+"@babel/plugin-transform-parameters@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a"
+ integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-property-literals@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0"
+ integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-regenerator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63"
+ integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==
+ dependencies:
+ regenerator-transform "^0.14.2"
+
+"@babel/plugin-transform-reserved-words@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd"
+ integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-shorthand-properties@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6"
+ integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-spread@^7.11.0":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc"
+ integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0"
+
+"@babel/plugin-transform-sticky-regex@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d"
+ integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-regex" "^7.10.4"
+
+"@babel/plugin-transform-template-literals@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c"
+ integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-typeof-symbol@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc"
+ integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-typescript@^7.10.4":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz#2b4879676af37342ebb278216dd090ac67f13abb"
+ integrity sha512-edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.10.5"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-typescript" "^7.10.4"
+
+"@babel/plugin-transform-unicode-escapes@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007"
+ integrity sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-unicode-regex@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8"
+ integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/preset-env@^7.1.6":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796"
+ integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==
+ dependencies:
+ "@babel/compat-data" "^7.11.0"
+ "@babel/helper-compilation-targets" "^7.10.4"
+ "@babel/helper-module-imports" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-proposal-async-generator-functions" "^7.10.4"
+ "@babel/plugin-proposal-class-properties" "^7.10.4"
+ "@babel/plugin-proposal-dynamic-import" "^7.10.4"
+ "@babel/plugin-proposal-export-namespace-from" "^7.10.4"
+ "@babel/plugin-proposal-json-strings" "^7.10.4"
+ "@babel/plugin-proposal-logical-assignment-operators" "^7.11.0"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4"
+ "@babel/plugin-proposal-numeric-separator" "^7.10.4"
+ "@babel/plugin-proposal-object-rest-spread" "^7.11.0"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.10.4"
+ "@babel/plugin-proposal-optional-chaining" "^7.11.0"
+ "@babel/plugin-proposal-private-methods" "^7.10.4"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.10.4"
+ "@babel/plugin-syntax-async-generators" "^7.8.0"
+ "@babel/plugin-syntax-class-properties" "^7.10.4"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.0"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+ "@babel/plugin-syntax-json-strings" "^7.8.0"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.0"
+ "@babel/plugin-syntax-top-level-await" "^7.10.4"
+ "@babel/plugin-transform-arrow-functions" "^7.10.4"
+ "@babel/plugin-transform-async-to-generator" "^7.10.4"
+ "@babel/plugin-transform-block-scoped-functions" "^7.10.4"
+ "@babel/plugin-transform-block-scoping" "^7.10.4"
+ "@babel/plugin-transform-classes" "^7.10.4"
+ "@babel/plugin-transform-computed-properties" "^7.10.4"
+ "@babel/plugin-transform-destructuring" "^7.10.4"
+ "@babel/plugin-transform-dotall-regex" "^7.10.4"
+ "@babel/plugin-transform-duplicate-keys" "^7.10.4"
+ "@babel/plugin-transform-exponentiation-operator" "^7.10.4"
+ "@babel/plugin-transform-for-of" "^7.10.4"
+ "@babel/plugin-transform-function-name" "^7.10.4"
+ "@babel/plugin-transform-literals" "^7.10.4"
+ "@babel/plugin-transform-member-expression-literals" "^7.10.4"
+ "@babel/plugin-transform-modules-amd" "^7.10.4"
+ "@babel/plugin-transform-modules-commonjs" "^7.10.4"
+ "@babel/plugin-transform-modules-systemjs" "^7.10.4"
+ "@babel/plugin-transform-modules-umd" "^7.10.4"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4"
+ "@babel/plugin-transform-new-target" "^7.10.4"
+ "@babel/plugin-transform-object-super" "^7.10.4"
+ "@babel/plugin-transform-parameters" "^7.10.4"
+ "@babel/plugin-transform-property-literals" "^7.10.4"
+ "@babel/plugin-transform-regenerator" "^7.10.4"
+ "@babel/plugin-transform-reserved-words" "^7.10.4"
+ "@babel/plugin-transform-shorthand-properties" "^7.10.4"
+ "@babel/plugin-transform-spread" "^7.11.0"
+ "@babel/plugin-transform-sticky-regex" "^7.10.4"
+ "@babel/plugin-transform-template-literals" "^7.10.4"
+ "@babel/plugin-transform-typeof-symbol" "^7.10.4"
+ "@babel/plugin-transform-unicode-escapes" "^7.10.4"
+ "@babel/plugin-transform-unicode-regex" "^7.10.4"
+ "@babel/preset-modules" "^0.1.3"
+ "@babel/types" "^7.11.0"
+ browserslist "^4.12.0"
+ core-js-compat "^3.6.2"
+ invariant "^2.2.2"
+ levenary "^1.1.1"
+ semver "^5.5.0"
+
+"@babel/preset-flow@^7.0.0":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.10.4.tgz#e0d9c72f8cb02d1633f6a5b7b16763aa2edf659f"
+ integrity sha512-XI6l1CptQCOBv+ZKYwynyswhtOKwpZZp5n0LG1QKCo8erRhqjoQV6nvx61Eg30JHpysWQSBwA2AWRU3pBbSY5g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-transform-flow-strip-types" "^7.10.4"
+
+"@babel/preset-modules@^0.1.3":
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72"
+ integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
+ "@babel/plugin-transform-dotall-regex" "^7.4.4"
"@babel/types" "^7.4.4"
+ esutils "^2.0.2"
+
+"@babel/preset-typescript@^7.1.0":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.10.4.tgz#7d5d052e52a682480d6e2cc5aa31be61c8c25e36"
+ integrity sha512-SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-transform-typescript" "^7.10.4"
-"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.5.5":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb"
- integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==
- dependencies:
- "@babel/code-frame" "^7.5.5"
- "@babel/generator" "^7.5.5"
- "@babel/helper-function-name" "^7.1.0"
- "@babel/helper-split-export-declaration" "^7.4.4"
- "@babel/parser" "^7.5.5"
- "@babel/types" "^7.5.5"
+"@babel/register@^7.0.0":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.10.5.tgz#354f3574895f1307f79efe37a51525e52fd38d89"
+ integrity sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw==
+ dependencies:
+ find-cache-dir "^2.0.0"
+ lodash "^4.17.19"
+ make-dir "^2.1.0"
+ pirates "^4.0.0"
+ source-map-support "^0.5.16"
+
+"@babel/runtime@^7.8.4":
+ version "7.11.2"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736"
+ integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
+"@babel/template@^7.10.4", "@babel/template@^7.4.0":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278"
+ integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ "@babel/parser" "^7.10.4"
+ "@babel/types" "^7.10.4"
+
+"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0", "@babel/traverse@^7.4.3":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24"
+ integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ "@babel/generator" "^7.11.0"
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/helper-split-export-declaration" "^7.11.0"
+ "@babel/parser" "^7.11.0"
+ "@babel/types" "^7.11.0"
debug "^4.1.0"
globals "^11.1.0"
- lodash "^4.17.13"
+ lodash "^4.17.19"
-"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a"
- integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==
+"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d"
+ integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==
dependencies:
- esutils "^2.0.2"
- lodash "^4.17.13"
+ "@babel/helper-validator-identifier" "^7.10.4"
+ lodash "^4.17.19"
to-fast-properties "^2.0.0"
"@cnakazawa/watch@^1.0.3":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef"
- integrity sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a"
+ integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==
dependencies:
exec-sh "^0.3.2"
minimist "^1.2.0"
-"@jest/console@^24.7.1":
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz#32a9e42535a97aedfe037e725bd67e954b459545"
- integrity sha512-iNhtIy2M8bXlAOULWVTUxmnelTLFneTNEkHCgPmgd+zNwy9zVddJ6oS5rZ9iwoscNdT5mMwUd0C51v/fSlzItg==
+"@fullhuman/postcss-purgecss@^2.1.2":
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/@fullhuman/postcss-purgecss/-/postcss-purgecss-2.3.0.tgz#50a954757ec78696615d3e118e3fee2d9291882e"
+ integrity sha512-qnKm5dIOyPGJ70kPZ5jiz0I9foVOic0j+cOzNDoo8KoCf6HjicIZ99UfO2OmE7vCYSKAAepEwJtNzpiiZAh9xw==
dependencies:
- "@jest/source-map" "^24.3.0"
+ postcss "7.0.32"
+ purgecss "^2.3.0"
+
+"@jest/console@^24.7.1", "@jest/console@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0"
+ integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==
+ dependencies:
+ "@jest/source-map" "^24.9.0"
chalk "^2.0.1"
slash "^2.0.0"
-"@jest/core@^24.8.0":
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.8.0.tgz#fbbdcd42a41d0d39cddbc9f520c8bab0c33eed5b"
- integrity sha512-R9rhAJwCBQzaRnrRgAdVfnglUuATXdwTRsYqs6NMdVcAl5euG8LtWDe+fVkN27YfKVBW61IojVsXKaOmSnqd/A==
+"@jest/core@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4"
+ integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==
dependencies:
"@jest/console" "^24.7.1"
- "@jest/reporters" "^24.8.0"
- "@jest/test-result" "^24.8.0"
- "@jest/transform" "^24.8.0"
- "@jest/types" "^24.8.0"
+ "@jest/reporters" "^24.9.0"
+ "@jest/test-result" "^24.9.0"
+ "@jest/transform" "^24.9.0"
+ "@jest/types" "^24.9.0"
ansi-escapes "^3.0.0"
chalk "^2.0.1"
exit "^0.1.2"
graceful-fs "^4.1.15"
- jest-changed-files "^24.8.0"
- jest-config "^24.8.0"
- jest-haste-map "^24.8.0"
- jest-message-util "^24.8.0"
+ jest-changed-files "^24.9.0"
+ jest-config "^24.9.0"
+ jest-haste-map "^24.9.0"
+ jest-message-util "^24.9.0"
jest-regex-util "^24.3.0"
- jest-resolve-dependencies "^24.8.0"
- jest-runner "^24.8.0"
- jest-runtime "^24.8.0"
- jest-snapshot "^24.8.0"
- jest-util "^24.8.0"
- jest-validate "^24.8.0"
- jest-watcher "^24.8.0"
+ jest-resolve "^24.9.0"
+ jest-resolve-dependencies "^24.9.0"
+ jest-runner "^24.9.0"
+ jest-runtime "^24.9.0"
+ jest-snapshot "^24.9.0"
+ jest-util "^24.9.0"
+ jest-validate "^24.9.0"
+ jest-watcher "^24.9.0"
micromatch "^3.1.10"
p-each-series "^1.0.0"
- pirates "^4.0.1"
realpath-native "^1.1.0"
rimraf "^2.5.4"
+ slash "^2.0.0"
strip-ansi "^5.0.0"
-"@jest/environment@^24.8.0":
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.8.0.tgz#0342261383c776bdd652168f68065ef144af0eac"
- integrity sha512-vlGt2HLg7qM+vtBrSkjDxk9K0YtRBi7HfRFaDxoRtyi+DyVChzhF20duvpdAnKVBV6W5tym8jm0U9EfXbDk1tw==
- dependencies:
- "@jest/fake-timers" "^24.8.0"
- "@jest/transform" "^24.8.0"
- "@jest/types" "^24.8.0"
- jest-mock "^24.8.0"
-
-"@jest/fake-timers@^24.8.0":
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.8.0.tgz#2e5b80a4f78f284bcb4bd5714b8e10dd36a8d3d1"
- integrity sha512-2M4d5MufVXwi6VzZhJ9f5S/wU4ud2ck0kxPof1Iz3zWx6Y+V2eJrES9jEktB6O3o/oEyk+il/uNu9PvASjWXQw==
- dependencies:
- "@jest/types" "^24.8.0"
- jest-message-util "^24.8.0"
- jest-mock "^24.8.0"
-
-"@jest/reporters@^24.8.0":
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.8.0.tgz#075169cd029bddec54b8f2c0fc489fd0b9e05729"
- integrity sha512-eZ9TyUYpyIIXfYCrw0UHUWUvE35vx5I92HGMgS93Pv7du+GHIzl+/vh8Qj9MCWFK/4TqyttVBPakWMOfZRIfxw==
- dependencies:
- "@jest/environment" "^24.8.0"
- "@jest/test-result" "^24.8.0"
- "@jest/transform" "^24.8.0"
- "@jest/types" "^24.8.0"
+"@jest/environment@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18"
+ integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==
+ dependencies:
+ "@jest/fake-timers" "^24.9.0"
+ "@jest/transform" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ jest-mock "^24.9.0"
+
+"@jest/fake-timers@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93"
+ integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==
+ dependencies:
+ "@jest/types" "^24.9.0"
+ jest-message-util "^24.9.0"
+ jest-mock "^24.9.0"
+
+"@jest/reporters@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43"
+ integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==
+ dependencies:
+ "@jest/environment" "^24.9.0"
+ "@jest/test-result" "^24.9.0"
+ "@jest/transform" "^24.9.0"
+ "@jest/types" "^24.9.0"
chalk "^2.0.1"
exit "^0.1.2"
glob "^7.1.2"
@@ -216,74 +1016,75 @@
istanbul-lib-instrument "^3.0.1"
istanbul-lib-report "^2.0.4"
istanbul-lib-source-maps "^3.0.1"
- istanbul-reports "^2.1.1"
- jest-haste-map "^24.8.0"
- jest-resolve "^24.8.0"
- jest-runtime "^24.8.0"
- jest-util "^24.8.0"
+ istanbul-reports "^2.2.6"
+ jest-haste-map "^24.9.0"
+ jest-resolve "^24.9.0"
+ jest-runtime "^24.9.0"
+ jest-util "^24.9.0"
jest-worker "^24.6.0"
- node-notifier "^5.2.1"
+ node-notifier "^5.4.2"
slash "^2.0.0"
source-map "^0.6.0"
string-length "^2.0.0"
-"@jest/source-map@^24.3.0":
- version "24.3.0"
- resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.3.0.tgz#563be3aa4d224caf65ff77edc95cd1ca4da67f28"
- integrity sha512-zALZt1t2ou8le/crCeeiRYzvdnTzaIlpOWaet45lNSqNJUnXbppUUFR4ZUAlzgDmKee4Q5P/tKXypI1RiHwgag==
+"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714"
+ integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==
dependencies:
callsites "^3.0.0"
graceful-fs "^4.1.15"
source-map "^0.6.0"
-"@jest/test-result@^24.8.0":
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.8.0.tgz#7675d0aaf9d2484caa65e048d9b467d160f8e9d3"
- integrity sha512-+YdLlxwizlfqkFDh7Mc7ONPQAhA4YylU1s529vVM1rsf67vGZH/2GGm5uO8QzPeVyaVMobCQ7FTxl38QrKRlng==
+"@jest/test-result@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca"
+ integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==
dependencies:
- "@jest/console" "^24.7.1"
- "@jest/types" "^24.8.0"
+ "@jest/console" "^24.9.0"
+ "@jest/types" "^24.9.0"
"@types/istanbul-lib-coverage" "^2.0.0"
-"@jest/test-sequencer@^24.8.0":
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.8.0.tgz#2f993bcf6ef5eb4e65e8233a95a3320248cf994b"
- integrity sha512-OzL/2yHyPdCHXEzhoBuq37CE99nkme15eHkAzXRVqthreWZamEMA0WoetwstsQBCXABhczpK03JNbc4L01vvLg==
+"@jest/test-sequencer@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31"
+ integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==
dependencies:
- "@jest/test-result" "^24.8.0"
- jest-haste-map "^24.8.0"
- jest-runner "^24.8.0"
- jest-runtime "^24.8.0"
+ "@jest/test-result" "^24.9.0"
+ jest-haste-map "^24.9.0"
+ jest-runner "^24.9.0"
+ jest-runtime "^24.9.0"
-"@jest/transform@^24.8.0":
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.8.0.tgz#628fb99dce4f9d254c6fd9341e3eea262e06fef5"
- integrity sha512-xBMfFUP7TortCs0O+Xtez2W7Zu1PLH9bvJgtraN1CDST6LBM/eTOZ9SfwS/lvV8yOfcDpFmwf9bq5cYbXvqsvA==
+"@jest/transform@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56"
+ integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/types" "^24.8.0"
+ "@jest/types" "^24.9.0"
babel-plugin-istanbul "^5.1.0"
chalk "^2.0.1"
convert-source-map "^1.4.0"
fast-json-stable-stringify "^2.0.0"
graceful-fs "^4.1.15"
- jest-haste-map "^24.8.0"
- jest-regex-util "^24.3.0"
- jest-util "^24.8.0"
+ jest-haste-map "^24.9.0"
+ jest-regex-util "^24.9.0"
+ jest-util "^24.9.0"
micromatch "^3.1.10"
+ pirates "^4.0.1"
realpath-native "^1.1.0"
slash "^2.0.0"
source-map "^0.6.1"
write-file-atomic "2.4.1"
-"@jest/types@^24.8.0":
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.8.0.tgz#f31e25948c58f0abd8c845ae26fcea1491dea7ad"
- integrity sha512-g17UxVr2YfBtaMUxn9u/4+siG1ptg9IGYAYwvpwn61nBg779RXnjE/m7CxYcIzEt0AbHZZAHSEZNhkE2WxURVg==
+"@jest/types@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59"
+ integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==
dependencies:
"@types/istanbul-lib-coverage" "^2.0.0"
"@types/istanbul-reports" "^1.1.1"
- "@types/yargs" "^12.0.9"
+ "@types/yargs" "^13.0.0"
"@mrmlnc/readdir-enhanced@^2.2.1":
version "2.2.1"
@@ -293,15 +1094,36 @@
call-me-maybe "^1.0.1"
glob-to-regexp "^0.3.0"
+"@nodelib/fs.scandir@2.1.3":
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b"
+ integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==
+ dependencies:
+ "@nodelib/fs.stat" "2.0.3"
+ run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3"
+ integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==
+
"@nodelib/fs.stat@^1.1.2":
version "1.1.3"
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
+"@nodelib/fs.walk@^1.2.3":
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976"
+ integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==
+ dependencies:
+ "@nodelib/fs.scandir" "2.1.3"
+ fastq "^1.6.0"
+
"@samverschueren/stream-to-observable@^0.3.0":
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f"
- integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301"
+ integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==
dependencies:
any-observable "^0.3.0"
@@ -311,9 +1133,9 @@
integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==
"@types/babel__core@^7.1.0":
- version "7.1.2"
- resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.2.tgz#608c74f55928033fce18b99b213c16be4b3d114f"
- integrity sha512-cfCCrFmiGY/yq0NuKNxIQvZFy9kY/1immpSpTngOnyIbD4+eJOG5mxphhHDv3CHL9GltO4GcKr54kGBg3RNdbg==
+ version "7.1.9"
+ resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.9.tgz#77e59d438522a6fb898fa43dc3455c6e72f3963d"
+ integrity sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==
dependencies:
"@babel/parser" "^7.1.0"
"@babel/types" "^7.0.0"
@@ -322,9 +1144,9 @@
"@types/babel__traverse" "*"
"@types/babel__generator@*":
- version "7.0.2"
- resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc"
- integrity sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ==
+ version "7.6.1"
+ resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04"
+ integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==
dependencies:
"@babel/types" "^7.0.0"
@@ -337,73 +1159,140 @@
"@babel/types" "^7.0.0"
"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
- version "7.0.7"
- resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.7.tgz#2496e9ff56196cc1429c72034e07eab6121b6f3f"
- integrity sha512-CeBpmX1J8kWLcDEnI3Cl2Eo6RfbGvzUctA+CjZUhOKDFbLfcr7fc4usEqLNWetrlJd7RhAkyYe2czXop4fICpw==
+ version "7.0.13"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.13.tgz#1874914be974a492e1b4cb00585cabb274e8ba18"
+ integrity sha512-i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ==
dependencies:
"@babel/types" "^7.3.0"
+"@types/color-name@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
+ integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
+
+"@types/engine.io@*":
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/@types/engine.io/-/engine.io-3.1.4.tgz#3d9472711d179daa7c95c051e50ad411e18a9bdc"
+ integrity sha512-98rXVukLD6/ozrQ2O80NAlWDGA4INg+tqsEReWJldqyi2fulC9V7Use/n28SWgROXKm6003ycWV4gZHoF8GA6w==
+ dependencies:
+ "@types/node" "*"
+
+"@types/glob@^7.1.1":
+ version "7.1.3"
+ resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183"
+ integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==
+ dependencies:
+ "@types/minimatch" "*"
+ "@types/node" "*"
+
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0":
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff"
- integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762"
+ integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==
"@types/istanbul-lib-report@*":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c"
- integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686"
+ integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==
dependencies:
"@types/istanbul-lib-coverage" "*"
"@types/istanbul-reports@^1.1.1":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a"
- integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2"
+ integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==
dependencies:
"@types/istanbul-lib-coverage" "*"
"@types/istanbul-lib-report" "*"
-"@types/jest-diff@*":
- version "20.0.1"
- resolved "https://registry.yarnpkg.com/@types/jest-diff/-/jest-diff-20.0.1.tgz#35cc15b9c4f30a18ef21852e255fdb02f6d59b89"
- integrity sha512-yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA==
-
"@types/jest@^24.0.11":
- version "24.0.15"
- resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.0.15.tgz#6c42d5af7fe3b44ffff7cc65de7bf741e8fa427f"
- integrity sha512-MU1HIvWUme74stAoc3mgAi+aMlgKOudgEvQDIm1v4RkrDudBh1T+NFp5sftpBAdXdx1J0PbdpJ+M2EsSOi1djA==
+ version "24.9.1"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.9.1.tgz#02baf9573c78f1b9974a5f36778b366aa77bd534"
+ integrity sha512-Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q==
dependencies:
- "@types/jest-diff" "*"
+ jest-diff "^24.3.0"
+
+"@types/jquery@^3.5.1":
+ version "3.5.1"
+ resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.5.1.tgz#cebb057acf5071c40e439f30e840c57a30d406c3"
+ integrity sha512-Tyctjh56U7eX2b9udu3wG853ASYP0uagChJcQJXLUXEU6C/JiW5qt5dl8ao01VRj1i5pgXPAf8f1mq4+FDLRQg==
+ dependencies:
+ "@types/sizzle" "*"
+
+"@types/json-schema@^7.0.4":
+ version "7.0.5"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd"
+ integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==
+
+"@types/minimatch@*", "@types/minimatch@^3.0.3":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
+ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
+
+"@types/node@*":
+ version "14.0.27"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.27.tgz#a151873af5a5e851b51b3b065c9e63390a9e0eb1"
+ integrity sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==
+
+"@types/normalize-package-data@^2.4.0":
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
+ integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==
"@types/prop-types@*":
- version "15.7.1"
- resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.1.tgz#f1a11e7babb0c3cad68100be381d1e064c68f1f6"
- integrity sha512-CFzn9idOEpHrgdw8JsoTkaDDyRWk1jrzIV8djzcgpq0y9tG4B4lFT+Nxh52DVpDXV+n4+NPNv7M1Dj5uMp6XFg==
+ version "15.7.3"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
+ integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
"@types/react-dom@^16.8.2":
- version "16.8.5"
- resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.8.5.tgz#3e3f4d99199391a7fb40aa3a155c8dd99b899cbd"
- integrity sha512-idCEjROZ2cqh29+trmTmZhsBAUNQuYrF92JHKzZ5+aiFM1mlSk3bb23CK7HhYuOY75Apgap5y2jTyHzaM2AJGA==
+ version "16.9.8"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.8.tgz#fe4c1e11dfc67155733dfa6aa65108b4971cb423"
+ integrity sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA==
dependencies:
"@types/react" "*"
"@types/react@*", "@types/react@^16.8.7":
- version "16.8.23"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-16.8.23.tgz#ec6be3ceed6353a20948169b6cb4c97b65b97ad2"
- integrity sha512-abkEOIeljniUN9qB5onp++g0EY38h7atnDHxwKUFz1r3VH1+yG1OKi2sNPTyObL40goBmfKFpdii2lEzwLX1cA==
+ version "16.9.46"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.46.tgz#f0326cd7adceda74148baa9bff6e918632f5069e"
+ integrity sha512-dbHzO3aAq1lB3jRQuNpuZ/mnu+CdD3H0WVaaBQA8LTT3S33xhVBUj232T8M3tAhSWJs/D/UqORYUlJNl/8VQZg==
dependencies:
"@types/prop-types" "*"
- csstype "^2.2.0"
+ csstype "^3.0.2"
+
+"@types/sizzle@*":
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47"
+ integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==
+
+"@types/socket.io-client@^1.4.33":
+ version "1.4.33"
+ resolved "https://registry.yarnpkg.com/@types/socket.io-client/-/socket.io-client-1.4.33.tgz#8e705b9b3f7fba6cb329d27cd2eda222812adbf1"
+ integrity sha512-m4LnxkljsI9fMsjwpW5QhRpMixo2BeeLpFmg0AE+sS4H1pzAd/cs/ftTiL60FLZgfFa8PFRPx5KsHu8O0bADKQ==
+
+"@types/socket.io@^2.1.11":
+ version "2.1.11"
+ resolved "https://registry.yarnpkg.com/@types/socket.io/-/socket.io-2.1.11.tgz#e0d6759880e5f9818d5297a3328b36641bae996b"
+ integrity sha512-bVprmqPhJMLb9ZCm8g0Xy8kwBFRbnanOWSxzWkDkkIwxTvud5tKMfAJymXX6LQbizUKCS1yima7JM4BeLqjNqA==
+ dependencies:
+ "@types/engine.io" "*"
+ "@types/node" "*"
"@types/stack-utils@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==
-"@types/yargs@^12.0.2", "@types/yargs@^12.0.9":
- version "12.0.12"
- resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.12.tgz#45dd1d0638e8c8f153e87d296907659296873916"
- integrity sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw==
+"@types/yargs-parser@*":
+ version "15.0.0"
+ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d"
+ integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==
+
+"@types/yargs@^13.0.0":
+ version "13.0.10"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.10.tgz#e77bf3fc73c781d48c2eb541f87c453e321e5f4b"
+ integrity sha512-MU10TSgzNABgdzKvQVW1nuuT+sgBMWeXNc3XOs5YXV5SDAK+PPja2eUuBNB9iqElu03xyEDqlnGw0jgl4nbqGQ==
+ dependencies:
+ "@types/yargs-parser" "*"
"@webassemblyjs/ast@1.7.6":
version "1.7.6"
@@ -562,15 +1451,26 @@
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8"
integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==
+JSONStream@^1.2.1, JSONStream@^1.3.5:
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
+ integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==
+ dependencies:
+ jsonparse "^1.2.0"
+ through ">=2.2.7 <3"
+
abab@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f"
- integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.4.tgz#6dfa57b417ca06d21b2478f0e638302f99c2405c"
+ integrity sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==
-abbrev@1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
- integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
+accepts@~1.3.4:
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
+ integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
+ dependencies:
+ mime-types "~2.1.24"
+ negotiator "0.6.2"
acorn-dynamic-import@^3.0.0:
version "3.0.0"
@@ -580,39 +1480,73 @@ acorn-dynamic-import@^3.0.0:
acorn "^5.0.0"
acorn-globals@^4.1.0:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.2.tgz#4e2c2313a597fd589720395f6354b41cd5ec8006"
- integrity sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ==
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7"
+ integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==
dependencies:
acorn "^6.0.1"
acorn-walk "^6.0.1"
+acorn-jsx@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe"
+ integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==
+
+acorn-node@^1.6.1:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
+ integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
+ dependencies:
+ acorn "^7.0.0"
+ acorn-walk "^7.0.0"
+ xtend "^4.0.2"
+
acorn-walk@^6.0.1:
version "6.2.0"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c"
integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==
+acorn-walk@^7.0.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
+ integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
+
acorn@^5.0.0, acorn@^5.5.3, acorn@^5.6.2:
- version "5.7.3"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
- integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
+ version "5.7.4"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e"
+ integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==
acorn@^6.0.1:
- version "6.2.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.2.1.tgz#3ed8422d6dec09e6121cc7a843ca86a330a86b51"
- integrity sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q==
+ version "6.4.1"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
+ integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
+
+acorn@^7.0.0, acorn@^7.1.1:
+ version "7.4.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c"
+ integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==
+
+after@0.8.2:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
+ integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=
+
+ajv-errors@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
+ integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==
-ajv-keywords@^3.1.0:
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da"
- integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==
+ajv-keywords@^3.1.0, ajv-keywords@^3.4.1:
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
+ integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
-ajv@^6.1.0, ajv@^6.5.5:
- version "6.10.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52"
- integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==
+ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3:
+ version "6.12.4"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234"
+ integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==
dependencies:
- fast-deep-equal "^2.0.1"
+ fast-deep-equal "^3.1.1"
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
@@ -622,6 +1556,13 @@ ansi-escapes@^3.0.0, ansi-escapes@^3.2.0:
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
+ansi-escapes@^4.2.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61"
+ integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==
+ dependencies:
+ type-fest "^0.11.0"
+
ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
@@ -637,6 +1578,11 @@ ansi-regex@^4.0.0, ansi-regex@^4.1.0:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
+ansi-regex@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
+ integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
@@ -649,6 +1595,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1:
dependencies:
color-convert "^1.9.0"
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359"
+ integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==
+ dependencies:
+ "@types/color-name" "^1.1.1"
+ color-convert "^2.0.1"
+
ansi-styles@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178"
@@ -667,19 +1621,19 @@ anymatch@^2.0.0:
micromatch "^3.1.4"
normalize-path "^2.1.1"
-aproba@^1.0.3, aproba@^1.1.1:
+anymatch@~3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
+ integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
+aproba@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
-are-we-there-yet@~1.1.2:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
- integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
- dependencies:
- delegates "^1.0.0"
- readable-stream "^2.0.6"
-
argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
@@ -714,18 +1668,28 @@ array-differ@^1.0.0:
resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=
+array-differ@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b"
+ integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==
+
array-equal@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=
-array-union@^1.0.1:
+array-union@^1.0.1, array-union@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
dependencies:
array-uniq "^1.0.1"
+array-union@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
+ integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+
array-uniq@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
@@ -741,19 +1705,30 @@ array-unique@^0.3.2:
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
+arraybuffer.slice@~0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
+ integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==
+
arrify@^1.0.0, arrify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
-asn1.js@^4.0.0:
- version "4.10.1"
- resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
- integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==
+arrify@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa"
+ integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==
+
+asn1.js@^5.2.0:
+ version "5.4.1"
+ resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
+ integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
dependencies:
bn.js "^4.0.0"
inherits "^2.0.1"
minimalistic-assert "^1.0.0"
+ safer-buffer "^2.1.0"
asn1@~0.2.3:
version "0.2.4"
@@ -790,6 +1765,16 @@ ast-types@0.11.5:
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.5.tgz#9890825d660c03c28339f315e9fa0a360e31ec28"
integrity sha512-oJjo+5e7/vEc2FBK8gUalV0pba4L3VdBIs2EKhOLHLcOd2FgQIVQN9xb0eZ9IjEWyAL7vq6fGJxOvVvdCHNyMw==
+ast-types@0.11.7:
+ version "0.11.7"
+ resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.7.tgz#f318bf44e339db6a320be0009ded64ec1471f46c"
+ integrity sha512-2mP3TwtkY/aTv5X3ZsMpNAbOnyoC/aMJwJSoaELPkHId0nSQgFcnU4dRW3isxiz7+zBexk0ym3WNVjMiQBnJSw==
+
+ast-types@0.13.3:
+ version "0.13.3"
+ resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.3.tgz#50da3f28d17bdbc7969a3a2d83a0e4a72ae755a7"
+ integrity sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==
+
astral-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
@@ -801,16 +1786,21 @@ async-each@^1.0.1:
integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
async-limiter@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
- integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
+ integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
+
+async@0.9.x:
+ version "0.9.2"
+ resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
+ integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=
async@^1.5.0:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
-async@^2.6.0:
+async@^2.6.0, async@^2.6.2:
version "2.6.3"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
@@ -822,20 +1812,46 @@ asynckit@^0.4.0:
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
-atob@^2.1.1:
+at-least-node@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
+ integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+
+atob@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
+autoprefixer@^9.4.5, autoprefixer@^9.8.5:
+ version "9.8.6"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f"
+ integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==
+ dependencies:
+ browserslist "^4.12.0"
+ caniuse-lite "^1.0.30001109"
+ colorette "^1.2.1"
+ normalize-range "^0.1.2"
+ num2fraction "^1.2.2"
+ postcss "^7.0.32"
+ postcss-value-parser "^4.1.0"
+
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
aws4@^1.8.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
- integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
+ version "1.10.1"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428"
+ integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==
+
+axios@^0.18.0:
+ version "0.18.1"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3"
+ integrity sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==
+ dependencies:
+ follow-redirects "1.5.10"
+ is-buffer "^2.0.2"
babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
version "6.26.0"
@@ -871,6 +1887,11 @@ babel-core@^6.26.0:
slash "^1.0.0"
source-map "^0.5.7"
+babel-core@^7.0.0-bridge.0:
+ version "7.0.0-bridge.0"
+ resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece"
+ integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==
+
babel-generator@^6.26.0:
version "6.26.1"
resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
@@ -1017,16 +2038,16 @@ babel-helpers@^6.24.1:
babel-runtime "^6.22.0"
babel-template "^6.24.1"
-babel-jest@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.8.0.tgz#5c15ff2b28e20b0f45df43fe6b7f2aae93dba589"
- integrity sha512-+5/kaZt4I9efoXzPlZASyK/lN9qdRKmmUav9smVc0ruPQD7IsfucQ87gpOE8mn2jbDuS6M/YOW6n3v9ZoIfgnw==
+babel-jest@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54"
+ integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==
dependencies:
- "@jest/transform" "^24.8.0"
- "@jest/types" "^24.8.0"
+ "@jest/transform" "^24.9.0"
+ "@jest/types" "^24.9.0"
"@types/babel__core" "^7.1.0"
babel-plugin-istanbul "^5.1.0"
- babel-preset-jest "^24.6.0"
+ babel-preset-jest "^24.9.0"
chalk "^2.4.2"
slash "^2.0.0"
@@ -1044,6 +2065,13 @@ babel-plugin-check-es2015-constants@^6.22.0:
dependencies:
babel-runtime "^6.22.0"
+babel-plugin-dynamic-import-node@^2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
+ integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
+ dependencies:
+ object.assign "^4.1.0"
+
babel-plugin-istanbul@^5.1.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854"
@@ -1054,10 +2082,10 @@ babel-plugin-istanbul@^5.1.0:
istanbul-lib-instrument "^3.3.0"
test-exclude "^5.2.3"
-babel-plugin-jest-hoist@^24.6.0:
- version "24.6.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.6.0.tgz#f7f7f7ad150ee96d7a5e8e2c5da8319579e78019"
- integrity sha512-3pKNH6hMt9SbOv0F3WVmy5CWQ4uogS3k0GY5XLyQHJ9EGpAT9XWkFd2ZiXXtkwFHdAHa5j7w7kfxSP5lAIwu7w==
+babel-plugin-jest-hoist@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756"
+ integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==
dependencies:
"@types/babel__traverse" "^7.0.6"
@@ -1432,13 +2460,13 @@ babel-preset-es2015@^6.9.0:
babel-plugin-transform-es2015-unicode-regex "^6.24.1"
babel-plugin-transform-regenerator "^6.24.1"
-babel-preset-jest@^24.6.0:
- version "24.6.0"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.6.0.tgz#66f06136eefce87797539c0d63f1769cc3915984"
- integrity sha512-pdZqLEdmy1ZK5kyRUfvBb2IfTPb2BUvIJczlPspS8fWmBQslNNDBqVfh7BW5leOVJMDZKzjD8XEyABTk6gQ5yw==
+babel-preset-jest@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc"
+ integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==
dependencies:
"@babel/plugin-syntax-object-rest-spread" "^7.0.0"
- babel-plugin-jest-hoist "^24.6.0"
+ babel-plugin-jest-hoist "^24.9.0"
babel-preset-stage-1@^6.5.0:
version "6.24.1"
@@ -1537,15 +2565,30 @@ babylon@^7.0.0-beta.47:
resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.47.tgz#6d1fa44f0abec41ab7c780481e62fd9aafbdea80"
integrity sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==
+backo2@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
+ integrity sha1-MasayLEpNjRj41s+u2n038+6eUc=
+
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
+base64-arraybuffer@0.1.5:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
+ integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg=
+
base64-js@^1.0.2:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
- integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
+ integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
+
+base64id@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6"
+ integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=
base@^0.11.1:
version "0.11.2"
@@ -1567,6 +2610,13 @@ bcrypt-pbkdf@^1.0.0:
dependencies:
tweetnacl "^0.14.3"
+better-assert@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
+ integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=
+ dependencies:
+ callsite "1.0.0"
+
big.js@^5.2.2:
version "5.2.2"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
@@ -1577,21 +2627,43 @@ binary-extensions@^1.0.0:
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
+binary-extensions@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9"
+ integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==
+
binaryextensions@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.1.2.tgz#c83c3d74233ba7674e4f313cb2a2b70f54e94b7c"
- integrity sha512-xVNN69YGDghOqCCtA6FI7avYrr02mTJjOgB0/f1VPD3pJC8QEvjTKWc4epDx8AqxxA75NI0QpVM2gPJXUbE4Tg==
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.3.0.tgz#1d269cbf7e6243ea886aa41453c3651ccbe13c22"
+ integrity sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==
+
+bindings@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
+ integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
+ dependencies:
+ file-uri-to-path "1.0.0"
+
+blob@0.0.5:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683"
+ integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==
bluebird@^3.5.1:
- version "3.5.5"
- resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f"
- integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
+ integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
-bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
+bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0:
version "4.11.9"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828"
integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==
+bn.js@^5.1.1:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b"
+ integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==
+
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -1625,15 +2697,22 @@ braces@^2.3.1, braces@^2.3.2:
split-string "^3.0.2"
to-regex "^3.0.1"
+braces@^3.0.1, braces@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ dependencies:
+ fill-range "^7.0.1"
+
brorand@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
-browser-process-hrtime@^0.1.2:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4"
- integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==
+browser-process-hrtime@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
+ integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
browser-resolve@^1.11.3:
version "1.11.3"
@@ -1673,7 +2752,7 @@ browserify-des@^1.0.0:
inherits "^2.0.1"
safe-buffer "^5.1.2"
-browserify-rsa@^4.0.0:
+browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=
@@ -1682,17 +2761,19 @@ browserify-rsa@^4.0.0:
randombytes "^2.0.1"
browserify-sign@^4.0.0:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"
- integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=
- dependencies:
- bn.js "^4.1.1"
- browserify-rsa "^4.0.0"
- create-hash "^1.1.0"
- create-hmac "^1.1.2"
- elliptic "^6.0.0"
- inherits "^2.0.1"
- parse-asn1 "^5.0.0"
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"
+ integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
+ dependencies:
+ bn.js "^5.1.1"
+ browserify-rsa "^4.0.1"
+ create-hash "^1.2.0"
+ create-hmac "^1.1.7"
+ elliptic "^6.5.3"
+ inherits "^2.0.4"
+ parse-asn1 "^5.1.5"
+ readable-stream "^3.6.0"
+ safe-buffer "^5.2.0"
browserify-zlib@^0.2.0:
version "0.2.0"
@@ -1701,6 +2782,16 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
+browserslist@^4.12.0, browserslist@^4.8.5:
+ version "4.14.0"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.0.tgz#2908951abfe4ec98737b72f34c3bcedc8d43b000"
+ integrity sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ==
+ dependencies:
+ caniuse-lite "^1.0.30001111"
+ electron-to-chromium "^1.3.523"
+ escalade "^3.0.2"
+ node-releases "^1.1.60"
+
bs-logger@0.x:
version "0.2.6"
resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
@@ -1708,10 +2799,10 @@ bs-logger@0.x:
dependencies:
fast-json-stable-stringify "2.x"
-bser@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.0.tgz#65fc784bf7f87c009b973c12db6546902fa9c7b5"
- integrity sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg==
+bser@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
+ integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
dependencies:
node-int64 "^0.4.0"
@@ -1744,9 +2835,9 @@ buffer-xor@^1.0.3:
integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
buffer@^4.3.0:
- version "4.9.1"
- resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
- integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=
+ version "4.9.2"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8"
+ integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==
dependencies:
base64-js "^1.0.2"
ieee754 "^1.1.4"
@@ -1762,6 +2853,11 @@ builtin-status-codes@^3.0.0:
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
+bytes@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
+ integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
+
cacache@^10.0.4:
version "10.0.4"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460"
@@ -1814,21 +2910,55 @@ call-me-maybe@^1.0.1:
resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
integrity sha1-JtII6onje1y95gJQoV8DHBak1ms=
+caller-callsite@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
+ integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
+ dependencies:
+ callsites "^2.0.0"
+
+caller-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
+ integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
+ dependencies:
+ caller-callsite "^2.0.0"
+
+callsite@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
+ integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA=
+
+callsites@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
+ integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
+
callsites@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+camelcase-css@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
+ integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
+
camelcase@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
-camelcase@^5.0.0:
+camelcase@^5.0.0, camelcase@^5.3.1:
version "5.3.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001111:
+ version "1.0.30001114"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001114.tgz#2e88119afb332ead5eaa330e332e951b1c4bfea9"
+ integrity sha512-ml/zTsfNBM+T1+mjglWRPgVsu2L76GAaADKX5f4t0pbhttEp0WMawJsHDYlFkVZkoA+89uvBRrVrEE4oqenzXQ==
+
capture-exit@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4"
@@ -1836,6 +2966,11 @@ capture-exit@^2.0.0:
dependencies:
rsvp "^4.8.4"
+capture-stack-trace@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d"
+ integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==
+
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
@@ -1852,7 +2987,7 @@ chalk@^1.0.0, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2:
+chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -1861,6 +2996,14 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
+"chalk@^3.0.0 || ^4.0.0", chalk@^4.0.0, chalk@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
+ integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
chalk@~0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
@@ -1880,10 +3023,10 @@ chardet@^0.7.0:
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
-chokidar@^2.0.2, chokidar@^2.0.4:
- version "2.1.6"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5"
- integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==
+chokidar@^2.0.4, chokidar@^2.1.8:
+ version "2.1.8"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
+ integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
dependencies:
anymatch "^2.0.0"
async-each "^1.0.1"
@@ -1899,10 +3042,25 @@ chokidar@^2.0.2, chokidar@^2.0.4:
optionalDependencies:
fsevents "^1.2.7"
-chownr@^1.0.1, chownr@^1.1.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6"
- integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==
+chokidar@^3.3.0, chokidar@^3.4.1:
+ version "3.4.2"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d"
+ integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==
+ dependencies:
+ anymatch "~3.1.1"
+ braces "~3.0.2"
+ glob-parent "~5.1.0"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.4.0"
+ optionalDependencies:
+ fsevents "~2.1.2"
+
+chownr@^1.0.1:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
+ integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
chrome-trace-event@^1.0.0:
version "1.0.2"
@@ -1941,6 +3099,13 @@ cli-cursor@^2.0.0, cli-cursor@^2.1.0:
dependencies:
restore-cursor "^2.0.0"
+cli-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
+ integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
+ dependencies:
+ restore-cursor "^3.1.0"
+
cli-table@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23"
@@ -1957,9 +3122,14 @@ cli-truncate@^0.2.1:
string-width "^1.0.1"
cli-width@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
- integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48"
+ integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==
+
+cli-width@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
+ integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==
cliui@^4.0.0:
version "4.1.0"
@@ -1970,11 +3140,38 @@ cliui@^4.0.0:
strip-ansi "^4.0.0"
wrap-ansi "^2.0.0"
+cliui@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
+ integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
+ dependencies:
+ string-width "^3.1.0"
+ strip-ansi "^5.2.0"
+ wrap-ansi "^5.1.0"
+
+cliui@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
+ integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^6.2.0"
+
clone-buffer@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58"
integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg=
+clone-deep@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
+ integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
+ dependencies:
+ is-plain-object "^2.0.4"
+ kind-of "^6.0.2"
+ shallow-clone "^3.0.0"
+
clone-response@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b"
@@ -1982,21 +3179,11 @@ clone-response@1.0.2:
dependencies:
mimic-response "^1.0.0"
-clone-stats@^0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1"
- integrity sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=
-
clone-stats@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680"
integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=
-clone@^1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
- integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
-
clone@^2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
@@ -2029,27 +3216,60 @@ collection-visit@^1.0.0:
map-visit "^1.0.0"
object-visit "^1.0.0"
-color-convert@^1.9.0:
+color-convert@^1.9.0, color-convert@^1.9.1:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
dependencies:
color-name "1.1.3"
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
+
color-name@1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+color-name@^1.0.0, color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+color-string@^1.5.2:
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
+ integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==
+ dependencies:
+ color-name "^1.0.0"
+ simple-swizzle "^0.2.2"
+
+color@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10"
+ integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==
+ dependencies:
+ color-convert "^1.9.1"
+ color-string "^1.5.2"
+
+colorette@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
+ integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
+
colors@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=
colors@^1.1.2:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d"
- integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
+ integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
combined-stream@^1.0.6, combined-stream@~1.0.6:
version "1.0.8"
@@ -2058,10 +3278,15 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
-commander@^2.12.1, commander@~2.20.0:
- version "2.20.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
- integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==
+commander@^2.12.1:
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
+commander@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
+ integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
commander@~2.13.0:
version "2.13.0"
@@ -2073,11 +3298,26 @@ commondir@^1.0.1:
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
+component-bind@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
+ integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=
+
+component-emitter@1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
+ integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=
+
component-emitter@^1.2.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
+component-inherit@0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
+ integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=
+
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -2094,29 +3334,27 @@ concat-stream@^1.5.0:
typedarray "^0.0.6"
console-browserify@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
- integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=
- dependencies:
- date-now "^0.1.4"
-
-console-control-strings@^1.0.0, console-control-strings@~1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
- integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
+ integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
constants-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
-convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20"
- integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==
+convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
+ integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
dependencies:
safe-buffer "~5.1.1"
+cookie@0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
+ integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=
+
copy-concurrently@^1.0.0:
version "1.0.5"
resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
@@ -2134,25 +3372,50 @@ copy-descriptor@^0.1.0:
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
+core-js-compat@^3.6.2:
+ version "3.6.5"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c"
+ integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==
+ dependencies:
+ browserslist "^4.8.5"
+ semver "7.0.0"
+
core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0:
- version "2.6.9"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2"
- integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==
+ version "2.6.11"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c"
+ integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+cosmiconfig@^5.0.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
+ integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
+ dependencies:
+ import-fresh "^2.0.0"
+ is-directory "^0.3.1"
+ js-yaml "^3.13.1"
+ parse-json "^4.0.0"
+
create-ecdh@^4.0.0:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff"
- integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
+ integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
dependencies:
bn.js "^4.1.0"
- elliptic "^6.0.0"
+ elliptic "^6.5.3"
+
+create-error-class@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
+ integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=
+ dependencies:
+ capture-stack-trace "^1.0.0"
-create-hash@^1.1.0, create-hash@^1.1.2:
+create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
@@ -2163,7 +3426,7 @@ create-hash@^1.1.0, create-hash@^1.1.2:
ripemd160 "^2.0.1"
sha.js "^2.4.0"
-create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
+create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
@@ -2175,6 +3438,15 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
+create-jest-runner@^0.5.3:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/create-jest-runner/-/create-jest-runner-0.5.3.tgz#1387e2ce70b08e4c989ae55f677005b64f9ba97b"
+ integrity sha512-a9VY2doMBmzRollJB3Ft3/Y5fBceSWJ4gdyVsg4/d7nP1S4715VG939s2VnITDj79YBmRgKhjGjNRv1c+Kre1g==
+ dependencies:
+ chalk "^2.4.2"
+ jest-worker "^24.0.0"
+ throat "^4.1.0"
+
cross-env@^7.0.2:
version "7.0.2"
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.2.tgz#bd5ed31339a93a3418ac4f3ca9ca3403082ae5f9"
@@ -2182,15 +3454,6 @@ cross-env@^7.0.2:
dependencies:
cross-spawn "^7.0.1"
-cross-spawn@^5.0.1:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
- integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
- dependencies:
- lru-cache "^4.0.1"
- shebang-command "^1.2.0"
- which "^1.2.9"
-
cross-spawn@^6.0.0, cross-spawn@^6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
@@ -2202,7 +3465,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5:
shebang-command "^1.2.0"
which "^1.2.9"
-cross-spawn@^7.0.1:
+cross-spawn@^7.0.0, cross-spawn@^7.0.1:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -2228,6 +3491,35 @@ crypto-browserify@^3.11.0:
randombytes "^2.0.0"
randomfill "^1.0.3"
+css-loader@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645"
+ integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==
+ dependencies:
+ camelcase "^5.3.1"
+ cssesc "^3.0.0"
+ icss-utils "^4.1.1"
+ loader-utils "^1.2.3"
+ normalize-path "^3.0.0"
+ postcss "^7.0.32"
+ postcss-modules-extract-imports "^2.0.0"
+ postcss-modules-local-by-default "^3.0.2"
+ postcss-modules-scope "^2.2.0"
+ postcss-modules-values "^3.0.0"
+ postcss-value-parser "^4.1.0"
+ schema-utils "^2.7.0"
+ semver "^6.3.0"
+
+css-unit-converter@^1.1.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21"
+ integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==
+
+cssesc@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
+ integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+
cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
version "0.3.8"
resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
@@ -2240,21 +3532,26 @@ cssstyle@^1.0.0:
dependencies:
cssom "0.3.x"
-csstype@^2.2.0:
- version "2.6.6"
- resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.6.tgz#c34f8226a94bbb10c32cc0d714afdf942291fc41"
- integrity sha512-RpFbQGUE74iyPgvr46U9t1xoQBM8T4BL8SxrN66Le2xYAPSaDJJKeztV3awugusb3g3G9iL8StmkBBXhcbbXhg==
+csstype@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.2.tgz#ee5ff8f208c8cd613b389f7b222c9801ca62b3f7"
+ integrity sha512-ofovWglpqoqbfLNOTBNZLSbMuGrblAf1efvvArGKOZMBrIoJeu5UsAipQolkijtyQx5MtAzT/J9IHj/CEY1mJw==
-cyclist@~0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
- integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=
+cyclist@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
+ integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=
dargs@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/dargs/-/dargs-5.1.0.tgz#ec7ea50c78564cd36c9d5ec18f66329fade27829"
integrity sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk=
+dargs@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/dargs/-/dargs-6.1.0.tgz#1f3b9b56393ecf8caa7cbfd6c31496ffcfb9b272"
+ integrity sha512-5dVBvpBLBnPwSsYXqfybFyehMmC/EenKEcf23AhCTgTf48JFBbmJKqoZBsERDnjL0FyiVTYWdFsRfTLHxLyKdQ==
+
dashdash@^1.12.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
@@ -2276,31 +3573,33 @@ date-fns@^1.27.2:
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c"
integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==
-date-now@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
- integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=
-
dateformat@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
-debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9:
+debug@=3.1.0, debug@~3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
+ dependencies:
+ ms "2.0.0"
+
+debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9, debug@~2.6.4, debug@~2.6.6:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
dependencies:
ms "2.0.0"
-debug@^3.1.0, debug@^3.2.6:
+debug@^3.1.0:
version "3.2.6"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
dependencies:
ms "^2.1.1"
-debug@^4.1.0, debug@^4.1.1:
+debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
@@ -2334,7 +3633,7 @@ deep-is@~0.1.3:
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
-define-properties@^1.1.2:
+define-properties@^1.1.2, define-properties@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
@@ -2363,20 +3662,25 @@ define-property@^2.0.2:
is-descriptor "^1.0.2"
isobject "^3.0.1"
+defined@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
+ integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
+
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
-delegates@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
- integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
+dependency-graph@^0.9.0:
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.9.0.tgz#11aed7e203bc8b00f48356d92db27b265c445318"
+ integrity sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==
des.js@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
- integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
+ integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==
dependencies:
inherits "^2.0.1"
minimalistic-assert "^1.0.0"
@@ -2393,26 +3697,35 @@ detect-indent@^4.0.0:
dependencies:
repeating "^2.0.0"
-detect-libc@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
- integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
-
detect-newline@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=
-diff-sequences@^24.3.0:
- version "24.3.0"
- resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz#0f20e8a1df1abddaf4d9c226680952e64118b975"
- integrity sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw==
+detective@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b"
+ integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==
+ dependencies:
+ acorn-node "^1.6.1"
+ defined "^1.0.0"
+ minimist "^1.1.1"
-diff@^3.2.0, diff@^3.5.0:
+diff-sequences@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5"
+ integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==
+
+diff@^3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
+diff@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
+ integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
+
diffie-hellman@^5.0.0:
version "5.0.3"
resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
@@ -2430,13 +3743,27 @@ dir-glob@2.0.0:
arrify "^1.0.1"
path-type "^3.0.0"
-dir-glob@^2.0.0:
+dir-glob@^2.0.0, dir-glob@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4"
integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==
dependencies:
path-type "^3.0.0"
+dir-glob@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+ integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
+ dependencies:
+ path-type "^4.0.0"
+
+doctrine@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+ integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+ dependencies:
+ esutils "^2.0.2"
+
domain-browser@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
@@ -2449,6 +3776,15 @@ domexception@^1.0.1:
dependencies:
webidl-conversions "^4.0.2"
+download-stats@^0.3.4:
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/download-stats/-/download-stats-0.3.4.tgz#67ea0c32f14acd9f639da704eef509684ba2dae7"
+ integrity sha512-ic2BigbyUWx7/CBbsfGjf71zUNZB4edBGC3oRliSzsoNmvyVx3Ycfp1w3vp2Y78Ee0eIIkjIEO5KzW0zThDGaA==
+ dependencies:
+ JSONStream "^1.2.1"
+ lazy-cache "^2.0.1"
+ moment "^2.15.1"
+
duplexer3@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
@@ -2472,25 +3808,37 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
-editions@^2.1.2, editions@^2.1.3:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/editions/-/editions-2.1.3.tgz#727ccf3ec2c7b12dcc652c71000f16c4824d6f7d"
- integrity sha512-xDZyVm0A4nLgMNWVVLJvcwMjI80ShiH/27RyLiCnW1L273TcJIA25C4pwJ33AWV01OX6UriP35Xu+lH4S7HWQw==
+editions@^2.2.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/editions/-/editions-2.3.1.tgz#3bc9962f1978e801312fbd0aebfed63b49bfe698"
+ integrity sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==
dependencies:
- errlop "^1.1.1"
- semver "^5.6.0"
+ errlop "^2.0.0"
+ semver "^6.3.0"
-ejs@^2.5.9:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.2.tgz#3a32c63d1cd16d11266cd4703b14fec4e74ab4f6"
- integrity sha512-PcW2a0tyTuPHz3tWyYqtK6r1fZ3gp+3Sop8Ph+ZYN81Ob5rwmbHEzaqs10N3BEsaGTkh/ooniXK+WwszGlc2+Q==
+ejs@^2.5.9, ejs@^2.6.1:
+ version "2.7.4"
+ resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
+ integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
+
+ejs@^3.0.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.3.tgz#514d967a8894084d18d3d47bd169a1c0560f093d"
+ integrity sha512-wmtrUGyfSC23GC/B1SMv2ogAUgbQEtDmTIhfqielrG5ExIM9TP4UoYdi90jLF1aTcsWCJNEO0UrgKzP0y3nTSg==
+ dependencies:
+ jake "^10.6.1"
+
+electron-to-chromium@^1.3.523:
+ version "1.3.533"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.533.tgz#d7e5ca4d57e9bc99af87efbe13e7be5dde729b0f"
+ integrity sha512-YqAL+NXOzjBnpY+dcOKDlZybJDCOzgsq4koW3fvyty/ldTmsb4QazZpOWmVvZ2m0t5jbBf7L0lIGU3BUipwG+A==
elegant-spinner@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=
-elliptic@^6.0.0:
+elliptic@^6.5.3:
version "6.5.3"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6"
integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==
@@ -2503,25 +3851,77 @@ elliptic@^6.0.0:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.0"
-emojis-list@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
- integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
+emoji-regex@^7.0.1:
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
+ integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
+
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+emojis-list@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
+ integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
- integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
dependencies:
once "^1.4.0"
+engine.io-client@~3.1.0:
+ version "3.1.6"
+ resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.1.6.tgz#5bdeb130f8b94a50ac5cbeb72583e7a4a063ddfd"
+ integrity sha512-hnuHsFluXnsKOndS4Hv6SvUrgdYx1pk2NqfaDMW+GWdgfU3+/V25Cj7I8a0x92idSpa5PIhJRKxPvp9mnoLsfg==
+ dependencies:
+ component-emitter "1.2.1"
+ component-inherit "0.0.3"
+ debug "~3.1.0"
+ engine.io-parser "~2.1.1"
+ has-cors "1.1.0"
+ indexof "0.0.1"
+ parseqs "0.0.5"
+ parseuri "0.0.5"
+ ws "~3.3.1"
+ xmlhttprequest-ssl "~1.5.4"
+ yeast "0.1.2"
+
+engine.io-parser@~2.1.0, engine.io-parser@~2.1.1:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6"
+ integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==
+ dependencies:
+ after "0.8.2"
+ arraybuffer.slice "~0.0.7"
+ base64-arraybuffer "0.1.5"
+ blob "0.0.5"
+ has-binary2 "~1.0.2"
+
+engine.io@~3.1.0:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.1.5.tgz#0e7ef9d690eb0b35597f1d4ad02a26ca2dba3845"
+ integrity sha512-D06ivJkYxyRrcEe0bTpNnBQNgP9d3xog+qZlLbui8EsMr/DouQpf5o9FzJnWYHEYE0YsFHllUv2R1dkgYZXHcA==
+ dependencies:
+ accepts "~1.3.4"
+ base64id "1.0.0"
+ cookie "0.3.1"
+ debug "~3.1.0"
+ engine.io-parser "~2.1.0"
+ ws "~3.3.1"
+ optionalDependencies:
+ uws "~9.14.0"
+
enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f"
- integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126"
+ integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==
dependencies:
graceful-fs "^4.1.2"
- memory-fs "^0.4.0"
+ memory-fs "^0.5.0"
tapable "^1.0.0"
envinfo@^5.7.0:
@@ -2529,12 +3929,10 @@ envinfo@^5.7.0:
resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-5.12.1.tgz#83068c33e0972eb657d6bc69a6df30badefb46ef"
integrity sha512-pwdo0/G3CIkQ0y6PCXq4RdkvId2elvtPCJMG0konqlrfkWQbf1DWeH9K2b/cvu2YgGvPPTOnonZxXM1gikFu1w==
-errlop@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/errlop/-/errlop-1.1.1.tgz#d9ae4c76c3e64956c5d79e6e035d6343bfd62250"
- integrity sha512-WX7QjiPHhsny7/PQvrhS5VMizXXKoKCS3udaBp8gjlARdbn+XmK300eKBAAN0hGyRaTCtRpOaxK+xFVPUJ3zkw==
- dependencies:
- editions "^2.1.2"
+errlop@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/errlop/-/errlop-2.2.0.tgz#1ff383f8f917ae328bebb802d6ca69666a42d21b"
+ integrity sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==
errno@^0.1.3, errno@~0.1.7:
version "0.1.7"
@@ -2551,45 +3949,54 @@ error-ex@^1.3.1:
is-arrayish "^0.2.1"
error@^7.0.2:
- version "7.0.2"
- resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02"
- integrity sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=
+ version "7.2.1"
+ resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894"
+ integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==
dependencies:
string-template "~0.2.1"
- xtend "~4.0.0"
-es-abstract@^1.5.1:
- version "1.13.0"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
- integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==
+es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5:
+ version "1.17.6"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a"
+ integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==
dependencies:
- es-to-primitive "^1.2.0"
+ es-to-primitive "^1.2.1"
function-bind "^1.1.1"
has "^1.0.3"
- is-callable "^1.1.4"
- is-regex "^1.0.4"
- object-keys "^1.0.12"
-
-es-to-primitive@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
- integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==
+ has-symbols "^1.0.1"
+ is-callable "^1.2.0"
+ is-regex "^1.1.0"
+ object-inspect "^1.7.0"
+ object-keys "^1.1.1"
+ object.assign "^4.1.0"
+ string.prototype.trimend "^1.0.1"
+ string.prototype.trimstart "^1.0.1"
+
+es-to-primitive@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
+ integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
dependencies:
is-callable "^1.1.4"
is-date-object "^1.0.1"
is-symbol "^1.0.2"
+escalade@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4"
+ integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==
+
escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
escodegen@^1.9.1:
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510"
- integrity sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==
+ version "1.14.3"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
+ integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==
dependencies:
- esprima "^3.1.3"
+ esprima "^4.0.1"
estraverse "^4.2.0"
esutils "^2.0.2"
optionator "^0.8.1"
@@ -2604,16 +4011,90 @@ eslint-scope@^4.0.0:
esrecurse "^4.1.0"
estraverse "^4.1.1"
-esprima@^3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
- integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
+eslint-scope@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5"
+ integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==
+ dependencies:
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+eslint-utils@^1.4.3:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
+ integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
+ dependencies:
+ eslint-visitor-keys "^1.1.0"
+
+eslint-visitor-keys@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
+ integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
+
+eslint@^6.1.0:
+ version "6.8.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
+ integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ ajv "^6.10.0"
+ chalk "^2.1.0"
+ cross-spawn "^6.0.5"
+ debug "^4.0.1"
+ doctrine "^3.0.0"
+ eslint-scope "^5.0.0"
+ eslint-utils "^1.4.3"
+ eslint-visitor-keys "^1.1.0"
+ espree "^6.1.2"
+ esquery "^1.0.1"
+ esutils "^2.0.2"
+ file-entry-cache "^5.0.1"
+ functional-red-black-tree "^1.0.1"
+ glob-parent "^5.0.0"
+ globals "^12.1.0"
+ ignore "^4.0.6"
+ import-fresh "^3.0.0"
+ imurmurhash "^0.1.4"
+ inquirer "^7.0.0"
+ is-glob "^4.0.0"
+ js-yaml "^3.13.1"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ levn "^0.3.0"
+ lodash "^4.17.14"
+ minimatch "^3.0.4"
+ mkdirp "^0.5.1"
+ natural-compare "^1.4.0"
+ optionator "^0.8.3"
+ progress "^2.0.0"
+ regexpp "^2.0.1"
+ semver "^6.1.2"
+ strip-ansi "^5.2.0"
+ strip-json-comments "^3.0.1"
+ table "^5.2.3"
+ text-table "^0.2.0"
+ v8-compile-cache "^2.0.3"
-esprima@^4.0.0, esprima@~4.0.0:
+espree@^6.1.2:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a"
+ integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==
+ dependencies:
+ acorn "^7.1.1"
+ acorn-jsx "^5.2.0"
+ eslint-visitor-keys "^1.1.0"
+
+esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+esquery@^1.0.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57"
+ integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==
+ dependencies:
+ estraverse "^5.1.0"
+
esrecurse@^4.1.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
@@ -2622,19 +4103,24 @@ esrecurse@^4.1.0:
estraverse "^4.1.0"
estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
- integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+ integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+estraverse@^5.1.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
+ integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
esutils@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
- integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
events@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88"
- integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379"
+ integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==
evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
version "1.0.3"
@@ -2645,22 +4131,9 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
safe-buffer "^5.1.1"
exec-sh@^0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz#6738de2eb7c8e671d0366aea0b0db8c6f7d7391b"
- integrity sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg==
-
-execa@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
- integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=
- dependencies:
- cross-spawn "^5.0.1"
- get-stream "^3.0.0"
- is-stream "^1.1.0"
- npm-run-path "^2.0.0"
- p-finally "^1.0.0"
- signal-exit "^3.0.0"
- strip-eof "^1.0.0"
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5"
+ integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==
execa@^1.0.0:
version "1.0.0"
@@ -2675,6 +4148,21 @@ execa@^1.0.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
+execa@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2"
+ integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==
+ dependencies:
+ cross-spawn "^7.0.0"
+ get-stream "^5.0.0"
+ human-signals "^1.1.1"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.0"
+ onetime "^5.1.0"
+ signal-exit "^3.0.2"
+ strip-final-newline "^2.0.0"
+
exit@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
@@ -2714,17 +4202,17 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
dependencies:
homedir-polyfill "^1.0.1"
-expect@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/expect/-/expect-24.8.0.tgz#471f8ec256b7b6129ca2524b2a62f030df38718d"
- integrity sha512-/zYvP8iMDrzaaxHVa724eJBCKqSHmO0FA7EDkBiRHxg6OipmMn1fN+C8T9L9K8yr7UONkOifu6+LLH+z76CnaA==
+expect@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca"
+ integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==
dependencies:
- "@jest/types" "^24.8.0"
+ "@jest/types" "^24.9.0"
ansi-styles "^3.2.0"
- jest-get-type "^24.8.0"
- jest-matcher-utils "^24.8.0"
- jest-message-util "^24.8.0"
- jest-regex-util "^24.3.0"
+ jest-get-type "^24.9.0"
+ jest-matcher-utils "^24.9.0"
+ jest-message-util "^24.9.0"
+ jest-regex-util "^24.9.0"
extend-shallow@^2.0.1:
version "2.0.1"
@@ -2795,12 +4283,12 @@ extsprintf@^1.2.0:
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
-fast-deep-equal@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
- integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
+fast-deep-equal@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-fast-glob@^2.0.2:
+fast-glob@^2.0.2, fast-glob@^2.2.6:
version "2.2.7"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d"
integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==
@@ -2812,22 +4300,41 @@ fast-glob@^2.0.2:
merge2 "^1.2.3"
micromatch "^3.1.10"
+fast-glob@^3.1.1:
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3"
+ integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.0"
+ merge2 "^1.3.0"
+ micromatch "^4.0.2"
+ picomatch "^2.2.1"
+
fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
- integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
-fast-levenshtein@~2.0.4:
+fast-levenshtein@~2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+fastq@^1.6.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481"
+ integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==
+ dependencies:
+ reusify "^1.0.4"
+
fb-watchman@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58"
- integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85"
+ integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==
dependencies:
- bser "^2.0.0"
+ bser "2.1.1"
figures@^1.7.0:
version "1.7.0"
@@ -2844,6 +4351,32 @@ figures@^2.0.0:
dependencies:
escape-string-regexp "^1.0.5"
+figures@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
+ integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
+ dependencies:
+ escape-string-regexp "^1.0.5"
+
+file-entry-cache@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
+ integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
+ dependencies:
+ flat-cache "^2.0.1"
+
+file-uri-to-path@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
+ integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
+
+filelist@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.1.tgz#f10d1a3ae86c1694808e8f20906f43d4c9132dbb"
+ integrity sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==
+ dependencies:
+ minimatch "^3.0.4"
+
filename-regex@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
@@ -2870,6 +4403,13 @@ fill-range@^4.0.0:
repeat-string "^1.6.1"
to-regex-range "^2.1.0"
+fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ dependencies:
+ to-regex-range "^5.0.1"
+
find-cache-dir@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
@@ -2879,6 +4419,15 @@ find-cache-dir@^1.0.0:
make-dir "^1.0.0"
pkg-dir "^2.0.0"
+find-cache-dir@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
+ integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
+ dependencies:
+ commondir "^1.0.1"
+ make-dir "^2.0.0"
+ pkg-dir "^3.0.0"
+
find-up@^2.0.0, find-up@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
@@ -2893,6 +4442,14 @@ find-up@^3.0.0:
dependencies:
locate-path "^3.0.0"
+find-up@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
+
first-chunk-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70"
@@ -2900,10 +4457,29 @@ first-chunk-stream@^2.0.0:
dependencies:
readable-stream "^2.0.2"
+flat-cache@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
+ integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
+ dependencies:
+ flatted "^2.0.0"
+ rimraf "2.6.3"
+ write "1.0.3"
+
+flatted@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
+ integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
+
+flow-parser@0.*:
+ version "0.132.0"
+ resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.132.0.tgz#68c9aea4cfd84577337559a6f121ef3ab687a251"
+ integrity sha512-y1P37zDCPSdphlk+w+roCqcOar6iQdNaAJldJ6xx5/2r4ZRv4KHO+qL+AXwPWp+34eN+oPxPjWnU7GybJnyISQ==
+
flow-parser@^0.*:
- version "0.103.0"
- resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.103.0.tgz#7afc50498e543856e090c5b5d924ae60e7c1add6"
- integrity sha512-H5UaM7mCzrssGa/HiPcr+oWBKosZTI7AlRk3jCEznBC786mdWIrTRjjGIAlRwuTVwT6SlPzV0M7kM6e3GGIQYA==
+ version "0.131.0"
+ resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.131.0.tgz#25c8923870d63d867714c0563409b8184afdea19"
+ integrity sha512-S61g70eHtnSn6SQqCgA+aXArupZp/0oku4Uyb8sFZH2HldSUkLUwWeh1Afl9BpQutNfNKaO+efpD2Yvek+EGuA==
flush-write-stream@^1.0.0:
version "1.1.1"
@@ -2913,6 +4489,13 @@ flush-write-stream@^1.0.0:
inherits "^2.0.3"
readable-stream "^2.3.6"
+follow-redirects@1.5.10:
+ version "1.5.10"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a"
+ integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==
+ dependencies:
+ debug "=3.1.0"
+
for-in@^1.0.1, for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
@@ -2931,9 +4514,9 @@ forever-agent@~0.6.1:
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
fork-ts-checker-webpack-plugin@^1.0.0:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.4.3.tgz#2252c1f8ad1b25313e056835d939b423ea240cd6"
- integrity sha512-srf43Z3B1hCJNrwCG78DbHmWgKQUqHKsvFbLP182gank28j9s05KJbSZaMKBA0b6Pqi0LBLpAFWeB0JPbc1iLQ==
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.6.0.tgz#a81fd1c6bf5258fa5318cf3e9a7e9bac006f7917"
+ integrity sha512-vqOY5gakcoon2s12V7MMe01OPwfgqulUWFzm+geQaPPOBKjW1I7aqqoBVlU0ECn97liMB0ECs16pRdIGe9qdRw==
dependencies:
babel-code-frame "^6.22.0"
chalk "^2.4.1"
@@ -2968,12 +4551,24 @@ from2@^2.1.0, from2@^2.1.1:
inherits "^2.0.1"
readable-stream "^2.0.0"
-fs-minipass@^1.2.5:
- version "1.2.6"
- resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07"
- integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==
+fs-extra@^8.0.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
+ integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
dependencies:
- minipass "^2.2.1"
+ graceful-fs "^4.2.0"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
+fs-extra@^9.0.0:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc"
+ integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==
+ dependencies:
+ at-least-node "^1.0.0"
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^1.0.0"
fs-write-stream-atomic@^1.0.8:
version "1.0.10"
@@ -2991,37 +4586,48 @@ fs.realpath@^1.0.0:
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
fsevents@^1.2.7:
- version "1.2.9"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f"
- integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==
+ version "1.2.13"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38"
+ integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==
dependencies:
+ bindings "^1.5.0"
nan "^2.12.1"
- node-pre-gyp "^0.12.0"
+
+fsevents@~2.1.2:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
+ integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
-gauge@~2.7.3:
- version "2.7.4"
- resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
- integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
- dependencies:
- aproba "^1.0.3"
- console-control-strings "^1.0.0"
- has-unicode "^2.0.0"
- object-assign "^4.1.0"
- signal-exit "^3.0.0"
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
- wide-align "^1.1.0"
+functional-red-black-tree@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+ integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+
+gensync@^1.0.0-beta.1:
+ version "1.0.0-beta.1"
+ resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269"
+ integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==
get-caller-file@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
+get-caller-file@^2.0.1:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
+get-stdin@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6"
+ integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==
+
get-stream@3.0.0, get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
@@ -3034,6 +4640,13 @@ get-stream@^4.0.0:
dependencies:
pump "^3.0.0"
+get-stream@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
+ integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+ dependencies:
+ pump "^3.0.0"
+
get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
@@ -3046,6 +4659,14 @@ getpass@^0.1.1:
dependencies:
assert-plus "^1.0.0"
+gh-got@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/gh-got/-/gh-got-5.0.0.tgz#ee95be37106fd8748a96f8d1db4baea89e1bfa8a"
+ integrity sha1-7pW+NxBv2HSKlvjR20uuqJ4b+oo=
+ dependencies:
+ got "^6.2.0"
+ is-plain-obj "^1.1.0"
+
gh-got@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/gh-got/-/gh-got-6.0.0.tgz#d74353004c6ec466647520a10bd46f7299d268d0"
@@ -3054,6 +4675,13 @@ gh-got@^6.0.0:
got "^7.0.0"
is-plain-obj "^1.1.0"
+github-username@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/github-username/-/github-username-3.0.0.tgz#0a772219b3130743429f2456d0bdd3db55dce7b1"
+ integrity sha1-CnciGbMTB0NCnyRW0L3T21Xc57E=
+ dependencies:
+ gh-got "^5.0.0"
+
github-username@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/github-username/-/github-username-4.1.0.tgz#cbe280041883206da4212ae9e4b5f169c30bf417"
@@ -3062,12 +4690,12 @@ github-username@^4.0.0:
gh-got "^6.0.0"
glob-all@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/glob-all/-/glob-all-3.1.0.tgz#8913ddfb5ee1ac7812656241b03d5217c64b02ab"
- integrity sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs=
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/glob-all/-/glob-all-3.2.1.tgz#082ca81afd2247cbd3ed2149bb2630f4dc877d95"
+ integrity sha512-x877rVkzB3ipid577QOp+eQCR6M5ZyiwrtaYgrX/z3EThaSPFtLDwBXFHc3sH1cG0R0vFYI5SRYeWMMSEyXkUw==
dependencies:
- glob "^7.0.5"
- yargs "~1.2.6"
+ glob "^7.1.2"
+ yargs "^15.3.1"
glob-base@^0.3.0:
version "0.3.0"
@@ -3092,15 +4720,22 @@ glob-parent@^3.1.0:
is-glob "^3.1.0"
path-dirname "^1.0.0"
+glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
+ integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
+ dependencies:
+ is-glob "^4.0.1"
+
glob-to-regexp@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=
-glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3:
- version "7.1.4"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
- integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
+glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
+ version "7.1.6"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
+ integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
@@ -3134,11 +4769,30 @@ globals@^11.1.0:
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+globals@^12.1.0:
+ version "12.4.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
+ integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
+ dependencies:
+ type-fest "^0.8.1"
+
globals@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
+globby@^11.0.0:
+ version "11.0.1"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357"
+ integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==
+ dependencies:
+ array-union "^2.1.0"
+ dir-glob "^3.0.1"
+ fast-glob "^3.1.1"
+ ignore "^5.1.4"
+ merge2 "^1.3.0"
+ slash "^3.0.0"
+
globby@^7.1.1:
version "7.1.1"
resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680"
@@ -3164,6 +4818,37 @@ globby@^8.0.1:
pify "^3.0.0"
slash "^1.0.0"
+globby@^9.2.0:
+ version "9.2.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d"
+ integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==
+ dependencies:
+ "@types/glob" "^7.1.1"
+ array-union "^1.0.2"
+ dir-glob "^2.2.2"
+ fast-glob "^2.2.6"
+ glob "^7.1.3"
+ ignore "^4.0.3"
+ pify "^4.0.1"
+ slash "^2.0.0"
+
+got@^6.2.0:
+ version "6.7.1"
+ resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
+ integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=
+ dependencies:
+ create-error-class "^3.0.0"
+ duplexer3 "^0.1.4"
+ get-stream "^3.0.0"
+ is-redirect "^1.0.0"
+ is-retry-allowed "^1.0.0"
+ is-stream "^1.0.0"
+ lowercase-keys "^1.0.0"
+ safe-buffer "^5.0.1"
+ timed-out "^4.0.0"
+ unzip-response "^2.0.1"
+ url-parse-lax "^1.0.0"
+
got@^7.0.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a"
@@ -3207,45 +4892,34 @@ got@^8.3.1:
url-parse-lax "^3.0.0"
url-to-options "^1.0.1"
-graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b"
- integrity sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==
+graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
+ version "4.2.4"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
+ integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
-grouped-queue@^0.3.3:
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/grouped-queue/-/grouped-queue-0.3.3.tgz#c167d2a5319c5a0e0964ef6a25b7c2df8996c85c"
- integrity sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=
+grouped-queue@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/grouped-queue/-/grouped-queue-1.1.0.tgz#63e3f9ca90af952269d1d40879e41221eacc74cb"
+ integrity sha512-rZOFKfCqLhsu5VqjBjEWiwrYqJR07KxIkH4mLZlNlGDfntbb4FbMyGFP14TlvRPrU9S3Hnn/sgxbC5ZeN0no3Q==
dependencies:
- lodash "^4.17.2"
+ lodash "^4.17.15"
growly@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
-handlebars@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67"
- integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==
- dependencies:
- neo-async "^2.6.0"
- optimist "^0.6.1"
- source-map "^0.6.1"
- optionalDependencies:
- uglify-js "^3.1.4"
-
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
-har-validator@~5.1.0:
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
- integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
+har-validator@~5.1.3:
+ version "5.1.5"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
+ integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
dependencies:
- ajv "^6.5.5"
+ ajv "^6.12.3"
har-schema "^2.0.0"
has-ansi@^2.0.0:
@@ -3255,25 +4929,42 @@ has-ansi@^2.0.0:
dependencies:
ansi-regex "^2.0.0"
+has-binary2@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d"
+ integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==
+ dependencies:
+ isarray "2.0.1"
+
has-color@~0.1.0:
version "0.1.7"
resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f"
integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=
+has-cors@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
+ integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=
+
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+has-flag@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
has-symbol-support-x@^1.4.1:
version "1.4.2"
resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455"
integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==
-has-symbols@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
- integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=
+has-symbols@^1.0.0, has-symbols@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
+ integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
has-to-string-tag-x@^1.2.0:
version "1.4.1"
@@ -3282,11 +4973,6 @@ has-to-string-tag-x@^1.2.0:
dependencies:
has-symbol-support-x "^1.4.1"
-has-unicode@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
- integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
-
has-value@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
@@ -3318,7 +5004,7 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
-has@^1.0.1, has@^1.0.3:
+has@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
@@ -3326,12 +5012,13 @@ has@^1.0.1, has@^1.0.3:
function-bind "^1.1.1"
hash-base@^3.0.0:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
- integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
+ integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
dependencies:
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
+ inherits "^2.0.4"
+ readable-stream "^3.6.0"
+ safe-buffer "^5.2.0"
hash.js@^1.0.0, hash.js@^1.0.3:
version "1.1.7"
@@ -3366,9 +5053,9 @@ homedir-polyfill@^1.0.1:
parse-passwd "^1.0.0"
hosted-git-info@^2.1.4:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047"
- integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==
+ version "2.8.8"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
+ integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
html-encoding-sniffer@^1.0.2:
version "1.0.2"
@@ -3377,6 +5064,11 @@ html-encoding-sniffer@^1.0.2:
dependencies:
whatwg-encoding "^1.0.1"
+html-escaper@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
+ integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+
http-cache-semantics@3.8.1:
version "3.8.1"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2"
@@ -3396,13 +5088,25 @@ https-browserify@^1.0.0:
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
-iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
+human-signals@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
+ integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+
+iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
dependencies:
safer-buffer ">= 2.1.2 < 3"
+icss-utils@^4.0.0, icss-utils@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"
+ integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==
+ dependencies:
+ postcss "^7.0.14"
+
ieee754@^1.1.4:
version "1.1.13"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
@@ -3413,18 +5117,51 @@ iferr@^0.1.5:
resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
-ignore-walk@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8"
- integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==
- dependencies:
- minimatch "^3.0.4"
-
ignore@^3.3.5:
version "3.3.10"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
+ignore@^4.0.3, ignore@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
+ integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
+
+ignore@^5.1.4:
+ version "5.1.8"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
+ integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
+
+import-cwd@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
+ integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=
+ dependencies:
+ import-from "^2.1.0"
+
+import-fresh@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
+ integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
+ dependencies:
+ caller-path "^2.0.0"
+ resolve-from "^3.0.0"
+
+import-fresh@^3.0.0:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66"
+ integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
+import-from@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
+ integrity sha1-M1238qev/VOqpHHUuAId7ja387E=
+ dependencies:
+ resolve-from "^3.0.0"
+
import-local@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc"
@@ -3451,6 +5188,16 @@ indent-string@^3.0.0:
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=
+indexes-of@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
+ integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
+
+indexof@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
+ integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=
+
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
@@ -3459,7 +5206,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
+inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -3474,7 +5221,7 @@ inherits@2.0.3:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
-ini@^1.3.4, ini@~1.3.0:
+ini@^1.3.4:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
@@ -3498,29 +5245,29 @@ inquirer@^5.2.0:
strip-ansi "^4.0.0"
through "^2.3.6"
-inquirer@^6.0.0:
- version "6.5.0"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42"
- integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==
+inquirer@^7.0.0, inquirer@^7.1.0:
+ version "7.3.3"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003"
+ integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==
dependencies:
- ansi-escapes "^3.2.0"
- chalk "^2.4.2"
- cli-cursor "^2.1.0"
- cli-width "^2.0.0"
+ ansi-escapes "^4.2.1"
+ chalk "^4.1.0"
+ cli-cursor "^3.1.0"
+ cli-width "^3.0.0"
external-editor "^3.0.3"
- figures "^2.0.0"
- lodash "^4.17.12"
- mute-stream "0.0.7"
- run-async "^2.2.0"
- rxjs "^6.4.0"
- string-width "^2.1.0"
- strip-ansi "^5.1.0"
+ figures "^3.0.0"
+ lodash "^4.17.19"
+ mute-stream "0.0.8"
+ run-async "^2.4.0"
+ rxjs "^6.6.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
through "^2.3.6"
interpret@^1.0.0, interpret@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
- integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
+ integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
into-stream@^3.1.0:
version "3.1.0"
@@ -3537,11 +5284,6 @@ invariant@^2.2.2, invariant@^2.2.4:
dependencies:
loose-envify "^1.0.0"
-invert-kv@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
- integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
-
invert-kv@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
@@ -3566,6 +5308,11 @@ is-arrayish@^0.2.1:
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+is-arrayish@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+ integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+
is-binary-path@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
@@ -3573,15 +5320,27 @@ is-binary-path@^1.0.0:
dependencies:
binary-extensions "^1.0.0"
+is-binary-path@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ dependencies:
+ binary-extensions "^2.0.0"
+
is-buffer@^1.1.5:
version "1.1.6"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-is-callable@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
- integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
+is-buffer@^2.0.2:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623"
+ integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==
+
+is-callable@^1.1.4, is-callable@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb"
+ integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==
is-ci@^2.0.0:
version "2.0.0"
@@ -3605,9 +5364,9 @@ is-data-descriptor@^1.0.0:
kind-of "^6.0.0"
is-date-object@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
- integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
+ integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
is-descriptor@^0.1.0:
version "0.1.6"
@@ -3627,6 +5386,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
is-data-descriptor "^1.0.0"
kind-of "^6.0.2"
+is-directory@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
+ integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
+
is-dotfile@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
@@ -3662,11 +5426,9 @@ is-extglob@^2.1.0, is-extglob@^2.1.1:
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
is-finite@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
- integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=
- dependencies:
- number-is-nan "^1.0.0"
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3"
+ integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==
is-fullwidth-code-point@^1.0.0:
version "1.0.0"
@@ -3680,6 +5442,11 @@ is-fullwidth-code-point@^2.0.0:
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
is-generator-fn@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
@@ -3699,7 +5466,7 @@ is-glob@^3.1.0:
dependencies:
is-extglob "^2.1.0"
-is-glob@^4.0.0:
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
@@ -3725,6 +5492,11 @@ is-number@^4.0.0:
resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
is-object@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470"
@@ -3760,21 +5532,26 @@ is-primitive@^2.0.0:
integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
is-promise@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
- integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
+ integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
-is-regex@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
- integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=
+is-redirect@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
+ integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=
+
+is-regex@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9"
+ integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==
dependencies:
- has "^1.0.1"
+ has-symbols "^1.0.1"
is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
- integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4"
+ integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==
is-scoped@^1.0.0:
version "1.0.0"
@@ -3788,19 +5565,24 @@ is-stream@^1.0.0, is-stream@^1.1.0:
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
+is-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
+ integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
+
is-symbol@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38"
- integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
+ integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
dependencies:
- has-symbols "^1.0.0"
+ has-symbols "^1.0.1"
is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
-is-utf8@^0.2.0:
+is-utf8@^0.2.0, is-utf8@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
@@ -3820,6 +5602,11 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+isarray@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
+ integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=
+
isbinaryfile@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80"
@@ -3827,6 +5614,11 @@ isbinaryfile@^3.0.2:
dependencies:
buffer-alloc "^1.2.0"
+isbinaryfile@^4.0.0:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b"
+ integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==
+
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
@@ -3887,21 +5679,21 @@ istanbul-lib-source-maps@^3.0.1:
rimraf "^2.6.3"
source-map "^0.6.1"
-istanbul-reports@^2.1.1:
- version "2.2.6"
- resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af"
- integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==
+istanbul-reports@^2.2.6:
+ version "2.2.7"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931"
+ integrity sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==
dependencies:
- handlebars "^4.1.2"
+ html-escaper "^2.0.0"
-istextorbinary@^2.2.1:
- version "2.5.1"
- resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.5.1.tgz#14a33824cf6b9d5d7743eac1be2bd2c310d0ccbd"
- integrity sha512-pv/JNPWnfpwGjPx7JrtWTwsWsxkrK3fNzcEVnt92YKEIErps4Fsk49+qzCe9iQF2hjqK8Naqf8P9kzoeCuQI1g==
+istextorbinary@^2.2.1, istextorbinary@^2.5.1:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.6.0.tgz#60776315fb0fa3999add276c02c69557b9ca28ab"
+ integrity sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==
dependencies:
binaryextensions "^2.1.2"
- editions "^2.1.3"
- textextensions "^2.4.0"
+ editions "^2.2.0"
+ textextensions "^2.5.0"
isurl@^1.0.0-alpha5:
version "1.0.0"
@@ -3911,309 +5703,321 @@ isurl@^1.0.0-alpha5:
has-to-string-tag-x "^1.2.0"
is-object "^1.0.1"
-jest-changed-files@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.8.0.tgz#7e7eb21cf687587a85e50f3d249d1327e15b157b"
- integrity sha512-qgANC1Yrivsq+UrLXsvJefBKVoCsKB0Hv+mBb6NMjjZ90wwxCDmU3hsCXBya30cH+LnPYjwgcU65i6yJ5Nfuug==
+jake@^10.6.1:
+ version "10.8.2"
+ resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b"
+ integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==
+ dependencies:
+ async "0.9.x"
+ chalk "^2.4.2"
+ filelist "^1.0.1"
+ minimatch "^3.0.4"
+
+jest-changed-files@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039"
+ integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==
dependencies:
- "@jest/types" "^24.8.0"
+ "@jest/types" "^24.9.0"
execa "^1.0.0"
throat "^4.0.0"
-jest-cli@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.8.0.tgz#b075ac914492ed114fa338ade7362a301693e989"
- integrity sha512-+p6J00jSMPQ116ZLlHJJvdf8wbjNbZdeSX9ptfHX06/MSNaXmKihQzx5vQcw0q2G6JsdVkUIdWbOWtSnaYs3yA==
+jest-cli@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af"
+ integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==
dependencies:
- "@jest/core" "^24.8.0"
- "@jest/test-result" "^24.8.0"
- "@jest/types" "^24.8.0"
+ "@jest/core" "^24.9.0"
+ "@jest/test-result" "^24.9.0"
+ "@jest/types" "^24.9.0"
chalk "^2.0.1"
exit "^0.1.2"
import-local "^2.0.0"
is-ci "^2.0.0"
- jest-config "^24.8.0"
- jest-util "^24.8.0"
- jest-validate "^24.8.0"
+ jest-config "^24.9.0"
+ jest-util "^24.9.0"
+ jest-validate "^24.9.0"
prompts "^2.0.1"
realpath-native "^1.1.0"
- yargs "^12.0.2"
+ yargs "^13.3.0"
-jest-config@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.8.0.tgz#77db3d265a6f726294687cbbccc36f8a76ee0f4f"
- integrity sha512-Czl3Nn2uEzVGsOeaewGWoDPD8GStxCpAe0zOYs2x2l0fZAgPbCr3uwUkgNKV3LwE13VXythM946cd5rdGkkBZw==
+jest-config@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5"
+ integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/test-sequencer" "^24.8.0"
- "@jest/types" "^24.8.0"
- babel-jest "^24.8.0"
+ "@jest/test-sequencer" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ babel-jest "^24.9.0"
chalk "^2.0.1"
glob "^7.1.1"
- jest-environment-jsdom "^24.8.0"
- jest-environment-node "^24.8.0"
- jest-get-type "^24.8.0"
- jest-jasmine2 "^24.8.0"
+ jest-environment-jsdom "^24.9.0"
+ jest-environment-node "^24.9.0"
+ jest-get-type "^24.9.0"
+ jest-jasmine2 "^24.9.0"
jest-regex-util "^24.3.0"
- jest-resolve "^24.8.0"
- jest-util "^24.8.0"
- jest-validate "^24.8.0"
+ jest-resolve "^24.9.0"
+ jest-util "^24.9.0"
+ jest-validate "^24.9.0"
micromatch "^3.1.10"
- pretty-format "^24.8.0"
+ pretty-format "^24.9.0"
realpath-native "^1.1.0"
-jest-diff@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.8.0.tgz#146435e7d1e3ffdf293d53ff97e193f1d1546172"
- integrity sha512-wxetCEl49zUpJ/bvUmIFjd/o52J+yWcoc5ZyPq4/W1LUKGEhRYDIbP1KcF6t+PvqNrGAFk4/JhtxDq/Nnzs66g==
+jest-diff@^24.3.0, jest-diff@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da"
+ integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==
dependencies:
chalk "^2.0.1"
- diff-sequences "^24.3.0"
- jest-get-type "^24.8.0"
- pretty-format "^24.8.0"
+ diff-sequences "^24.9.0"
+ jest-get-type "^24.9.0"
+ pretty-format "^24.9.0"
jest-docblock@^24.3.0:
- version "24.3.0"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.3.0.tgz#b9c32dac70f72e4464520d2ba4aec02ab14db5dd"
- integrity sha512-nlANmF9Yq1dufhFlKG9rasfQlrY7wINJbo3q01tu56Jv5eBU5jirylhF2O5ZBnLxzOVBGRDz/9NAwNyBtG4Nyg==
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2"
+ integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==
dependencies:
detect-newline "^2.1.0"
-jest-each@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.8.0.tgz#a05fd2bf94ddc0b1da66c6d13ec2457f35e52775"
- integrity sha512-NrwK9gaL5+XgrgoCsd9svsoWdVkK4gnvyhcpzd6m487tXHqIdYeykgq3MKI1u4I+5Zf0tofr70at9dWJDeb+BA==
+jest-each@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05"
+ integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==
dependencies:
- "@jest/types" "^24.8.0"
+ "@jest/types" "^24.9.0"
chalk "^2.0.1"
- jest-get-type "^24.8.0"
- jest-util "^24.8.0"
- pretty-format "^24.8.0"
-
-jest-environment-jsdom@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.8.0.tgz#300f6949a146cabe1c9357ad9e9ecf9f43f38857"
- integrity sha512-qbvgLmR7PpwjoFjM/sbuqHJt/NCkviuq9vus9NBn/76hhSidO+Z6Bn9tU8friecegbJL8gzZQEMZBQlFWDCwAQ==
- dependencies:
- "@jest/environment" "^24.8.0"
- "@jest/fake-timers" "^24.8.0"
- "@jest/types" "^24.8.0"
- jest-mock "^24.8.0"
- jest-util "^24.8.0"
+ jest-get-type "^24.9.0"
+ jest-util "^24.9.0"
+ pretty-format "^24.9.0"
+
+jest-environment-jsdom@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b"
+ integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==
+ dependencies:
+ "@jest/environment" "^24.9.0"
+ "@jest/fake-timers" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ jest-mock "^24.9.0"
+ jest-util "^24.9.0"
jsdom "^11.5.1"
-jest-environment-node@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.8.0.tgz#d3f726ba8bc53087a60e7a84ca08883a4c892231"
- integrity sha512-vIGUEScd1cdDgR6sqn2M08sJTRLQp6Dk/eIkCeO4PFHxZMOgy+uYLPMC4ix3PEfM5Au/x3uQ/5Tl0DpXXZsJ/Q==
+jest-environment-node@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3"
+ integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==
dependencies:
- "@jest/environment" "^24.8.0"
- "@jest/fake-timers" "^24.8.0"
- "@jest/types" "^24.8.0"
- jest-mock "^24.8.0"
- jest-util "^24.8.0"
+ "@jest/environment" "^24.9.0"
+ "@jest/fake-timers" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ jest-mock "^24.9.0"
+ jest-util "^24.9.0"
-jest-get-type@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.8.0.tgz#a7440de30b651f5a70ea3ed7ff073a32dfe646fc"
- integrity sha512-RR4fo8jEmMD9zSz2nLbs2j0zvPpk/KCEz3a62jJWbd2ayNo0cb+KFRxPHVhE4ZmgGJEQp0fosmNz84IfqM8cMQ==
+jest-get-type@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e"
+ integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==
-jest-haste-map@^24.8.0:
- version "24.8.1"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.8.1.tgz#f39cc1d2b1d907e014165b4bd5a957afcb992982"
- integrity sha512-SwaxMGVdAZk3ernAx2Uv2sorA7jm3Kx+lR0grp6rMmnY06Kn/urtKx1LPN2mGTea4fCT38impYT28FfcLUhX0g==
+jest-haste-map@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d"
+ integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==
dependencies:
- "@jest/types" "^24.8.0"
+ "@jest/types" "^24.9.0"
anymatch "^2.0.0"
fb-watchman "^2.0.0"
graceful-fs "^4.1.15"
invariant "^2.2.4"
- jest-serializer "^24.4.0"
- jest-util "^24.8.0"
- jest-worker "^24.6.0"
+ jest-serializer "^24.9.0"
+ jest-util "^24.9.0"
+ jest-worker "^24.9.0"
micromatch "^3.1.10"
sane "^4.0.3"
walker "^1.0.7"
optionalDependencies:
fsevents "^1.2.7"
-jest-jasmine2@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.8.0.tgz#a9c7e14c83dd77d8b15e820549ce8987cc8cd898"
- integrity sha512-cEky88npEE5LKd5jPpTdDCLvKkdyklnaRycBXL6GNmpxe41F0WN44+i7lpQKa/hcbXaQ+rc9RMaM4dsebrYong==
+jest-jasmine2@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0"
+ integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==
dependencies:
"@babel/traverse" "^7.1.0"
- "@jest/environment" "^24.8.0"
- "@jest/test-result" "^24.8.0"
- "@jest/types" "^24.8.0"
+ "@jest/environment" "^24.9.0"
+ "@jest/test-result" "^24.9.0"
+ "@jest/types" "^24.9.0"
chalk "^2.0.1"
co "^4.6.0"
- expect "^24.8.0"
+ expect "^24.9.0"
is-generator-fn "^2.0.0"
- jest-each "^24.8.0"
- jest-matcher-utils "^24.8.0"
- jest-message-util "^24.8.0"
- jest-runtime "^24.8.0"
- jest-snapshot "^24.8.0"
- jest-util "^24.8.0"
- pretty-format "^24.8.0"
+ jest-each "^24.9.0"
+ jest-matcher-utils "^24.9.0"
+ jest-message-util "^24.9.0"
+ jest-runtime "^24.9.0"
+ jest-snapshot "^24.9.0"
+ jest-util "^24.9.0"
+ pretty-format "^24.9.0"
throat "^4.0.0"
-jest-leak-detector@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.8.0.tgz#c0086384e1f650c2d8348095df769f29b48e6980"
- integrity sha512-cG0yRSK8A831LN8lIHxI3AblB40uhv0z+SsQdW3GoMMVcK+sJwrIIyax5tu3eHHNJ8Fu6IMDpnLda2jhn2pD/g==
+jest-leak-detector@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a"
+ integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==
dependencies:
- pretty-format "^24.8.0"
+ jest-get-type "^24.9.0"
+ pretty-format "^24.9.0"
-jest-matcher-utils@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.8.0.tgz#2bce42204c9af12bde46f83dc839efe8be832495"
- integrity sha512-lex1yASY51FvUuHgm0GOVj7DCYEouWSlIYmCW7APSqB9v8mXmKSn5+sWVF0MhuASG0bnYY106/49JU1FZNl5hw==
+jest-matcher-utils@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073"
+ integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==
dependencies:
chalk "^2.0.1"
- jest-diff "^24.8.0"
- jest-get-type "^24.8.0"
- pretty-format "^24.8.0"
+ jest-diff "^24.9.0"
+ jest-get-type "^24.9.0"
+ pretty-format "^24.9.0"
-jest-message-util@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.8.0.tgz#0d6891e72a4beacc0292b638685df42e28d6218b"
- integrity sha512-p2k71rf/b6ns8btdB0uVdljWo9h0ovpnEe05ZKWceQGfXYr4KkzgKo3PBi8wdnd9OtNh46VpNIJynUn/3MKm1g==
+jest-message-util@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3"
+ integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@jest/test-result" "^24.8.0"
- "@jest/types" "^24.8.0"
+ "@jest/test-result" "^24.9.0"
+ "@jest/types" "^24.9.0"
"@types/stack-utils" "^1.0.1"
chalk "^2.0.1"
micromatch "^3.1.10"
slash "^2.0.0"
stack-utils "^1.0.1"
-jest-mock@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.8.0.tgz#2f9d14d37699e863f1febf4e4d5a33b7fdbbde56"
- integrity sha512-6kWugwjGjJw+ZkK4mDa0Df3sDlUTsV47MSrT0nGQ0RBWJbpODDQ8MHDVtGtUYBne3IwZUhtB7elxHspU79WH3A==
+jest-mock@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6"
+ integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==
dependencies:
- "@jest/types" "^24.8.0"
+ "@jest/types" "^24.9.0"
jest-pnp-resolver@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a"
- integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c"
+ integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==
-jest-regex-util@^24.3.0:
- version "24.3.0"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36"
- integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg==
+jest-regex-util@^24.3.0, jest-regex-util@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636"
+ integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==
-jest-resolve-dependencies@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.8.0.tgz#19eec3241f2045d3f990dba331d0d7526acff8e0"
- integrity sha512-hyK1qfIf/krV+fSNyhyJeq3elVMhK9Eijlwy+j5jqmZ9QsxwKBiP6qukQxaHtK8k6zql/KYWwCTQ+fDGTIJauw==
+jest-resolve-dependencies@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab"
+ integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==
dependencies:
- "@jest/types" "^24.8.0"
+ "@jest/types" "^24.9.0"
jest-regex-util "^24.3.0"
- jest-snapshot "^24.8.0"
+ jest-snapshot "^24.9.0"
-jest-resolve@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.8.0.tgz#84b8e5408c1f6a11539793e2b5feb1b6e722439f"
- integrity sha512-+hjSzi1PoRvnuOICoYd5V/KpIQmkAsfjFO71458hQ2Whi/yf1GDeBOFj8Gxw4LrApHsVJvn5fmjcPdmoUHaVKw==
+jest-resolve@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321"
+ integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==
dependencies:
- "@jest/types" "^24.8.0"
+ "@jest/types" "^24.9.0"
browser-resolve "^1.11.3"
chalk "^2.0.1"
jest-pnp-resolver "^1.2.1"
realpath-native "^1.1.0"
-jest-runner@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.8.0.tgz#4f9ae07b767db27b740d7deffad0cf67ccb4c5bb"
- integrity sha512-utFqC5BaA3JmznbissSs95X1ZF+d+4WuOWwpM9+Ak356YtMhHE/GXUondZdcyAAOTBEsRGAgH/0TwLzfI9h7ow==
+jest-runner@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42"
+ integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==
dependencies:
"@jest/console" "^24.7.1"
- "@jest/environment" "^24.8.0"
- "@jest/test-result" "^24.8.0"
- "@jest/types" "^24.8.0"
+ "@jest/environment" "^24.9.0"
+ "@jest/test-result" "^24.9.0"
+ "@jest/types" "^24.9.0"
chalk "^2.4.2"
exit "^0.1.2"
graceful-fs "^4.1.15"
- jest-config "^24.8.0"
+ jest-config "^24.9.0"
jest-docblock "^24.3.0"
- jest-haste-map "^24.8.0"
- jest-jasmine2 "^24.8.0"
- jest-leak-detector "^24.8.0"
- jest-message-util "^24.8.0"
- jest-resolve "^24.8.0"
- jest-runtime "^24.8.0"
- jest-util "^24.8.0"
+ jest-haste-map "^24.9.0"
+ jest-jasmine2 "^24.9.0"
+ jest-leak-detector "^24.9.0"
+ jest-message-util "^24.9.0"
+ jest-resolve "^24.9.0"
+ jest-runtime "^24.9.0"
+ jest-util "^24.9.0"
jest-worker "^24.6.0"
source-map-support "^0.5.6"
throat "^4.0.0"
-jest-runtime@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.8.0.tgz#05f94d5b05c21f6dc54e427cd2e4980923350620"
- integrity sha512-Mq0aIXhvO/3bX44ccT+czU1/57IgOMyy80oM0XR/nyD5zgBcesF84BPabZi39pJVA6UXw+fY2Q1N+4BiVUBWOA==
+jest-runtime@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac"
+ integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==
dependencies:
"@jest/console" "^24.7.1"
- "@jest/environment" "^24.8.0"
+ "@jest/environment" "^24.9.0"
"@jest/source-map" "^24.3.0"
- "@jest/transform" "^24.8.0"
- "@jest/types" "^24.8.0"
- "@types/yargs" "^12.0.2"
+ "@jest/transform" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ "@types/yargs" "^13.0.0"
chalk "^2.0.1"
exit "^0.1.2"
glob "^7.1.3"
graceful-fs "^4.1.15"
- jest-config "^24.8.0"
- jest-haste-map "^24.8.0"
- jest-message-util "^24.8.0"
- jest-mock "^24.8.0"
+ jest-config "^24.9.0"
+ jest-haste-map "^24.9.0"
+ jest-message-util "^24.9.0"
+ jest-mock "^24.9.0"
jest-regex-util "^24.3.0"
- jest-resolve "^24.8.0"
- jest-snapshot "^24.8.0"
- jest-util "^24.8.0"
- jest-validate "^24.8.0"
+ jest-resolve "^24.9.0"
+ jest-snapshot "^24.9.0"
+ jest-util "^24.9.0"
+ jest-validate "^24.9.0"
realpath-native "^1.1.0"
slash "^2.0.0"
strip-bom "^3.0.0"
- yargs "^12.0.2"
+ yargs "^13.3.0"
-jest-serializer@^24.4.0:
- version "24.4.0"
- resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3"
- integrity sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q==
+jest-serializer@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73"
+ integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==
-jest-snapshot@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.8.0.tgz#3bec6a59da2ff7bc7d097a853fb67f9d415cb7c6"
- integrity sha512-5ehtWoc8oU9/cAPe6fez6QofVJLBKyqkY2+TlKTOf0VllBB/mqUNdARdcjlZrs9F1Cv+/HKoCS/BknT0+tmfPg==
+jest-snapshot@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba"
+ integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==
dependencies:
"@babel/types" "^7.0.0"
- "@jest/types" "^24.8.0"
+ "@jest/types" "^24.9.0"
chalk "^2.0.1"
- expect "^24.8.0"
- jest-diff "^24.8.0"
- jest-matcher-utils "^24.8.0"
- jest-message-util "^24.8.0"
- jest-resolve "^24.8.0"
+ expect "^24.9.0"
+ jest-diff "^24.9.0"
+ jest-get-type "^24.9.0"
+ jest-matcher-utils "^24.9.0"
+ jest-message-util "^24.9.0"
+ jest-resolve "^24.9.0"
mkdirp "^0.5.1"
natural-compare "^1.4.0"
- pretty-format "^24.8.0"
- semver "^5.5.0"
-
-jest-util@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.8.0.tgz#41f0e945da11df44cc76d64ffb915d0716f46cd1"
- integrity sha512-DYZeE+XyAnbNt0BG1OQqKy/4GVLPtzwGx5tsnDrFcax36rVE3lTA5fbvgmbVPUZf9w77AJ8otqR4VBbfFJkUZA==
- dependencies:
- "@jest/console" "^24.7.1"
- "@jest/fake-timers" "^24.8.0"
- "@jest/source-map" "^24.3.0"
- "@jest/test-result" "^24.8.0"
- "@jest/types" "^24.8.0"
+ pretty-format "^24.9.0"
+ semver "^6.2.0"
+
+jest-util@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162"
+ integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==
+ dependencies:
+ "@jest/console" "^24.9.0"
+ "@jest/fake-timers" "^24.9.0"
+ "@jest/source-map" "^24.9.0"
+ "@jest/test-result" "^24.9.0"
+ "@jest/types" "^24.9.0"
callsites "^3.0.0"
chalk "^2.0.1"
graceful-fs "^4.1.15"
@@ -4222,46 +6026,46 @@ jest-util@^24.8.0:
slash "^2.0.0"
source-map "^0.6.0"
-jest-validate@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.8.0.tgz#624c41533e6dfe356ffadc6e2423a35c2d3b4849"
- integrity sha512-+/N7VOEMW1Vzsrk3UWBDYTExTPwf68tavEPKDnJzrC6UlHtUDU/fuEdXqFoHzv9XnQ+zW6X3qMZhJ3YexfeLDA==
+jest-validate@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab"
+ integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==
dependencies:
- "@jest/types" "^24.8.0"
- camelcase "^5.0.0"
+ "@jest/types" "^24.9.0"
+ camelcase "^5.3.1"
chalk "^2.0.1"
- jest-get-type "^24.8.0"
- leven "^2.1.0"
- pretty-format "^24.8.0"
-
-jest-watcher@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.8.0.tgz#58d49915ceddd2de85e238f6213cef1c93715de4"
- integrity sha512-SBjwHt5NedQoVu54M5GEx7cl7IGEFFznvd/HNT8ier7cCAx/Qgu9ZMlaTQkvK22G1YOpcWBLQPFSImmxdn3DAw==
- dependencies:
- "@jest/test-result" "^24.8.0"
- "@jest/types" "^24.8.0"
- "@types/yargs" "^12.0.9"
+ jest-get-type "^24.9.0"
+ leven "^3.1.0"
+ pretty-format "^24.9.0"
+
+jest-watcher@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b"
+ integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==
+ dependencies:
+ "@jest/test-result" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ "@types/yargs" "^13.0.0"
ansi-escapes "^3.0.0"
chalk "^2.0.1"
- jest-util "^24.8.0"
+ jest-util "^24.9.0"
string-length "^2.0.0"
-jest-worker@^24.6.0:
- version "24.6.0"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.6.0.tgz#7f81ceae34b7cde0c9827a6980c35b7cdc0161b3"
- integrity sha512-jDwgW5W9qGNvpI1tNnvajh0a5IE/PuGLFmHk6aR/BZFz8tSgGw17GsDPXAJ6p91IvYDjOw8GpFbvvZGAK+DPQQ==
+jest-worker@^24.0.0, jest-worker@^24.6.0, jest-worker@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5"
+ integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==
dependencies:
- merge-stream "^1.0.1"
+ merge-stream "^2.0.0"
supports-color "^6.1.0"
jest@^24.3.1:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/jest/-/jest-24.8.0.tgz#d5dff1984d0d1002196e9b7f12f75af1b2809081"
- integrity sha512-o0HM90RKFRNWmAWvlyV8i5jGZ97pFwkeVoGvPW1EtLTgJc2+jcuqcbbqcSZLE/3f2S5pt0y2ZBETuhpWNl1Reg==
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171"
+ integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==
dependencies:
import-local "^2.0.0"
- jest-cli "^24.8.0"
+ jest-cli "^24.9.0"
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
@@ -4274,9 +6078,9 @@ js-tokens@^3.0.2:
integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
js-yaml@^3.13.1:
- version "3.13.1"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
- integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
+ version "3.14.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482"
+ integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
@@ -4328,6 +6132,54 @@ jscodeshift@^0.5.0:
temp "^0.8.1"
write-file-atomic "^1.2.0"
+jscodeshift@^0.6.3:
+ version "0.6.4"
+ resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.6.4.tgz#e19ab86214edac86a75c4557fc88b3937d558a8e"
+ integrity sha512-+NF/tlNbc2WEhXUuc4WEJLsJumF84tnaMUZW2hyJw3jThKKRvsPX4sPJVgO1lPE28z0gNL+gwniLG9d8mYvQCQ==
+ dependencies:
+ "@babel/core" "^7.1.6"
+ "@babel/parser" "^7.1.6"
+ "@babel/plugin-proposal-class-properties" "^7.1.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+ "@babel/preset-env" "^7.1.6"
+ "@babel/preset-flow" "^7.0.0"
+ "@babel/preset-typescript" "^7.1.0"
+ "@babel/register" "^7.0.0"
+ babel-core "^7.0.0-bridge.0"
+ colors "^1.1.2"
+ flow-parser "0.*"
+ graceful-fs "^4.1.11"
+ micromatch "^3.1.10"
+ neo-async "^2.5.0"
+ node-dir "^0.1.17"
+ recast "^0.16.1"
+ temp "^0.8.1"
+ write-file-atomic "^2.3.0"
+
+jscodeshift@^0.7.0:
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.7.1.tgz#0236ad475d6f0770ca998a0160925d62b57d2507"
+ integrity sha512-YMkZSyoc8zg5woZL23cmWlnFLPH/mHilonGA7Qbzs7H6M4v4PH0Qsn4jeDyw+CHhVoAnm9UxQyB0Yw1OT+mktA==
+ dependencies:
+ "@babel/core" "^7.1.6"
+ "@babel/parser" "^7.1.6"
+ "@babel/plugin-proposal-class-properties" "^7.1.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+ "@babel/preset-env" "^7.1.6"
+ "@babel/preset-flow" "^7.0.0"
+ "@babel/preset-typescript" "^7.1.0"
+ "@babel/register" "^7.0.0"
+ babel-core "^7.0.0-bridge.0"
+ colors "^1.1.2"
+ flow-parser "0.*"
+ graceful-fs "^4.1.11"
+ micromatch "^3.1.10"
+ neo-async "^2.5.0"
+ node-dir "^0.1.17"
+ recast "^0.18.1"
+ temp "^0.8.1"
+ write-file-atomic "^2.3.0"
+
jsdom@^11.5.1:
version "11.12.0"
resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8"
@@ -4395,17 +6247,29 @@ json-schema@0.2.3:
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
+json-stable-stringify-without-jsonify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+ integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
+
json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
-json5@2.x, json5@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850"
- integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==
+json5-writer@^0.1.8:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/json5-writer/-/json5-writer-0.1.8.tgz#98e1934ef6002f8ac12f36438e2b39c49af213fd"
+ integrity sha512-h5sqkk/vSKvESOUTBniGWs8p8nTzHsoDrxPS9enJfQVINqXv3lm+FAyizLwbrCwCn0q7NXqDBb+r8AdUdK3XZw==
dependencies:
- minimist "^1.2.0"
+ jscodeshift "^0.6.3"
+
+json5@2.x, json5@^2.1.1, json5@^2.1.2:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"
+ integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==
+ dependencies:
+ minimist "^1.2.5"
json5@^0.5.1:
version "0.5.1"
@@ -4419,6 +6283,27 @@ json5@^1.0.1:
dependencies:
minimist "^1.2.0"
+jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsonfile@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179"
+ integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==
+ dependencies:
+ universalify "^1.0.0"
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsonparse@^1.2.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
+ integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=
+
jsprim@^1.2.2:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
@@ -4456,21 +6341,21 @@ kind-of@^5.0.0:
integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
kind-of@^6.0.0, kind-of@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
- integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+ integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
-kleur@^3.0.2:
+kleur@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
-lcid@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
- integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
+lazy-cache@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264"
+ integrity sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=
dependencies:
- invert-kv "^1.0.0"
+ set-getter "^0.1.0"
lcid@^2.0.0:
version "2.0.0"
@@ -4484,12 +6369,19 @@ left-pad@^1.3.0:
resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e"
integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==
-leven@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
- integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA=
+leven@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
+ integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
+
+levenary@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77"
+ integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==
+ dependencies:
+ leven "^3.1.0"
-levn@~0.3.0:
+levn@^0.3.0, levn@~0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
@@ -4497,6 +6389,11 @@ levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
+lines-and-columns@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
+ integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
+
listr-silent-renderer@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
@@ -4556,15 +6453,24 @@ loader-runner@^2.3.0:
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
-loader-utils@^1.0.2, loader-utils@^1.1.0:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
- integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==
+loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
+ integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
dependencies:
big.js "^5.2.2"
- emojis-list "^2.0.0"
+ emojis-list "^3.0.0"
json5 "^1.0.1"
+loader-utils@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0"
+ integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^3.0.0"
+ json5 "^2.1.2"
+
locate-path@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
@@ -4581,15 +6487,32 @@ locate-path@^3.0.0:
p-locate "^3.0.0"
path-exists "^3.0.0"
+locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+ dependencies:
+ p-locate "^4.1.0"
+
+lodash.memoize@4.x:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+ integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
+
lodash.sortby@^4.7.0:
version "4.7.0"
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
-lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.3.0:
- version "4.17.19"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
- integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
+lodash.toarray@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561"
+ integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE=
+
+lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4, lodash@^4.3.0:
+ version "4.17.20"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
+ integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
log-symbols@^1.0.2:
version "1.0.2"
@@ -4614,6 +6537,15 @@ log-update@^2.3.0:
cli-cursor "^2.0.0"
wrap-ansi "^3.0.1"
+log-update@^3.3.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/log-update/-/log-update-3.4.0.tgz#3b9a71e00ac5b1185cc193a36d654581c48f97b9"
+ integrity sha512-ILKe88NeMt4gmDvk/eb615U/IVn7K9KWGkoYbdatQ69Z65nj1ZzjM6fHXfcs0Uge+e+EGnMW7DY4T9yko8vWFg==
+ dependencies:
+ ansi-escapes "^3.2.0"
+ cli-cursor "^2.1.0"
+ wrap-ansi "^5.0.0"
+
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
@@ -4631,7 +6563,7 @@ lowercase-keys@^1.0.0:
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
-lru-cache@^4.0.1, lru-cache@^4.1.1:
+lru-cache@^4.1.1:
version "4.1.5"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
@@ -4646,7 +6578,7 @@ make-dir@^1.0.0, make-dir@^1.1.0:
dependencies:
pify "^3.0.0"
-make-dir@^2.1.0:
+make-dir@^2.0.0, make-dir@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
@@ -4654,10 +6586,17 @@ make-dir@^2.1.0:
pify "^4.0.1"
semver "^5.6.0"
+make-dir@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+ dependencies:
+ semver "^6.0.0"
+
make-error@1.x:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8"
- integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
+ integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
makeerror@1.0.x:
version "1.0.11"
@@ -4721,21 +6660,48 @@ mem-fs-editor@^4.0.0:
through2 "^2.0.0"
vinyl "^2.0.1"
-mem-fs@^1.1.0:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/mem-fs/-/mem-fs-1.1.3.tgz#b8ae8d2e3fcb6f5d3f9165c12d4551a065d989cc"
- integrity sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=
+mem-fs-editor@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/mem-fs-editor/-/mem-fs-editor-6.0.0.tgz#d63607cf0a52fe6963fc376c6a7aa52db3edabab"
+ integrity sha512-e0WfJAMm8Gv1mP5fEq/Blzy6Lt1VbLg7gNnZmZak7nhrBTibs+c6nQ4SKs/ZyJYHS1mFgDJeopsLAv7Ow0FMFg==
dependencies:
- through2 "^2.0.0"
- vinyl "^1.1.0"
- vinyl-file "^2.0.0"
+ commondir "^1.0.1"
+ deep-extend "^0.6.0"
+ ejs "^2.6.1"
+ glob "^7.1.4"
+ globby "^9.2.0"
+ isbinaryfile "^4.0.0"
+ mkdirp "^0.5.0"
+ multimatch "^4.0.0"
+ rimraf "^2.6.3"
+ through2 "^3.0.1"
+ vinyl "^2.2.0"
-mem@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
- integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=
+mem-fs-editor@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/mem-fs-editor/-/mem-fs-editor-7.0.1.tgz#e0797802b7797acf43ef3c511f3d3ad5ea765783"
+ integrity sha512-eD8r4/d2ayp9HHIgBPHB6Ds0ggA8F9cf9HxcNtbqrwqJXfIDrOSMG5K4fV3+Ib3B+HIdrWqkeDDDvrO7i9EbvQ==
dependencies:
- mimic-fn "^1.0.0"
+ commondir "^1.0.1"
+ deep-extend "^0.6.0"
+ ejs "^3.0.1"
+ glob "^7.1.4"
+ globby "^9.2.0"
+ isbinaryfile "^4.0.0"
+ mkdirp "^1.0.0"
+ multimatch "^4.0.0"
+ rimraf "^3.0.0"
+ through2 "^3.0.1"
+ vinyl "^2.2.0"
+
+mem-fs@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/mem-fs/-/mem-fs-1.2.0.tgz#5f29b2d02a5875cd14cd836c388385892d556cde"
+ integrity sha512-b8g0jWKdl8pM0LqAPdK9i8ERL7nYrzmJfRhxMiWH2uYdfYnb7uXnmwVb0ZGe7xyEl4lj+nLIU3yf4zPUT+XsVQ==
+ dependencies:
+ through2 "^3.0.0"
+ vinyl "^2.0.1"
+ vinyl-file "^3.0.0"
mem@^4.0.0:
version "4.3.0"
@@ -4746,7 +6712,15 @@ mem@^4.0.0:
mimic-fn "^2.0.0"
p-is-promise "^2.0.0"
-memory-fs@^0.4.0, memory-fs@~0.4.1:
+memory-fs@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c"
+ integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==
+ dependencies:
+ errno "^0.1.3"
+ readable-stream "^2.0.1"
+
+memory-fs@~0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=
@@ -4754,17 +6728,15 @@ memory-fs@^0.4.0, memory-fs@~0.4.1:
errno "^0.1.3"
readable-stream "^2.0.1"
-merge-stream@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1"
- integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=
- dependencies:
- readable-stream "^2.0.1"
+merge-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
-merge2@^1.2.3:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5"
- integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==
+merge2@^1.2.3, merge2@^1.3.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+ integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
microevent.ts@~0.1.1:
version "0.1.1"
@@ -4809,6 +6781,14 @@ micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8:
snapdragon "^0.8.1"
to-regex "^3.0.2"
+micromatch@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
+ integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
+ dependencies:
+ braces "^3.0.1"
+ picomatch "^2.0.5"
+
miller-rabin@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
@@ -4817,24 +6797,24 @@ miller-rabin@^4.0.0:
bn.js "^4.0.0"
brorand "^1.0.1"
-mime-db@1.40.0:
- version "1.40.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32"
- integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==
+mime-db@1.44.0:
+ version "1.44.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
+ integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
-mime-types@^2.1.12, mime-types@~2.1.19:
- version "2.1.24"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81"
- integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==
+mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24:
+ version "2.1.27"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
+ integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
dependencies:
- mime-db "1.40.0"
+ mime-db "1.44.0"
mimic-fn@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
-mimic-fn@^2.0.0:
+mimic-fn@^2.0.0, mimic-fn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
@@ -4844,6 +6824,16 @@ mimic-response@^1.0.0:
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
+mini-css-extract-plugin@^0.9.0:
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e"
+ integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==
+ dependencies:
+ loader-utils "^1.1.0"
+ normalize-url "1.9.1"
+ schema-utils "^1.0.0"
+ webpack-sources "^1.1.0"
+
minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
@@ -4854,47 +6844,17 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
-minimatch@^3.0.0, minimatch@^3.0.4:
+minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
dependencies:
brace-expansion "^1.1.7"
-minimist@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
- integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
-
-minimist@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de"
- integrity sha1-md9lelJXTCHJBXSX33QnkLK0wN4=
-
-minimist@^1.1.1, minimist@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
- integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
-
-minimist@~0.0.1:
- version "0.0.10"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
- integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
-
-minipass@^2.2.1, minipass@^2.3.5:
- version "2.3.5"
- resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848"
- integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==
- dependencies:
- safe-buffer "^5.1.2"
- yallist "^3.0.0"
-
-minizlib@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614"
- integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==
- dependencies:
- minipass "^2.2.1"
+minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+ integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
mississippi@^2.0.0:
version "2.0.0"
@@ -4921,11 +6881,21 @@ mixin-deep@^1.2.0:
is-extendable "^1.0.1"
mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
- integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
+ integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
dependencies:
- minimist "0.0.8"
+ minimist "^1.2.5"
+
+mkdirp@^1.0.0:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
+ integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+
+moment@^2.15.1, moment@^2.24.0:
+ version "2.27.0"
+ resolved "https://registry.yarnpkg.com/moment/-/moment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d"
+ integrity sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==
move-concurrently@^1.0.1:
version "1.0.1"
@@ -4959,15 +6929,31 @@ multimatch@^2.0.0:
arrify "^1.0.0"
minimatch "^3.0.0"
+multimatch@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3"
+ integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==
+ dependencies:
+ "@types/minimatch" "^3.0.3"
+ array-differ "^3.0.0"
+ array-union "^2.1.0"
+ arrify "^2.0.1"
+ minimatch "^3.0.4"
+
mute-stream@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
+mute-stream@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
+ integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
+
nan@^2.12.1:
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
- integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
+ version "2.14.1"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01"
+ integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==
nanomatch@^1.2.9:
version "1.2.13"
@@ -4991,19 +6977,15 @@ natural-compare@^1.4.0:
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
-needle@^2.2.1:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c"
- integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==
- dependencies:
- debug "^3.2.6"
- iconv-lite "^0.4.4"
- sax "^1.2.4"
+negotiator@0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
+ integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
-neo-async@^2.5.0, neo-async@^2.6.0:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
- integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
+neo-async@^2.5.0:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+ integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
nice-try@^1.0.4:
version "1.0.5"
@@ -5015,6 +6997,20 @@ node-dir@0.1.8:
resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.8.tgz#55fb8deb699070707fb67f91a460f0448294c77d"
integrity sha1-VfuN62mQcHB/tn+RpGDwRIKUx30=
+node-dir@^0.1.17:
+ version "0.1.17"
+ resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5"
+ integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=
+ dependencies:
+ minimatch "^3.0.2"
+
+node-emoji@^1.8.1:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da"
+ integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==
+ dependencies:
+ lodash.toarray "^4.4.0"
+
node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
@@ -5054,10 +7050,10 @@ node-modules-regexp@^1.0.0:
resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
-node-notifier@^5.2.1:
- version "5.4.0"
- resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.0.tgz#7b455fdce9f7de0c63538297354f3db468426e6a"
- integrity sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ==
+node-notifier@^5.4.2:
+ version "5.4.3"
+ resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50"
+ integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==
dependencies:
growly "^1.3.0"
is-wsl "^1.1.0"
@@ -5065,21 +7061,10 @@ node-notifier@^5.2.1:
shellwords "^0.1.1"
which "^1.3.0"
-node-pre-gyp@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149"
- integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==
- dependencies:
- detect-libc "^1.0.2"
- mkdirp "^0.5.1"
- needle "^2.2.1"
- nopt "^4.0.1"
- npm-packlist "^1.1.6"
- npmlog "^4.0.2"
- rc "^1.2.7"
- rimraf "^2.6.1"
- semver "^5.3.0"
- tar "^4"
+node-releases@^1.1.60:
+ version "1.1.60"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084"
+ integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==
nomnom@^1.8.1:
version "1.8.1"
@@ -5089,15 +7074,7 @@ nomnom@^1.8.1:
chalk "~0.4.0"
underscore "~1.6.0"
-nopt@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
- integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
- dependencies:
- abbrev "1"
- osenv "^0.1.4"
-
-normalize-package-data@^2.3.2:
+normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
@@ -5114,11 +7091,26 @@ normalize-path@^2.0.1, normalize-path@^2.1.1:
dependencies:
remove-trailing-separator "^1.0.1"
-normalize-path@^3.0.0:
+normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+normalize-range@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+ integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
+
+normalize-url@1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
+ integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=
+ dependencies:
+ object-assign "^4.0.1"
+ prepend-http "^1.0.0"
+ query-string "^4.1.0"
+ sort-keys "^1.0.0"
+
normalize-url@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6"
@@ -5128,18 +7120,22 @@ normalize-url@2.0.1:
query-string "^5.0.1"
sort-keys "^2.0.0"
-npm-bundled@^1.0.1:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd"
- integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==
+normalize.css@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3"
+ integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==
-npm-packlist@^1.1.6:
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44"
- integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw==
+npm-api@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/npm-api/-/npm-api-1.0.0.tgz#6033c283bb04ddb0185344c1ad07ed4f67c77989"
+ integrity sha512-gtJhIhGq07g9H5sIAB9TZzTySW8MYtcYqg+e+J+5q1GmDsDLLVfyvVBL1VklzjtRsElph11GUtLBS191RDOJxQ==
dependencies:
- ignore-walk "^3.0.1"
- npm-bundled "^1.0.1"
+ JSONStream "^1.3.5"
+ clone-deep "^4.0.1"
+ download-stats "^0.3.4"
+ moment "^2.24.0"
+ paged-request "^2.0.1"
+ request "^2.88.0"
npm-run-path@^2.0.0:
version "2.0.2"
@@ -5148,15 +7144,17 @@ npm-run-path@^2.0.0:
dependencies:
path-key "^2.0.0"
-npmlog@^4.0.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
- integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
+npm-run-path@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+ integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
dependencies:
- are-we-there-yet "~1.1.2"
- console-control-strings "~1.1.0"
- gauge "~2.7.3"
- set-blocking "~2.0.0"
+ path-key "^3.0.0"
+
+num2fraction@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
+ integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
number-is-nan@^1.0.0:
version "1.0.1"
@@ -5164,20 +7162,25 @@ number-is-nan@^1.0.0:
integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
nwsapi@^2.0.7:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f"
- integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw==
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
+ integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
oauth-sign@~0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
-object-assign@^4.1.0, object-assign@^4.1.1:
+object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1, object-assign@~4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+object-component@0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
+ integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=
+
object-copy@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
@@ -5187,7 +7190,12 @@ object-copy@^0.1.0:
define-property "^0.2.5"
kind-of "^3.0.3"
-object-keys@^1.0.12:
+object-inspect@^1.7.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0"
+ integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==
+
+object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
@@ -5199,13 +7207,23 @@ object-visit@^1.0.0:
dependencies:
isobject "^3.0.0"
-object.getownpropertydescriptors@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
- integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=
+object.assign@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
+ integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
dependencies:
define-properties "^1.1.2"
- es-abstract "^1.5.1"
+ function-bind "^1.1.1"
+ has-symbols "^1.0.0"
+ object-keys "^1.0.11"
+
+object.getownpropertydescriptors@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649"
+ integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
object.omit@^2.0.0:
version "2.0.1"
@@ -5236,25 +7254,24 @@ onetime@^2.0.0:
dependencies:
mimic-fn "^1.0.0"
-optimist@^0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
- integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
+onetime@^5.1.0:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
dependencies:
- minimist "~0.0.1"
- wordwrap "~0.0.2"
+ mimic-fn "^2.1.0"
-optionator@^0.8.1:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
- integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=
+optionator@^0.8.1, optionator@^0.8.3:
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
+ integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
dependencies:
deep-is "~0.1.3"
- fast-levenshtein "~2.0.4"
+ fast-levenshtein "~2.0.6"
levn "~0.3.0"
prelude-ls "~1.1.2"
type-check "~0.3.2"
- wordwrap "~1.0.0"
+ word-wrap "~1.2.3"
os-browserify@^0.3.0:
version "0.3.0"
@@ -5266,16 +7283,7 @@ os-homedir@^1.0.0:
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
-os-locale@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
- integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==
- dependencies:
- execa "^0.7.0"
- lcid "^1.0.0"
- mem "^1.1.0"
-
-os-locale@^3.0.0:
+os-locale@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==
@@ -5284,19 +7292,11 @@ os-locale@^3.0.0:
lcid "^2.0.0"
mem "^4.0.0"
-os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
+os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
-osenv@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
- integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
- dependencies:
- os-homedir "^1.0.0"
- os-tmpdir "^1.0.0"
-
p-cancelable@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa"
@@ -5346,10 +7346,10 @@ p-limit@^1.1.0:
dependencies:
p-try "^1.0.0"
-p-limit@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2"
- integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==
+p-limit@^2.0.0, p-limit@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
dependencies:
p-try "^2.0.0"
@@ -5367,6 +7367,13 @@ p-locate@^3.0.0:
dependencies:
p-limit "^2.0.0"
+p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+ dependencies:
+ p-limit "^2.2.0"
+
p-map@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
@@ -5396,33 +7403,46 @@ p-try@^1.0.0:
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
-p-try@^2.0.0:
+p-try@^2.0.0, p-try@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+paged-request@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/paged-request/-/paged-request-2.0.1.tgz#91164f042231feb68643542d2530476a518ff4de"
+ integrity sha512-C0bB/PFk9rQskD1YEiz7uuchzqKDQGgdsEHN1ahify0UUWzgmMK4NDG9fhlQg2waogmNFwEvEeHfMRvJySpdVw==
+ dependencies:
+ axios "^0.18.0"
+
pako@~1.0.5:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732"
- integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
+ integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
parallel-transform@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06"
- integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc"
+ integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==
dependencies:
- cyclist "~0.2.2"
+ cyclist "^1.0.1"
inherits "^2.0.3"
readable-stream "^2.1.5"
-parse-asn1@^5.0.0:
- version "5.1.4"
- resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc"
- integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==
+parent-module@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+ integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+ dependencies:
+ callsites "^3.0.0"
+
+parse-asn1@^5.0.0, parse-asn1@^5.1.5:
+ version "5.1.6"
+ resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
+ integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
dependencies:
- asn1.js "^4.0.0"
+ asn1.js "^5.2.0"
browserify-aes "^1.0.0"
- create-hash "^1.1.0"
evp_bytestokey "^1.0.0"
pbkdf2 "^3.0.3"
safe-buffer "^5.1.1"
@@ -5445,6 +7465,16 @@ parse-json@^4.0.0:
error-ex "^1.3.1"
json-parse-better-errors "^1.0.1"
+parse-json@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.1.tgz#7cfe35c1ccd641bce3981467e6c2ece61b3b3878"
+ integrity sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-better-errors "^1.0.1"
+ lines-and-columns "^1.1.6"
+
parse-passwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
@@ -5455,6 +7485,20 @@ parse5@4.0.0:
resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==
+parseqs@0.0.5:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
+ integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=
+ dependencies:
+ better-assert "~1.0.0"
+
+parseuri@0.0.5:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a"
+ integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=
+ dependencies:
+ better-assert "~1.0.0"
+
pascalcase@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
@@ -5475,6 +7519,11 @@ path-exists@^3.0.0:
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
@@ -5485,7 +7534,7 @@ path-key@^2.0.0, path-key@^2.0.1:
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
-path-key@^3.1.0:
+path-key@^3.0.0, path-key@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
@@ -5502,10 +7551,15 @@ path-type@^3.0.0:
dependencies:
pify "^3.0.0"
+path-type@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+ integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
pbkdf2@^3.0.3:
- version "3.0.17"
- resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
- integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94"
+ integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==
dependencies:
create-hash "^1.1.2"
create-hmac "^1.1.4"
@@ -5518,6 +7572,11 @@ performance-now@^2.1.0:
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
+picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
+ integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
+
pify@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -5533,19 +7592,7 @@ pify@^4.0.1:
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
-pinkie-promise@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
- integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
- dependencies:
- pinkie "^2.0.0"
-
-pinkie@^2.0.0:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
- integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
-
-pirates@^4.0.1:
+pirates@^4.0.0, pirates@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87"
integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==
@@ -5576,12 +7623,154 @@ posix-character-classes@^0.1.0:
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
+postcss-cli@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-cli/-/postcss-cli-7.1.1.tgz#260f9546be260b2149bf32e28d785a0d79c9aab8"
+ integrity sha512-bYQy5ydAQJKCMSpvaMg0ThPBeGYqhQXumjbFOmWnL4u65CYXQ16RfS6afGQpit0dGv/fNzxbdDtx8dkqOhhIbg==
+ dependencies:
+ chalk "^4.0.0"
+ chokidar "^3.3.0"
+ dependency-graph "^0.9.0"
+ fs-extra "^9.0.0"
+ get-stdin "^7.0.0"
+ globby "^11.0.0"
+ postcss "^7.0.0"
+ postcss-load-config "^2.0.0"
+ postcss-reporter "^6.0.0"
+ pretty-hrtime "^1.0.3"
+ read-cache "^1.0.0"
+ yargs "^15.0.2"
+
+postcss-functions@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e"
+ integrity sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4=
+ dependencies:
+ glob "^7.1.2"
+ object-assign "^4.1.1"
+ postcss "^6.0.9"
+ postcss-value-parser "^3.3.0"
+
+postcss-js@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-2.0.3.tgz#a96f0f23ff3d08cec7dc5b11bf11c5f8077cdab9"
+ integrity sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w==
+ dependencies:
+ camelcase-css "^2.0.1"
+ postcss "^7.0.18"
+
+postcss-load-config@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003"
+ integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==
+ dependencies:
+ cosmiconfig "^5.0.0"
+ import-cwd "^2.0.0"
+
+postcss-loader@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d"
+ integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==
+ dependencies:
+ loader-utils "^1.1.0"
+ postcss "^7.0.0"
+ postcss-load-config "^2.0.0"
+ schema-utils "^1.0.0"
+
+postcss-modules-extract-imports@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e"
+ integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==
+ dependencies:
+ postcss "^7.0.5"
+
+postcss-modules-local-by-default@^3.0.2:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0"
+ integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==
+ dependencies:
+ icss-utils "^4.1.1"
+ postcss "^7.0.32"
+ postcss-selector-parser "^6.0.2"
+ postcss-value-parser "^4.1.0"
+
+postcss-modules-scope@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee"
+ integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==
+ dependencies:
+ postcss "^7.0.6"
+ postcss-selector-parser "^6.0.0"
+
+postcss-modules-values@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10"
+ integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==
+ dependencies:
+ icss-utils "^4.0.0"
+ postcss "^7.0.6"
+
+postcss-nested@^4.1.1:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-4.2.3.tgz#c6f255b0a720549776d220d00c4b70cd244136f6"
+ integrity sha512-rOv0W1HquRCamWy2kFl3QazJMMe1ku6rCFoAAH+9AcxdbpDeBr6k968MLWuLjvjMcGEip01ak09hKOEgpK9hvw==
+ dependencies:
+ postcss "^7.0.32"
+ postcss-selector-parser "^6.0.2"
+
+postcss-reporter@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.1.tgz#7c055120060a97c8837b4e48215661aafb74245f"
+ integrity sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==
+ dependencies:
+ chalk "^2.4.1"
+ lodash "^4.17.11"
+ log-symbols "^2.2.0"
+ postcss "^7.0.7"
+
+postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c"
+ integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==
+ dependencies:
+ cssesc "^3.0.0"
+ indexes-of "^1.0.1"
+ uniq "^1.0.1"
+
+postcss-value-parser@^3.3.0:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
+ integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
+
+postcss-value-parser@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
+ integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
+
+postcss@7.0.32, postcss@^7.0.0, postcss@^7.0.11, postcss@^7.0.14, postcss@^7.0.18, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6, postcss@^7.0.7:
+ version "7.0.32"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d"
+ integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==
+ dependencies:
+ chalk "^2.4.2"
+ source-map "^0.6.1"
+ supports-color "^6.1.0"
+
+postcss@^6.0.9:
+ version "6.0.23"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
+ integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
+ dependencies:
+ chalk "^2.4.1"
+ source-map "^0.6.1"
+ supports-color "^5.4.0"
+
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
-prepend-http@^1.0.1:
+prepend-http@^1.0.0, prepend-http@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
@@ -5597,25 +7786,35 @@ preserve@^0.2.0:
integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
prettier@^1.12.0, prettier@^1.12.1:
- version "1.18.2"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea"
- integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==
+ version "1.19.1"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
+ integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
pretty-bytes@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9"
integrity sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=
-pretty-format@^24.8.0:
- version "24.8.0"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.8.0.tgz#8dae7044f58db7cb8be245383b565a963e3c27f2"
- integrity sha512-P952T7dkrDEplsR+TuY7q3VXDae5Sr7zmQb12JU/NDQa/3CH7/QW0yvqLcGN6jL+zQFKaoJcPc+yJxMTGmosqw==
+pretty-bytes@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2"
+ integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==
+
+pretty-format@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9"
+ integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==
dependencies:
- "@jest/types" "^24.8.0"
+ "@jest/types" "^24.9.0"
ansi-regex "^4.0.0"
ansi-styles "^3.2.0"
react-is "^16.8.4"
+pretty-hrtime@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
+ integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=
+
private@^0.1.6, private@^0.1.8, private@~0.1.5:
version "0.1.8"
resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
@@ -5631,18 +7830,23 @@ process@^0.11.10:
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
+progress@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+ integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+
promise-inflight@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
prompts@^2.0.1:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.1.0.tgz#bf90bc71f6065d255ea2bdc0fe6520485c1b45db"
- integrity sha512-+x5TozgqYdOwWsQFZizE/Tra3fKvAoy037kOyU6cgz84n8f6zxngLOV4O32kTwt9FcLCxAqw0P/c8rOr9y+Gfg==
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068"
+ integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==
dependencies:
- kleur "^3.0.2"
- sisteransi "^1.0.0"
+ kleur "^3.0.3"
+ sisteransi "^1.0.4"
prop-types@^15.6.2:
version "15.7.2"
@@ -5663,10 +7867,10 @@ pseudomap@^1.0.2:
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
-psl@^1.1.24, psl@^1.1.28:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/psl/-/psl-1.2.0.tgz#df12b5b1b3a30f51c329eacbdef98f3a6e136dc6"
- integrity sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA==
+psl@^1.1.28:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
+ integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
public-encrypt@^4.0.0:
version "4.0.3"
@@ -5710,7 +7914,7 @@ punycode@1.3.2:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
-punycode@^1.2.4, punycode@^1.4.1:
+punycode@^1.2.4:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
@@ -5720,11 +7924,29 @@ punycode@^2.1.0, punycode@^2.1.1:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+purgecss@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/purgecss/-/purgecss-2.3.0.tgz#5327587abf5795e6541517af8b190a6fb5488bb3"
+ integrity sha512-BE5CROfVGsx2XIhxGuZAT7rTH9lLeQx/6M0P7DTXQH4IUc3BBzs9JUzt4yzGf3JrH9enkeq6YJBe9CTtkm1WmQ==
+ dependencies:
+ commander "^5.0.0"
+ glob "^7.0.0"
+ postcss "7.0.32"
+ postcss-selector-parser "^6.0.2"
+
qs@~6.5.2:
version "6.5.2"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
+query-string@^4.1.0:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
+ integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s=
+ dependencies:
+ object-assign "^4.1.0"
+ strict-uri-encode "^1.0.0"
+
query-string@^5.0.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb"
@@ -5768,40 +7990,36 @@ randomfill@^1.0.3:
randombytes "^2.0.5"
safe-buffer "^5.1.0"
-rc@^1.2.7:
- version "1.2.8"
- resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
- integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
- dependencies:
- deep-extend "^0.6.0"
- ini "~1.3.0"
- minimist "^1.2.0"
- strip-json-comments "~2.0.1"
-
react-dom@^16.4:
- version "16.8.6"
- resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f"
- integrity sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA==
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f"
+ integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"
- scheduler "^0.13.6"
+ scheduler "^0.19.1"
react-is@^16.8.1, react-is@^16.8.4:
- version "16.8.6"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16"
- integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
react@^16.8:
- version "16.8.6"
- resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe"
- integrity sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e"
+ integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"
- scheduler "^0.13.6"
+
+read-cache@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
+ integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=
+ dependencies:
+ pify "^2.3.0"
read-chunk@^2.1.0:
version "2.1.0"
@@ -5811,6 +8029,14 @@ read-chunk@^2.1.0:
pify "^3.0.0"
safe-buffer "^5.1.1"
+read-chunk@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-3.2.0.tgz#2984afe78ca9bfbbdb74b19387bf9e86289c16ca"
+ integrity sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==
+ dependencies:
+ pify "^4.0.1"
+ with-open-file "^0.1.6"
+
read-pkg-up@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"
@@ -5827,6 +8053,14 @@ read-pkg-up@^4.0.0:
find-up "^3.0.0"
read-pkg "^3.0.0"
+read-pkg-up@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-5.0.0.tgz#b6a6741cb144ed3610554f40162aa07a6db621b8"
+ integrity sha512-XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg==
+ dependencies:
+ find-up "^3.0.0"
+ read-pkg "^5.0.0"
+
read-pkg@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
@@ -5836,10 +8070,20 @@ read-pkg@^3.0.0:
normalize-package-data "^2.3.2"
path-type "^3.0.0"
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
- version "2.3.6"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
- integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
+read-pkg@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
+ integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
+ dependencies:
+ "@types/normalize-package-data" "^2.4.0"
+ normalize-package-data "^2.5.0"
+ parse-json "^5.0.0"
+ type-fest "^0.6.0"
+
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
+ version "2.3.7"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+ integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
@@ -5849,6 +8093,15 @@ read-pkg@^3.0.0:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
+"readable-stream@2 || 3", readable-stream@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+ integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+ dependencies:
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
readdirp@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
@@ -5858,6 +8111,13 @@ readdirp@^2.2.1:
micromatch "^3.1.10"
readable-stream "^2.0.2"
+readdirp@~3.4.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada"
+ integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==
+ dependencies:
+ picomatch "^2.2.1"
+
realpath-native@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c"
@@ -5886,6 +8146,26 @@ recast@^0.15.0:
private "~0.1.5"
source-map "~0.6.1"
+recast@^0.16.1:
+ version "0.16.2"
+ resolved "https://registry.yarnpkg.com/recast/-/recast-0.16.2.tgz#3796ebad5fe49ed85473b479cd6df554ad725dc2"
+ integrity sha512-O/7qXi51DPjRVdbrpNzoBQH5dnAPQNbfoOFyRiUwreTMJfIHYOEBzwuH+c0+/BTSJ3CQyKs6ILSWXhESH6Op3A==
+ dependencies:
+ ast-types "0.11.7"
+ esprima "~4.0.0"
+ private "~0.1.5"
+ source-map "~0.6.1"
+
+recast@^0.18.1:
+ version "0.18.10"
+ resolved "https://registry.yarnpkg.com/recast/-/recast-0.18.10.tgz#605ebbe621511eb89b6356a7e224bff66ed91478"
+ integrity sha512-XNvYvkfdAN9QewbrxeTOjgINkdY/odTgTS56ZNEWL9Ml0weT4T3sFtvnTuF+Gxyu46ANcRm1ntrF6F5LAJPAaQ==
+ dependencies:
+ ast-types "0.13.3"
+ esprima "~4.0.0"
+ private "^0.1.8"
+ source-map "~0.6.1"
+
rechoir@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
@@ -5893,16 +8173,36 @@ rechoir@^0.6.2:
dependencies:
resolve "^1.1.6"
-regenerate@^1.2.1:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
- integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
+reduce-css-calc@^2.1.6:
+ version "2.1.7"
+ resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.7.tgz#1ace2e02c286d78abcd01fd92bfe8097ab0602c2"
+ integrity sha512-fDnlZ+AybAS3C7Q9xDq5y8A2z+lT63zLbynew/lur/IR24OQF5x98tfNwf79mzEdfywZ0a2wpM860FhFfMxZlA==
+ dependencies:
+ css-unit-converter "^1.1.1"
+ postcss-value-parser "^3.3.0"
+
+regenerate-unicode-properties@^8.2.0:
+ version "8.2.0"
+ resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec"
+ integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==
+ dependencies:
+ regenerate "^1.4.0"
+
+regenerate@^1.2.1, regenerate@^1.4.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f"
+ integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==
regenerator-runtime@^0.11.0:
version "0.11.1"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
+regenerator-runtime@^0.13.4:
+ version "0.13.7"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
+ integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
+
regenerator-transform@^0.10.0:
version "0.10.1"
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd"
@@ -5912,6 +8212,13 @@ regenerator-transform@^0.10.0:
babel-types "^6.19.0"
private "^0.1.6"
+regenerator-transform@^0.14.2:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4"
+ integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==
+ dependencies:
+ "@babel/runtime" "^7.8.4"
+
regex-cache@^0.4.2:
version "0.4.4"
resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
@@ -5927,6 +8234,11 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
+regexpp@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
+ integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
+
regexpu-core@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
@@ -5936,11 +8248,28 @@ regexpu-core@^2.0.0:
regjsgen "^0.2.0"
regjsparser "^0.1.4"
+regexpu-core@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938"
+ integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==
+ dependencies:
+ regenerate "^1.4.0"
+ regenerate-unicode-properties "^8.2.0"
+ regjsgen "^0.5.1"
+ regjsparser "^0.6.4"
+ unicode-match-property-ecmascript "^1.0.4"
+ unicode-match-property-value-ecmascript "^1.2.0"
+
regjsgen@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=
+regjsgen@^0.5.1:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
+ integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
+
regjsparser@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
@@ -5948,6 +8277,13 @@ regjsparser@^0.1.4:
dependencies:
jsesc "~0.5.0"
+regjsparser@^0.6.4:
+ version "0.6.4"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272"
+ integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==
+ dependencies:
+ jsesc "~0.5.0"
+
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
@@ -5970,36 +8306,31 @@ repeating@^2.0.0:
dependencies:
is-finite "^1.0.0"
-replace-ext@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
- integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=
-
replace-ext@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
- integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a"
+ integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==
-request-promise-core@1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346"
- integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==
+request-promise-core@1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f"
+ integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==
dependencies:
- lodash "^4.17.11"
+ lodash "^4.17.19"
request-promise-native@^1.0.5:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59"
- integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28"
+ integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==
dependencies:
- request-promise-core "1.1.2"
+ request-promise-core "1.1.4"
stealthy-require "^1.1.1"
tough-cookie "^2.3.3"
-request@^2.87.0:
- version "2.88.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
- integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
+request@^2.87.0, request@^2.88.0:
+ version "2.88.2"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
+ integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.8.0"
@@ -6008,7 +8339,7 @@ request@^2.87.0:
extend "~3.0.2"
forever-agent "~0.6.1"
form-data "~2.3.2"
- har-validator "~5.1.0"
+ har-validator "~5.1.3"
http-signature "~1.2.0"
is-typedarray "~1.0.0"
isstream "~0.1.2"
@@ -6018,7 +8349,7 @@ request@^2.87.0:
performance-now "^2.1.0"
qs "~6.5.2"
safe-buffer "^5.1.2"
- tough-cookie "~2.4.3"
+ tough-cookie "~2.5.0"
tunnel-agent "^0.6.0"
uuid "^3.3.2"
@@ -6057,6 +8388,11 @@ resolve-from@^3.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
integrity sha1-six699nWiBvItuZTM17rywoYh0g=
+resolve-from@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
@@ -6067,10 +8403,10 @@ resolve@1.1.7:
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
-resolve@1.x, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2:
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e"
- integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==
+resolve@1.x, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.3.2:
+ version "1.17.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
+ integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
dependencies:
path-parse "^1.0.6"
@@ -6089,22 +8425,44 @@ restore-cursor@^2.0.0:
onetime "^2.0.0"
signal-exit "^3.0.2"
+restore-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
+ integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
+ dependencies:
+ onetime "^5.1.0"
+ signal-exit "^3.0.2"
+
ret@~0.1.10:
version "0.1.15"
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
-rimraf@^2.2.8, rimraf@^2.4.4, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3:
+reusify@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+ integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
+rimraf@2.6.3, rimraf@~2.6.2:
version "2.6.3"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
dependencies:
glob "^7.1.3"
-rimraf@~2.2.6:
- version "2.2.8"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582"
- integrity sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=
+rimraf@^2.2.8, rimraf@^2.4.4, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
+ integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+ dependencies:
+ glob "^7.1.3"
+
+rimraf@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+ integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+ dependencies:
+ glob "^7.1.3"
ripemd160@^2.0.0, ripemd160@^2.0.1:
version "2.0.2"
@@ -6119,12 +8477,15 @@ rsvp@^4.8.4:
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==
-run-async@^2.0.0, run-async@^2.2.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
- integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA=
- dependencies:
- is-promise "^2.1.0"
+run-async@^2.0.0, run-async@^2.2.0, run-async@^2.4.0:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
+ integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
+
+run-parallel@^1.1.9:
+ version "1.1.9"
+ resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679"
+ integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==
run-queue@^1.0.0, run-queue@^1.0.3:
version "1.0.3"
@@ -6140,17 +8501,17 @@ rxjs@^5.5.2:
dependencies:
symbol-observable "1.0.1"
-rxjs@^6.3.3, rxjs@^6.4.0:
- version "6.5.2"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7"
- integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==
+rxjs@^6.3.3, rxjs@^6.6.0:
+ version "6.6.2"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2"
+ integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==
dependencies:
tslib "^1.9.0"
-safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
- integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
+safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
@@ -6189,10 +8550,10 @@ sax@^1.2.4:
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-scheduler@^0.13.6:
- version "0.13.6"
- resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889"
- integrity sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==
+scheduler@^0.19.1:
+ version "0.19.1"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
+ integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
@@ -6205,31 +8566,66 @@ schema-utils@^0.4.4, schema-utils@^0.4.5:
ajv "^6.1.0"
ajv-keywords "^3.1.0"
+schema-utils@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
+ integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==
+ dependencies:
+ ajv "^6.1.0"
+ ajv-errors "^1.0.0"
+ ajv-keywords "^3.1.0"
+
+schema-utils@^2.6.6, schema-utils@^2.7.0:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7"
+ integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==
+ dependencies:
+ "@types/json-schema" "^7.0.4"
+ ajv "^6.12.2"
+ ajv-keywords "^3.4.1"
+
scoped-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-1.0.0.tgz#a346bb1acd4207ae70bd7c0c7ca9e566b6baddb8"
integrity sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=
"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.6.0:
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
- integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
+ integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+
+semver@7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
+ integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
-semver@^6.0.0:
+semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+semver@^7.1.3, semver@^7.2.1:
+ version "7.3.2"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
+ integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
+
serialize-javascript@^1.4.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65"
- integrity sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb"
+ integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==
-set-blocking@^2.0.0, set-blocking@~2.0.0:
+set-blocking@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
+set-getter@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376"
+ integrity sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=
+ dependencies:
+ to-object-path "^0.3.0"
+
set-value@^2.0.0, set-value@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
@@ -6253,6 +8649,13 @@ sha.js@^2.4.0, sha.js@^2.4.8:
inherits "^2.0.1"
safe-buffer "^5.0.1"
+shallow-clone@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
+ integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
+ dependencies:
+ kind-of "^6.0.2"
+
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
@@ -6277,10 +8680,10 @@ shebang-regex@^3.0.0:
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
-shelljs@^0.8.0:
- version "0.8.3"
- resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.3.tgz#a7f3319520ebf09ee81275b2368adb286659b097"
- integrity sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==
+shelljs@^0.8.0, shelljs@^0.8.3:
+ version "0.8.4"
+ resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2"
+ integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==
dependencies:
glob "^7.0.0"
interpret "^1.0.0"
@@ -6292,14 +8695,21 @@ shellwords@^0.1.1:
integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
signal-exit@^3.0.0, signal-exit@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
- integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
+ integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
-sisteransi@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.2.tgz#ec57d64b6f25c4f26c0e2c7dd23f2d7f12f7e418"
- integrity sha512-ZcYcZcT69nSLAR2oLN2JwNmLkJEKGooFMCdvOkFrToUt/WfcRWqhIg4P4KwY4dmLbuyXIx4o4YmPsvMRJYJd/w==
+simple-swizzle@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+ integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
+ dependencies:
+ is-arrayish "^0.3.1"
+
+sisteransi@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
+ integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
slash@^1.0.0:
version "1.0.0"
@@ -6311,11 +8721,25 @@ slash@^2.0.0:
resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
+slash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+ integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+
slice-ansi@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=
+slice-ansi@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
+ integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
+ dependencies:
+ ansi-styles "^3.2.0"
+ astral-regex "^1.0.0"
+ is-fullwidth-code-point "^2.0.0"
+
slide@^1.1.5:
version "1.1.6"
resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
@@ -6351,6 +8775,78 @@ snapdragon@^0.8.1:
source-map-resolve "^0.5.0"
use "^3.1.0"
+socket.io-adapter@~1.1.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9"
+ integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==
+
+socket.io-client@2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.0.3.tgz#6caf4aff9f85b19fd91b6ce13d69adb564f8873b"
+ integrity sha1-bK9K/5+FsZ/ZG2zhPWmttWT4hzs=
+ dependencies:
+ backo2 "1.0.2"
+ base64-arraybuffer "0.1.5"
+ component-bind "1.0.0"
+ component-emitter "1.2.1"
+ debug "~2.6.4"
+ engine.io-client "~3.1.0"
+ has-cors "1.1.0"
+ indexof "0.0.1"
+ object-component "0.0.3"
+ parseqs "0.0.5"
+ parseuri "0.0.5"
+ socket.io-parser "~3.1.1"
+ to-array "0.1.4"
+
+socket.io-client@~2.0.2:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.0.4.tgz#0918a552406dc5e540b380dcd97afc4a64332f8e"
+ integrity sha1-CRilUkBtxeVAs4Dc2Xr8SmQzL44=
+ dependencies:
+ backo2 "1.0.2"
+ base64-arraybuffer "0.1.5"
+ component-bind "1.0.0"
+ component-emitter "1.2.1"
+ debug "~2.6.4"
+ engine.io-client "~3.1.0"
+ has-cors "1.1.0"
+ indexof "0.0.1"
+ object-component "0.0.3"
+ parseqs "0.0.5"
+ parseuri "0.0.5"
+ socket.io-parser "~3.1.1"
+ to-array "0.1.4"
+
+socket.io-parser@~3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.1.3.tgz#ed2da5ee79f10955036e3da413bfd7f1e4d86c8e"
+ integrity sha512-g0a2HPqLguqAczs3dMECuA1RgoGFPyvDqcbaDEdCWY9g59kdUAz3YRmaJBNKXflrHNwB7Q12Gkf/0CZXfdHR7g==
+ dependencies:
+ component-emitter "1.2.1"
+ debug "~3.1.0"
+ has-binary2 "~1.0.2"
+ isarray "2.0.1"
+
+socket.io@2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.0.3.tgz#4359f06a24933ae6bd087798af78c680eae345e3"
+ integrity sha1-Q1nwaiSTOua9CHeYr3jGgOrjReM=
+ dependencies:
+ debug "~2.6.6"
+ engine.io "~3.1.0"
+ object-assign "~4.1.1"
+ socket.io-adapter "~1.1.0"
+ socket.io-client "~2.0.2"
+ socket.io-parser "~3.1.1"
+
+sort-keys@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
+ integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0=
+ dependencies:
+ is-plain-obj "^1.0.0"
+
sort-keys@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128"
@@ -6364,11 +8860,11 @@ source-list-map@^2.0.0:
integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
source-map-resolve@^0.5.0:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
- integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
+ integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
dependencies:
- atob "^2.1.1"
+ atob "^2.1.2"
decode-uri-component "^0.2.0"
resolve-url "^0.2.1"
source-map-url "^0.4.0"
@@ -6381,10 +8877,10 @@ source-map-support@^0.4.15:
dependencies:
source-map "^0.5.6"
-source-map-support@^0.5.6:
- version "0.5.12"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599"
- integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==
+source-map-support@^0.5.16, source-map-support@^0.5.6:
+ version "0.5.19"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
+ integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
@@ -6405,22 +8901,22 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
spdx-correct@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
- integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
+ integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
dependencies:
spdx-expression-parse "^3.0.0"
spdx-license-ids "^3.0.0"
spdx-exceptions@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977"
- integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
+ integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
spdx-expression-parse@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
- integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
+ integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
dependencies:
spdx-exceptions "^2.1.0"
spdx-license-ids "^3.0.0"
@@ -6515,9 +9011,9 @@ stream-http@^2.7.2:
xtend "^4.0.0"
stream-shift@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
- integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
+ integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
strict-uri-encode@^1.0.0:
version "1.1.0"
@@ -6546,7 +9042,7 @@ string-width@^1.0.1:
is-fullwidth-code-point "^1.0.0"
strip-ansi "^3.0.0"
-"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
+string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
@@ -6554,12 +9050,46 @@ string-width@^1.0.1:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
-string_decoder@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d"
- integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==
+string-width@^3.0.0, string-width@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
+ integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
dependencies:
- safe-buffer "~5.1.0"
+ emoji-regex "^7.0.1"
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^5.1.0"
+
+string-width@^4.1.0, string-width@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
+ integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.0"
+
+string.prototype.trimend@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913"
+ integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
+
+string.prototype.trimstart@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54"
+ integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
+
+string_decoder@^1.0.0, string_decoder@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ dependencies:
+ safe-buffer "~5.2.0"
string_decoder@~1.1.1:
version "1.1.1"
@@ -6582,18 +9112,32 @@ strip-ansi@^4.0.0:
dependencies:
ansi-regex "^3.0.0"
-strip-ansi@^5.0.0, strip-ansi@^5.1.0:
+strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
dependencies:
ansi-regex "^4.1.0"
+strip-ansi@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
+ integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
+ dependencies:
+ ansi-regex "^5.0.0"
+
strip-ansi@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991"
integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=
+strip-bom-buf@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz#1cb45aaf57530f4caf86c7f75179d2c9a51dd572"
+ integrity sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=
+ dependencies:
+ is-utf8 "^0.2.1"
+
strip-bom-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca"
@@ -6619,10 +9163,23 @@ strip-eof@^1.0.0:
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
-strip-json-comments@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
- integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
+strip-final-newline@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
+strip-json-comments@^3.0.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+ integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
+style-loader@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.2.1.tgz#c5cbbfbf1170d076cfdd86e0109c5bba114baa1a"
+ integrity sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg==
+ dependencies:
+ loader-utils "^2.0.0"
+ schema-utils "^2.6.6"
supports-color@^2.0.0:
version "2.0.0"
@@ -6643,6 +9200,13 @@ supports-color@^6.1.0:
dependencies:
has-flag "^3.0.0"
+supports-color@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
+ integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
+ dependencies:
+ has-flag "^4.0.0"
+
symbol-observable@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
@@ -6658,31 +9222,52 @@ symbol-tree@^3.2.2:
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
+table@^5.2.3:
+ version "5.4.6"
+ resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
+ integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
+ dependencies:
+ ajv "^6.10.2"
+ lodash "^4.17.14"
+ slice-ansi "^2.1.0"
+ string-width "^3.0.0"
+
+tailwindcss@^1.5.1:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-1.6.2.tgz#352da9e1b0d9154c95ce12483daa1c2fa1f1eea8"
+ integrity sha512-Cpa0kElG8Sg5sJSvTYi2frmIQZq0w37RLNNrYyy/W6HIWKspqSdTfb9tIN6X1gm4KV5a+TE/n7EKmn5Q9C7EUQ==
+ dependencies:
+ "@fullhuman/postcss-purgecss" "^2.1.2"
+ autoprefixer "^9.4.5"
+ browserslist "^4.12.0"
+ bytes "^3.0.0"
+ chalk "^3.0.0 || ^4.0.0"
+ color "^3.1.2"
+ detective "^5.2.0"
+ fs-extra "^8.0.0"
+ lodash "^4.17.15"
+ node-emoji "^1.8.1"
+ normalize.css "^8.0.1"
+ postcss "^7.0.11"
+ postcss-functions "^3.0.0"
+ postcss-js "^2.0.0"
+ postcss-nested "^4.1.1"
+ postcss-selector-parser "^6.0.0"
+ pretty-hrtime "^1.0.3"
+ reduce-css-calc "^2.1.6"
+ resolve "^1.14.2"
+
tapable@^1.0.0, tapable@^1.1.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
-tar@^4:
- version "4.4.10"
- resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1"
- integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==
- dependencies:
- chownr "^1.1.1"
- fs-minipass "^1.2.5"
- minipass "^2.3.5"
- minizlib "^1.2.1"
- mkdirp "^0.5.0"
- safe-buffer "^5.1.2"
- yallist "^3.0.3"
-
temp@^0.8.1:
- version "0.8.3"
- resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59"
- integrity sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=
+ version "0.8.4"
+ resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.4.tgz#8c97a33a4770072e0a05f919396c7665a7dd59f2"
+ integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==
dependencies:
- os-tmpdir "^1.0.0"
- rimraf "~2.2.6"
+ rimraf "~2.6.2"
test-exclude@^5.2.3:
version "5.2.3"
@@ -6699,12 +9284,12 @@ text-table@^0.2.0:
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
-textextensions@^2.4.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.4.0.tgz#6a143a985464384cc2cff11aea448cd5b018e72b"
- integrity sha512-qftQXnX1DzpSV8EddtHIT0eDDEiBF8ywhFYR2lI9xrGtxqKN+CvLXhACeCIGbCpQfxxERbrkZEFb8cZcDKbVZA==
+textextensions@^2.5.0:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.6.0.tgz#d7e4ab13fe54e32e08873be40d51b74229b00fc4"
+ integrity sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==
-throat@^4.0.0:
+throat@^4.0.0, throat@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a"
integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=
@@ -6717,7 +9302,15 @@ through2@^2.0.0:
readable-stream "~2.3.6"
xtend "~4.0.1"
-through@^2.3.6:
+through2@^3.0.0, through2@^3.0.1:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4"
+ integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==
+ dependencies:
+ inherits "^2.0.4"
+ readable-stream "2 || 3"
+
+"through@>=2.2.7 <3", through@^2.3.6:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
@@ -6728,9 +9321,9 @@ timed-out@^4.0.0, timed-out@^4.0.1:
integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=
timers-browserify@^2.0.4:
- version "2.0.10"
- resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae"
- integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==
+ version "2.0.11"
+ resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f"
+ integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==
dependencies:
setimmediate "^1.0.4"
@@ -6746,6 +9339,11 @@ tmpl@1.0.x:
resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=
+to-array@0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
+ integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA=
+
to-arraybuffer@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
@@ -6776,6 +9374,13 @@ to-regex-range@^2.1.0:
is-number "^3.0.0"
repeat-string "^1.6.1"
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
to-regex@^3.0.1, to-regex@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
@@ -6786,7 +9391,7 @@ to-regex@^3.0.1, to-regex@^3.0.2:
regex-not "^1.0.2"
safe-regex "^1.1.0"
-tough-cookie@^2.3.3, tough-cookie@^2.3.4:
+tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
@@ -6794,14 +9399,6 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4:
psl "^1.1.28"
punycode "^2.1.1"
-tough-cookie@~2.4.3:
- version "2.4.3"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
- integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
- dependencies:
- psl "^1.1.24"
- punycode "^1.4.1"
-
tr46@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
@@ -6815,14 +9412,15 @@ trim-right@^1.0.1:
integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
ts-jest@^24.0.0:
- version "24.0.2"
- resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.0.2.tgz#8dde6cece97c31c03e80e474c749753ffd27194d"
- integrity sha512-h6ZCZiA1EQgjczxq+uGLXQlNgeg02WWJBbeT8j6nyIBRQdglqbvzDoHahTEIiS6Eor6x8mK6PfZ7brQ9Q6tzHw==
+ version "24.3.0"
+ resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.3.0.tgz#b97814e3eab359ea840a1ac112deae68aa440869"
+ integrity sha512-Hb94C/+QRIgjVZlJyiWwouYUF+siNJHJHknyspaOcZ+OQAIdFG/UrdQVXw/0B8Z3No34xkUXZJpOTy9alOWdVQ==
dependencies:
bs-logger "0.x"
buffer-from "1.x"
fast-json-stable-stringify "2.x"
json5 "2.x"
+ lodash.memoize "4.x"
make-error "1.x"
mkdirp "0.x"
resolve "1.x"
@@ -6840,10 +9438,42 @@ ts-loader@^5.3.3:
micromatch "^3.1.4"
semver "^5.0.1"
+ts-migrate-plugins@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/ts-migrate-plugins/-/ts-migrate-plugins-0.1.0.tgz#482f092851474e78f7ecb5d3c31e378eaf03b3dc"
+ integrity sha512-mzsq0Mv5mkOmjIpIjZMqLYktvPaB1vaeUpQ7+Fo33/9TfxovJ8Wq7OKB7pG3GBECpQEuNLgWVbtBaz3WV2UDaQ==
+ dependencies:
+ eslint "^6.1.0"
+ jscodeshift "^0.7.0"
+ ts-migrate-server "^0.1.0"
+ typescript "3.9.7"
+
+ts-migrate-server@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/ts-migrate-server/-/ts-migrate-server-0.1.0.tgz#1ee886a46d02a7cbc230d34b07cdb23e182418c0"
+ integrity sha512-UpRsjFl25bHOk68r7ix2aehA2NplBMinqNLD5gUqLNCYdlRshhpOqJ9IJDsArV4M1IdCw4ldjHm1mamRoOgwOw==
+ dependencies:
+ typescript "3.9.7"
+ updatable-log "^0.2.0"
+
+ts-migrate@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/ts-migrate/-/ts-migrate-0.1.0.tgz#ad90296b7597f81ac05143f0e6e7175a4cae84ea"
+ integrity sha512-1sgXtAwxv1VXVQ9ql/vzYdJbEg2+B4sO+G8Ml7fAqjdku9Kq9mvQZtE+/Uc0fDjcpuQu1OaLHNNdyE37Uwt3PQ==
+ dependencies:
+ create-jest-runner "^0.5.3"
+ json5 "^2.1.1"
+ json5-writer "^0.1.8"
+ ts-migrate-plugins "^0.1.0"
+ ts-migrate-server "^0.1.0"
+ typescript "3.9.7"
+ updatable-log "^0.2.0"
+ yargs "^15.0.2"
+
tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
- integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
+ version "1.13.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
+ integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==
tslint-config-prettier@^1.18.0:
version "1.18.0"
@@ -6862,15 +9492,15 @@ tslint-loader@^3.5.4:
semver "^5.3.0"
tslint@^5.13.1:
- version "5.18.0"
- resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.18.0.tgz#f61a6ddcf372344ac5e41708095bbf043a147ac6"
- integrity sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w==
+ version "5.20.1"
+ resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.20.1.tgz#e401e8aeda0152bc44dd07e614034f3f80c67b7d"
+ integrity sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==
dependencies:
"@babel/code-frame" "^7.0.0"
builtin-modules "^1.1.1"
chalk "^2.3.0"
commander "^2.12.1"
- diff "^3.2.0"
+ diff "^4.0.1"
glob "^7.1.1"
js-yaml "^3.13.1"
minimatch "^3.0.4"
@@ -6911,15 +9541,30 @@ type-check@~0.3.2:
dependencies:
prelude-ls "~1.1.2"
+type-fest@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
+ integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==
+
+type-fest@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
+ integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
+
+type-fest@^0.8.1:
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
+ integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
+
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-typescript@^3.3.3333:
- version "3.5.3"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977"
- integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==
+typescript@3.9.7, typescript@^3.3.3333:
+ version "3.9.7"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa"
+ integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==
uglify-es@^3.3.4:
version "3.3.9"
@@ -6929,14 +9574,6 @@ uglify-es@^3.3.4:
commander "~2.13.0"
source-map "~0.6.1"
-uglify-js@^3.1.4:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5"
- integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==
- dependencies:
- commander "~2.20.0"
- source-map "~0.6.1"
-
uglifyjs-webpack-plugin@^1.2.4:
version "1.3.0"
resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de"
@@ -6951,11 +9588,39 @@ uglifyjs-webpack-plugin@^1.2.4:
webpack-sources "^1.1.0"
worker-farm "^1.5.2"
+ultron@~1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
+ integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==
+
underscore@~1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8"
integrity sha1-izixDKze9jM3uLJOT/htRa6lKag=
+unicode-canonical-property-names-ecmascript@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
+ integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
+
+unicode-match-property-ecmascript@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
+ integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==
+ dependencies:
+ unicode-canonical-property-names-ecmascript "^1.0.4"
+ unicode-property-aliases-ecmascript "^1.0.4"
+
+unicode-match-property-value-ecmascript@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531"
+ integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==
+
+unicode-property-aliases-ecmascript@^1.0.4:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
+ integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
+
union-value@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
@@ -6966,6 +9631,11 @@ union-value@^1.0.0:
is-extendable "^0.1.1"
set-value "^2.0.1"
+uniq@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
+ integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
+
unique-filename@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
@@ -6980,6 +9650,16 @@ unique-slug@^2.0.0:
dependencies:
imurmurhash "^0.1.4"
+universalify@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+ integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+
+universalify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d"
+ integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==
+
unset-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
@@ -6993,10 +9673,24 @@ untildify@^3.0.3:
resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9"
integrity sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==
+unzip-response@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
+ integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=
+
upath@^1.1.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068"
- integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
+ integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
+
+updatable-log@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/updatable-log/-/updatable-log-0.2.0.tgz#8adfe35dd744bd87e8bf217425e4e8bb81b6f3c6"
+ integrity sha512-gR48/mTR6YFB+B1sNoap3nx8HFbEvDl0ej9KhlQTFZdmP8yL5fzFiCUfeHCUf1QvNnXowY1pM9iiGkPKrd0XyQ==
+ dependencies:
+ chalk "^2.4.2"
+ figures "^3.0.0"
+ log-update "^3.3.0"
uri-js@^4.2.2:
version "4.2.2"
@@ -7042,18 +9736,20 @@ use@^3.1.0:
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
-util-deprecate@~1.0.1:
+util-deprecate@^1.0.1, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
util.promisify@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
- integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee"
+ integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==
dependencies:
- define-properties "^1.1.2"
- object.getownpropertydescriptors "^2.0.3"
+ define-properties "^1.1.3"
+ es-abstract "^1.17.2"
+ has-symbols "^1.0.1"
+ object.getownpropertydescriptors "^2.1.0"
util@0.10.3:
version "0.10.3"
@@ -7070,14 +9766,19 @@ util@^0.11.0:
inherits "2.0.3"
uuid@^3.3.2:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
- integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
+ integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
-v8-compile-cache@^2.0.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe"
- integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==
+uws@~9.14.0:
+ version "9.14.0"
+ resolved "https://registry.yarnpkg.com/uws/-/uws-9.14.0.tgz#fac8386befc33a7a3705cbd58dc47b430ca4dd95"
+ integrity sha512-HNMztPP5A1sKuVFmdZ6BPVpBQd5bUjNC8EFMFiICK+oho/OQsAJy5hnIx4btMHiOk8j04f/DbIlqnEZ9d72dqg==
+
+v8-compile-cache@^2.0.0, v8-compile-cache@^2.0.3:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745"
+ integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==
validate-npm-package-license@^3.0.1:
version "3.0.4"
@@ -7096,28 +9797,18 @@ verror@1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
-vinyl-file@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-2.0.0.tgz#a7ebf5ffbefda1b7d18d140fcb07b223efb6751a"
- integrity sha1-p+v1/779obfRjRQPyweyI++2dRo=
+vinyl-file@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-3.0.0.tgz#b104d9e4409ffa325faadd520642d0a3b488b365"
+ integrity sha1-sQTZ5ECf+jJfqt1SBkLQo7SIs2U=
dependencies:
graceful-fs "^4.1.2"
pify "^2.3.0"
- pinkie-promise "^2.0.0"
- strip-bom "^2.0.0"
+ strip-bom-buf "^1.0.0"
strip-bom-stream "^2.0.0"
- vinyl "^1.1.0"
-
-vinyl@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884"
- integrity sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=
- dependencies:
- clone "^1.0.0"
- clone-stats "^0.0.1"
- replace-ext "0.0.1"
+ vinyl "^2.0.1"
-vinyl@^2.0.1:
+vinyl@^2.0.1, vinyl@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86"
integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==
@@ -7130,16 +9821,16 @@ vinyl@^2.0.1:
replace-ext "^1.0.0"
vm-browserify@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019"
- integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
+ integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
w3c-hr-time@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045"
- integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
+ integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==
dependencies:
- browser-process-hrtime "^0.1.2"
+ browser-process-hrtime "^1.0.0"
walker@^1.0.7, walker@~1.0.5:
version "1.0.7"
@@ -7148,14 +9839,23 @@ walker@^1.0.7, walker@~1.0.5:
dependencies:
makeerror "1.0.x"
+watchpack-chokidar2@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0"
+ integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==
+ dependencies:
+ chokidar "^2.1.8"
+
watchpack@^1.5.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
- integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==
+ version "1.7.4"
+ resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b"
+ integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==
dependencies:
- chokidar "^2.0.2"
graceful-fs "^4.1.2"
neo-async "^2.5.0"
+ optionalDependencies:
+ chokidar "^3.4.1"
+ watchpack-chokidar2 "^2.0.0"
webidl-conversions@^4.0.2:
version "4.0.2"
@@ -7202,9 +9902,9 @@ webpack-cli@^2.0.14:
yeoman-generator "^2.0.5"
webpack-sources@^1.1.0, webpack-sources@^1.2.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85"
- integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
+ integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
dependencies:
source-list-map "^2.0.0"
source-map "~0.6.1"
@@ -7261,9 +9961,9 @@ whatwg-url@^6.4.1:
webidl-conversions "^4.0.2"
whatwg-url@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd"
- integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
+ integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
dependencies:
lodash.sortby "^4.7.0"
tr46 "^1.0.1"
@@ -7288,22 +9988,19 @@ which@^2.0.1:
dependencies:
isexe "^2.0.0"
-wide-align@^1.1.0:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
- integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
+with-open-file@^0.1.6:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/with-open-file/-/with-open-file-0.1.7.tgz#e2de8d974e8a8ae6e58886be4fe8e7465b58a729"
+ integrity sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==
dependencies:
- string-width "^1.0.2 || 2"
-
-wordwrap@~0.0.2:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
- integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
+ p-finally "^1.0.0"
+ p-try "^2.1.0"
+ pify "^4.0.1"
-wordwrap@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
- integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
+word-wrap@~1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
+ integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
worker-farm@^1.5.2:
version "1.7.0"
@@ -7335,6 +10032,24 @@ wrap-ansi@^3.0.1:
string-width "^2.1.1"
strip-ansi "^4.0.0"
+wrap-ansi@^5.0.0, wrap-ansi@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
+ integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
+ dependencies:
+ ansi-styles "^3.2.0"
+ string-width "^3.0.0"
+ strip-ansi "^5.0.0"
+
+wrap-ansi@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
+ integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
@@ -7358,6 +10073,22 @@ write-file-atomic@^1.2.0:
imurmurhash "^0.1.4"
slide "^1.1.5"
+write-file-atomic@^2.3.0:
+ version "2.4.3"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481"
+ integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==
+ dependencies:
+ graceful-fs "^4.1.11"
+ imurmurhash "^0.1.4"
+ signal-exit "^3.0.2"
+
+write@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
+ integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==
+ dependencies:
+ mkdirp "^0.5.1"
+
ws@^5.2.0:
version "5.2.2"
resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f"
@@ -7365,22 +10096,56 @@ ws@^5.2.0:
dependencies:
async-limiter "~1.0.0"
+ws@~3.3.1:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
+ integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==
+ dependencies:
+ async-limiter "~1.0.0"
+ safe-buffer "~5.1.0"
+ ultron "~1.1.0"
+
xml-name-validator@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
-xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1:
+xmlhttprequest-ssl@~1.5.4:
+ version "1.5.5"
+ resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
+ integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=
+
+xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+xterm-addon-fit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/xterm-addon-fit/-/xterm-addon-fit-0.4.0.tgz#06e0c5d0a6aaacfb009ef565efa1c81e93d90193"
+ integrity sha512-p4BESuV/g2L6pZzFHpeNLLnep9mp/DkF3qrPglMiucSFtD8iJxtMufEoEJbN8LZwB4i+8PFpFvVuFrGOSpW05w==
+
+xterm-addon-web-links@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/xterm-addon-web-links/-/xterm-addon-web-links-0.4.0.tgz#265cbf8221b9b315d0a748e1323bee331cd5da03"
+ integrity sha512-xv8GeiINmx0zENO9hf5k+5bnkaE8mRzF+OBAr9WeFq2eLaQSudioQSiT34M1ofKbzcdjSsKiZm19Rw3i4eXamg==
+
+xterm-addon-webgl@^0.4.0:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.4.1.tgz#c245f3310e7dbb0759e5eabaf125bbc9c9ab3955"
+ integrity sha512-z/YRmAji7y3ngjvSgoNCQxqYioarNplNqWv/KgtF4nRkBTWkhLHAg1QFNcH7XxUV/O8VuZoGAfp4LPX2hVz/yQ==
+
+xterm@4.8.0:
+ version "4.8.0"
+ resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.8.0.tgz#4b9739059037cda5dd01d7d33197dbdddacb57ad"
+ integrity sha512-IaQJqffyPTd7mh5QiyquTnARX1e1HfZSxt73GufzwuM8UWscjPAH5Wu+AAqwKOt8T3tgpfKgrcj0pviSEKxrjg==
+
y18n@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
integrity sha1-bRX7qITAhnnA136I53WegR4H+kE=
-"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
+y18n@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
@@ -7390,11 +10155,6 @@ yallist@^2.1.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
-yallist@^3.0.0, yallist@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
- integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==
-
yargs-parser@10.x:
version "10.1.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8"
@@ -7402,10 +10162,18 @@ yargs-parser@10.x:
dependencies:
camelcase "^4.1.0"
-yargs-parser@^11.1.1:
- version "11.1.1"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"
- integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==
+yargs-parser@^13.1.2:
+ version "13.1.2"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
+ integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==
+ dependencies:
+ camelcase "^5.0.0"
+ decamelize "^1.2.0"
+
+yargs-parser@^18.1.2:
+ version "18.1.3"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
+ integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
dependencies:
camelcase "^5.0.0"
decamelize "^1.2.0"
@@ -7418,15 +10186,15 @@ yargs-parser@^9.0.2:
camelcase "^4.1.0"
yargs@^11.1.0:
- version "11.1.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77"
- integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==
+ version "11.1.1"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.1.tgz#5052efe3446a4df5ed669c995886cc0f13702766"
+ integrity sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw==
dependencies:
cliui "^4.0.0"
decamelize "^1.1.1"
find-up "^2.1.0"
get-caller-file "^1.0.1"
- os-locale "^2.0.0"
+ os-locale "^3.1.0"
require-directory "^2.1.1"
require-main-filename "^1.0.1"
set-blocking "^2.0.0"
@@ -7435,51 +10203,68 @@ yargs@^11.1.0:
y18n "^3.2.1"
yargs-parser "^9.0.2"
-yargs@^12.0.2:
- version "12.0.5"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
- integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==
+yargs@^13.3.0:
+ version "13.3.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
+ integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==
dependencies:
- cliui "^4.0.0"
- decamelize "^1.2.0"
+ cliui "^5.0.0"
find-up "^3.0.0"
- get-caller-file "^1.0.1"
- os-locale "^3.0.0"
+ get-caller-file "^2.0.1"
require-directory "^2.1.1"
- require-main-filename "^1.0.1"
+ require-main-filename "^2.0.0"
set-blocking "^2.0.0"
- string-width "^2.0.0"
+ string-width "^3.0.0"
which-module "^2.0.0"
- y18n "^3.2.1 || ^4.0.0"
- yargs-parser "^11.1.1"
+ y18n "^4.0.0"
+ yargs-parser "^13.1.2"
-yargs@~1.2.6:
- version "1.2.6"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-1.2.6.tgz#9c7b4a82fd5d595b2bf17ab6dcc43135432fe34b"
- integrity sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s=
+yargs@^15.0.2, yargs@^15.3.1:
+ version "15.4.1"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
+ integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
dependencies:
- minimist "^0.1.0"
+ cliui "^6.0.0"
+ decamelize "^1.2.0"
+ find-up "^4.1.0"
+ get-caller-file "^2.0.1"
+ require-directory "^2.1.1"
+ require-main-filename "^2.0.0"
+ set-blocking "^2.0.0"
+ string-width "^4.2.0"
+ which-module "^2.0.0"
+ y18n "^4.0.0"
+ yargs-parser "^18.1.2"
-yeoman-environment@^2.0.5, yeoman-environment@^2.1.1:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-2.4.0.tgz#4829445dc1306b02d9f5f7027cd224bf77a8224d"
- integrity sha512-SsvoL0RNAFIX69eFxkUhwKUN2hG1UwUjxrcP+T2ytwdhqC/kHdnFOH2SXdtSN1Ju4aO4xuimmzfRoheYY88RuA==
+yeast@0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
+ integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk=
+
+yeoman-environment@^2.0.5, yeoman-environment@^2.1.1, yeoman-environment@^2.9.5:
+ version "2.10.3"
+ resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-2.10.3.tgz#9d8f42b77317414434cc0e51fb006a4bdd54688e"
+ integrity sha512-pLIhhU9z/G+kjOXmJ2bPFm3nejfbH+f1fjYRSOteEXDBrv1EoJE/e+kuHixSXfCYfTkxjYsvRaDX+1QykLCnpQ==
dependencies:
chalk "^2.4.1"
- cross-spawn "^6.0.5"
debug "^3.1.0"
diff "^3.5.0"
escape-string-regexp "^1.0.2"
+ execa "^4.0.0"
globby "^8.0.1"
- grouped-queue "^0.3.3"
- inquirer "^6.0.0"
+ grouped-queue "^1.1.0"
+ inquirer "^7.1.0"
is-scoped "^1.0.0"
lodash "^4.17.10"
log-symbols "^2.2.0"
mem-fs "^1.1.0"
+ mem-fs-editor "^6.0.0"
+ npm-api "^1.0.0"
+ semver "^7.1.3"
strip-ansi "^4.0.0"
text-table "^0.2.0"
untildify "^3.0.3"
+ yeoman-generator "^4.8.2"
yeoman-generator@^2.0.5:
version "2.0.5"
@@ -7511,3 +10296,37 @@ yeoman-generator@^2.0.5:
text-table "^0.2.0"
through2 "^2.0.0"
yeoman-environment "^2.0.5"
+
+yeoman-generator@^4.8.2:
+ version "4.11.0"
+ resolved "https://registry.yarnpkg.com/yeoman-generator/-/yeoman-generator-4.11.0.tgz#c9e2fab77f17a4d7acff571f31e002bc066ed6a8"
+ integrity sha512-++t6t2Z6HjL5F1/UM7+uNvGknKmQdF8tstJx8WKzsUSEpB+19kLVtapSfQIh9uWqm0L59fLWDzUui//WXoynPw==
+ dependencies:
+ async "^2.6.2"
+ chalk "^2.4.2"
+ cli-table "^0.3.1"
+ cross-spawn "^6.0.5"
+ dargs "^6.1.0"
+ dateformat "^3.0.3"
+ debug "^4.1.1"
+ diff "^4.0.1"
+ error "^7.0.2"
+ find-up "^3.0.0"
+ github-username "^3.0.0"
+ istextorbinary "^2.5.1"
+ lodash "^4.17.11"
+ make-dir "^3.0.0"
+ mem-fs-editor "^7.0.1"
+ minimist "^1.2.5"
+ pretty-bytes "^5.2.0"
+ read-chunk "^3.2.0"
+ read-pkg-up "^5.0.0"
+ rimraf "^2.6.3"
+ run-async "^2.0.0"
+ semver "^7.2.1"
+ shelljs "^0.8.3"
+ text-table "^0.2.0"
+ through2 "^3.0.1"
+ optionalDependencies:
+ grouped-queue "^1.1.0"
+ yeoman-environment "^2.9.5"