From 601699973be8d168de3dc695cdd05aa0fee8dfdb Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 31 May 2020 19:56:22 -0400 Subject: [PATCH 01/82] start kernel --- packages/jupyterlab-lsp/src/index.ts | 4 +- packages/jupyterlab-lsp/src/manager.ts | 82 ++++++++++- packages/jupyterlab-lsp/src/tokens.ts | 3 +- py_src/jupyter_lsp/kernel/__init__.py | 0 py_src/jupyter_lsp/kernel/__main__.py | 4 + py_src/jupyter_lsp/kernel/install.py | 136 ++++++++++++++++++ py_src/jupyter_lsp/kernel/kernel.py | 120 ++++++++++++++++ .../jupyter_lsp/kernel/resources/kernel.json | 14 ++ py_src/jupyter_lsp/lspapp.py | 37 +++++ py_src/jupyter_lsp/manager.py | 3 +- py_src/jupyter_lsp/session.py | 4 +- setup.cfg | 9 ++ 12 files changed, 410 insertions(+), 6 deletions(-) create mode 100644 py_src/jupyter_lsp/kernel/__init__.py create mode 100644 py_src/jupyter_lsp/kernel/__main__.py create mode 100644 py_src/jupyter_lsp/kernel/install.py create mode 100644 py_src/jupyter_lsp/kernel/kernel.py create mode 100644 py_src/jupyter_lsp/kernel/resources/kernel.json create mode 100644 py_src/jupyter_lsp/lspapp.py diff --git a/packages/jupyterlab-lsp/src/index.ts b/packages/jupyterlab-lsp/src/index.ts index 6a80d8659..2557d8c37 100644 --- a/packages/jupyterlab-lsp/src/index.ts +++ b/packages/jupyterlab-lsp/src/index.ts @@ -75,7 +75,9 @@ const plugin: JupyterFrontEndPlugin = { labShell: ILabShell, status_bar: IStatusBar ) => { - const language_server_manager = new LanguageServerManager({}); + const language_server_manager = new LanguageServerManager({ + serviceManager: app.serviceManager + }); const connection_manager = new DocumentConnectionManager({ language_server_manager }); diff --git a/packages/jupyterlab-lsp/src/manager.ts b/packages/jupyterlab-lsp/src/manager.ts index 68028af48..2d87ac537 100644 --- a/packages/jupyterlab-lsp/src/manager.ts +++ b/packages/jupyterlab-lsp/src/manager.ts @@ -1,10 +1,19 @@ import { Signal } from '@lumino/signaling'; import { PageConfig, URLExt } from '@jupyterlab/coreutils'; -import { ServerConnection } from '@jupyterlab/services'; +import { + ServerConnection, + ServiceManager, + KernelMessage +} from '@jupyterlab/services'; import { ILanguageServerManager, TSessionMap } from './tokens'; import * as SCHEMA from './_schema'; +import { ISessionConnection } from '@jupyterlab/services/lib/session/session'; +import { IComm } from '@jupyterlab/services/lib/kernel/kernel'; + +const CONTROL_COMM_TARGET = 'jupyter.lsp.control'; +const SERVER_COMM_TARGET = 'jupyter.lsp.server'; export class LanguageServerManager implements ILanguageServerManager { protected _sessionsChanged: Signal = new Signal< @@ -14,11 +23,15 @@ export class LanguageServerManager implements ILanguageServerManager { protected _sessions: TSessionMap = new Map(); private _settings: ServerConnection.ISettings; private _baseUrl: string; + private _serviceManager: ServiceManager; + private _kernelSessionConnection: ISessionConnection; constructor(options: ILanguageServerManager.IOptions) { this._settings = options.settings || ServerConnection.makeSettings(); this._baseUrl = options.baseUrl || PageConfig.getBaseUrl(); + this._serviceManager = options.serviceManager; this.fetchSessions().catch(console.warn); + this.initKernel().catch(console.warn); } get statusUrl() { @@ -83,4 +96,71 @@ export class LanguageServerManager implements ILanguageServerManager { this._sessionsChanged.emit(void 0); } + + + /** + * Register a new kernel + */ + protected _handleKernelChanged({ + oldValue, + newValue + }: ISessionConnection.IKernelChangedArgs): void { + if (oldValue) { + oldValue.removeCommTarget(SERVER_COMM_TARGET, this._handleServerCommOpen); + } + + if (newValue) { + newValue.registerCommTarget(SERVER_COMM_TARGET, this._handleServerCommOpen); + console.warn('server comm registered'); + } + } + + _handleServerCommOpen(comm: IComm, msg: KernelMessage.ICommOpenMsg){ + console.warn('server comm openened', comm, msg); + } + + async initKernel() { + if (this._kernelSessionConnection) { + this._kernelSessionConnection.dispose(); + this._kernelSessionConnection = null; + } + await this._serviceManager.ready; + + const session = (this._kernelSessionConnection = await this._serviceManager.sessions.startNew( + { + path: '/', + type: '', + name: 'language-server', + kernel: { name: 'jupyter-lsp-kernel' } + } + )); + + session.kernelChanged.connect((sender, args) => { + this._handleKernelChanged(args); + }); + + const { kernel } = session; + + this._handleKernelChanged({ + name: 'kernel', + oldValue: null, + newValue: kernel + }); + + const controlComm = session.kernel.createComm(CONTROL_COMM_TARGET); + + controlComm.onMsg = (msg: KernelMessage.ICommMsgMsg) => { + console.log('we got a control message', controlComm, msg); + }; + + const opened = controlComm.open({1: 2}, {3: 4}); + await opened.done; + + const future = controlComm.send({ foo: 'bar' }, { baz: 'boo' }); + await future.done; + + console.warn("sent a control message"); + + // console.warn('comm', comm, future); + } } diff --git a/packages/jupyterlab-lsp/src/tokens.ts b/packages/jupyterlab-lsp/src/tokens.ts index 545ed64d3..3eb0948c5 100644 --- a/packages/jupyterlab-lsp/src/tokens.ts +++ b/packages/jupyterlab-lsp/src/tokens.ts @@ -1,5 +1,5 @@ import { ISignal } from '@lumino/signaling'; -import { ServerConnection } from '@jupyterlab/services'; +import { ServerConnection, ServiceManager } from '@jupyterlab/services'; import * as SCHEMA from './_schema'; @@ -23,6 +23,7 @@ export namespace ILanguageServerManager { export interface IOptions { settings?: ServerConnection.ISettings; baseUrl?: string; + serviceManager: ServiceManager } export interface IGetServerIdOptions { language?: TLanguageId; diff --git a/py_src/jupyter_lsp/kernel/__init__.py b/py_src/jupyter_lsp/kernel/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/py_src/jupyter_lsp/kernel/__main__.py b/py_src/jupyter_lsp/kernel/__main__.py new file mode 100644 index 000000000..58944998e --- /dev/null +++ b/py_src/jupyter_lsp/kernel/__main__.py @@ -0,0 +1,4 @@ +from .kernel import launch + +if __name__ == "__main__": + launch() diff --git a/py_src/jupyter_lsp/kernel/install.py b/py_src/jupyter_lsp/kernel/install.py new file mode 100644 index 000000000..e853b2c27 --- /dev/null +++ b/py_src/jupyter_lsp/kernel/install.py @@ -0,0 +1,136 @@ +""" install the kernel + + adapted from + https://github.com/ipython/ipykernel/blob/8fd6297/ipykernel/kernelspec.py + +""" + +import errno +import json +import os +import shutil +import sys +import tempfile + +from jupyter_client.kernelspec import KernelSpecManager + +pjoin = os.path.join + +KERNEL_NAME = 'jupyter-lsp-kernel' + +# path to kernelspec resources +RESOURCES = pjoin(os.path.dirname(__file__), 'resources') + + +def make_ipkernel_cmd(mod='jupyter_lsp.kernel', executable=None, extra_arguments=None, **kw): + """Build Popen command list for launching an IPython kernel. + Parameters + ---------- + mod : str, optional (default 'ipykernel') + A string of a module whose __main__ starts an Language Server kernel + executable : str, optional (default sys.executable) + The Python executable to use for the kernel process. + extra_arguments : list, optional + A list of extra arguments to pass when executing the launch code. + Returns + ------- + A Popen command list + """ + if executable is None: + executable = sys.executable + extra_arguments = extra_arguments or [] + arguments = [executable, '-m', mod, '-f', '{connection_file}'] + arguments.extend(extra_arguments) + + return arguments + + +def get_kernel_dict(extra_arguments=None): + """Construct dict for kernel.json""" + return { + 'argv': make_ipkernel_cmd(extra_arguments=extra_arguments), + 'display_name': 'Language Server', + 'language': 'lsp', + } + + +def write_kernel_spec(path=None, overrides=None, extra_arguments=None): + """Write a kernel spec directory to `path` + + If `path` is not specified, a temporary directory is created. + If `overrides` is given, the kernelspec JSON is updated before writing. + + The path to the kernelspec is always returned. + """ + if path is None: + path = os.path.join(tempfile.mkdtemp(suffix='_kernels'), KERNEL_NAME) + + # stage resources + shutil.copytree(RESOURCES, path) + # write kernel.json + kernel_dict = get_kernel_dict(extra_arguments) + + if overrides: + kernel_dict.update(overrides) + with open(pjoin(path, 'kernel.json'), 'w') as f: + json.dump(kernel_dict, f, indent=1) + + return path + + +def install( + kernel_spec_manager=None, + user=False, + kernel_name=KERNEL_NAME, + display_name=None, + prefix=None, + profile=None +): + """Install the Language Server kernelspec for Jupyter + + Parameters + ---------- + + kernel_spec_manager: KernelSpecManager [optional] + A KernelSpecManager to use for installation. + If none provided, a default instance will be created. + user: bool [default: False] + Whether to do a user-only install, or system-wide. + kernel_name: str, optional + Specify a name for the kernelspec. + This is needed for having multiple IPython kernels for different environments. + display_name: str, optional + Specify the display name for the kernelspec + profile: str, optional + Specify a custom profile to be loaded by the kernel. + prefix: str, optional + Specify an install prefix for the kernelspec. + This is needed to install into a non-default location, such as a conda/virtual-env. + Returns + ------- + + The path where the kernelspec was installed. + """ + if kernel_spec_manager is None: + kernel_spec_manager = KernelSpecManager() + + if (kernel_name != KERNEL_NAME) and (display_name is None): + # kernel_name is specified and display_name is not + # default display_name to kernel_name + display_name = kernel_name + overrides = {} + if display_name: + overrides["display_name"] = display_name + if profile: + extra_arguments = ["--profile", profile] + if not display_name: + # add the profile to the default display name + overrides["display_name"] = 'Language Server [profile=%s]' % (profile) + else: + extra_arguments = None + path = write_kernel_spec(overrides=overrides, extra_arguments=extra_arguments) + dest = kernel_spec_manager.install_kernel_spec( + path, kernel_name=kernel_name, user=user, prefix=prefix) + # cleanup afterward + shutil.rmtree(path) + return dest diff --git a/py_src/jupyter_lsp/kernel/kernel.py b/py_src/jupyter_lsp/kernel/kernel.py new file mode 100644 index 000000000..1c0e0f500 --- /dev/null +++ b/py_src/jupyter_lsp/kernel/kernel.py @@ -0,0 +1,120 @@ +""" A Jupyter Kernel wrapper for your language servers +""" +import json +import re +import uuid +from collections import OrderedDict +from pathlib import Path +from typing import Dict, List, Text + +from ipykernel.ipkernel import IPythonKernel +from ipykernel.kernelapp import IPKernelApp +from ipykernel.comm import Comm + +from .._version import __version__ + +__all__ = ["LanguageServerKernel"] + +HERE = Path(__file__).parent.resolve() +KERNEL_JSON = json.loads( + (HERE / "resources" / "kernel.json").read_text(encoding="utf-8") +) +LANGUAGE_INFO = { + **{k: v for k, v in KERNEL_JSON.items() if k not in ["argv"]}, + "version": __version__, + "file_extension": ".py", +} + +CONTROL_COMM_TARGET = "jupyter.lsp.control" +SERVER_COMM_TARGET = "jupyter.lsp.server" + +from ..manager import LanguageServerManager + + +class CommHandler: + """ imitates the websocket handler + """ + + comm = None + subscribed = None + + def __init__(self, language_server, comm, manager): + self.language_server = language_server + self.comm = comm + self.manager = manager + self.subscribed = False + comm.on_msg(self.on_message) + + @property + def log(self): + return self.manager.log + + async def on_message(self, message): + self.log.debug("[{}] Handling a message".format(self.language_server)) + if not self.subscribed: + self.manager.subscribe(self) + self.subscribed = True + await self.manager.on_client_message(message, self) + + def write_message(self, message): + self.comm.send(message) + + +class LanguageServerKernel(IPythonKernel): + """ A Jupyter Kernel for the Language Server Protocol + """ + + implementation = "jupyter-lsp-kernel" # type: Text + implementation_version = __version__ # type: Text + language = LANGUAGE_INFO["language"] # type: Text + language_version = LANGUAGE_INFO["version"] # type: Text + language_info = LANGUAGE_INFO # type: Dict + banner = "Jupyter Language Server Kernel ".format(__version__) # type: Text + help_links = [ + {"text": "Language Server Protocol", "url": "https://microsoft.github.io/language-server-protocol/"}, + ] + + def __init__(self, **kwargs): + super().__init__(**kwargs) + self._lsp_comms = {} + self.init_lsp_comm() + self.init_lsp_manager() + + def init_lsp_manager(self): + self.lsp_manager = LanguageServerManager(parent=self) + self.lsp_manager.initialize() + + def init_lsp_comm(self): + self.comm_manager.register_target(CONTROL_COMM_TARGET, self.on_lsp_comm_opened) + self.log.error('comm target registered') + + def on_lsp_comm_opened(self, comm, comm_msg): + self.log.error('comm received %s: %s', comm, comm_msg) + self.init_server_comms() + + def init_server_comms(self): + for language_server, session in self.lsp_manager.sessions.items(): + self.make_server_comm(language_server, session) + + def make_server_comm(self, language_server, session): + self.log.error("comm for %s", language_server) + comm = Comm( + target_name=SERVER_COMM_TARGET, + data={'language_server': language_server}, + ) + self._lsp_comms[language_server] = CommHandler( + language_server=language_server, + comm=comm, + manager=self.lsp_manager + ) + + +def launch(): + """ The main kernel entrypoint which uses the App singleton + """ + IPKernelApp.launch_instance(kernel_class=LanguageServerKernel) + + + +if __name__ == "__main__": + launch() diff --git a/py_src/jupyter_lsp/kernel/resources/kernel.json b/py_src/jupyter_lsp/kernel/resources/kernel.json new file mode 100644 index 000000000..a2dc80c27 --- /dev/null +++ b/py_src/jupyter_lsp/kernel/resources/kernel.json @@ -0,0 +1,14 @@ +{ + "argv": [ + "python", "-m", "jupyter_lsp.kernel", "-f", "{connection_file}" + ], + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "display_name": "Language Server", + "language": "language-server-protocol", + "mimetype": "text/x-python", + "name": "jupyter-lsp-kernel", + "pygments_lexer": "python" +} diff --git a/py_src/jupyter_lsp/lspapp.py b/py_src/jupyter_lsp/lspapp.py new file mode 100644 index 000000000..81e9f86f8 --- /dev/null +++ b/py_src/jupyter_lsp/lspapp.py @@ -0,0 +1,37 @@ +import sys +from traitlets import Bool +from traitlets.config import Application + + + + + +class LSPKernelSpecInstallApp(Application): + description = """Install the kernelspec""" + + sys_prefix = Bool(default_value=True, help="Install into the current environment", config=True) + + def start(self): + from .kernel.install import install + dest = install(prefix=sys.prefix) + print("installed kernelspec to", dest) + + +class LSPKernelSpecApp(Application): + description = """Work with the Language Server Kernel""" + subcommands = dict( + install=(LSPKernelSpecInstallApp, LSPKernelSpecInstallApp.description.splitlines()[0]), + ) + + +class LSPApp(Application): + """Dummy app wrapping argparse""" + name = 'jupyter-lsp' + subcommands = dict( + kernelspec=(LSPKernelSpecApp, LSPKernelSpecApp.description.splitlines()[0]), + ) + +main = launch_instance = LSPApp.launch_instance + +if __name__ == '__main__': + main() diff --git a/py_src/jupyter_lsp/manager.py b/py_src/jupyter_lsp/manager.py index f6306fa7e..e579350bf 100644 --- a/py_src/jupyter_lsp/manager.py +++ b/py_src/jupyter_lsp/manager.py @@ -5,6 +5,7 @@ import entrypoints from notebook.transutils import _ +from tornado.gen import maybe_future from traitlets import Bool, Dict as Dict_, Instance, List as List_, default from .constants import ( @@ -159,7 +160,7 @@ async def on_server_message(self, message, session): ) for handler in session.handlers: - handler.write_message(message) + await maybe_future(handler.write_message(message)) def unsubscribe(self, handler): session = self.sessions.get(handler.language_server) diff --git a/py_src/jupyter_lsp/session.py b/py_src/jupyter_lsp/session.py index 625e42213..b3925645f 100644 --- a/py_src/jupyter_lsp/session.py +++ b/py_src/jupyter_lsp/session.py @@ -11,7 +11,7 @@ from tornado.ioloop import IOLoop from tornado.queues import Queue from tornado.websocket import WebSocketHandler -from traitlets import Bunch, Instance, Set, Unicode, UseEnum, observe +from traitlets import Bunch, Instance, Set, Unicode, UseEnum, observe, Any from traitlets.config import LoggingConfigurable from . import stdio @@ -43,7 +43,7 @@ class LanguageServerSession(LoggingConfigurable): Queue, help="a queue for string message to the server", allow_none=True ) handlers = Set( - trait=Instance(WebSocketHandler), + trait=Any(), # Instance(WebSocketHandler), default_value=[], help="the currently subscribed websockets", ) diff --git a/setup.cfg b/setup.cfg index 0ffa7d965..7e8b64234 100644 --- a/setup.cfg +++ b/setup.cfg @@ -36,6 +36,9 @@ where = py_src [options.entry_points] +console_scripts = + jupyter-lsp = jupyter_lsp.lspapp:main + jupyter_lsp_spec_v1 = bash-language-server = jupyter_lsp.specs:bash dockerfile-language-server-nodejs = jupyter_lsp.specs:dockerfile @@ -131,3 +134,9 @@ ignore_missing_imports = True [mypy-graphviz] ignore_missing_imports = True + +[mypy-ipykernel] +ignore_missing_imports = True + +[mypy-ipykernel.*] +ignore_missing_imports = True From c2a38e7277bedf38813225b4b3470f54fde9703e Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 31 May 2020 19:57:18 -0400 Subject: [PATCH 02/82] linting --- packages/jupyterlab-lsp/src/manager.ts | 309 +++++++++--------- packages/jupyterlab-lsp/src/tokens.ts | 2 +- .../jupyter_lsp/kernel/resources/kernel.json | 22 +- 3 files changed, 172 insertions(+), 161 deletions(-) diff --git a/packages/jupyterlab-lsp/src/manager.ts b/packages/jupyterlab-lsp/src/manager.ts index 2d87ac537..e841911ce 100644 --- a/packages/jupyterlab-lsp/src/manager.ts +++ b/packages/jupyterlab-lsp/src/manager.ts @@ -16,151 +16,164 @@ const CONTROL_COMM_TARGET = 'jupyter.lsp.control'; const SERVER_COMM_TARGET = 'jupyter.lsp.server'; export class LanguageServerManager implements ILanguageServerManager { - protected _sessionsChanged: Signal = new Signal< - ILanguageServerManager, - void - >(this); - protected _sessions: TSessionMap = new Map(); - private _settings: ServerConnection.ISettings; - private _baseUrl: string; - private _serviceManager: ServiceManager; - private _kernelSessionConnection: ISessionConnection; - - constructor(options: ILanguageServerManager.IOptions) { - this._settings = options.settings || ServerConnection.makeSettings(); - this._baseUrl = options.baseUrl || PageConfig.getBaseUrl(); - this._serviceManager = options.serviceManager; - this.fetchSessions().catch(console.warn); - this.initKernel().catch(console.warn); - } - - get statusUrl() { - return URLExt.join(this._baseUrl, ILanguageServerManager.URL_NS, 'status'); - } - - get sessionsChanged() { - return this._sessionsChanged; - } - - get sessions(): TSessionMap { - return this._sessions; - } - - getServerId(options: ILanguageServerManager.IGetServerIdOptions) { - // most things speak language - for (const [key, session] of this._sessions.entries()) { - if (options.language) { - if (session.spec.languages.indexOf(options.language) !== -1) { - return key; - } - } - } - return null; - } - - async fetchSessions() { - let response = await ServerConnection.makeRequest( - this.statusUrl, - { method: 'GET' }, - this._settings - ); - - if (!response.ok) { - throw new Error(response.statusText); - } - - let sessions: SCHEMA.Sessions; - - try { - sessions = (await response.json()).sessions; - } catch (err) { - console.warn(err); - return; - } - - for (const key of Object.keys(sessions)) { - if (this._sessions.has(key)) { - Object.assign(this._sessions.get(key), sessions[key]); - } else { - this._sessions.set(key, sessions[key]); - } - } - - const oldKeys = this._sessions.keys(); - - for (const oldKey in oldKeys) { - if (!sessions[oldKey]) { - this._sessions.delete(oldKey); - } - } - - this._sessionsChanged.emit(void 0); - } - - - /** - * Register a new kernel - */ - protected _handleKernelChanged({ - oldValue, - newValue - }: ISessionConnection.IKernelChangedArgs): void { - if (oldValue) { - oldValue.removeCommTarget(SERVER_COMM_TARGET, this._handleServerCommOpen); - } - - if (newValue) { - newValue.registerCommTarget(SERVER_COMM_TARGET, this._handleServerCommOpen); - console.warn('server comm registered'); - } - } - - _handleServerCommOpen(comm: IComm, msg: KernelMessage.ICommOpenMsg){ - console.warn('server comm openened', comm, msg); - } - - async initKernel() { - if (this._kernelSessionConnection) { - this._kernelSessionConnection.dispose(); - this._kernelSessionConnection = null; - } - await this._serviceManager.ready; - - const session = (this._kernelSessionConnection = await this._serviceManager.sessions.startNew( - { - path: '/', - type: '', - name: 'language-server', - kernel: { name: 'jupyter-lsp-kernel' } - } - )); - - session.kernelChanged.connect((sender, args) => { - this._handleKernelChanged(args); - }); - - const { kernel } = session; - - this._handleKernelChanged({ - name: 'kernel', - oldValue: null, - newValue: kernel - }); - - const controlComm = session.kernel.createComm(CONTROL_COMM_TARGET); - - controlComm.onMsg = (msg: KernelMessage.ICommMsgMsg) => { - console.log('we got a control message', controlComm, msg); - }; - - const opened = controlComm.open({1: 2}, {3: 4}); - await opened.done; - - const future = controlComm.send({ foo: 'bar' }, { baz: 'boo' }); - await future.done; - - console.warn("sent a control message"); - - // console.warn('comm', comm, future); - } -} + protected _sessionsChanged: Signal< + ILanguageServerManager, + void + > = new Signal(this); + protected _sessions: TSessionMap = new Map(); + private _settings: ServerConnection.ISettings; + private _baseUrl: string; + private _serviceManager: ServiceManager; + private _kernelSessionConnection: ISessionConnection; + + constructor(options: ILanguageServerManager.IOptions) { + this._settings = options.settings || ServerConnection.makeSettings(); + this._baseUrl = options.baseUrl || PageConfig.getBaseUrl(); + this._serviceManager = options.serviceManager; + this.fetchSessions().catch(console.warn); + this.initKernel().catch(console.warn); + } + + get statusUrl() { + return URLExt.join( + this._baseUrl, + ILanguageServerManager.URL_NS, + 'status' + + ); + } + + get sessionsChanged() { + return this._sessionsChanged; + } + + get sessions(): TSessionMap { + return this._sessions; + } + + getServerId(options: ILanguageServerManager.IGetServerIdOptions) { + // most things speak language + for (const [key, session] of this._sessions.entries()) { + if (options.language) { + if (session.spec.languages.indexOf(options.language) !== -1) { + return key; + } + } + } + return null; + } + + async fetchSessions() { + let response = await ServerConnection.makeRequest( + this.statusUrl, + { method: 'GET' }, + this._settings + ); + + if (!response.ok) { + throw new Error(response.statusText); + } + + let sessions: SCHEMA.Sessions; + + try { + sessions = (await response.json()).sessions; + } catch (err) { + console.warn(err); + return; + } + + for (const key of Object.keys(sessions)) { + if (this._sessions.has(key)) { + Object.assign(this._sessions.get(key), sessions[key]); + } else { + this._sessions.set(key, sessions[key]); + } + } + + const oldKeys = this._sessions.keys(); + + for (const oldKey in oldKeys) { + if (!sessions[oldKey]) { + this._sessions.delete(oldKey + ); + } + } + + this._sessionsChanged.emit(void 0); + } + + /** + * Register a new kernel + */ + protected _handleKernelChanged({ + oldValue, + newValue + }: ISessionConnection.IKernelChangedArgs): void { + if (oldValue) { + oldValue.removeCommTarget( + SERVER_COMM_TARGET, + this._handleServerCommOpen + + ); + } + + if (newValue) { + newValue.registerCommTarget( + SERVER_COMM_TARGET, + this._handleServerCommOpen + ); + console.warn('server comm registered'); + } + } + + _handleServerCommOpen(comm: IComm, msg: KernelMessage.ICommOpenMsg) { + console.warn('server comm openened', comm, msg); + } + + async initKernel() { + if (this._kernelSessionConnection) { + this._kernelSessionConnection.dispose(); + this._kernelSessionConnection = null; + } + await this._serviceManager.ready; + + const session = ( this._kernelSessionConnection = await this._serviceManager.sessions.startNew( + { + path: '/', + type: '', + name: 'language-server', + kernel: { name: 'jupyter-lsp-kernel' } + } + )); + + session.kernelChanged.connect((sender, args) => { + this._handleKernelChanged(args); + }); + + const { kernel } = session; + + this._handleKernelChanged({ + name: 'kernel', + oldValue: null, + newValue: kernel + }); + + const controlComm = session.kernel.createComm(CONTROL_COMM_TARGET); + + controlComm.onMsg = (msg: KernelMessage.ICommMsgMsg) => { + console.log('we got a control message', controlComm, msg); + }; + + const opened = controlComm.open({ 1: 2 }, { 3: 4 }); + await opened.done; + + const future = controlComm.send({ foo: 'bar' }, { baz: 'boo' }); + await future.done; + + console.warn('sent a control message'); + + // console.warn('comm', comm, future); + } + } diff --git a/packages/jupyterlab-lsp/src/tokens.ts b/packages/jupyterlab-lsp/src/tokens.ts index 3eb0948c5..fa9f7f1ed 100644 --- a/packages/jupyterlab-lsp/src/tokens.ts +++ b/packages/jupyterlab-lsp/src/tokens.ts @@ -23,7 +23,7 @@ export namespace ILanguageServerManager { export interface IOptions { settings?: ServerConnection.ISettings; baseUrl?: string; - serviceManager: ServiceManager + serviceManager: ServiceManager; } export interface IGetServerIdOptions { language?: TLanguageId; diff --git a/py_src/jupyter_lsp/kernel/resources/kernel.json b/py_src/jupyter_lsp/kernel/resources/kernel.json index a2dc80c27..4267a1b44 100644 --- a/py_src/jupyter_lsp/kernel/resources/kernel.json +++ b/py_src/jupyter_lsp/kernel/resources/kernel.json @@ -1,14 +1,12 @@ { - "argv": [ - "python", "-m", "jupyter_lsp.kernel", "-f", "{connection_file}" - ], - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "display_name": "Language Server", - "language": "language-server-protocol", - "mimetype": "text/x-python", - "name": "jupyter-lsp-kernel", - "pygments_lexer": "python" + "argv": ["python", "-m", "jupyter_lsp.kernel", "-f", "{connection_file}"], + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "display_name": "Language Server", + "language": "language-server-protocol", + "mimetype": "text/x-python", + "name": "jupyter-lsp-kernel", + "pygments_lexer": "python" } From 5cf3b81dfb1c6322919c6dabbf1b7a7c79f5a3da Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 31 May 2020 19:59:16 -0400 Subject: [PATCH 03/82] linting --- packages/jupyterlab-lsp/src/manager.ts | 311 ++++++++++++------------- 1 file changed, 150 insertions(+), 161 deletions(-) diff --git a/packages/jupyterlab-lsp/src/manager.ts b/packages/jupyterlab-lsp/src/manager.ts index e841911ce..7b4c72afd 100644 --- a/packages/jupyterlab-lsp/src/manager.ts +++ b/packages/jupyterlab-lsp/src/manager.ts @@ -16,164 +16,153 @@ const CONTROL_COMM_TARGET = 'jupyter.lsp.control'; const SERVER_COMM_TARGET = 'jupyter.lsp.server'; export class LanguageServerManager implements ILanguageServerManager { - protected _sessionsChanged: Signal< - ILanguageServerManager, - void - > = new Signal(this); - protected _sessions: TSessionMap = new Map(); - private _settings: ServerConnection.ISettings; - private _baseUrl: string; - private _serviceManager: ServiceManager; - private _kernelSessionConnection: ISessionConnection; - - constructor(options: ILanguageServerManager.IOptions) { - this._settings = options.settings || ServerConnection.makeSettings(); - this._baseUrl = options.baseUrl || PageConfig.getBaseUrl(); - this._serviceManager = options.serviceManager; - this.fetchSessions().catch(console.warn); - this.initKernel().catch(console.warn); - } - - get statusUrl() { - return URLExt.join( - this._baseUrl, - ILanguageServerManager.URL_NS, - 'status' - - ); - } - - get sessionsChanged() { - return this._sessionsChanged; - } - - get sessions(): TSessionMap { - return this._sessions; - } - - getServerId(options: ILanguageServerManager.IGetServerIdOptions) { - // most things speak language - for (const [key, session] of this._sessions.entries()) { - if (options.language) { - if (session.spec.languages.indexOf(options.language) !== -1) { - return key; - } - } - } - return null; - } - - async fetchSessions() { - let response = await ServerConnection.makeRequest( - this.statusUrl, - { method: 'GET' }, - this._settings - ); - - if (!response.ok) { - throw new Error(response.statusText); - } - - let sessions: SCHEMA.Sessions; - - try { - sessions = (await response.json()).sessions; - } catch (err) { - console.warn(err); - return; - } - - for (const key of Object.keys(sessions)) { - if (this._sessions.has(key)) { - Object.assign(this._sessions.get(key), sessions[key]); - } else { - this._sessions.set(key, sessions[key]); - } - } - - const oldKeys = this._sessions.keys(); - - for (const oldKey in oldKeys) { - if (!sessions[oldKey]) { - this._sessions.delete(oldKey - ); - } - } - - this._sessionsChanged.emit(void 0); - } - - /** - * Register a new kernel - */ - protected _handleKernelChanged({ - oldValue, - newValue - }: ISessionConnection.IKernelChangedArgs): void { - if (oldValue) { - oldValue.removeCommTarget( - SERVER_COMM_TARGET, - this._handleServerCommOpen - - ); - } - - if (newValue) { - newValue.registerCommTarget( - SERVER_COMM_TARGET, - this._handleServerCommOpen - ); - console.warn('server comm registered'); - } - } - - _handleServerCommOpen(comm: IComm, msg: KernelMessage.ICommOpenMsg) { - console.warn('server comm openened', comm, msg); - } - - async initKernel() { - if (this._kernelSessionConnection) { - this._kernelSessionConnection.dispose(); - this._kernelSessionConnection = null; - } - await this._serviceManager.ready; - - const session = ( this._kernelSessionConnection = await this._serviceManager.sessions.startNew( - { - path: '/', - type: '', - name: 'language-server', - kernel: { name: 'jupyter-lsp-kernel' } - } - )); - - session.kernelChanged.connect((sender, args) => { - this._handleKernelChanged(args); - }); - - const { kernel } = session; - - this._handleKernelChanged({ - name: 'kernel', - oldValue: null, - newValue: kernel - }); - - const controlComm = session.kernel.createComm(CONTROL_COMM_TARGET); - - controlComm.onMsg = (msg: KernelMessage.ICommMsgMsg) => { - console.log('we got a control message', controlComm, msg); - }; - - const opened = controlComm.open({ 1: 2 }, { 3: 4 }); - await opened.done; - - const future = controlComm.send({ foo: 'bar' }, { baz: 'boo' }); - await future.done; - - console.warn('sent a control message'); - - // console.warn('comm', comm, future); - } - } + protected _sessionsChanged: Signal = new Signal< + ILanguageServerManager, + void + >(this); + protected _sessions: TSessionMap = new Map(); + private _settings: ServerConnection.ISettings; + private _baseUrl: string; + private _serviceManager: ServiceManager; + private _kernelSessionConnection: ISessionConnection; + + constructor(options: ILanguageServerManager.IOptions) { + this._settings = options.settings || ServerConnection.makeSettings(); + this._baseUrl = options.baseUrl || PageConfig.getBaseUrl(); + this._serviceManager = options.serviceManager; + this.fetchSessions().catch(console.warn); + this.initKernel().catch(console.warn); + } + + get statusUrl() { + return URLExt.join(this._baseUrl, ILanguageServerManager.URL_NS, 'status'); + } + + get sessionsChanged() { + return this._sessionsChanged; + } + + get sessions(): TSessionMap { + return this._sessions; + } + + getServerId(options: ILanguageServerManager.IGetServerIdOptions) { + // most things speak language + for (const [key, session] of this._sessions.entries()) { + if (options.language) { + if (session.spec.languages.indexOf(options.language) !== -1) { + return key; + } + } + } + return null; + } + + async fetchSessions() { + let response = await ServerConnection.makeRequest( + this.statusUrl, + { method: 'GET' }, + this._settings + ); + + if (!response.ok) { + throw new Error(response.statusText); + } + + let sessions: SCHEMA.Sessions; + + try { + sessions = (await response.json()).sessions; + } catch (err) { + console.warn(err); + return; + } + + for (const key of Object.keys(sessions)) { + if (this._sessions.has(key)) { + Object.assign(this._sessions.get(key), sessions[key]); + } else { + this._sessions.set(key, sessions[key]); + } + } + + const oldKeys = this._sessions.keys(); + + for (const oldKey in oldKeys) { + if (!sessions[oldKey]) { + this._sessions.delete(oldKey); + } + } + + this._sessionsChanged.emit(void 0); + } + + /** + * Register a new kernel + */ + protected _handleKernelChanged({ + oldValue, + newValue + }: ISessionConnection.IKernelChangedArgs): void { + if (oldValue) { + oldValue.removeCommTarget(SERVER_COMM_TARGET, this._handleServerCommOpen); + } + + if (newValue) { + newValue.registerCommTarget( + SERVER_COMM_TARGET, + this._handleServerCommOpen + ); + console.warn('server comm registered'); + } + } + + _handleServerCommOpen(comm: IComm, msg: KernelMessage.ICommOpenMsg) { + console.warn('server comm openened', comm, msg); + } + + async initKernel() { + if (this._kernelSessionConnection) { + this._kernelSessionConnection.dispose(); + this._kernelSessionConnection = null; + } + await this._serviceManager.ready; + + const session = (this._kernelSessionConnection = await this._serviceManager.sessions.startNew( + { + path: '/', + type: '', + name: 'language-server', + kernel: { name: 'jupyter-lsp-kernel' } + } + )); + + session.kernelChanged.connect((sender, args) => { + this._handleKernelChanged(args); + }); + + const { kernel } = session; + + this._handleKernelChanged({ + name: 'kernel', + oldValue: null, + newValue: kernel + }); + + const controlComm = session.kernel.createComm(CONTROL_COMM_TARGET); + + controlComm.onMsg = (msg: KernelMessage.ICommMsgMsg) => { + console.log('we got a control message', controlComm, msg); + }; + + const opened = controlComm.open({ 1: 2 }, { 3: 4 }); + await opened.done; + + const future = controlComm.send({ foo: 'bar' }, { baz: 'boo' }); + await future.done; + + console.warn('sent a control message'); + + // console.warn('comm', comm, future); + } +} From 7999598430b6ea0e029c63f530a3c9dfaaa1785f Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 31 May 2020 21:02:53 -0400 Subject: [PATCH 04/82] replace fetchsessions --- .../src/adapters/codemirror/testutils.ts | 17 ++--- packages/jupyterlab-lsp/src/manager.ts | 73 +++++-------------- packages/jupyterlab-lsp/src/tokens.ts | 3 +- .../jupyterlab-lsp/src/virtual/editor.spec.ts | 4 +- py_src/jupyter_lsp/kernel/kernel.py | 9 ++- 5 files changed, 36 insertions(+), 70 deletions(-) diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts index 3c11e0f4c..540ddb252 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts @@ -32,17 +32,7 @@ interface IFeatureTestEnvironment { dispose(): void; } -export class MockLanguageServerManager extends LanguageServerManager { - async fetchSessions() { - this._sessions = new Map(); - this._sessions.set('pyls', { - spec: { - languages: ['python'] - } - } as any); - this._sessionsChanged.emit(void 0); - } -} +export class MockLanguageServerManager extends LanguageServerManager {} export abstract class FeatureTestEnvironment implements IFeatureTestEnvironment { @@ -146,7 +136,10 @@ export class FileEditorFeatureTestEnvironment extends FeatureTestEnvironment { model }); - this.language_server_manager = new MockLanguageServerManager({}); + this.language_server_manager = new MockLanguageServerManager({ + // NB: FIX + serviceManager: null + }); this.connection_manager = new DocumentConnectionManager({ language_server_manager: this.language_server_manager }); diff --git a/packages/jupyterlab-lsp/src/manager.ts b/packages/jupyterlab-lsp/src/manager.ts index 7b4c72afd..222aac1b6 100644 --- a/packages/jupyterlab-lsp/src/manager.ts +++ b/packages/jupyterlab-lsp/src/manager.ts @@ -2,12 +2,12 @@ import { Signal } from '@lumino/signaling'; import { PageConfig, URLExt } from '@jupyterlab/coreutils'; import { - ServerConnection, + // ServerConnection, ServiceManager, KernelMessage } from '@jupyterlab/services'; -import { ILanguageServerManager, TSessionMap } from './tokens'; +import { ILanguageServerManager, TSessionMap, TCommMap } from './tokens'; import * as SCHEMA from './_schema'; import { ISessionConnection } from '@jupyterlab/services/lib/session/session'; import { IComm } from '@jupyterlab/services/lib/kernel/kernel'; @@ -21,16 +21,16 @@ export class LanguageServerManager implements ILanguageServerManager { void >(this); protected _sessions: TSessionMap = new Map(); - private _settings: ServerConnection.ISettings; + protected _comms: TCommMap = new Map(); + // private _settings: ServerConnection.ISettings; private _baseUrl: string; private _serviceManager: ServiceManager; private _kernelSessionConnection: ISessionConnection; constructor(options: ILanguageServerManager.IOptions) { - this._settings = options.settings || ServerConnection.makeSettings(); + // this._settings = options.settings || ServerConnection.makeSettings(); this._baseUrl = options.baseUrl || PageConfig.getBaseUrl(); this._serviceManager = options.serviceManager; - this.fetchSessions().catch(console.warn); this.initKernel().catch(console.warn); } @@ -58,45 +58,6 @@ export class LanguageServerManager implements ILanguageServerManager { return null; } - async fetchSessions() { - let response = await ServerConnection.makeRequest( - this.statusUrl, - { method: 'GET' }, - this._settings - ); - - if (!response.ok) { - throw new Error(response.statusText); - } - - let sessions: SCHEMA.Sessions; - - try { - sessions = (await response.json()).sessions; - } catch (err) { - console.warn(err); - return; - } - - for (const key of Object.keys(sessions)) { - if (this._sessions.has(key)) { - Object.assign(this._sessions.get(key), sessions[key]); - } else { - this._sessions.set(key, sessions[key]); - } - } - - const oldKeys = this._sessions.keys(); - - for (const oldKey in oldKeys) { - if (!sessions[oldKey]) { - this._sessions.delete(oldKey); - } - } - - this._sessionsChanged.emit(void 0); - } - /** * Register a new kernel */ @@ -109,9 +70,8 @@ export class LanguageServerManager implements ILanguageServerManager { } if (newValue) { - newValue.registerCommTarget( - SERVER_COMM_TARGET, - this._handleServerCommOpen + newValue.registerCommTarget(SERVER_COMM_TARGET, (comm, msg) => + this._handleServerCommOpen(comm, msg) ); console.warn('server comm registered'); } @@ -119,6 +79,17 @@ export class LanguageServerManager implements ILanguageServerManager { _handleServerCommOpen(comm: IComm, msg: KernelMessage.ICommOpenMsg) { console.warn('server comm openened', comm, msg); + const { metadata } = msg; + const language_server = `${metadata.language_server}`; + this._comms.set(language_server, comm); + comm.onMsg = msg => { + console.log('msg', comm, msg.content.data); + }; + this._sessions.set( + language_server, + (metadata.session as any) as SCHEMA.LanguageServerSession + ); + this._sessionsChanged.emit(void 0); } async initKernel() { @@ -155,14 +126,10 @@ export class LanguageServerManager implements ILanguageServerManager { console.log('we got a control message', controlComm, msg); }; - const opened = controlComm.open({ 1: 2 }, { 3: 4 }); + const opened = controlComm.open({}); await opened.done; - const future = controlComm.send({ foo: 'bar' }, { baz: 'boo' }); - await future.done; - console.warn('sent a control message'); - - // console.warn('comm', comm, future); + console.log(this._comms); } } diff --git a/packages/jupyterlab-lsp/src/tokens.ts b/packages/jupyterlab-lsp/src/tokens.ts index fa9f7f1ed..c63d9f048 100644 --- a/packages/jupyterlab-lsp/src/tokens.ts +++ b/packages/jupyterlab-lsp/src/tokens.ts @@ -8,13 +8,14 @@ export type TLanguageId = string; export type TSessionMap = Map; +export type TCommMap = Map; + export interface ILanguageServerManager { sessionsChanged: ISignal; sessions: TSessionMap; getServerId( options: ILanguageServerManager.IGetServerIdOptions ): TLanguageServerId; - fetchSessions(): Promise; statusUrl: string; } diff --git a/packages/jupyterlab-lsp/src/virtual/editor.spec.ts b/packages/jupyterlab-lsp/src/virtual/editor.spec.ts index 92a2ffea3..f6c24a075 100644 --- a/packages/jupyterlab-lsp/src/virtual/editor.spec.ts +++ b/packages/jupyterlab-lsp/src/virtual/editor.spec.ts @@ -60,7 +60,9 @@ describe('VirtualEditor', () => { '/home/username/project/.virtual_documents' ); - const LANGSERVER_MANAGER = new MockLanguageServerManager({}); + const LANGSERVER_MANAGER = new MockLanguageServerManager({ + serviceManager: null + }); const CONNECTION_MANAGER = new DocumentConnectionManager({ language_server_manager: LANGSERVER_MANAGER }); diff --git a/py_src/jupyter_lsp/kernel/kernel.py b/py_src/jupyter_lsp/kernel/kernel.py index 1c0e0f500..b75869e00 100644 --- a/py_src/jupyter_lsp/kernel/kernel.py +++ b/py_src/jupyter_lsp/kernel/kernel.py @@ -56,8 +56,8 @@ async def on_message(self, message): self.subscribed = True await self.manager.on_client_message(message, self) - def write_message(self, message): - self.comm.send(message) + def write_message(self, message: str): + self.comm.send(json.loads(message)) class LanguageServerKernel(IPythonKernel): @@ -100,7 +100,10 @@ def make_server_comm(self, language_server, session): self.log.error("comm for %s", language_server) comm = Comm( target_name=SERVER_COMM_TARGET, - data={'language_server': language_server}, + metadata={ + "language_server": language_server, + "session": session.to_json() + }, ) self._lsp_comms[language_server] = CommHandler( language_server=language_server, From 3c09ad005d0cf4fd7b76b0933166e361ecc3f695 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Thu, 4 Jun 2020 01:19:15 -0400 Subject: [PATCH 05/82] add primer coat of json-rpc, lsp comms --- packages/jupyterlab-lsp/src/comm/index.ts | 109 +++++++++++ packages/jupyterlab-lsp/src/comm/json-rpc.ts | 152 ++++++++++++++++ packages/jupyterlab-lsp/src/comm/lsp.ts | 181 +++++++++++++++++++ packages/jupyterlab-lsp/src/manager.ts | 25 ++- 4 files changed, 463 insertions(+), 4 deletions(-) create mode 100644 packages/jupyterlab-lsp/src/comm/index.ts create mode 100644 packages/jupyterlab-lsp/src/comm/json-rpc.ts create mode 100644 packages/jupyterlab-lsp/src/comm/lsp.ts diff --git a/packages/jupyterlab-lsp/src/comm/index.ts b/packages/jupyterlab-lsp/src/comm/index.ts new file mode 100644 index 000000000..9c1b38b51 --- /dev/null +++ b/packages/jupyterlab-lsp/src/comm/index.ts @@ -0,0 +1,109 @@ +import { IComm, IShellFuture } from '@jupyterlab/services/lib/kernel/kernel'; +import { ISignal, Signal } from '@lumino/signaling'; +import { ICommMsgMsg } from '@jupyterlab/services/lib/kernel/messages'; +import { JSONObject, PromiseDelegate, JSONValue } from '@lumino/coreutils'; + +export interface ICommRPC { + comm: IComm; + communicate( + method: string, + request: ICommRPC.TRPCParams, + options?: ICommRPC.ICommunicateOptions + ): Promise; + commChanged: ISignal; + addHandler( + method: string, + handler: ICommRPC.IMethodHandler + ): ICommRPC.IMethodHandler | null; + removeHandler(method: string): ICommRPC.IMethodHandler | null; +} + +export namespace ICommRPC { + export const NO_WAIT: ICommunicateOptions = { noWait: true }; + + export interface IOptions { + comm: IRPCComm; + jsonrpc?: string; + handlers?: TMethodHandlers; + } + + export interface ICommunicateOptions { + noWait?: boolean; + } + + export interface IRPCComm extends IComm { + onMsg: (msg: IIRPCCommMsg) => void | PromiseLike; + send( + data: IRPCRequest, + metadata?: JSONObject, + buffers?: (ArrayBuffer | ArrayBufferView)[], + disposeOnDone?: boolean + ): IShellFuture; + send( + data: IRPCResponse, + metadata?: JSONObject, + buffers?: (ArrayBuffer | ArrayBufferView)[], + disposeOnDone?: boolean + ): IShellFuture; + send( + data: IRPCError, + metadata?: JSONObject, + buffers?: (ArrayBuffer | ArrayBufferView)[], + disposeOnDone?: boolean + ): IShellFuture; + } + + export interface IMethodHandler< + T extends TRPCParams = any, + U extends TRPCResult | null = any + > { + onMsg(params: T): Promise; + onAdd?(): void; + onRemove?(): void; + } + + export type TNotifications = Map>; + + export type TResultMap = Map>; + + export type TMethodHandlers = Map; + + export interface IBaseRPCMessage extends JSONObject { + jsonrpc: string; + id: string | number; + } + + export type TRPCParams = any; + + export interface IRPCRequest extends IBaseRPCMessage { + method: string; + params: TRPCParams; + result?: never; + error?: never; + } + + export type TRPCResult = any; + + export interface IRPCResponse extends IBaseRPCMessage { + result: TRPCResult; + method?: never; + params?: never; + error?: never; + } + + export interface IRPCError extends IBaseRPCMessage { + error: JSONValue; + method?: never; + params?: never; + result?: never; + } + + export type TRPCData = IRPCRequest | IRPCResponse | IRPCError; + + export interface IIRPCCommMsg extends ICommMsgMsg { + content: { + comm_id: string; + data: TRPCData; + }; + } +} diff --git a/packages/jupyterlab-lsp/src/comm/json-rpc.ts b/packages/jupyterlab-lsp/src/comm/json-rpc.ts new file mode 100644 index 000000000..a45e6a497 --- /dev/null +++ b/packages/jupyterlab-lsp/src/comm/json-rpc.ts @@ -0,0 +1,152 @@ +import { Signal } from '@lumino/signaling'; +import { PromiseDelegate } from '@lumino/coreutils'; + +import { ICommRPC } from '.'; + +const DEFAULT_JSONRPC = '2.0'; + +/** + * A JSON-RPC connection backed by Jupyter Kernel Comms + */ +export class CommRPC implements ICommRPC { + protected _comm: ICommRPC.IRPCComm; + protected _commChanged: Signal; + protected _responsePromises: ICommRPC.TResultMap = new Map(); + protected _nextId = 0; + protected _jsonrpc: string; + protected _handlers: ICommRPC.TMethodHandlers = new Map(); + + constructor(options: ICommRPC.IOptions) { + this._commChanged = new Signal(this); + this._jsonrpc = options.jsonrpc || DEFAULT_JSONRPC; + if (options.handlers) { + for (const [method, handler] of options.handlers.entries()) { + this.addHandler(method, handler); + } + } + this.comm = options.comm; + } + + get comm(): ICommRPC.IRPCComm { + return this._comm; + } + + set comm(comm: ICommRPC.IRPCComm) { + if (this._comm) { + this._comm.onMsg = null; + } + + this._comm = comm; + + if (this._comm) { + this._comm.onMsg = this.handleMessage.bind(this); + } + this._commChanged.emit(void 0); + } + + /** + * A signal for when the underlying comm changes + */ + get commChanged() { + return this._commChanged; + } + + /** + * Send an RPC message that expects a response at some time in the future + */ + async communicate( + method: string, + params: ICommRPC.TRPCParams, + options?: ICommRPC.ICommunicateOptions + ): Promise { + const id = this.getNextId(); + let promise: Promise; + if (options?.noWait === true) { + const delegate = new PromiseDelegate(); + this._responsePromises.set(id, delegate); + promise = delegate.promise; + } + // nb: just dropping the future on the ground + this.comm.send({ jsonrpc: this._jsonrpc, id, method, params }); + return promise; + } + + addHandler( + method: string, + handler: ICommRPC.IMethodHandler + ): ICommRPC.IMethodHandler | null { + const oldHandler = this._handlers.get(method); + if (oldHandler != null) { + this.removeHandler(method); + } + this._handlers.set(method, handler); + if (handler.onAdd) { + handler.onAdd(); + } + return oldHandler; + } + + removeHandler(method: string): ICommRPC.IMethodHandler { + const handler = this._handlers.get(method); + if (handler != null) { + if (handler.onRemove != null) { + handler.onRemove(); + } + this._handlers.delete(method); + } + return handler; + } + + /** + * increment + */ + protected getNextId() { + return this._nextId++; + } + + /** + * Resolve a previously-requested method, or notify on the appropriate signal + */ + protected handleMessage(msg: ICommRPC.IIRPCCommMsg) { + const { result, id, params, method } = msg.content + .data as ICommRPC.TRPCData; + + if (result != null) { + const promise = this._responsePromises.get(id); + if (promise == null) { + console.warn('unexpected comm response', result, id, params); + return; + } + promise.resolve(result); + this._responsePromises.delete(id); + return; + } + + if (method != null) { + const handler = this._handlers.get(method); + if (handler != null) { + handler + .onMsg(params) + .then(result => { + if (result != null) { + this.comm.send({ jsonrpc: this._jsonrpc, id, result }); + } + }) + .catch(error => { + if (error?.rpcError) { + this.comm.send({ + jsonrpc: this._jsonrpc, + id, + error: error.rpcError + }); + } else { + throw error; + } + }); + return; + } + } + + console.warn('unhandled message', method); + } +} diff --git a/packages/jupyterlab-lsp/src/comm/lsp.ts b/packages/jupyterlab-lsp/src/comm/lsp.ts new file mode 100644 index 000000000..4d44b1dcb --- /dev/null +++ b/packages/jupyterlab-lsp/src/comm/lsp.ts @@ -0,0 +1,181 @@ +import * as LSP from 'vscode-languageserver-protocol'; + +import { ICommRPC } from '.'; +import { CommRPC } from './json-rpc'; + +/** + * A client for the Language Server Protocol that can react to a single + * Language Server. + */ +export class CommLSP extends CommRPC { + /** + * Request immediate method execution on the Language Server, not waiting for + * a response. + */ + async notify< + T extends keyof CommLSP.IClientNotifyParams, + U extends CommLSP.IClientNotifyParams[T] + >(method: T, params: U): Promise { + await this.communicate(method, params as any, ICommRPC.NO_WAIT); + return null; + } + + /** + * Request method execution on the Language Server, hopefully returning a result + * some time in the future. + */ + async request< + T extends keyof CommLSP.IClientRequestParams, + U extends CommLSP.IClientRequestParams[T], + V extends CommLSP.IClientResult[T] + >(method: T, params: U): Promise { + // NB: not sure why this has to be so any-ful inside here, but it works outside + return (await this.communicate(method, params as any)) as any; + } + + /** + * Handle a notification from the server. + */ + onNotification< + T extends keyof CommLSP.IServerNotifyParams, + U extends CommLSP.IServerNotifyParams[T], + V extends ICommRPC.IMethodHandler + >(method: T, handler: V): V | null { + return this.addHandler(method, handler) as V; + } + + /** + * Handle request from the server. The handler should return a promise of a result. + */ + onRequest< + T extends keyof CommLSP.IServerRequestParams, + U extends CommLSP.IServerRequestParams[T], + V extends CommLSP.IServerResult[T], + W extends ICommRPC.IMethodHandler + >(method: T, handler: W): W | null { + return this.addHandler(method, handler) as W; + } + + // nb: test something like this + async bar() { + this.onRequest(CommLSP.REGISTER_CAPABILITY, { + onMsg: async params => { + console.log(params); + return { + id: 'foo', + method: 'baz', + registerOptions: { boo: true } + }; + } + }); + + this.onNotification(CommLSP.PUBLISH_DIAGNOSTICS, { + onMsg: async params => { + console.log(params); + } + }); + + const baz = await this.notify(CommLSP.INITIALIZED, {}); + console.log(baz); + + const boo = await this.request(CommLSP.HOVER, { + textDocument: { uri: 'http' }, + position: { + line: 0, + character: 0 + } + }); + console.log(boo); + } +} + +/** + * A namespace for Comm-based LSP + * + */ +export namespace CommLSP { + /** + * Magic strings are reproduced here because a non-typing import of + * `vscode-languageserver-protocol` is ridiculously expensive + * + * This seems to be LSP 3.15 + */ + + // TODO: break up by server/request/notification + export const COMPLETION = 'textDocument/completion'; + export const COMPLETION_ITEM_RESOLVE = 'completionItem/resolve'; + export const DEFINITION = 'textDocument/definition'; + export const DOCUMENT_HIGHLIGHT = 'textDocument/documentHighlight'; + export const HOVER = 'textDocument/hover'; + export const IMPLEMENTATION = 'textDocument/implementation'; + export const INITIALIZE = 'initialize'; + export const INITIALIZED = 'initialized'; + export const PUBLISH_DIAGNOSTICS = 'textDocument/publishDiagnostics'; + export const REFERENCES = 'textDocument/references'; + export const SHOW_MESSAGE = 'window/showMessage'; + export const SIGNATURE_HELP = 'textDocument/signatureHelp'; + export const TYPE_DEFINITION = 'textDocument/typeDefinition'; + export const RENAME = 'textDocument/rename'; + export const DOCUMENT_SYMBOL = 'textDocument/documentSymbol'; + + /** Server request params */ + export const REGISTER_CAPABILITY = 'client/registerCapability'; + export const UNREGISTER_CAPABILITY = 'client/unregisterCapability'; + + export type TAnyCompletion = LSP.CompletionList | LSP.CompletionItem[] | null; + + export type TAnyLocation = + | LSP.Location + | LSP.Location[] + | LSP.LocationLink[] + | null; + + export interface IServerNotifyParams { + [PUBLISH_DIAGNOSTICS]: LSP.PublishDiagnosticsParams; + [SHOW_MESSAGE]: LSP.ShowMessageParams; + } + + export interface IServerRequestParams { + [REGISTER_CAPABILITY]: LSP.RegistrationParams; + [UNREGISTER_CAPABILITY]: LSP.UnregistrationParams; + } + + export interface IServerResult { + [REGISTER_CAPABILITY]: LSP.Registration; + [UNREGISTER_CAPABILITY]: LSP.Unregistration; + } + + export interface IClientNotifyParams { + [INITIALIZED]: LSP.InitializedParams; + } + + export interface IClientRequestParams { + [COMPLETION_ITEM_RESOLVE]: LSP.CompletionItem; + [COMPLETION]: LSP.CompletionParams; + [DEFINITION]: LSP.TextDocumentPositionParams; + [DOCUMENT_HIGHLIGHT]: LSP.TextDocumentPositionParams; + [HOVER]: LSP.TextDocumentPositionParams; + [IMPLEMENTATION]: LSP.TextDocumentPositionParams; + [INITIALIZE]: LSP.InitializeParams; + [REFERENCES]: LSP.ReferenceParams; + [SIGNATURE_HELP]: LSP.TextDocumentPositionParams; + [TYPE_DEFINITION]: LSP.TextDocumentPositionParams; + [RENAME]: LSP.RenameParams; + [DOCUMENT_SYMBOL]: LSP.DocumentSymbolParams; + } + + export interface IClientResult { + [COMPLETION_ITEM_RESOLVE]: LSP.CompletionItem; + [COMPLETION]: TAnyCompletion; + [DEFINITION]: TAnyLocation; + [DOCUMENT_HIGHLIGHT]: LSP.DocumentHighlight[]; + [HOVER]: LSP.Hover; + [IMPLEMENTATION]: TAnyLocation; + [INITIALIZE]: LSP.InitializeResult; + [REFERENCES]: LSP.Location[]; + [SIGNATURE_HELP]: LSP.SignatureHelp; + [TYPE_DEFINITION]: TAnyLocation; + [RENAME]: LSP.WorkspaceEdit; + [DOCUMENT_SYMBOL]: LSP.DocumentSymbol[]; + } +} diff --git a/packages/jupyterlab-lsp/src/manager.ts b/packages/jupyterlab-lsp/src/manager.ts index 222aac1b6..2bdd45c48 100644 --- a/packages/jupyterlab-lsp/src/manager.ts +++ b/packages/jupyterlab-lsp/src/manager.ts @@ -7,7 +7,12 @@ import { KernelMessage } from '@jupyterlab/services'; -import { ILanguageServerManager, TSessionMap, TCommMap } from './tokens'; +import { + ILanguageServerManager, + TSessionMap, + TCommMap, + TLanguageServerId +} from './tokens'; import * as SCHEMA from './_schema'; import { ISessionConnection } from '@jupyterlab/services/lib/session/session'; import { IComm } from '@jupyterlab/services/lib/kernel/kernel'; @@ -46,6 +51,10 @@ export class LanguageServerManager implements ILanguageServerManager { return this._sessions; } + async getComm(language_server: TLanguageServerId): Promise { + return this._comms.get(language_server); + } + getServerId(options: ILanguageServerManager.IGetServerIdOptions) { // most things speak language for (const [key, session] of this._sessions.entries()) { @@ -70,14 +79,16 @@ export class LanguageServerManager implements ILanguageServerManager { } if (newValue) { - newValue.registerCommTarget(SERVER_COMM_TARGET, (comm, msg) => - this._handleServerCommOpen(comm, msg) + newValue.registerCommTarget( + SERVER_COMM_TARGET, + async (comm, msg) => await this._handleServerCommOpen(comm, msg) ); + console.warn('server comm registered'); } } - _handleServerCommOpen(comm: IComm, msg: KernelMessage.ICommOpenMsg) { + async _handleServerCommOpen(comm: IComm, msg: KernelMessage.ICommOpenMsg) { console.warn('server comm openened', comm, msg); const { metadata } = msg; const language_server = `${metadata.language_server}`; @@ -90,6 +101,12 @@ export class LanguageServerManager implements ILanguageServerManager { (metadata.session as any) as SCHEMA.LanguageServerSession ); this._sessionsChanged.emit(void 0); + // nb: put this in connection manager? + const { CommLSP } = await import( + /* webpackChunkName: "jupyter-lsp-comms" */ './comm/lsp' + ); + const lspComm = new CommLSP({ comm }); + console.warn(lspComm); } async initKernel() { From a2129a5d86ff42b0214f84f445a178c4bbd8717b Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Thu, 4 Jun 2020 10:20:21 -0400 Subject: [PATCH 06/82] hoist most of used connection interface --- .../src/adapters/codemirror/feature.ts | 11 +- .../jupyterlab/components/completion.ts | 6 +- .../jupyterlab/components/statusbar.tsx | 6 +- .../src/adapters/jupyterlab/jl_adapter.ts | 6 +- .../jupyterlab-lsp/src/comm/connection.ts | 405 ++++++++++++++++++ packages/jupyterlab-lsp/src/comm/lsp.ts | 32 +- .../jupyterlab-lsp/src/command_manager.ts | 4 +- packages/jupyterlab-lsp/src/connection.ts | 3 +- .../jupyterlab-lsp/src/connection_manager.ts | 18 +- packages/jupyterlab-lsp/src/tokens.ts | 122 ++++++ .../lsp-ws-connection/src/ws-connection.ts | 2 +- 11 files changed, 590 insertions(+), 25 deletions(-) create mode 100644 packages/jupyterlab-lsp/src/comm/connection.ts diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.ts index 20eb2c9e3..444657169 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.ts @@ -1,6 +1,5 @@ import { VirtualDocument } from '../../virtual/document'; import { CodeMirrorHandler, VirtualEditor } from '../../virtual/editor'; -import { LSPConnection } from '../../connection'; import { IEditorPosition, IRootPosition, @@ -19,6 +18,7 @@ import { PositionConverter } from '../../converter'; import * as CodeMirror from 'codemirror'; import { ICommandContext } from '../../command_manager'; import { DefaultMap } from '../../utils'; +import { ILSPConnection } from '../../tokens'; export enum CommandEntryPoint { CellContextMenu, @@ -71,7 +71,7 @@ export interface ILSPFeature { virtual_editor: VirtualEditor; virtual_document: VirtualDocument; - connection: LSPConnection; + connection: ILSPConnection; jupyterlab_components: IJupyterLabComponentsManager; /** * Connect event handlers to the editor, virtual document and connection(s) @@ -115,14 +115,17 @@ export interface IEditOutcome { export abstract class CodeMirrorLSPFeature implements ILSPFeature { public is_registered: boolean; protected readonly editor_handlers: Map; - protected readonly connection_handlers: Map; + protected readonly connection_handlers: Map< + keyof ILSPConnection.IEventSignalArgs, + any + >; protected readonly wrapper_handlers: Map; protected wrapper: HTMLElement; constructor( public virtual_editor: VirtualEditor, public virtual_document: VirtualDocument, - public connection: LSPConnection, + public connection: ILSPConnection, public jupyterlab_components: IJupyterLabComponentsManager, public status_message: StatusMessage ) { diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts index c9094e8fd..739b1f30e 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts @@ -18,8 +18,8 @@ import { IRootPosition, IVirtualPosition } from '../../../positioning'; -import { LSPConnection } from '../../../connection'; import { Session } from '@jupyterlab/services'; +import { ILSPConnection } from '../../../tokens'; /* Feedback: anchor - not clear from docs @@ -36,7 +36,7 @@ export class LSPConnector extends DataConnector< > { isDisposed = false; private _editor: CodeEditor.IEditor; - private _connections: Map; + private _connections: Map; private _context_connector: ContextConnector; private _kernel_connector: KernelConnector; private _kernel_and_context_connector: CompletionConnector; @@ -394,7 +394,7 @@ export namespace LSPConnector { /** * The connections to be used by the LSP connector. */ - connections: Map; + connections: Map; session?: Session.ISessionConnection; } diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/statusbar.tsx b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/statusbar.tsx index 8002c81e0..c9a320d0d 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/statusbar.tsx +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/statusbar.tsx @@ -25,7 +25,7 @@ import { } from '@jupyterlab/ui-components'; import { JupyterLabWidgetAdapter } from '../jl_adapter'; import { collect_documents, VirtualDocument } from '../../../virtual/document'; -import { LSPConnection } from '../../../connection'; +import { ILSPConnection } from '../../../tokens'; import { DocumentConnectionManager } from '../../../connection_manager'; import { ILanguageServerManager } from '../../../tokens'; @@ -281,7 +281,7 @@ type StatusCode = 'waiting' | 'initializing' | 'initialized' | 'connecting'; export interface IStatus { connected_documents: Set; initialized_documents: Set; - open_connections: Array; + open_connections: Array; detected_documents: Set; status: StatusCode; } @@ -426,7 +426,7 @@ export namespace LSPStatus { // there may be more open connections than documents if a document was recently closed // and the grace period has not passed yet - let open_connections = new Array(); + let open_connections = new Array(); this._connection_manager.connections.forEach((connection, path) => { if (connection.isConnected) { open_connections.push(connection); diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/jl_adapter.ts b/packages/jupyterlab-lsp/src/adapters/jupyterlab/jl_adapter.ts index 58fdca33e..4bb07efd2 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/jl_adapter.ts +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/jl_adapter.ts @@ -14,7 +14,7 @@ import { VirtualEditor } from '../../virtual/editor'; import { VirtualDocument, IForeignContext } from '../../virtual/document'; import { Signal } from '@lumino/signaling'; import { IEditorPosition, IRootPosition } from '../../positioning'; -import { LSPConnection } from '../../connection'; +import { ILSPConnection } from '../../tokens'; import { LSPConnector } from './components/completion'; import { CompletionTriggerKind } from '../../lsp'; import { Completion } from '../codemirror/features/completion'; @@ -407,7 +407,7 @@ export abstract class JupyterLabWidgetAdapter private async connect_adapter( virtual_document: VirtualDocument, - connection: LSPConnection + connection: ILSPConnection ) { let adapter = this.create_adapter(virtual_document, connection); this.adapters.set(virtual_document.id_path, adapter); @@ -466,7 +466,7 @@ export abstract class JupyterLabWidgetAdapter create_adapter( virtual_document: VirtualDocument, - connection: LSPConnection + connection: ILSPConnection ): CodeMirrorAdapter { let adapter_features = new Array(); for (let feature_type of lsp_features) { diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts new file mode 100644 index 000000000..094a469ce --- /dev/null +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -0,0 +1,405 @@ +import * as LSP from 'vscode-languageserver-protocol'; + +import { ILSPConnection } from '../tokens'; +import { CommLSP } from './lsp'; +import { ICommRPC } from '.'; +import { Signal } from '@lumino/signaling'; + +export class CommConnection extends CommLSP implements ILSPConnection { + protected _isConnected = false; + protected _isInitialized = false; + + protected documentsToOpen: ILSPConnection.IDocumentInfo[]; + + private _signals: Map< + keyof ILSPConnection.IEventSignalArgs, + Signal< + ILSPConnection, + ILSPConnection.IEventSignalArgs[keyof ILSPConnection.IEventSignalArgs] + > + > = new Map(); + + private _listeners = new Map(); + + private closingManually = false; + + constructor(options: ICommRPC.IOptions) { + super(options); + this._signals = new Map(); + this._signals.set(ILSPConnection.Events.ON_CLOSE, new Signal(this)); + } + + on< + T extends keyof ILSPConnection.IEventSignalArgs, + U extends ILSPConnection.IEventSignalArgs, + V extends (args: U) => void + >(evt: T, listener: V) { + const wrapped = (sender: any, args: any) => listener(args); + this._listeners.set([evt, listener], wrapped); + this._signals.get(evt).connect(wrapped); + } + + off< + T extends keyof ILSPConnection.IEventSignalArgs, + U extends ILSPConnection.IEventSignalArgs, + V extends (args: U) => void + >(evt: T, listener: V) { + const wrapped = this._listeners.get([evt, listener]); + this._signals.get(evt).disconnect(wrapped); + this._listeners.delete([evt, listener]); + } + + get isReady() { + return this._isConnected && this._isInitialized; + } + + get isConnected() { + return this._isConnected; + } + + get isInitialized() { + return this._isInitialized; + } + + isRenameSupported() { + // nb: populate capabilities + return this.capabilities.has(CommLSP.Capabilities.SERVER_RENAME_PROVIDER); + } + + isReferencesSupported() { + return this.capabilities.has(CommLSP.Capabilities.REFERENCES_PROVIDER); + } + + isTypeDefinitionSupported() { + return this.capabilities.has(CommLSP.Capabilities.TYPE_DEFINITION_PROVIDER); + } + + isDefinitionSupported() { + return this.capabilities.has(CommLSP.Capabilities.DEFINITION_PROVIDER); + } + + sendOpenWhenReady(documentInfo: ILSPConnection.IDocumentInfo) { + if (this.isReady) { + this.sendOpen(documentInfo); + } else { + this.documentsToOpen.push(documentInfo); + } + } + + sendOpen(documentInfo: ILSPConnection.IDocumentInfo) { + this.notify(CommLSP.DID_OPEN, { + textDocument: { + uri: documentInfo.uri, + languageId: documentInfo.languageId, + text: documentInfo.text, + version: documentInfo.version + } + }).catch(err => console.warn(err)); + this.sendChange(documentInfo); + } + + sendChange(documentInfo: ILSPConnection.IDocumentInfo) { + if (!this.isReady) { + return; + } + this.notify(CommLSP.DID_CHANGE, { + textDocument: { + uri: documentInfo.uri, + version: documentInfo.version + }, + contentChanges: [{ text: documentInfo.text }] + }).catch(err => console.warn(err)); + documentInfo.version++; + } + + sendSelectiveChange( + changeEvent: LSP.TextDocumentContentChangeEvent, + documentInfo: ILSPConnection.IDocumentInfo + ) { + this._sendChange([changeEvent], documentInfo); + } + + sendFullTextChange( + text: string, + documentInfo: ILSPConnection.IDocumentInfo + ): void { + this._sendChange([{ text }], documentInfo); + } + + async rename( + location: ILSPConnection.IPosition, + documentInfo: ILSPConnection.IDocumentInfo, + newName: string, + emit?: false + ): Promise { + if (!this.isReady || !this.isRenameSupported()) { + return; + } + return await this.request(CommLSP.RENAME, { + textDocument: { + uri: documentInfo.uri + }, + position: { + line: location.line, + character: location.ch + }, + newName + }); + } + + protected onServerInitialized(params: LSP.InitializeResult) { + // super.onServerInitialized(params); + while (this.documentsToOpen.length) { + this.sendOpen(this.documentsToOpen.pop()); + } + } + + connect(socket?: WebSocket): ILSPConnection { + // nb: look into this + // super.connect(socket); + + this.comm.onClose = () => { + this._isConnected = false; + this._signals + .get(ILSPConnection.Events.ON_CLOSE) + .emit(this.closingManually); + }; + return this; + } + + close() { + try { + this.closingManually = true; + // nb: look into this + // super.close(); + } catch (e) { + this.closingManually = false; + } + } + + // methods from ws-connection + getLanguageCompletionCharacters() { + return ( + this.capabilities.get( + CommLSP.Capabilities.COMPLETION_TRIGGER_CHARACTERS + ) || [] + ); + } + + getLanguageSignatureCharacters() { + return ( + this.capabilities.get( + CommLSP.Capabilities.SIGNATURE_HELP_TRIGGER_CHARACTERS + ) || [] + ); + } + + async getDocumentHighlights( + location: ILSPConnection.IPosition, + documentInfo: ILSPConnection.IDocumentInfo, + emit?: false + ) { + if (!this.isReady) { + return; + } + + return await this.request(CommLSP.DOCUMENT_HIGHLIGHT, { + textDocument: { + uri: documentInfo.uri + }, + position: { + line: location.line, + character: location.ch + } + }); + } + + async getHoverTooltip( + location: ILSPConnection.IPosition, + documentInfo: ILSPConnection.IDocumentInfo, + emit?: false + ) { + if ( + !this.isReady && + !this.capabilities.has(CommLSP.Capabilities.HOVER_PROVIDER) + ) { + return; + } + return await this.request(CommLSP.HOVER, { + textDocument: { + uri: documentInfo.uri + }, + position: { + line: location.line, + character: location.ch + } + }); + } + + async getSignatureHelp( + location: ILSPConnection.IPosition, + documentInfo: ILSPConnection.IDocumentInfo, + emit?: false + ): Promise { + if ( + !( + this.isReady && + this.capabilities.get(CommLSP.Capabilities.SIGNATURE_HELP_PROVIDER) + ) + ) { + return; + } + + const code = documentInfo.text; + const lines = code.split('\n'); + const typedCharacter = lines[location.line][location.ch - 1]; + + const triggers = this.getLanguageSignatureCharacters(); + if (triggers.indexOf(typedCharacter) === -1) { + // Not a signature character + return; + } + + return await this.request(CommLSP.SIGNATURE_HELP, { + textDocument: { + uri: documentInfo.uri + }, + position: { + line: location.line, + character: location.ch + } + }); + } + + public async getCompletion( + location: ILSPConnection.IPosition, + token: ILSPConnection.ITokenInfo, + documentInfo: ILSPConnection.IDocumentInfo, + emit: false, + triggerCharacter?: string, + triggerKind?: LSP.CompletionTriggerKind + ) { + if ( + !( + this.isReady && + this.capabilities.get(CommLSP.Capabilities.SIGNATURE_HELP_PROVIDER) + ) + ) { + return; + } + + const items = await this.request(CommLSP.COMPLETION, { + textDocument: { + uri: documentInfo.uri + }, + position: { + line: location.line, + character: location.ch + }, + context: { + triggerKind: triggerKind || LSP.CompletionTriggerKind.Invoked, + triggerCharacter + } + }); + + if (Array.isArray(items)) { + return items; + } + return items.items; + } + + public async getReferences( + location: ILSPConnection.IPosition, + documentInfo: ILSPConnection.IDocumentInfo, + emit?: false + ) { + if (!this.isReady || !this.isReferencesSupported()) { + return; + } + + return this.request(CommLSP.REFERENCES, { + context: { + includeDeclaration: true + }, + textDocument: { + uri: documentInfo.uri + }, + position: { + line: location.line, + character: location.ch + } + }); + } + + public sendSaved(documentInfo: ILSPConnection.IDocumentInfo) { + if (!this.isReady) { + return; + } + + this.notify(CommLSP.DID_SAVE, { + textDocument: { + uri: documentInfo.uri, + version: documentInfo.version + } as LSP.VersionedTextDocumentIdentifier, + text: documentInfo.text + }).catch(err => console.warn(err)); + } + + async getTypeDefinition( + location: ILSPConnection.IPosition, + documentInfo: ILSPConnection.IDocumentInfo, + emit?: false + ) { + if (!this.isReady || !this.isTypeDefinitionSupported()) { + return; + } + + return await this.request(CommLSP.TYPE_DEFINITION, { + textDocument: { + uri: documentInfo.uri + }, + position: { + line: location.line, + character: location.ch + } + }); + } + + public async getDefinition( + location: ILSPConnection.IPosition, + documentInfo: ILSPConnection.IDocumentInfo, + emit?: false + ) { + if (!(this.isReady && this.isDefinitionSupported())) { + return; + } + + return this.request(CommLSP.DEFINITION, { + textDocument: { + uri: documentInfo.uri + }, + position: { + line: location.line, + character: location.ch + } + }); + } + + // private methods from connection + private _sendChange( + changeEvents: LSP.TextDocumentContentChangeEvent[], + documentInfo: ILSPConnection.IDocumentInfo + ) { + if (!this.isReady) { + return; + } + this.notify(CommLSP.DID_CHANGE, { + textDocument: { + uri: documentInfo.uri, + version: documentInfo.version + }, + contentChanges: changeEvents + }).catch(err => console.warn(err)); + documentInfo.version++; + } +} diff --git a/packages/jupyterlab-lsp/src/comm/lsp.ts b/packages/jupyterlab-lsp/src/comm/lsp.ts index 4d44b1dcb..4918a5c54 100644 --- a/packages/jupyterlab-lsp/src/comm/lsp.ts +++ b/packages/jupyterlab-lsp/src/comm/lsp.ts @@ -8,6 +8,8 @@ import { CommRPC } from './json-rpc'; * Language Server. */ export class CommLSP extends CommRPC { + capabilities: CommLSP.TCapabilityMap = new Map(); + /** * Request immediate method execution on the Language Server, not waiting for * a response. @@ -118,10 +120,35 @@ export namespace CommLSP { export const RENAME = 'textDocument/rename'; export const DOCUMENT_SYMBOL = 'textDocument/documentSymbol'; - /** Server request params */ + /** Server requests */ export const REGISTER_CAPABILITY = 'client/registerCapability'; export const UNREGISTER_CAPABILITY = 'client/unregisterCapability'; + /** Client notifications */ + export const DID_OPEN = 'textDocument/didOpen'; + export const DID_CHANGE = 'textDocument/didChange'; + export const DID_SAVE = 'textDocument/didSave'; + + export namespace Capabilities { + export const SERVER_RENAME_PROVIDER = ['renameProvider']; + export const COMPLETION_TRIGGER_CHARACTERS = [ + 'completionProvider', + 'triggerCharacters' + ]; + export const SIGNATURE_HELP_TRIGGER_CHARACTERS = [ + 'signatureHelpProvider', + 'triggerCharacters' + ]; + export const COMPLETION_PROVIDER = ['completionProvider']; + export const SIGNATURE_HELP_PROVIDER = ['signatureHelpProvider']; + export const HOVER_PROVIDER = ['hoverProvider']; + export const REFERENCES_PROVIDER = ['referencesProvider']; + export const TYPE_DEFINITION_PROVIDER = ['typeDefinitionProvider']; + export const DEFINITION_PROVIDER = ['definitionProvider']; + } + + export type TCapabilityMap = Map; + export type TAnyCompletion = LSP.CompletionList | LSP.CompletionItem[] | null; export type TAnyLocation = @@ -147,6 +174,9 @@ export namespace CommLSP { export interface IClientNotifyParams { [INITIALIZED]: LSP.InitializedParams; + [DID_OPEN]: LSP.DidOpenTextDocumentParams; + [DID_CHANGE]: LSP.DidChangeTextDocumentParams; + [DID_SAVE]: LSP.DidSaveTextDocumentParams; } export interface IClientRequestParams { diff --git a/packages/jupyterlab-lsp/src/command_manager.ts b/packages/jupyterlab-lsp/src/command_manager.ts index 69e7d11e1..c1f368f9b 100644 --- a/packages/jupyterlab-lsp/src/command_manager.ts +++ b/packages/jupyterlab-lsp/src/command_manager.ts @@ -11,7 +11,7 @@ import { FileEditorAdapter } from './adapters/jupyterlab/file_editor'; import { NotebookAdapter } from './adapters/jupyterlab/notebook'; import { INotebookTracker } from '@jupyterlab/notebook'; import { VirtualDocument } from './virtual/document'; -import { LSPConnection } from './connection'; +import { ILSPConnection } from './tokens'; import { IEditorPosition, IRootPosition, @@ -250,7 +250,7 @@ export class FileEditorCommandManager extends ContextCommandManager { export interface ICommandContext { app: JupyterFrontEnd; document: VirtualDocument; - connection: LSPConnection; + connection: ILSPConnection; virtual_position: IVirtualPosition; root_position: IRootPosition; features: Map; diff --git a/packages/jupyterlab-lsp/src/connection.ts b/packages/jupyterlab-lsp/src/connection.ts index 005b57d27..5280bc5d2 100644 --- a/packages/jupyterlab-lsp/src/connection.ts +++ b/packages/jupyterlab-lsp/src/connection.ts @@ -10,10 +10,11 @@ import { IDocumentInfo } from 'lsp-ws-connection'; import { until_ready } from './utils'; +import { ILSPConnection } from './tokens'; interface ILSPOptions extends ILspOptions {} -export class LSPConnection extends LspWsConnection { +export class LSPConnection extends LspWsConnection implements ILSPConnection { protected documentsToOpen: IDocumentInfo[]; constructor(options: ILSPOptions) { diff --git a/packages/jupyterlab-lsp/src/connection_manager.ts b/packages/jupyterlab-lsp/src/connection_manager.ts index 89a8d4992..7fd0a6517 100644 --- a/packages/jupyterlab-lsp/src/connection_manager.ts +++ b/packages/jupyterlab-lsp/src/connection_manager.ts @@ -7,11 +7,15 @@ import { sleep, until_ready } from './utils'; // Name-only import so as to not trigger inclusion in main bundle import * as ConnectionModuleType from './connection'; -import { TLanguageServerId, ILanguageServerManager } from './tokens'; +import { + TLanguageServerId, + ILanguageServerManager, + ILSPConnection +} from './tokens'; export interface IDocumentConnectionData { virtual_document: VirtualDocument; - connection: LSPConnection; + connection: ILSPConnection; } export interface ISocketConnectionOptions { @@ -31,7 +35,7 @@ export interface ISocketConnectionOptions { * (see JupyterLabWidgetAdapter), keeping the virtual document spaces separate if a file is opened twice. */ export class DocumentConnectionManager { - connections: Map; + connections: Map; documents: Map; initialized: Signal; connected: Signal; @@ -116,7 +120,7 @@ export class DocumentConnectionManager { private async connect_socket( options: ISocketConnectionOptions - ): Promise { + ): Promise { console.log('LSP: Connection Socket', options); let { virtual_document, language } = options; @@ -197,7 +201,7 @@ export class DocumentConnectionManager { }; private forEachDocumentOfConnection( - connection: LSPConnection, + connection: ILSPConnection, callback: (virtual_document: VirtualDocument) => void ) { for (const [ @@ -322,7 +326,7 @@ export namespace DocumentConnectionManager { * Namespace primarily for language-keyed cache of LSPConnections */ namespace Private { - const _connections: Map = new Map(); + const _connections: Map = new Map(); let _promise: Promise; let _language_server_manager: ILanguageServerManager; @@ -343,7 +347,7 @@ namespace Private { language_server_id: TLanguageServerId, uris: DocumentConnectionManager.IURIs, onCreate: (connection: LSPConnection) => void - ): Promise { + ): Promise { if (_promise == null) { // TODO: consider lazy-loading _only_ the modules that _must_ be webpacked // with custom shims, e.g. `fs` diff --git a/packages/jupyterlab-lsp/src/tokens.ts b/packages/jupyterlab-lsp/src/tokens.ts index c63d9f048..dd9b2b1b5 100644 --- a/packages/jupyterlab-lsp/src/tokens.ts +++ b/packages/jupyterlab-lsp/src/tokens.ts @@ -1,7 +1,9 @@ import { ISignal } from '@lumino/signaling'; import { ServerConnection, ServiceManager } from '@jupyterlab/services'; +import * as LSP from 'vscode-languageserver-protocol'; import * as SCHEMA from './_schema'; +import { CommLSP } from './comm/lsp'; export type TLanguageServerId = string; export type TLanguageId = string; @@ -31,3 +33,123 @@ export namespace ILanguageServerManager { mimeType?: string; } } + +/** Compatibility layer with previous bespoke WebSocket connection. */ +export interface ILSPConnection { + isReady: boolean; + isConnected: boolean; + isInitialized: boolean; + + isRenameSupported(): boolean; + isReferencesSupported(): boolean; + isTypeDefinitionSupported(): boolean; + isDefinitionSupported(): boolean; + + sendOpenWhenReady(documentInfo: ILSPConnection.IDocumentInfo): void; + sendOpen(documentInfo: ILSPConnection.IDocumentInfo): void; + sendChange(documentInfo: ILSPConnection.IDocumentInfo): void; + sendFullTextChange( + text: string, + documentInfo: ILSPConnection.IDocumentInfo + ): void; + sendSelectiveChange( + changeEvent: LSP.TextDocumentContentChangeEvent, + documentInfo: ILSPConnection.IDocumentInfo + ): void; + sendSaved(documentInfo: ILSPConnection.IDocumentInfo): void; + rename( + location: ILSPConnection.IPosition, + documentInfo: ILSPConnection.IDocumentInfo, + newName: string, + emit: false + ): Promise; + connect(socket: WebSocket): ILSPConnection; + close(): void; + on< + T extends keyof ILSPConnection.IEventSignalArgs, + U extends ILSPConnection.IEventSignalArgs, + V extends (args: U) => void + >( + evt: T, + listener: V + ): void; + + off< + T extends keyof ILSPConnection.IEventSignalArgs, + U extends ILSPConnection.IEventSignalArgs, + V extends (args: U) => void + >( + evt: T, + listener: V + ): void; + getLanguageCompletionCharacters(): string[]; + getLanguageSignatureCharacters(): string[]; + getDocumentHighlights( + location: ILSPConnection.IPosition, + documentInfo: ILSPConnection.IDocumentInfo, + emit: false + ): Promise; + getHoverTooltip( + location: ILSPConnection.IPosition, + documentInfo: ILSPConnection.IDocumentInfo, + emit: false + ): Promise; + getSignatureHelp( + location: ILSPConnection.IPosition, + documentInfo: ILSPConnection.IDocumentInfo, + emit: false + ): Promise; + getCompletion( + location: ILSPConnection.IPosition, + token: ILSPConnection.ITokenInfo, + documentInfo: ILSPConnection.IDocumentInfo, + emit: false, + triggerCharacter?: string, + triggerKind?: LSP.CompletionTriggerKind + ): Promise; + getReferences( + location: ILSPConnection.IPosition, + documentInfo: ILSPConnection.IDocumentInfo, + emit?: false + ): Promise; + getTypeDefinition( + location: ILSPConnection.IPosition, + documentInfo: ILSPConnection.IDocumentInfo, + emit?: false + ): Promise; + getDefinition( + location: ILSPConnection.IPosition, + documentInfo: ILSPConnection.IDocumentInfo, + emit?: false + ): Promise; +} + +export namespace ILSPConnection { + export namespace Events { + export const ON_CLOSE = 'close'; + export const ON_DIAGNOSTIC = 'diagnostic'; + } + + export interface IEventSignalArgs { + [Events.ON_CLOSE]: boolean; + [Events.ON_DIAGNOSTIC]: LSP.PublishDiagnosticsParams; + } + + export interface IPosition { + line: number; + ch: number; + } + + export interface ITokenInfo { + start: IPosition; + end: IPosition; + text: string; + } + + export interface IDocumentInfo { + uri: string; + version: number; + text: string; + languageId: string; + } +} diff --git a/packages/lsp-ws-connection/src/ws-connection.ts b/packages/lsp-ws-connection/src/ws-connection.ts index f39d1ca57..6cb724d72 100644 --- a/packages/lsp-ws-connection/src/ws-connection.ts +++ b/packages/lsp-ws-connection/src/ws-connection.ts @@ -548,7 +548,7 @@ export class LspWsConnection extends events.EventEmitter } }; - const locations = await this.connection.sendRequest( + const locations = await this.connection.sendRequest( 'textDocument/references', params ); From 49406fb4110738183be0eceb2dcce5837a9c91b5 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Thu, 4 Jun 2020 11:52:09 -0400 Subject: [PATCH 07/82] round out capabilities, connect, initialize --- .../jupyterlab-lsp/src/comm/connection.ts | 302 +++++++++++++----- packages/jupyterlab-lsp/src/comm/lsp.ts | 64 +--- .../comm/server-capability-registration.ts | 51 +++ packages/jupyterlab-lsp/src/connection.ts | 5 +- .../jupyterlab-lsp/src/connection_manager.ts | 2 +- packages/jupyterlab-lsp/src/tokens.ts | 54 ++-- .../src/test/connection.test.ts | 18 +- .../lsp-ws-connection/src/ws-connection.ts | 13 +- 8 files changed, 336 insertions(+), 173 deletions(-) create mode 100644 packages/jupyterlab-lsp/src/comm/server-capability-registration.ts diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index 094a469ce..142e9e277 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -4,13 +4,19 @@ import { ILSPConnection } from '../tokens'; import { CommLSP } from './lsp'; import { ICommRPC } from '.'; import { Signal } from '@lumino/signaling'; +import { + registerServerCapability, + unregisterServerCapability +} from './server-capability-registration'; export class CommConnection extends CommLSP implements ILSPConnection { protected _isConnected = false; protected _isInitialized = false; + public serverCapabilities: LSP.ServerCapabilities; protected documentsToOpen: ILSPConnection.IDocumentInfo[]; + private _rootUri: string; private _signals: Map< keyof ILSPConnection.IEventSignalArgs, Signal< @@ -23,10 +29,27 @@ export class CommConnection extends CommLSP implements ILSPConnection { private closingManually = false; - constructor(options: ICommRPC.IOptions) { + constructor(options: CommConnection.IOptions) { super(options); - this._signals = new Map(); - this._signals.set(ILSPConnection.Events.ON_CLOSE, new Signal(this)); + this._rootUri = options.rootUri; + this.initSignals(); + this.initHandlers(); + } + + get rootUri() { + return this._rootUri; + } + + get isReady() { + return this._isConnected && this._isInitialized; + } + + get isConnected() { + return this._isConnected; + } + + get isInitialized() { + return this._isInitialized; } on< @@ -49,33 +72,214 @@ export class CommConnection extends CommLSP implements ILSPConnection { this._listeners.delete([evt, listener]); } - get isReady() { - return this._isConnected && this._isInitialized; + close() { + try { + this.closingManually = true; + } catch (e) { + this.closingManually = false; + } } - get isConnected() { - return this._isConnected; + protected initSignals() { + this._signals = new Map([ + [ILSPConnection.LegacyEvents.ON_CLOSE, new Signal(this)], + [ILSPConnection.LegacyEvents.ON_DIAGNOSTIC, new Signal(this)], + [ILSPConnection.LegacyEvents.ON_LOGGING, new Signal(this)], + [ILSPConnection.LegacyEvents.ON_INITIALIZED, new Signal(this)] + ]); } - get isInitialized() { - return this._isInitialized; + protected initHandlers() { + // logging + this.onNotification(CommLSP.SHOW_MESSAGE, { + onMsg: async params => { + this._signals.get(ILSPConnection.LegacyEvents.ON_LOGGING).emit(params); + } + }); + + this.onRequest(CommLSP.SHOW_MESSAGE_REQUEST, { + onMsg: async params => { + this._signals.get(ILSPConnection.LegacyEvents.ON_LOGGING).emit(params); + // nb: this seems important + return null; + } + }); + + // diagnostics + this.onNotification(CommLSP.PUBLISH_DIAGNOSTICS, { + onMsg: async params => { + this._signals + .get(ILSPConnection.LegacyEvents.ON_DIAGNOSTIC) + .emit(params); + } + }); + + // capabilities + this.onRequest(CommLSP.REGISTER_CAPABILITY, { + onMsg: async params => { + for (const registration of params.registrations) { + this.serverCapabilities = registerServerCapability( + this.serverCapabilities, + registration + ); + } + } + }); + + this.onRequest(CommLSP.UNREGISTER_CAPABILITY, { + onMsg: async params => { + for (const registration of params.unregisterations) { + this.serverCapabilities = unregisterServerCapability( + this.serverCapabilities, + registration + ); + } + } + }); + } + + async connect(socket?: WebSocket): Promise { + this.comm.onClose = () => { + this._isConnected = false; + this._signals + .get(ILSPConnection.LegacyEvents.ON_CLOSE) + .emit(this.closingManually); + }; + + this._isConnected = true; + + await this.initialize(); + } + + /** + * Initialization parameters to be sent to the language server. + * Subclasses can overload this when adding more features. + */ + protected initializeParams(): LSP.InitializeParams { + return { + capabilities: { + textDocument: { + hover: { + dynamicRegistration: true, + contentFormat: ['markdown', 'plaintext'] + }, + synchronization: { + dynamicRegistration: true, + willSave: false, + didSave: true, + willSaveWaitUntil: false + }, + completion: { + dynamicRegistration: true, + completionItem: { + snippetSupport: false, + commitCharactersSupport: true, + documentationFormat: ['markdown', 'plaintext'], + deprecatedSupport: false, + preselectSupport: false + }, + contextSupport: false + }, + signatureHelp: { + dynamicRegistration: true, + signatureInformation: { + documentationFormat: ['markdown', 'plaintext'] + } + }, + declaration: { + dynamicRegistration: true, + linkSupport: true + }, + definition: { + dynamicRegistration: true, + linkSupport: true + }, + typeDefinition: { + dynamicRegistration: true, + linkSupport: true + }, + implementation: { + dynamicRegistration: true, + linkSupport: true + } + } as LSP.ClientCapabilities, + workspace: { + didChangeConfiguration: { + dynamicRegistration: true + } + } as LSP.WorkspaceClientCapabilities + } as LSP.ClientCapabilities, + initializationOptions: null, + processId: null, + rootUri: this._rootUri, + workspaceFolders: null + }; } + async initialize(): Promise { + if (!this.isConnected) { + return; + } + + const { capabilities } = await this.request( + CommLSP.INITIALIZE, + this.initializeParams() + ); + + this.serverCapabilities = capabilities; + this.notify(CommLSP.INITIALIZED, null).catch(err => console.warn(err)); + this.notify(CommLSP.DID_CHANGE_CONFIGURATION, { settings: {} }).catch(err => + console.warn(err) + ); + + while (this.documentsToOpen.length) { + this.sendOpen(this.documentsToOpen.pop()); + } + + this._signals + .get(ILSPConnection.LegacyEvents.ON_INITIALIZED) + .emit(this.serverCapabilities); + } + + // capabilities isRenameSupported() { // nb: populate capabilities - return this.capabilities.has(CommLSP.Capabilities.SERVER_RENAME_PROVIDER); + // return this.capabilities.has(CommLSP.Capabilities.SERVER_RENAME_PROVIDER); + return !!this.serverCapabilities?.renameProvider; } isReferencesSupported() { - return this.capabilities.has(CommLSP.Capabilities.REFERENCES_PROVIDER); + return !!this.serverCapabilities?.referencesProvider; } isTypeDefinitionSupported() { - return this.capabilities.has(CommLSP.Capabilities.TYPE_DEFINITION_PROVIDER); + return !!this.serverCapabilities?.typeDefinitionProvider; } isDefinitionSupported() { - return this.capabilities.has(CommLSP.Capabilities.DEFINITION_PROVIDER); + return !!this.serverCapabilities?.definitionProvider; + } + + isHoverSupported() { + return !!this.serverCapabilities?.hoverProvider; + } + + isSignatureHelpSupported() { + return !!this.serverCapabilities?.signatureHelpProvider; + } + + isCompletionSupported() { + return !!this.serverCapabilities?.completionProvider; + } + + getLanguageCompletionCharacters() { + return this.serverCapabilities?.completionProvider?.triggerCharacters || []; + } + + getLanguageSignatureCharacters() { + return ( + this.serverCapabilities?.signatureHelpProvider?.triggerCharacters || [] + ); } sendOpenWhenReady(documentInfo: ILSPConnection.IDocumentInfo) { @@ -147,53 +351,6 @@ export class CommConnection extends CommLSP implements ILSPConnection { }); } - protected onServerInitialized(params: LSP.InitializeResult) { - // super.onServerInitialized(params); - while (this.documentsToOpen.length) { - this.sendOpen(this.documentsToOpen.pop()); - } - } - - connect(socket?: WebSocket): ILSPConnection { - // nb: look into this - // super.connect(socket); - - this.comm.onClose = () => { - this._isConnected = false; - this._signals - .get(ILSPConnection.Events.ON_CLOSE) - .emit(this.closingManually); - }; - return this; - } - - close() { - try { - this.closingManually = true; - // nb: look into this - // super.close(); - } catch (e) { - this.closingManually = false; - } - } - - // methods from ws-connection - getLanguageCompletionCharacters() { - return ( - this.capabilities.get( - CommLSP.Capabilities.COMPLETION_TRIGGER_CHARACTERS - ) || [] - ); - } - - getLanguageSignatureCharacters() { - return ( - this.capabilities.get( - CommLSP.Capabilities.SIGNATURE_HELP_TRIGGER_CHARACTERS - ) || [] - ); - } - async getDocumentHighlights( location: ILSPConnection.IPosition, documentInfo: ILSPConnection.IDocumentInfo, @@ -219,10 +376,7 @@ export class CommConnection extends CommLSP implements ILSPConnection { documentInfo: ILSPConnection.IDocumentInfo, emit?: false ) { - if ( - !this.isReady && - !this.capabilities.has(CommLSP.Capabilities.HOVER_PROVIDER) - ) { + if (!this.isReady && !this.isHoverSupported()) { return; } return await this.request(CommLSP.HOVER, { @@ -241,12 +395,7 @@ export class CommConnection extends CommLSP implements ILSPConnection { documentInfo: ILSPConnection.IDocumentInfo, emit?: false ): Promise { - if ( - !( - this.isReady && - this.capabilities.get(CommLSP.Capabilities.SIGNATURE_HELP_PROVIDER) - ) - ) { + if (!(this.isReady && this.isSignatureHelpSupported())) { return; } @@ -279,12 +428,7 @@ export class CommConnection extends CommLSP implements ILSPConnection { triggerCharacter?: string, triggerKind?: LSP.CompletionTriggerKind ) { - if ( - !( - this.isReady && - this.capabilities.get(CommLSP.Capabilities.SIGNATURE_HELP_PROVIDER) - ) - ) { + if (!(this.isReady && this.isCompletionSupported())) { return; } @@ -403,3 +547,9 @@ export class CommConnection extends CommLSP implements ILSPConnection { documentInfo.version++; } } + +export namespace CommConnection { + export interface IOptions extends ICommRPC.IOptions { + rootUri: string; + } +} diff --git a/packages/jupyterlab-lsp/src/comm/lsp.ts b/packages/jupyterlab-lsp/src/comm/lsp.ts index 4918a5c54..b1e31df9b 100644 --- a/packages/jupyterlab-lsp/src/comm/lsp.ts +++ b/packages/jupyterlab-lsp/src/comm/lsp.ts @@ -8,7 +8,8 @@ import { CommRPC } from './json-rpc'; * Language Server. */ export class CommLSP extends CommRPC { - capabilities: CommLSP.TCapabilityMap = new Map(); + // TODO: figure out a more robust way to do this + // capabilities: CommLSP.TCapabilityMap = new Map(); /** * Request immediate method execution on the Language Server, not waiting for @@ -57,38 +58,6 @@ export class CommLSP extends CommRPC { >(method: T, handler: W): W | null { return this.addHandler(method, handler) as W; } - - // nb: test something like this - async bar() { - this.onRequest(CommLSP.REGISTER_CAPABILITY, { - onMsg: async params => { - console.log(params); - return { - id: 'foo', - method: 'baz', - registerOptions: { boo: true } - }; - } - }); - - this.onNotification(CommLSP.PUBLISH_DIAGNOSTICS, { - onMsg: async params => { - console.log(params); - } - }); - - const baz = await this.notify(CommLSP.INITIALIZED, {}); - console.log(baz); - - const boo = await this.request(CommLSP.HOVER, { - textDocument: { uri: 'http' }, - position: { - line: 0, - character: 0 - } - }); - console.log(boo); - } } /** @@ -115,6 +84,7 @@ export namespace CommLSP { export const PUBLISH_DIAGNOSTICS = 'textDocument/publishDiagnostics'; export const REFERENCES = 'textDocument/references'; export const SHOW_MESSAGE = 'window/showMessage'; + export const SHOW_MESSAGE_REQUEST = 'window/showMessageRequest'; export const SIGNATURE_HELP = 'textDocument/signatureHelp'; export const TYPE_DEFINITION = 'textDocument/typeDefinition'; export const RENAME = 'textDocument/rename'; @@ -128,26 +98,7 @@ export namespace CommLSP { export const DID_OPEN = 'textDocument/didOpen'; export const DID_CHANGE = 'textDocument/didChange'; export const DID_SAVE = 'textDocument/didSave'; - - export namespace Capabilities { - export const SERVER_RENAME_PROVIDER = ['renameProvider']; - export const COMPLETION_TRIGGER_CHARACTERS = [ - 'completionProvider', - 'triggerCharacters' - ]; - export const SIGNATURE_HELP_TRIGGER_CHARACTERS = [ - 'signatureHelpProvider', - 'triggerCharacters' - ]; - export const COMPLETION_PROVIDER = ['completionProvider']; - export const SIGNATURE_HELP_PROVIDER = ['signatureHelpProvider']; - export const HOVER_PROVIDER = ['hoverProvider']; - export const REFERENCES_PROVIDER = ['referencesProvider']; - export const TYPE_DEFINITION_PROVIDER = ['typeDefinitionProvider']; - export const DEFINITION_PROVIDER = ['definitionProvider']; - } - - export type TCapabilityMap = Map; + export const DID_CHANGE_CONFIGURATION = 'workspace/didChangeConfiguration'; export type TAnyCompletion = LSP.CompletionList | LSP.CompletionItem[] | null; @@ -165,11 +116,13 @@ export namespace CommLSP { export interface IServerRequestParams { [REGISTER_CAPABILITY]: LSP.RegistrationParams; [UNREGISTER_CAPABILITY]: LSP.UnregistrationParams; + [SHOW_MESSAGE_REQUEST]: LSP.ShowMessageRequestParams; } export interface IServerResult { - [REGISTER_CAPABILITY]: LSP.Registration; - [UNREGISTER_CAPABILITY]: LSP.Unregistration; + [REGISTER_CAPABILITY]: void; + [UNREGISTER_CAPABILITY]: void; + [SHOW_MESSAGE_REQUEST]: LSP.MessageActionItem | null; } export interface IClientNotifyParams { @@ -177,6 +130,7 @@ export namespace CommLSP { [DID_OPEN]: LSP.DidOpenTextDocumentParams; [DID_CHANGE]: LSP.DidChangeTextDocumentParams; [DID_SAVE]: LSP.DidSaveTextDocumentParams; + [DID_CHANGE_CONFIGURATION]: LSP.DidChangeConfigurationParams; } export interface IClientRequestParams { diff --git a/packages/jupyterlab-lsp/src/comm/server-capability-registration.ts b/packages/jupyterlab-lsp/src/comm/server-capability-registration.ts new file mode 100644 index 000000000..12d158634 --- /dev/null +++ b/packages/jupyterlab-lsp/src/comm/server-capability-registration.ts @@ -0,0 +1,51 @@ +import { + Registration, + ServerCapabilities, + Unregistration +} from 'vscode-languageserver-protocol'; + +interface IFlexibleServerCapabilities extends ServerCapabilities { + [key: string]: any; +} + +function registerServerCapability( + serverCapabilities: ServerCapabilities, + registration: Registration +): ServerCapabilities { + const serverCapabilitiesCopy = JSON.parse( + JSON.stringify(serverCapabilities) + ) as IFlexibleServerCapabilities; + const { method, registerOptions } = registration; + const providerName = method.substring(13) + 'Provider'; + + if (providerName) { + if (!registerOptions) { + serverCapabilitiesCopy[providerName] = true; + } else { + serverCapabilitiesCopy[providerName] = JSON.parse( + JSON.stringify(registerOptions) + ); + } + } else { + throw new Error('Could not register server capability.'); + } + + return serverCapabilitiesCopy; +} + +function unregisterServerCapability( + serverCapabilities: ServerCapabilities, + unregistration: Unregistration +): ServerCapabilities { + const serverCapabilitiesCopy = JSON.parse( + JSON.stringify(serverCapabilities) + ) as IFlexibleServerCapabilities; + const { method } = unregistration; + const providerName = method.substring(13) + 'Provider'; + + delete serverCapabilitiesCopy[providerName]; + + return serverCapabilitiesCopy; +} + +export { registerServerCapability, unregisterServerCapability }; diff --git a/packages/jupyterlab-lsp/src/connection.ts b/packages/jupyterlab-lsp/src/connection.ts index 5280bc5d2..01672895f 100644 --- a/packages/jupyterlab-lsp/src/connection.ts +++ b/packages/jupyterlab-lsp/src/connection.ts @@ -87,8 +87,8 @@ export class LSPConnection extends LspWsConnection implements ILSPConnection { return edit; } - public connect(socket: WebSocket): this { - super.connect(socket); + public async connect(socket: WebSocket): Promise { + await super.connect(socket); until_ready(() => { return this.isConnected; @@ -102,7 +102,6 @@ export class LSPConnection extends LspWsConnection implements ILSPConnection { .catch(() => { console.error('Could not connect onClose signal'); }); - return this; } private closing_manually = false; diff --git a/packages/jupyterlab-lsp/src/connection_manager.ts b/packages/jupyterlab-lsp/src/connection_manager.ts index 7fd0a6517..1b1365c64 100644 --- a/packages/jupyterlab-lsp/src/connection_manager.ts +++ b/packages/jupyterlab-lsp/src/connection_manager.ts @@ -369,7 +369,7 @@ namespace Private { // TODO: remove remaining unbounded users of connection.on connection.setMaxListeners(999); _connections.set(language_server_id, connection); - connection.connect(socket); + await connection.connect(socket); onCreate(connection); } diff --git a/packages/jupyterlab-lsp/src/tokens.ts b/packages/jupyterlab-lsp/src/tokens.ts index dd9b2b1b5..daf13638c 100644 --- a/packages/jupyterlab-lsp/src/tokens.ts +++ b/packages/jupyterlab-lsp/src/tokens.ts @@ -39,32 +39,19 @@ export interface ILSPConnection { isReady: boolean; isConnected: boolean; isInitialized: boolean; + serverCapabilities: LSP.ServerCapabilities; + // legacy capabilities api isRenameSupported(): boolean; isReferencesSupported(): boolean; isTypeDefinitionSupported(): boolean; isDefinitionSupported(): boolean; - sendOpenWhenReady(documentInfo: ILSPConnection.IDocumentInfo): void; - sendOpen(documentInfo: ILSPConnection.IDocumentInfo): void; - sendChange(documentInfo: ILSPConnection.IDocumentInfo): void; - sendFullTextChange( - text: string, - documentInfo: ILSPConnection.IDocumentInfo - ): void; - sendSelectiveChange( - changeEvent: LSP.TextDocumentContentChangeEvent, - documentInfo: ILSPConnection.IDocumentInfo - ): void; - sendSaved(documentInfo: ILSPConnection.IDocumentInfo): void; - rename( - location: ILSPConnection.IPosition, - documentInfo: ILSPConnection.IDocumentInfo, - newName: string, - emit: false - ): Promise; - connect(socket: WebSocket): ILSPConnection; + // legacy connection API + connect(socket: WebSocket): Promise; close(): void; + + // legacy event api on< T extends keyof ILSPConnection.IEventSignalArgs, U extends ILSPConnection.IEventSignalArgs, @@ -82,6 +69,25 @@ export interface ILSPConnection { evt: T, listener: V ): void; + + sendOpenWhenReady(documentInfo: ILSPConnection.IDocumentInfo): void; + sendOpen(documentInfo: ILSPConnection.IDocumentInfo): void; + sendChange(documentInfo: ILSPConnection.IDocumentInfo): void; + sendFullTextChange( + text: string, + documentInfo: ILSPConnection.IDocumentInfo + ): void; + sendSelectiveChange( + changeEvent: LSP.TextDocumentContentChangeEvent, + documentInfo: ILSPConnection.IDocumentInfo + ): void; + sendSaved(documentInfo: ILSPConnection.IDocumentInfo): void; + rename( + location: ILSPConnection.IPosition, + documentInfo: ILSPConnection.IDocumentInfo, + newName: string, + emit: false + ): Promise; getLanguageCompletionCharacters(): string[]; getLanguageSignatureCharacters(): string[]; getDocumentHighlights( @@ -125,14 +131,18 @@ export interface ILSPConnection { } export namespace ILSPConnection { - export namespace Events { + export namespace LegacyEvents { export const ON_CLOSE = 'close'; export const ON_DIAGNOSTIC = 'diagnostic'; + export const ON_LOGGING = 'logging'; + export const ON_INITIALIZED = 'serverInitialized'; } export interface IEventSignalArgs { - [Events.ON_CLOSE]: boolean; - [Events.ON_DIAGNOSTIC]: LSP.PublishDiagnosticsParams; + [LegacyEvents.ON_CLOSE]: boolean; + [LegacyEvents.ON_DIAGNOSTIC]: LSP.PublishDiagnosticsParams; + [LegacyEvents.ON_LOGGING]: LSP.ShowMessageParams | LSP.MessageActionItem; + [LegacyEvents.ON_INITIALIZED]: LSP.ServerCapabilities; } export interface IPosition { diff --git a/packages/lsp-ws-connection/src/test/connection.test.ts b/packages/lsp-ws-connection/src/test/connection.test.ts index ce2757fd2..74d52c336 100644 --- a/packages/lsp-ws-connection/src/test/connection.test.ts +++ b/packages/lsp-ws-connection/src/test/connection.test.ts @@ -173,7 +173,7 @@ describe('LspWsConnection', () => { }, 0); }); - connection.connect(mockSocket); + connection.connect(mockSocket).catch(err => console.warn(err)); mockSocket.dispatchEvent(new Event('open')); // Send the messages @@ -228,7 +228,7 @@ describe('LspWsConnection', () => { }, 0); }); - connection.connect(mockSocket); + connection.connect(mockSocket).catch(err => console.warn(err)); mockSocket.dispatchEvent(new Event('open')); }); @@ -258,7 +258,7 @@ describe('LspWsConnection', () => { }); }); - connection.connect(mockSocket); + connection.connect(mockSocket).catch(err => console.warn(err)); mockSocket.dispatchEvent(new Event('open')); }); }); @@ -308,7 +308,7 @@ describe('LspWsConnection', () => { mockSocket.dispatchEvent(new MessageEvent('message', { data })); }); - connection.connect(mockSocket); + connection.connect(mockSocket).catch(err => console.warn(err)); mockSocket.dispatchEvent(new Event('open')); connection.on('hover', response => { @@ -345,7 +345,7 @@ describe('LspWsConnection', () => { mockSocket.dispatchEvent(new MessageEvent('message', { data })); }); - connection.connect(mockSocket); + connection.connect(mockSocket).catch(err => console.warn(err)); mockSocket.dispatchEvent(new Event('open')); connection.on('hover', response => { @@ -414,7 +414,7 @@ describe('LspWsConnection', () => { mockSocket.dispatchEvent(new MessageEvent('message', { data })); }); - connection.connect(mockSocket); + connection.connect(mockSocket).catch(err => console.warn(err)); mockSocket.dispatchEvent(new Event('open')); connection.on('completion', response => { @@ -449,7 +449,7 @@ describe('LspWsConnection', () => { mockSocket.dispatchEvent(new MessageEvent('message', { data })); }); - connection.connect(mockSocket); + connection.connect(mockSocket).catch(err => console.warn(err)); mockSocket.dispatchEvent(new Event('open')); connection.on('completion', response => { @@ -481,7 +481,7 @@ describe('LspWsConnection', () => { mockSocket.dispatchEvent(new MessageEvent('message', { data })); }); - connection.connect(mockSocket); + connection.connect(mockSocket).catch(err => console.warn(err)); mockSocket.dispatchEvent(new Event('open')); connection.on('completion', response => { @@ -492,7 +492,7 @@ describe('LspWsConnection', () => { }); it('closes the socket connection and stops sending messages', () => { - connection.connect(mockSocket); + connection.connect(mockSocket).catch(err => console.warn(err)); connection.close(); connection.sendChange(mockInfo); diff --git a/packages/lsp-ws-connection/src/ws-connection.ts b/packages/lsp-ws-connection/src/ws-connection.ts index 6cb724d72..71d4f00f5 100644 --- a/packages/lsp-ws-connection/src/ws-connection.ts +++ b/packages/lsp-ws-connection/src/ws-connection.ts @@ -46,7 +46,7 @@ export class LspWsConnection extends events.EventEmitter /** * Initialize a connection over a web socket that speaks the LSP protocol */ - public connect(socket: WebSocket): this { + public async connect(socket: WebSocket): Promise { this.socket = socket; listen({ @@ -57,7 +57,6 @@ export class LspWsConnection extends events.EventEmitter this.isConnected = true; this.connection = connection; - this.sendInitialize(); this.connection.onNotification( 'textDocument/publishDiagnostics', @@ -119,10 +118,10 @@ export class LspWsConnection extends events.EventEmitter this.connection.onClose(() => { this.isConnected = false; }); + + this.sendInitialize().catch(err => console.warn(err)); } }); - - return this; } public close() { @@ -197,7 +196,7 @@ export class LspWsConnection extends events.EventEmitter }; } - public sendInitialize() { + public async sendInitialize() { if (!this.isConnected) { return; } @@ -207,8 +206,8 @@ export class LspWsConnection extends events.EventEmitter this.connection .sendRequest('initialize', message) .then( - params => { - this.onServerInitialized(params); + result => { + this.onServerInitialized(result); }, e => { console.warn('lsp-ws-connection initialization failure', e); From 70accbd6c2e77581f1fdc9e1e439c600797d3e19 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Thu, 4 Jun 2020 12:16:53 -0400 Subject: [PATCH 08/82] start removing lsp-ws-connection from lab build --- .../adapters/codemirror/features/jump_to.ts | 9 +- .../jupyterlab-lsp/src/comm/connection.ts | 4 + .../jupyterlab-lsp/src/connection_manager.ts | 85 +++++++++---------- packages/jupyterlab-lsp/src/manager.ts | 4 +- packages/jupyterlab-lsp/src/tokens.ts | 2 + .../jupyterlab-lsp/src/virtual/document.ts | 6 +- packages/lsp-ws-connection/package.json | 1 - packages/metapackage/package.json | 1 - packages/metapackage/src/index.ts | 1 - 9 files changed, 57 insertions(+), 56 deletions(-) diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts index 5774dc326..13e3d3fce 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts @@ -2,7 +2,7 @@ import { CodeMirrorLSPFeature, IFeatureCommand } from '../feature'; import { PositionConverter } from '../../../converter'; import { IVirtualPosition } from '../../../positioning'; import { uri_to_contents_path, uris_equal } from '../../../utils'; -import { AnyLocation } from 'lsp-ws-connection/src/types'; +import { CommLSP } from '../../../comm/lsp'; export class JumpToDefinition extends CodeMirrorLSPFeature { name = 'JumpToDefinition'; @@ -29,7 +29,7 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { return this.jupyterlab_components.jumper; } - get_uri_and_range(location_or_locations: AnyLocation) { + get_uri_and_range(location_or_locations: CommLSP.TAnyLocation) { if (location_or_locations == null) { console.log('No jump targets found'); return; @@ -63,7 +63,10 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { } } - async handle_jump(location_or_locations: AnyLocation, document_uri: string) { + async handle_jump( + location_or_locations: CommLSP.TAnyLocation, + document_uri: string + ) { const target_info = this.get_uri_and_range(location_or_locations); if (target_info == null) { diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index 142e9e277..65412f686 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -227,7 +227,11 @@ export class CommConnection extends CommLSP implements ILSPConnection { ); this.serverCapabilities = capabilities; + this.notify(CommLSP.INITIALIZED, null).catch(err => console.warn(err)); + + this._isInitialized = true; + this.notify(CommLSP.DID_CHANGE_CONFIGURATION, { settings: {} }).catch(err => console.warn(err) ); diff --git a/packages/jupyterlab-lsp/src/connection_manager.ts b/packages/jupyterlab-lsp/src/connection_manager.ts index 1b1365c64..b6c13c685 100644 --- a/packages/jupyterlab-lsp/src/connection_manager.ts +++ b/packages/jupyterlab-lsp/src/connection_manager.ts @@ -1,17 +1,15 @@ import { VirtualDocument, IForeignContext } from './virtual/document'; -import { LSPConnection } from './connection'; import { Signal } from '@lumino/signaling'; import { PageConfig, URLExt } from '@jupyterlab/coreutils'; import { sleep, until_ready } from './utils'; -// Name-only import so as to not trigger inclusion in main bundle -import * as ConnectionModuleType from './connection'; import { TLanguageServerId, ILanguageServerManager, ILSPConnection } from './tokens'; +import { CommConnection } from './comm/connection'; export interface IDocumentConnectionData { virtual_document: VirtualDocument; @@ -157,29 +155,30 @@ export class DocumentConnectionManager { * invocation of `.on` (once remaining LSPFeature.connection_handlers are made * singletons). */ - on_new_connection = (connection: LSPConnection) => { - connection.on('error', e => { - console.warn(e); - // TODO invalid now - let error: Error = e.length && e.length >= 1 ? e[0] : new Error(); - // TODO: those codes may be specific to my proxy client, need to investigate - if (error.message.indexOf('code = 1005') !== -1) { - console.warn(`LSP: Connection failed for ${connection}`); - this.forEachDocumentOfConnection(connection, virtual_document => { - console.warn('LSP: disconnecting ' + virtual_document.id_path); - this.closed.emit({ connection, virtual_document }); - this.ignored_languages.add(virtual_document.language); - - console.warn( - `Cancelling further attempts to connect ${virtual_document.id_path} and other documents for this language (no support from the server)` - ); - }); - } else if (error.message.indexOf('code = 1006') !== -1) { - console.warn('LSP: Connection closed by the server '); - } else { - console.error('LSP: Connection error:', e); - } - }); + on_new_connection = (connection: ILSPConnection) => { + // nb: investigate failure modes + // connection.on('error', e => { + // console.warn(e); + // // TODO invalid now + // let error: Error = e.length && e.length >= 1 ? e[0] : new Error(); + // // TODO: those codes may be specific to my proxy client, need to investigate + // if (error.message.indexOf('code = 1005') !== -1) { + // console.warn(`LSP: Connection failed for ${connection}`); + // this.forEachDocumentOfConnection(connection, virtual_document => { + // console.warn('LSP: disconnecting ' + virtual_document.id_path); + // this.closed.emit({ connection, virtual_document }); + // this.ignored_languages.add(virtual_document.language); + + // console.warn( + // `Cancelling further attempts to connect ${virtual_document.id_path} and other documents for this language (no support from the server)` + // ); + // }); + // } else if (error.message.indexOf('code = 1006') !== -1) { + // console.warn('LSP: Connection closed by the server '); + // } else { + // console.error('LSP: Connection error:', e); + // } + // }); connection.on('serverInitialized', capabilities => { this.forEachDocumentOfConnection(connection, virtual_document => { @@ -327,7 +326,6 @@ export namespace DocumentConnectionManager { */ namespace Private { const _connections: Map = new Map(); - let _promise: Promise; let _language_server_manager: ILanguageServerManager; export function getLanguageServerManager() { @@ -346,30 +344,27 @@ namespace Private { language: string, language_server_id: TLanguageServerId, uris: DocumentConnectionManager.IURIs, - onCreate: (connection: LSPConnection) => void + onCreate: (connection: ILSPConnection) => void ): Promise { - if (_promise == null) { - // TODO: consider lazy-loading _only_ the modules that _must_ be webpacked - // with custom shims, e.g. `fs` - _promise = import( - /* webpackChunkName: "jupyter-lsp-connection" */ './connection' - ); - } - - const { LSPConnection } = await _promise; + // if (_promise == null) { + // // TODO: consider lazy-loading _only_ the modules that _must_ be webpacked + // // with custom shims, e.g. `fs` + // _promise = import( + // /* webpackChunkName: "jupyter-lsp-connection" */ './connection' + // ); + // } + + // const { LSPConnection } = await _promise; + const comm = await _language_server_manager.getComm(language_server_id); let connection = _connections.get(language_server_id); if (connection == null) { - const socket = new WebSocket(uris.socket); - const connection = new LSPConnection({ - languageId: language, - serverUri: uris.server, - rootUri: uris.base - }); + // const socket = new WebSocket(uris.socket); + const connection = new CommConnection({ comm, rootUri: uris.base }); // TODO: remove remaining unbounded users of connection.on - connection.setMaxListeners(999); + // connection.setMaxListeners(999); _connections.set(language_server_id, connection); - await connection.connect(socket); + await connection.connect(null); onCreate(connection); } diff --git a/packages/jupyterlab-lsp/src/manager.ts b/packages/jupyterlab-lsp/src/manager.ts index 2bdd45c48..6a194be9f 100644 --- a/packages/jupyterlab-lsp/src/manager.ts +++ b/packages/jupyterlab-lsp/src/manager.ts @@ -51,8 +51,8 @@ export class LanguageServerManager implements ILanguageServerManager { return this._sessions; } - async getComm(language_server: TLanguageServerId): Promise { - return this._comms.get(language_server); + async getComm(language_server_id: TLanguageServerId): Promise { + return this._comms.get(language_server_id); } getServerId(options: ILanguageServerManager.IGetServerIdOptions) { diff --git a/packages/jupyterlab-lsp/src/tokens.ts b/packages/jupyterlab-lsp/src/tokens.ts index daf13638c..b035b2a1b 100644 --- a/packages/jupyterlab-lsp/src/tokens.ts +++ b/packages/jupyterlab-lsp/src/tokens.ts @@ -4,6 +4,7 @@ import * as LSP from 'vscode-languageserver-protocol'; import * as SCHEMA from './_schema'; import { CommLSP } from './comm/lsp'; +import { IComm } from '@jupyterlab/services/lib/kernel/kernel'; export type TLanguageServerId = string; export type TLanguageId = string; @@ -18,6 +19,7 @@ export interface ILanguageServerManager { getServerId( options: ILanguageServerManager.IGetServerIdOptions ): TLanguageServerId; + getComm(languageServerId: TLanguageServerId): Promise; statusUrl: string; } diff --git a/packages/jupyterlab-lsp/src/virtual/document.ts b/packages/jupyterlab-lsp/src/virtual/document.ts index 386c45321..03b57affb 100644 --- a/packages/jupyterlab-lsp/src/virtual/document.ts +++ b/packages/jupyterlab-lsp/src/virtual/document.ts @@ -14,7 +14,7 @@ import { IVirtualPosition } from '../positioning'; import IRange = CodeEditor.IRange; -import { IDocumentInfo } from 'lsp-ws-connection/src'; +import { ILSPConnection } from '../tokens'; import { DocumentConnectionManager } from '../connection_manager'; @@ -89,7 +89,7 @@ export function is_within_range( /** * a virtual implementation of IDocumentInfo */ -export class VirtualDocumentInfo implements IDocumentInfo { +export class VirtualDocumentInfo implements ILSPConnection.IDocumentInfo { private _document: VirtualDocument; version = 0; @@ -142,7 +142,7 @@ export class VirtualDocument { /** * the remote document uri, version and other server-related info */ - public document_info: IDocumentInfo; + public document_info: ILSPConnection.IDocumentInfo; /** * Virtual lines keep all the lines present in the document AND extracted to the foreign document. */ diff --git a/packages/lsp-ws-connection/package.json b/packages/lsp-ws-connection/package.json index 4c3441c08..9f0e76da8 100644 --- a/packages/lsp-ws-connection/package.json +++ b/packages/lsp-ws-connection/package.json @@ -10,7 +10,6 @@ ], "types": "lib/index.d.ts", "scripts": { - "lab:link": "jupyter labextension link . --no-build", "build": "webpack", "test": "karma start", "test-dev": "karma start --browsers Chrome --singleRun false --timeout 30000 --autoWatch", diff --git a/packages/metapackage/package.json b/packages/metapackage/package.json index 8b9a12bc2..1d6629958 100644 --- a/packages/metapackage/package.json +++ b/packages/metapackage/package.json @@ -27,7 +27,6 @@ }, "dependencies": { "@krassowski/jupyterlab-lsp": "file:../jupyterlab-lsp", - "lsp-ws-connection": "file:../lsp-ws-connection", "@krassowski/jupyterlab_go_to_definition": "file:../jupyterlab-go-to-definition" }, "devDependencies": { diff --git a/packages/metapackage/src/index.ts b/packages/metapackage/src/index.ts index e0bee7cc9..7c2f939cb 100644 --- a/packages/metapackage/src/index.ts +++ b/packages/metapackage/src/index.ts @@ -1,3 +1,2 @@ import '@krassowski/jupyterlab_go_to_definition'; import '@krassowski/jupyterlab-lsp'; -import 'lsp-ws-connection'; From 2686f6bcbb43cb1c7f35dc226c8e3dfc27e40b83 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Fri, 5 Jun 2020 19:40:18 -0400 Subject: [PATCH 09/82] upgrade ts, prettier: mostly working kernel-based language server sessions --- binder/postBuild | 4 +- package.json | 4 +- .../jest.config.js | 6 +- .../jupyterlab-go-to-definition/package.json | 48 +- .../src/editors/codemirror/extension.ts | 6 +- .../jupyterlab-go-to-definition/src/index.ts | 42 +- .../src/jumpers/fileeditor.ts | 4 +- .../src/jumpers/jumper.ts | 26 +- .../src/jumpers/notebook.ts | 11 +- .../src/languages/analyzer.ts | 4 +- .../src/languages/python.spec.ts | 6 +- .../src/languages/python.ts | 4 +- .../src/languages/r.spec.ts | 4 +- .../src/languages/r.ts | 2 +- .../src/notebook_private.ts | 2 +- .../src/testutils.ts | 2 +- packages/jupyterlab-lsp/jest.config.js | 6 +- packages/jupyterlab-lsp/package.json | 67 +- .../src/adapters/codemirror/feature.ts | 53 +- .../codemirror/features/diagnostics.ts | 61 +- .../features/diagnostics_listing.tsx | 53 +- .../codemirror/features/highlights.ts | 11 +- .../src/adapters/codemirror/features/hover.ts | 33 +- .../adapters/codemirror/features/jump_to.ts | 16 +- .../adapters/codemirror/features/rename.ts | 21 +- .../adapters/codemirror/features/signature.ts | 17 +- .../jupyterlab/components/completion.ts | 30 +- .../jupyterlab/components/free_tooltip.ts | 2 +- .../jupyterlab/components/statusbar.tsx | 31 +- .../src/adapters/jupyterlab/file_editor.ts | 4 +- .../src/adapters/jupyterlab/jl_adapter.ts | 27 +- .../src/adapters/jupyterlab/notebook.ts | 4 +- .../jupyterlab-lsp/src/comm/connection.ts | 148 +- packages/jupyterlab-lsp/src/comm/json-rpc.ts | 30 +- .../jupyterlab-lsp/src/comm/lsp-constants.ts | 21 + packages/jupyterlab-lsp/src/comm/lsp-types.ts | 89 + packages/jupyterlab-lsp/src/comm/lsp.ts | 2 +- .../comm/server-capability-registration.ts | 4 +- .../src/command_manager.spec.ts | 8 +- .../jupyterlab-lsp/src/command_manager.ts | 10 +- .../jupyterlab-lsp/src/connection_manager.ts | 20 +- packages/jupyterlab-lsp/src/converter.ts | 6 +- .../src/extractors/defaults.spec.ts | 2 +- .../jupyterlab-lsp/src/extractors/defaults.ts | 30 +- .../src/extractors/regexp.spec.ts | 10 +- .../jupyterlab-lsp/src/extractors/regexp.ts | 4 +- packages/jupyterlab-lsp/src/index.ts | 20 +- .../jupyterlab-lsp/src/magics/defaults.ts | 30 +- packages/jupyterlab-lsp/src/magics/maps.ts | 6 +- packages/jupyterlab-lsp/src/magics/rpy2.ts | 6 +- packages/jupyterlab-lsp/src/manager.ts | 116 +- packages/jupyterlab-lsp/src/tokens.ts | 2 +- packages/jupyterlab-lsp/src/utils.ts | 4 +- .../jupyterlab-lsp/src/virtual/console.ts | 2 +- .../src/virtual/document.spec.ts | 22 +- .../jupyterlab-lsp/src/virtual/document.ts | 44 +- packages/jupyterlab-lsp/src/virtual/editor.ts | 8 +- .../src/virtual/editors/file_editor.ts | 6 +- .../src/virtual/editors/notebook.ts | 16 +- packages/lsp-ws-connection/karma.conf.js | 18 +- packages/lsp-ws-connection/package.json | 4 +- .../src/server-capability-registration.ts | 2 +- .../src/test/connection.test.ts | 168 +- .../src/test/mock-connection.ts | 4 +- .../server-capability-registration.test.ts | 26 +- packages/lsp-ws-connection/src/types.ts | 2 +- .../lsp-ws-connection/src/ws-connection.ts | 114 +- packages/lsp-ws-connection/webpack.config.js | 16 +- packages/metapackage/package.json | 2 +- py_src/jupyter_lsp/kernel/handlers.py | 38 + py_src/jupyter_lsp/kernel/kernel.py | 79 +- py_src/jupyter_lsp/kernel/manager.py | 65 + yarn.lock | 4321 +++++++++-------- 73 files changed, 3347 insertions(+), 2789 deletions(-) create mode 100644 packages/jupyterlab-lsp/src/comm/lsp-constants.ts create mode 100644 packages/jupyterlab-lsp/src/comm/lsp-types.ts create mode 100644 py_src/jupyter_lsp/kernel/handlers.py create mode 100644 py_src/jupyter_lsp/kernel/manager.py diff --git a/binder/postBuild b/binder/postBuild index 24f182b07..15179257b 100755 --- a/binder/postBuild +++ b/binder/postBuild @@ -3,6 +3,7 @@ set -eux # do a dev install of the server side python -m pip install -e . --ignore-installed --no-deps -vv jupyter serverextension enable --sys-prefix --py jupyter_lsp +jupyter lsp kernelspec install # should have no extensions jupyter labextension list @@ -11,7 +12,8 @@ jupyter labextension list jlpm bootstrap # link all pieces to lab (no build) -jlpm lab:link && jupyter labextension list +jlpm lab:link +jupyter labextension install --no-build jupyterlab-kernelspy # list extensions before build jupyter labextension list diff --git a/package.json b/package.json index bea2a0ed9..e00b642ba 100644 --- a/package.json +++ b/package.json @@ -11,12 +11,12 @@ "javascript-typescript-langserver": "^2.11.3", "lerna": "^3.13.2", "precise-commits": "^1.0.2", - "prettier": "^1.19.1", + "prettier": "^2.0.5", "tslint-config-prettier": "^1.18.0", "tslint-plugin-prettier": "^2.0.1", "tslint-react": "^4.0.0", "tslint": "^5.15.0", - "typescript": "~3.7.2", + "typescript": "~3.9.3", "unified-language-server": "^0.3.0", "vscode-css-languageserver-bin": "^1.4.0", "vscode-html-languageserver-bin": "^1.4.0", diff --git a/packages/jupyterlab-go-to-definition/jest.config.js b/packages/jupyterlab-go-to-definition/jest.config.js index f51c60154..10ade4d14 100644 --- a/packages/jupyterlab-go-to-definition/jest.config.js +++ b/packages/jupyterlab-go-to-definition/jest.config.js @@ -6,7 +6,7 @@ const reuseFromUpstream = [ 'moduleNameMapper', 'reporters', 'setupFiles', - 'setupFilesAfterEnv' + 'setupFilesAfterEnv', ]; let local = { @@ -15,9 +15,9 @@ let local = { transform: { '\\.(ts|tsx)?$': 'ts-jest', '\\.(js|jsx)?$': './transform.js', - '\\.svg$': 'jest-raw-loader' + '\\.svg$': 'jest-raw-loader', }, - transformIgnorePatterns: ['/node_modules/(?!(@jupyterlab/.*)/)'] + transformIgnorePatterns: ['/node_modules/(?!(@jupyterlab/.*)/)'], }; for (option of reuseFromUpstream) { diff --git a/packages/jupyterlab-go-to-definition/package.json b/packages/jupyterlab-go-to-definition/package.json index f1dbbe2c1..022e21041 100644 --- a/packages/jupyterlab-go-to-definition/package.json +++ b/packages/jupyterlab-go-to-definition/package.json @@ -30,37 +30,37 @@ "test": "jlpm jest --coverage --coverageReporters=cobertura --coverageReporters=html --coverageReporters=text-summary" }, "peerDependencies": { - "@jupyterlab/application": "~2.0.0", - "@jupyterlab/apputils": "~2.0.0", - "@jupyterlab/codeeditor": "~2.0.0", - "@jupyterlab/codemirror": "~2.0.0", - "@jupyterlab/coreutils": "~4.0.0", - "@jupyterlab/docmanager": "~2.0.0", - "@jupyterlab/docregistry": "~2.0.0", - "@jupyterlab/fileeditor": "~2.0.0", - "@jupyterlab/notebook": "~2.0.0", - "@jupyterlab/observables": "~3.0.0", - "@jupyterlab/services": "~5.0.0", + "@jupyterlab/application": "2", + "@jupyterlab/apputils": "2", + "@jupyterlab/codeeditor": "2", + "@jupyterlab/codemirror": "2", + "@jupyterlab/coreutils": "4", + "@jupyterlab/docmanager": "2", + "@jupyterlab/docregistry": "2", + "@jupyterlab/fileeditor": "2", + "@jupyterlab/notebook": "2", + "@jupyterlab/observables": "3", + "@jupyterlab/services": "5", "@lumino/algorithm": "*", "codemirror": "*", "react": "*" }, "devDependencies": { - "@jupyterlab/application": "~2.0.0", - "@jupyterlab/apputils": "~2.0.0", - "@jupyterlab/codeeditor": "~2.0.0", - "@jupyterlab/codemirror": "~2.0.0", - "@jupyterlab/coreutils": "~4.0.0", - "@jupyterlab/docmanager": "~2.0.0", - "@jupyterlab/docregistry": "~2.0.0", - "@jupyterlab/fileeditor": "~2.0.0", - "@jupyterlab/notebook": "~2.0.0", - "@jupyterlab/observables": "~3.0.0", - "@jupyterlab/services": "~5.0.0", + "@jupyterlab/application": "2", + "@jupyterlab/apputils": "2", + "@jupyterlab/codeeditor": "2", + "@jupyterlab/codemirror": "2", + "@jupyterlab/coreutils": "4", + "@jupyterlab/docmanager": "2", + "@jupyterlab/docregistry": "2", + "@jupyterlab/fileeditor": "2", + "@jupyterlab/notebook": "2", + "@jupyterlab/observables": "3", + "@jupyterlab/services": "5", "@lumino/algorithm": "*", "codemirror": "*", "react": "*", - "@jupyterlab/testutils": "~2.0.0", + "@jupyterlab/testutils": "2", "@types/codemirror": "^0.0.74", "@types/chai": "^4.1.7", "@types/jest": "^23.3.11", @@ -69,7 +69,7 @@ "jest-junit": "^8.0.0", "rimraf": "^2.6.1", "ts-jest": "^24.0.2", - "typescript": "~3.7.2", + "typescript": "~3.9.3", "@babel/preset-env": "^7.4.3" }, "jupyterlab": { diff --git a/packages/jupyterlab-go-to-definition/src/editors/codemirror/extension.ts b/packages/jupyterlab-go-to-definition/src/editors/codemirror/extension.ts index 654992386..14af66550 100644 --- a/packages/jupyterlab-go-to-definition/src/editors/codemirror/extension.ts +++ b/packages/jupyterlab-go-to-definition/src/editors/codemirror/extension.ts @@ -81,7 +81,7 @@ export class CodeMirrorExtension extends CodeMirrorTokensProvider this.jumper.jump_to_definition({ token: token, mouseEvent: event, - origin: target + origin: target, }); } event.preventDefault(); @@ -148,7 +148,7 @@ export class CodeMirrorExtension extends CodeMirrorTokensProvider token = { value: lookupName, offset: 0, // dummy offset - type: lookupType + type: lookupType, }; } @@ -203,7 +203,7 @@ export class CodeMirrorExtension extends CodeMirrorTokensProvider while (sibling.lastChild && sibling.textContent !== lookupName) { sibling = sibling.lastChild; } - nextSibling = sibling; + nextSibling = sibling as any; } sibling = nextSibling; diff --git a/packages/jupyterlab-go-to-definition/src/index.ts b/packages/jupyterlab-go-to-definition/src/index.ts index aec7f4c07..83b493651 100644 --- a/packages/jupyterlab-go-to-definition/src/index.ts +++ b/packages/jupyterlab-go-to-definition/src/index.ts @@ -1,6 +1,6 @@ import { JupyterFrontEnd, - JupyterFrontEndPlugin + JupyterFrontEndPlugin, } from '@jupyterlab/application'; import { ICommandPalette } from '@jupyterlab/apputils'; import { INotebookTracker } from '@jupyterlab/notebook'; @@ -25,7 +25,7 @@ const plugin: JupyterFrontEndPlugin = { INotebookTracker, ISettingRegistry, ICommandPalette, - IDocumentManager + IDocumentManager, ], activate: ( app: JupyterFrontEnd, @@ -61,7 +61,7 @@ const plugin: JupyterFrontEndPlugin = { // more reasonable thing would be to create a PR with .onAddCell setTimeout(() => { // now (notebook.widgets.length is likely > 1) - notebook.widgets.every(cell => { + notebook.widgets.every((cell) => { let codemirror_editor = cell.editor as CodeMirrorEditor; let extension = new CodeMirrorExtension(codemirror_editor, jumper); @@ -86,7 +86,7 @@ const plugin: JupyterFrontEndPlugin = { function updateOptions(settings: ISettingRegistry.ISettings): void { let options = settings.composite; - Object.keys(options).forEach(key => { + Object.keys(options).forEach((key) => { if (key === 'modifier') { let modifier = options[key] as KeyModifier; CodeMirrorExtension.modifierKey = modifier; @@ -96,7 +96,7 @@ const plugin: JupyterFrontEndPlugin = { settingRegistry .load(plugin.id) - .then(settings => { + .then((settings) => { updateOptions(settings); settings.changed.connect(() => { updateOptions(settings); @@ -111,25 +111,25 @@ const plugin: JupyterFrontEndPlugin = { jumpNotebook: 'go-to-definition:notebook', jumpFileEditor: 'go-to-definition:file-editor', jumpBackNotebook: 'go-to-definition:notebook-back', - jumpBackFileEditor: 'go-to-definition:file-editor-back' + jumpBackFileEditor: 'go-to-definition:file-editor-back', }; // Add the command to the palette. palette.addItem({ command: cmdIds.jumpNotebook, - category: 'Notebook Cell Operations' + category: 'Notebook Cell Operations', }); palette.addItem({ command: cmdIds.jumpBackNotebook, - category: 'Notebook Cell Operations' + category: 'Notebook Cell Operations', }); palette.addItem({ command: cmdIds.jumpFileEditor, - category: 'Text Editor' + category: 'Text Editor', }); palette.addItem({ command: cmdIds.jumpBackFileEditor, - category: 'Text Editor' + category: 'Text Editor', }); function isEnabled(tracker: any) { @@ -156,7 +156,7 @@ const plugin: JupyterFrontEndPlugin = { notebook.activeCellIndex ); }, - isEnabled: isEnabled(notebookTracker) + isEnabled: isEnabled(notebookTracker), }); app.commands.addCommand(cmdIds.jumpBackNotebook, { @@ -167,7 +167,7 @@ const plugin: JupyterFrontEndPlugin = { let jumper = new NotebookJumper(notebook_widget, documentManager); jumper.jump_back(); }, - isEnabled: isEnabled(notebookTracker) + isEnabled: isEnabled(notebookTracker), }); app.commands.addCommand(cmdIds.jumpFileEditor, { @@ -184,7 +184,7 @@ const plugin: JupyterFrontEndPlugin = { jumper.jump_to_definition({ token, origin: null }); }, - isEnabled: isEnabled(fileEditorTracker) + isEnabled: isEnabled(fileEditorTracker), }); app.commands.addCommand(cmdIds.jumpBackFileEditor, { @@ -195,35 +195,35 @@ const plugin: JupyterFrontEndPlugin = { let jumper = new FileEditorJumper(fileEditorWidget, documentManager); jumper.jump_back(); }, - isEnabled: isEnabled(fileEditorTracker) + isEnabled: isEnabled(fileEditorTracker), }); const bindings = [ { selector: '.jp-Notebook.jp-mod-editMode', keys: ['Ctrl Alt B'], - command: cmdIds.jumpNotebook + command: cmdIds.jumpNotebook, }, { selector: '.jp-Notebook', keys: ['Alt O'], - command: cmdIds.jumpBackNotebook + command: cmdIds.jumpBackNotebook, }, { selector: '.jp-FileEditor', keys: ['Ctrl Alt B'], - command: cmdIds.jumpFileEditor + command: cmdIds.jumpFileEditor, }, { selector: '.jp-FileEditor', keys: ['Alt O'], - command: cmdIds.jumpBackFileEditor - } + command: cmdIds.jumpBackFileEditor, + }, ]; - bindings.map(binding => app.commands.addKeyBinding(binding)); + bindings.map((binding) => app.commands.addKeyBinding(binding)); }, - autoStart: true + autoStart: true, }; /** diff --git a/packages/jupyterlab-go-to-definition/src/jumpers/fileeditor.ts b/packages/jupyterlab-go-to-definition/src/jumpers/fileeditor.ts index 3a3ba282c..5ee5baf1c 100644 --- a/packages/jupyterlab-go-to-definition/src/jumpers/fileeditor.ts +++ b/packages/jupyterlab-go-to-definition/src/jumpers/fileeditor.ts @@ -107,9 +107,9 @@ export class FileEditorJumper extends CodeJumper { return { token: { offset: this.getOffset(position), - value: '' + value: '', }, - index: 0 + index: 0, }; } } diff --git a/packages/jupyterlab-go-to-definition/src/jumpers/jumper.ts b/packages/jupyterlab-go-to-definition/src/jumpers/jumper.ts index f7ab0f78c..9e4d1b698 100644 --- a/packages/jupyterlab-go-to-definition/src/jumpers/jumper.ts +++ b/packages/jupyterlab-go-to-definition/src/jumpers/jumper.ts @@ -39,7 +39,7 @@ const cell_magic_lang_to_tokenizer: any = { js: 'javascript', svg: 'application/xml', html: 'text/html', - latex: 'text/x-stex' + latex: 'text/x-stex', // not working as for now: // 'ruby': 'text/x-ruby', // require additional logic/scripting: @@ -55,7 +55,7 @@ const movement_keys = [ 'Home', 'End', 'PageUp', - 'PageDown' + 'PageDown', ]; const modifiers = ['Alt', 'AltGraph', 'Control', 'Shift']; @@ -73,7 +73,7 @@ const system_keys = [ 'F10', 'F11', 'F12', - 'ContextMenu' + 'ContextMenu', ]; export abstract class CodeJumper { @@ -140,7 +140,7 @@ export abstract class CodeJumper { let filtered = in_earlier_cell ? definitions // all are in an earlier cell : definitions.filter( - otherToken => otherToken.offset < originToken.offset + (otherToken) => otherToken.offset < originToken.offset ); // all are in same cell // but ignore ones that are part of the same assignment expression, @@ -149,7 +149,7 @@ export abstract class CodeJumper { // >>> a = a + 1 // clicking on the last 'a' should jump to the first line, // and not to beginning of the second line. - filtered = filtered.filter(otherToken => { + filtered = filtered.filter((otherToken) => { // If otherToken is in previous cell, we don't need to worry. if (i < stopIndex) { return true; @@ -173,7 +173,7 @@ export abstract class CodeJumper { } return { token: definitionToken, - cellIndex: definitionIndex + cellIndex: definitionIndex, }; } @@ -238,12 +238,12 @@ export abstract class CodeJumper { 'do you really wish to edit it?', buttons: [ Dialog.cancelButton({ label: 'Cancel' }), - Dialog.warnButton({ label: 'Edit anyway' }) - ] + Dialog.warnButton({ label: 'Edit anyway' }), + ], }); dialog_promise - .then(result => { + .then((result) => { if (result.button.accept) { disposable.dispose(); } @@ -285,7 +285,7 @@ export abstract class CodeJumper { editor_index: input_number, line: line_number, column: column, - uri: path + uri: path, }, is_symlink ); @@ -335,7 +335,7 @@ export abstract class CodeJumper { let potential_paths = cell_of_origin_analyzer.guessReferencePath(context); if (this.cwd) { let prefixed_with_cwd = potential_paths.map( - path => this.cwd + '/' + path + (path) => this.cwd + '/' + path ); potential_paths = prefixed_with_cwd.concat(potential_paths); } @@ -346,7 +346,7 @@ export abstract class CodeJumper { this.queryKernel( code, this.kernel, - msg => this.handle_path_from_kernel(msg, potential_paths) // TODO: extract fallback? + (msg) => this.handle_path_from_kernel(msg, potential_paths) // TODO: extract fallback? ); } else { // TODO: extract fallback? @@ -392,7 +392,7 @@ export abstract class CodeJumper { let code = cell_of_origin_analyzer.definitionLocationQuery(context); if (cell_of_origin_analyzer.supportsKernel && this.kernel && code) { - this.queryKernel(code, this.kernel, msg => + this.queryKernel(code, this.kernel, (msg) => this.handle_kernel_inspect(msg, fallback) ); } else { diff --git a/packages/jupyterlab-go-to-definition/src/jumpers/notebook.ts b/packages/jupyterlab-go-to-definition/src/jumpers/notebook.ts index cd41efd5d..7bea3a7dd 100644 --- a/packages/jupyterlab-go-to-definition/src/jumpers/notebook.ts +++ b/packages/jupyterlab-go-to-definition/src/jumpers/notebook.ts @@ -31,14 +31,11 @@ export class NotebookJumper extends CodeJumper { } get cwd() { - return this.widget.model.modelDB.basePath - .split('/') - .slice(0, -1) - .join('/'); + return this.widget.model.modelDB.basePath.split('/').slice(0, -1).join('/'); } get editors() { - return this.notebook.widgets.map(cell => cell.editor); + return this.notebook.widgets.map((cell) => cell.editor); } get language() { @@ -176,9 +173,9 @@ export class NotebookJumper extends CodeJumper { return { token: { offset: this.getOffset(position, cell_index), - value: '' + value: '', }, - index: cell_index + index: cell_index, }; } } diff --git a/packages/jupyterlab-go-to-definition/src/languages/analyzer.ts b/packages/jupyterlab-go-to-definition/src/languages/analyzer.ts index 8e221dc72..c6fe7b9fb 100644 --- a/packages/jupyterlab-go-to-definition/src/languages/analyzer.ts +++ b/packages/jupyterlab-go-to-definition/src/languages/analyzer.ts @@ -114,7 +114,7 @@ export abstract class LanguageAnalyzer { _get_token_index(token: CodeEditor.IToken) { this._maybe_setup_tokens(); return this.tokens.findIndex( - t => + (t) => t.value === token.value && t.offset === token.offset && t.type === token.type @@ -211,7 +211,7 @@ export abstract class LanguageAnalyzer { let terminatingTokens = this._selectTerminatingTokens(tokensBetween); let terminatorsAfterAssignment = terminatingTokens.filter( - token => token.offset > firstAssignment.offset + (token) => token.offset > firstAssignment.offset ); if (!terminatorsAfterAssignment.length) { diff --git a/packages/jupyterlab-go-to-definition/src/languages/python.spec.ts b/packages/jupyterlab-go-to-definition/src/languages/python.spec.ts index e509a9660..bbea4c90a 100644 --- a/packages/jupyterlab-go-to-definition/src/languages/python.spec.ts +++ b/packages/jupyterlab-go-to-definition/src/languages/python.spec.ts @@ -145,7 +145,7 @@ describe('PythonAnalyzer', () => { 'x, (y, z) = a, [b, c]', 'x, (y, z) = a, (b, c)', '(x, y), z = (a, b), c', - '(x, y), z = [a, b], c' + '(x, y), z = [a, b], c', ]; for (let testCase of cases) { @@ -223,7 +223,7 @@ describe('PythonAnalyzer', () => { expect(queryWithSelectedToken(analyzer.guessReferencePath, 'y')).to.eql([ 'y.py', - 'y/__init__.py' + 'y/__init__.py', ]); }); @@ -278,7 +278,7 @@ describe('PythonAnalyzer', () => { expect(queryWithSelectedToken(analyzer.guessReferencePath, 'a')).to.eql([ 'a.py', - 'a/__init__.py' + 'a/__init__.py', ]); expect( diff --git a/packages/jupyterlab-go-to-definition/src/languages/python.ts b/packages/jupyterlab-go-to-definition/src/languages/python.ts index 0aee2019f..fc82f804a 100644 --- a/packages/jupyterlab-go-to-definition/src/languages/python.ts +++ b/packages/jupyterlab-go-to-definition/src/languages/python.ts @@ -101,7 +101,7 @@ export class PythonAnalyzer extends LanguageWithOptionalSemicolons { this.isForLoopOrComprehension, this.isTupleUnpacking, this.isStoreMagic, - this.isRMagicOutput + this.isRMagicOutput, ]; // Matching standalone variable assignment: @@ -124,7 +124,7 @@ export class PythonAnalyzer extends LanguageWithOptionalSemicolons { return { is_switch: is_switch, - switch: is_switch ? candidate : null + switch: is_switch ? candidate : null, }; } diff --git a/packages/jupyterlab-go-to-definition/src/languages/r.spec.ts b/packages/jupyterlab-go-to-definition/src/languages/r.spec.ts index 98f34bcab..f1e607053 100644 --- a/packages/jupyterlab-go-to-definition/src/languages/r.spec.ts +++ b/packages/jupyterlab-go-to-definition/src/languages/r.spec.ts @@ -22,7 +22,7 @@ describe('RAnalyzer', () => { ) { let tokens = tokensProvider.getTokens(); let matchedTokens = tokens.filter( - token => token.value === tokenName && token.type === tokenType + (token) => token.value === tokenName && token.type === tokenType ); let token = matchedTokens[tokenOccurrence - 1]; let tokenId = tokens.indexOf(token); @@ -108,7 +108,7 @@ describe('RAnalyzer', () => { .true; expect(analyzer.guessReferencePath(tokenNeighbourhood('.from'))).to.eql([ - 'other_resources.R' + 'other_resources.R', ]); }); }); diff --git a/packages/jupyterlab-go-to-definition/src/languages/r.ts b/packages/jupyterlab-go-to-definition/src/languages/r.ts index da3222e00..f2a289398 100644 --- a/packages/jupyterlab-go-to-definition/src/languages/r.ts +++ b/packages/jupyterlab-go-to-definition/src/languages/r.ts @@ -5,7 +5,7 @@ export class RAnalyzer extends LanguageWithOptionalSemicolons { definitionRules = [ this.isStandaloneAssignment, this.isImport, - this.isForLoop + this.isForLoop, ]; isAssignment(token: CodeEditor.IToken): boolean { diff --git a/packages/jupyterlab-go-to-definition/src/notebook_private.ts b/packages/jupyterlab-go-to-definition/src/notebook_private.ts index a924ae1ef..4f24ce483 100644 --- a/packages/jupyterlab-go-to-definition/src/notebook_private.ts +++ b/packages/jupyterlab-go-to-definition/src/notebook_private.ts @@ -37,7 +37,7 @@ function _findCell(notebook: Notebook, node: HTMLElement): number { if (node.classList.contains(NB_CELL_CLASS)) { let i = ArrayExt.findFirstIndex( notebook.widgets, - widget => widget.node === node + (widget) => widget.node === node ); if (i !== -1) { return i; diff --git a/packages/jupyterlab-go-to-definition/src/testutils.ts b/packages/jupyterlab-go-to-definition/src/testutils.ts index 9ff5e98b5..a80fb745f 100644 --- a/packages/jupyterlab-go-to-definition/src/testutils.ts +++ b/packages/jupyterlab-go-to-definition/src/testutils.ts @@ -9,7 +9,7 @@ export function matchToken( tokenType = 'variable' ): CodeEditor.IToken { let matchedTokens = tokens.filter( - token => token.value === tokenName && token.type === tokenType + (token) => token.value === tokenName && token.type === tokenType ); return matchedTokens[tokenOccurrence - 1]; } diff --git a/packages/jupyterlab-lsp/jest.config.js b/packages/jupyterlab-lsp/jest.config.js index 98b44bd62..e432cf043 100644 --- a/packages/jupyterlab-lsp/jest.config.js +++ b/packages/jupyterlab-lsp/jest.config.js @@ -7,7 +7,7 @@ const reuseFromUpstream = [ 'reporters', 'setupFiles', 'setupFilesAfterEnv', - 'testPathIgnorePatterns' + 'testPathIgnorePatterns', ]; let local = { @@ -16,9 +16,9 @@ let local = { transform: { '\\.(ts|tsx)?$': 'ts-jest', '\\.(js|jsx)?$': './transform.js', - '\\.svg$': 'jest-raw-loader' + '\\.svg$': 'jest-raw-loader', }, - transformIgnorePatterns: ['/node_modules/(?!(@jupyterlab/.*)/)'] + transformIgnorePatterns: ['/node_modules/(?!(@jupyterlab/.*)/)'], }; for (option of reuseFromUpstream) { diff --git a/packages/jupyterlab-lsp/package.json b/packages/jupyterlab-lsp/package.json index 23b12f885..b0e05d7a3 100644 --- a/packages/jupyterlab-lsp/package.json +++ b/packages/jupyterlab-lsp/package.json @@ -36,27 +36,26 @@ "test": "jlpm jest --coverage --coverageReporters=cobertura --coverageReporters=html --coverageReporters=text-summary" }, "dependencies": { - "@krassowski/jupyterlab_go_to_definition": "~1.0.0", - "lsp-ws-connection": "~0.4.0" + "@krassowski/jupyterlab_go_to_definition": "~1.0.0" }, "devDependencies": { "@babel/preset-env": "^7.4.3", - "@jupyterlab/application": "~2.0.0", - "@jupyterlab/apputils": "~2.0.0", - "@jupyterlab/cells": "~2.0.0", - "@jupyterlab/codeeditor": "~2.0.0", - "@jupyterlab/codemirror": "~2.0.0", - "@jupyterlab/completer": "~2.0.0", - "@jupyterlab/coreutils": "~4.0.0", - "@jupyterlab/docmanager": "~2.0.0", - "@jupyterlab/docregistry": "~2.0.0", - "@jupyterlab/fileeditor": "~2.0.0", - "@jupyterlab/notebook": "~2.0.0", - "@jupyterlab/rendermime": "~2.0.0", - "@jupyterlab/services": "~5.0.0", - "@jupyterlab/statusbar": "~2.0.0", - "@jupyterlab/testutils": "~2.0.0", - "@jupyterlab/tooltip": "~2.0.0", + "@jupyterlab/application": "2", + "@jupyterlab/apputils": "2", + "@jupyterlab/cells": "2", + "@jupyterlab/codeeditor": "2", + "@jupyterlab/codemirror": "2", + "@jupyterlab/completer": "2", + "@jupyterlab/coreutils": "4", + "@jupyterlab/docmanager": "2", + "@jupyterlab/docregistry": "2", + "@jupyterlab/fileeditor": "2", + "@jupyterlab/notebook": "2", + "@jupyterlab/rendermime": "2", + "@jupyterlab/services": "5", + "@jupyterlab/statusbar": "2", + "@jupyterlab/testutils": "2", + "@jupyterlab/tooltip": "2", "@lumino/algorithm": "*", "@lumino/widgets": "*", "@types/chai": "^4.1.7", @@ -72,24 +71,24 @@ "react": "*", "rimraf": "~2.6.2", "ts-jest": "^24.0.2", - "typescript": "~3.7.2" + "typescript": "~3.9.3" }, "peerDependencies": { - "@jupyterlab/application": "~2.0.0", - "@jupyterlab/apputils": "~2.0.0", - "@jupyterlab/cells": "~2.0.0", - "@jupyterlab/codeeditor": "~2.0.0", - "@jupyterlab/codemirror": "~2.0.0", - "@jupyterlab/completer": "~2.0.0", - "@jupyterlab/coreutils": "~4.0.0", - "@jupyterlab/docmanager": "~2.0.0", - "@jupyterlab/docregistry": "~2.0.0", - "@jupyterlab/fileeditor": "~2.0.0", - "@jupyterlab/notebook": "~2.0.0", - "@jupyterlab/rendermime": "~2.0.0", - "@jupyterlab/services": "~5.0.0", - "@jupyterlab/statusbar": "~2.0.0", - "@jupyterlab/tooltip": "~2.0.0", + "@jupyterlab/application": "2", + "@jupyterlab/apputils": "2", + "@jupyterlab/cells": "2", + "@jupyterlab/codeeditor": "2", + "@jupyterlab/codemirror": "2", + "@jupyterlab/completer": "2", + "@jupyterlab/coreutils": "4", + "@jupyterlab/docmanager": "2", + "@jupyterlab/docregistry": "2", + "@jupyterlab/fileeditor": "2", + "@jupyterlab/notebook": "2", + "@jupyterlab/rendermime": "2", + "@jupyterlab/services": "5", + "@jupyterlab/statusbar": "2", + "@jupyterlab/tooltip": "2", "@lumino/algorithm": "*", "@lumino/widgets": "*", "codemirror": "*", diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.ts index 444657169..3752c600d 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.ts @@ -4,16 +4,17 @@ import { IEditorPosition, IRootPosition, IVirtualPosition, - offset_at_position + offset_at_position, } from '../../positioning'; import { IJupyterLabComponentsManager, - StatusMessage + StatusMessage, } from '../jupyterlab/jl_adapter'; /// // this appears to break when @types/node is around // import { Listener } from 'events'; -import * as lsProtocol from 'vscode-languageserver-protocol'; +import * as LSP from '../../comm/lsp-types'; + import { PositionConverter } from '../../converter'; import * as CodeMirror from 'codemirror'; import { ICommandContext } from '../../command_manager'; @@ -22,18 +23,18 @@ import { ILSPConnection } from '../../tokens'; export enum CommandEntryPoint { CellContextMenu, - FileEditorContextMenu + FileEditorContextMenu, } function toDocumentChanges(changes: { - [uri: string]: lsProtocol.TextEdit[]; -}): lsProtocol.TextDocumentEdit[] { + [uri: string]: LSP.TextEdit[]; +}): LSP.TextDocumentEdit[] { let documentChanges = []; for (let uri of Object.keys(changes)) { documentChanges.push({ textDocument: { uri }, - edits: changes[uri] - } as lsProtocol.TextDocumentEdit); + edits: changes[uri], + } as LSP.TextDocumentEdit); } return documentChanges; } @@ -97,7 +98,7 @@ export interface IEditorRange { editor: CodeMirror.Editor; } -function offset_from_lsp(position: lsProtocol.Position, lines: string[]) { +function offset_from_lsp(position: LSP.Position, lines: string[]) { return offset_at_position(PositionConverter.lsp_to_ce(position), lines); } @@ -195,7 +196,7 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { } protected range_to_editor_range( - range: lsProtocol.Range, + range: LSP.Range, cm_editor?: CodeMirror.Editor ): IEditorRange { let start = PositionConverter.lsp_to_cm(range.start) as IVirtualPosition; @@ -213,7 +214,7 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { return { start: this.virtual_document.transform_virtual_to_editor(start), end: this.virtual_document.transform_virtual_to_editor(end), - editor: cm_editor + editor: cm_editor, }; } @@ -221,7 +222,7 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { return this.virtual_editor.coordsChar( { left: event.clientX, - top: event.clientY + top: event.clientY, }, 'window' ) as IRootPosition; @@ -271,7 +272,7 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { /** * Does the edit cover the entire document? */ - protected is_whole_document_edit(edit: lsProtocol.TextEdit) { + protected is_whole_document_edit(edit: LSP.TextEdit) { let value = this.virtual_document.value; let lines = value.split('\n'); let range = edit.range; @@ -283,14 +284,14 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { } protected async apply_edit( - workspaceEdit: lsProtocol.WorkspaceEdit + workspaceEdit: LSP.WorkspaceEdit ): Promise { let current_uri = this.virtual_document.document_info.uri; // Specs: documentChanges are preferred over changes let changes = workspaceEdit.documentChanges ? workspaceEdit.documentChanges.map( - change => change as lsProtocol.TextDocumentEdit + (change) => change as LSP.TextDocumentEdit ) : toDocumentChanges(workspaceEdit.changes); let applied_changes = null; @@ -317,7 +318,7 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { change.edits.length === 1 && this.is_whole_document_edit(change.edits[0]); - let edit: lsProtocol.TextEdit; + let edit: LSP.TextEdit; if (!is_whole_document_edit) { applied_changes = 0; @@ -325,7 +326,7 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { // TODO: make sure that it was not changed since the request was sent (using the returned document version) let lines = value.split('\n'); - let edits_by_offset = new Map(); + let edits_by_offset = new Map(); for (let e of change.edits) { let offset = offset_from_lsp(e.range.start, lines); if (edits_by_offset.has(offset)) { @@ -376,10 +377,10 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { start: { line: 0, character: 0 }, end: { line: lines.length - 1, - character: lines[lines.length - 1].length - } + character: lines[lines.length - 1].length, + }, }, - newText: new_text + newText: new_text, }; console.assert(this.is_whole_document_edit(edit)); } else { @@ -392,7 +393,7 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { appliedChanges: applied_changes, modifiedCells: edited_cells, wasGranular: !is_whole_document_edit, - errors: errors + errors: errors, }; } @@ -447,7 +448,7 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { { line: 0, ch: 0 }, { line: fragment_end.line - fragment_start.line + 1, - ch: 0 + ch: 0, } ); @@ -465,7 +466,7 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { return 1; } - protected apply_single_edit(edit: lsProtocol.TextEdit): number { + protected apply_single_edit(edit: LSP.TextEdit): number { let document = this.virtual_document; let applied_changes = 0; let start = PositionConverter.lsp_to_cm(edit.range.start); @@ -488,7 +489,7 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { line++; let editor = document.get_editor_at_virtual_line({ line: line, - ch: 0 + ch: 0, } as IVirtualPosition); if (editor === last_editor) { @@ -507,11 +508,11 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { recently_replaced = true; fragment_start = { line: line, - ch: 0 + ch: 0, }; fragment_end = { line: line, - ch: 0 + ch: 0, }; last_editor = editor; } diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.ts index 157b78846..69ddb830c 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.ts @@ -1,5 +1,6 @@ import * as CodeMirror from 'codemirror'; -import * as lsProtocol from 'vscode-languageserver-protocol'; +import * as LSP from '../../../comm/lsp-types'; + import { Menu } from '@lumino/widgets'; import { PositionConverter } from '../../../converter'; import { IVirtualPosition, IEditorPosition } from '../../../positioning'; @@ -12,7 +13,7 @@ import { DiagnosticsDatabase, DiagnosticsListing, IEditorDiagnostic, - diagnosticsIcon + diagnosticsIcon, } from './diagnostics_listing'; import { VirtualDocument } from '../../../virtual/document'; import { VirtualEditor } from '../../../virtual/editor'; @@ -92,28 +93,28 @@ export class Diagnostics extends CodeMirrorLSPFeature { if (!diagnostics_panel.is_registered) { let columns_menu = new Menu({ commands: app.commands }); app.commands.addCommand(CMD_COLUMN_VISIBILITY, { - execute: args => { + execute: (args) => { let column = get_column(args['name'] as string); column.is_visible = !column.is_visible; panel_widget.update(); }, - label: args => args['name'] as string, - isToggled: args => { + label: (args) => args['name'] as string, + isToggled: (args) => { let column = get_column(args['name'] as string); return column.is_visible; - } + }, }); columns_menu.title.label = 'Panel columns'; for (let column of panel_widget.content.columns) { columns_menu.addItem({ command: CMD_COLUMN_VISIBILITY, - args: { name: column.name } + args: { name: column.name }, }); } app.contextMenu.addItem({ selector: '.' + DIAGNOSTICS_LISTING_CLASS + ' th', submenu: columns_menu, - type: 'submenu' + type: 'submenu', }); diagnostics_panel.is_registered = true; } @@ -121,15 +122,15 @@ export class Diagnostics extends CodeMirrorLSPFeature { if (!panel_widget.isAttached) { app.shell.add(panel_widget, 'main', { ref: adapter.widget_id, - mode: 'split-bottom' + mode: 'split-bottom', }); } app.shell.activateById(panel_widget.id); }, is_enabled: () => true, label: 'Show diagnostics panel', - rank: 10 - } + rank: 10, + }, ]; register(): void { @@ -168,8 +169,8 @@ export class Diagnostics extends CodeMirrorLSPFeature { }; protected collapse_overlapping_diagnostics( - diagnostics: lsProtocol.Diagnostic[] - ): Map { + diagnostics: LSP.Diagnostic[] + ): Map { // because Range is not a primitive type, the equality of the objects having // the same parameters won't be compared (thus considered equal) in Map. @@ -177,10 +178,10 @@ export class Diagnostics extends CodeMirrorLSPFeature { // an alternative would be using nested [start line][start character][end line][end character] structure, // which would increase the code complexity, but reduce memory use and may be slightly faster. type RangeID = string; - const range_id_to_range = new Map(); - const range_id_to_diagnostics = new Map(); + const range_id_to_range = new Map(); + const range_id_to_diagnostics = new Map(); - function get_range_id(range: lsProtocol.Range): RangeID { + function get_range_id(range: LSP.Range): RangeID { return ( range.start.line + ',' + @@ -192,7 +193,7 @@ export class Diagnostics extends CodeMirrorLSPFeature { ); } - diagnostics.forEach((diagnostic: lsProtocol.Diagnostic) => { + diagnostics.forEach((diagnostic: LSP.Diagnostic) => { let range = diagnostic.range; let range_id = get_range_id(range); range_id_to_range.set(range_id, range); @@ -204,10 +205,10 @@ export class Diagnostics extends CodeMirrorLSPFeature { } }); - let map = new Map(); + let map = new Map(); range_id_to_diagnostics.forEach( - (range_diagnostics: lsProtocol.Diagnostic[], range_id: RangeID) => { + (range_diagnostics: LSP.Diagnostic[], range_id: RangeID) => { let range = range_id_to_range.get(range_id); map.set(range, range_diagnostics); } @@ -216,7 +217,7 @@ export class Diagnostics extends CodeMirrorLSPFeature { return map; } - public handleDiagnostic = (response: lsProtocol.PublishDiagnosticsParams) => { + public handleDiagnostic = (response: LSP.PublishDiagnosticsParams) => { if (response.uri !== this.virtual_document.document_info.uri) { return; } @@ -241,7 +242,7 @@ export class Diagnostics extends CodeMirrorLSPFeature { ); diagnostics_by_range.forEach( - (diagnostics: lsProtocol.Diagnostic[], range: lsProtocol.Range) => { + (diagnostics: LSP.Diagnostic[], range: LSP.Range) => { const start = PositionConverter.lsp_to_cm( range.start ) as IVirtualPosition; @@ -296,7 +297,7 @@ export class Diagnostics extends CodeMirrorLSPFeature { } let highest_severity_code = diagnostics - .map(diagnostic => diagnostic.severity || default_severity) + .map((diagnostic) => diagnostic.severity || default_severity) .sort()[0]; const severity = diagnosticSeverityNames[highest_severity_code]; @@ -316,7 +317,7 @@ export class Diagnostics extends CodeMirrorLSPFeature { let range_in_editor = { start: start_in_editor, - end: end_in_editor + end: end_in_editor, }; // what a pity there is no hash in the standard library... // we could use this: https://stackoverflow.com/a/7616484 though it may not be worth it: @@ -327,25 +328,25 @@ export class Diagnostics extends CodeMirrorLSPFeature { // obviously, the hash would prevent recovery of info from the key. let diagnostic_hash = JSON.stringify({ // diagnostics without ranges - diagnostics: diagnostics.map(diagnostic => [ + diagnostics: diagnostics.map((diagnostic) => [ diagnostic.severity, diagnostic.message, diagnostic.code, diagnostic.source, - diagnostic.relatedInformation + diagnostic.relatedInformation, ]), // the apparent marker position will change in the notebook with every line change for each marker // after the (inserted/removed) line - but such markers should not be invalidated, // i.e. the invalidation should be performed in the cell space, not in the notebook coordinate space, // thus we transform the coordinates and keep the cell id in the hash range: range_in_editor, - editor: this.unique_editor_ids.get(cm_editor) + editor: this.unique_editor_ids.get(cm_editor), }); for (let diagnostic of diagnostics) { diagnostics_list.push({ diagnostic, editor: cm_editor, - range: range_in_editor + range: range_in_editor, }); } @@ -354,9 +355,9 @@ export class Diagnostics extends CodeMirrorLSPFeature { if (!this.marked_diagnostics.has(diagnostic_hash)) { let options: CodeMirror.TextMarkerOptions = { title: diagnostics - .map(d => d.message + (d.source ? ' (' + d.source + ')' : '')) + .map((d) => d.message + (d.source ? ' (' + d.source + ')' : '')) .join('\n'), - className: 'cm-lsp-diagnostic cm-lsp-diagnostic-' + severity + className: 'cm-lsp-diagnostic cm-lsp-diagnostic-' + severity, }; let marker; try { @@ -416,7 +417,7 @@ export class Diagnostics extends CodeMirrorLSPFeature { } } -export function message_without_code(diagnostic: lsProtocol.Diagnostic) { +export function message_without_code(diagnostic: LSP.Diagnostic) { let message = diagnostic.message; let code_str = '' + diagnostic.code; if ( diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics_listing.tsx b/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics_listing.tsx index 3e009a0d7..8123d7609 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics_listing.tsx +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics_listing.tsx @@ -1,7 +1,8 @@ import React, { ReactElement } from 'react'; import { VDomModel, VDomRenderer } from '@jupyterlab/apputils'; import { caretDownIcon, caretUpIcon, LabIcon } from '@jupyterlab/ui-components'; -import * as lsProtocol from 'vscode-languageserver-protocol'; +import * as LSP from '../../../comm/lsp-types'; + import * as CodeMirror from 'codemirror'; import { IEditorPosition } from '../../../positioning'; import { VirtualEditor } from '../../../virtual/editor'; @@ -17,7 +18,7 @@ import diagnosticsSvg from '../../../../style/icons/diagnostics.svg'; export const diagnosticsIcon = new LabIcon({ name: 'lsp:diagnostics', - svgstr: diagnosticsSvg + svgstr: diagnosticsSvg, }); /** @@ -25,7 +26,7 @@ export const diagnosticsIcon = new LabIcon({ * (if used in the context of a FileEditor, then there is just a single editor) */ export interface IEditorDiagnostic { - diagnostic: lsProtocol.Diagnostic; + diagnostic: LSP.Diagnostic; editor: CodeMirror.Editor; range: { start: IEditorPosition; @@ -59,7 +60,7 @@ function DocumentLocator(props: { let { document, editor } = props; let ancestry = document.ancestry; let target_cell: Cell = null; - let breadcrumbs: any = ancestry.map(document => { + let breadcrumbs: any = ancestry.map((document) => { if (!document.parent) { let path = document.path; if ( @@ -86,7 +87,7 @@ function DocumentLocator(props: { let { cell_id: last_cell } = notebook_editor.find_cell_by_editor( last_line.editor ); - target_cell = cell; + target_cell = cell as any; let cell_locator = first_cell === last_cell @@ -200,45 +201,45 @@ export class DiagnosticsListing extends VDomRenderer { ), sort: (a, b) => a.document.id_path.localeCompare(b.document.id_path), - is_available: context => context.db.size > 1 + is_available: (context) => context.db.size > 1, }), new Column({ name: 'Message', - render_cell: row => { + render_cell: (row) => { let message = message_without_code(row.data.diagnostic); return {message}; }, sort: (a, b) => - a.data.diagnostic.message.localeCompare(b.data.diagnostic.message) + a.data.diagnostic.message.localeCompare(b.data.diagnostic.message), }), new Column({ name: 'Code', - render_cell: row => {row.data.diagnostic.code}, + render_cell: (row) => {row.data.diagnostic.code}, sort: (a, b) => (a.data.diagnostic.code + '').localeCompare( b.data.diagnostic.source + '' - ) + ), }), new Column({ name: 'Severity', // TODO: use default diagnostic severity - render_cell: row => ( + render_cell: (row) => ( {diagnosticSeverityNames[row.data.diagnostic.severity || 1]} ), sort: (a, b) => - a.data.diagnostic.severity > b.data.diagnostic.severity ? 1 : -1 + a.data.diagnostic.severity > b.data.diagnostic.severity ? 1 : -1, }), new Column({ name: 'Source', - render_cell: row => {row.data.diagnostic.source}, + render_cell: (row) => {row.data.diagnostic.source}, sort: (a, b) => - a.data.diagnostic.source.localeCompare(b.data.diagnostic.source) + a.data.diagnostic.source.localeCompare(b.data.diagnostic.source), }), new Column({ name: 'Cell', - render_cell: row => {row.cell_number}, + render_cell: (row) => {row.cell_number}, sort: (a, b) => a.cell_number > b.cell_number ? 1 @@ -247,11 +248,11 @@ export class DiagnosticsListing extends VDomRenderer { : a.data.range.start.ch > b.data.range.start.ch ? 1 : -1, - is_available: context => context.editor.has_cells + is_available: (context) => context.editor.has_cells, }), new Column({ name: 'Line:Ch', - render_cell: row => ( + render_cell: (row) => ( {row.data.range.start.line}:{row.data.range.start.ch} @@ -261,8 +262,8 @@ export class DiagnosticsListing extends VDomRenderer { ? 1 : a.data.range.start.ch > b.data.range.start.ch ? 1 - : -1 - }) + : -1, + }), ]; sort(key: string) { @@ -301,7 +302,7 @@ export class DiagnosticsListing extends VDomRenderer { key: virtual_document.uri + ',' + i, document: virtual_document, cell_number: cell_number, - editor: editor + editor: editor, } as IDiagnosticsRow; }); } @@ -309,24 +310,24 @@ export class DiagnosticsListing extends VDomRenderer { let flattened: IDiagnosticsRow[] = [].concat.apply([], by_document); let sorted_column = this.columns.filter( - column => column.name === this.sort_key + (column) => column.name === this.sort_key )[0]; let sorter = sorted_column.sort.bind(sorted_column); let sorted = flattened.sort((a, b) => sorter(a, b) * this.sort_direction); let context: IListingContext = { db: diagnostics_db, - editor: editor + editor: editor, }; let columns_to_display = this.columns.filter( - column => column.is_available(context) && column.is_visible + (column) => column.is_available(context) && column.is_visible ); - let elements = sorted.map(row => { + let elements = sorted.map((row) => { let cm_editor = row.data.editor; - let cells = columns_to_display.map(column => + let cells = columns_to_display.map((column) => column.render_cell(row, context) ); @@ -344,7 +345,7 @@ export class DiagnosticsListing extends VDomRenderer { ); }); - let columns_headers = columns_to_display.map(column => + let columns_headers = columns_to_display.map((column) => column.render_header(this) ); diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts index 0ff92d90a..f2686e7e2 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts @@ -1,5 +1,6 @@ import * as CodeMirror from 'codemirror'; -import * as lsProtocol from 'vscode-languageserver-protocol'; +import * as LSP from '../../../comm/lsp-types'; + import { documentHighlightKindNames } from '../../../lsp'; import { VirtualDocument } from '../../../virtual/document'; import { IRootPosition } from '../../../positioning'; @@ -15,15 +16,15 @@ export class Highlights extends CodeMirrorLSPFeature { execute: ({ connection, virtual_position, document }) => connection.getReferences(virtual_position, document.document_info), is_enabled: ({ connection }) => connection.isReferencesSupported(), - label: 'Highlight references' + label: 'Highlight references', }, { id: 'highlight-type-definition', execute: ({ connection, virtual_position, document }) => connection.getTypeDefinition(virtual_position, document.document_info), is_enabled: ({ connection }) => connection.isTypeDefinitionSupported(), - label: 'Highlight type definition' - } + label: 'Highlight type definition', + }, ]; register(): void { @@ -46,7 +47,7 @@ export class Highlights extends CodeMirrorLSPFeature { } protected handleHighlight = ( - items: lsProtocol.DocumentHighlight[], + items: LSP.DocumentHighlight[], documentUri: string ) => { if (documentUri !== this.virtual_document.document_info.uri) { diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/hover.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/hover.ts index 536056797..28022de5a 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/hover.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/hover.ts @@ -2,9 +2,10 @@ import { getModifierState } from '../../../utils'; import { IRootPosition, is_equal, - IVirtualPosition + IVirtualPosition, } from '../../../positioning'; -import * as lsProtocol from 'vscode-languageserver-protocol'; +import * as LSP from '../../../comm/lsp-types'; + import * as CodeMirror from 'codemirror'; import { CodeMirrorLSPFeature, IEditorRange } from '../feature'; import { Debouncer } from '@lumino/polling'; @@ -15,13 +16,13 @@ const hover_modifier: KeyModifier = 'Control'; export class Hover extends CodeMirrorLSPFeature { name = 'Hover'; protected hover_character: IRootPosition; - private last_hover_response: lsProtocol.Hover; + private last_hover_response: LSP.Hover; private show_next_tooltip: boolean; private last_hover_character: CodeMirror.Position; protected hover_marker: CodeMirror.TextMarker; private virtual_position: IVirtualPosition; - private debounced_get_hover: Debouncer>; + private debounced_get_hover: Debouncer>; register(): void { this.wrapper_handlers.set('mousemove', this.handleMouseOver); @@ -45,7 +46,7 @@ export class Hover extends CodeMirrorLSPFeature { } }); // TODO: make the debounce rate configurable - this.debounced_get_hover = new Debouncer>( + this.debounced_get_hover = new Debouncer>( this.on_hover, 50 ); @@ -62,8 +63,8 @@ export class Hover extends CodeMirrorLSPFeature { }; protected static get_markup_for_hover( - response: lsProtocol.Hover - ): lsProtocol.MarkupContent { + response: LSP.Hover + ): LSP.MarkupContent { let contents = response.contents; // this causes the webpack to fail "Module not found: Error: Can't resolve 'net'" for some reason @@ -71,11 +72,11 @@ export class Hover extends CodeMirrorLSPFeature { /// contents = [contents]; if (typeof contents === 'string') { - contents = [contents as lsProtocol.MarkedString]; + contents = [contents as LSP.MarkedString]; } if (!Array.isArray(contents)) { - return contents as lsProtocol.MarkupContent; + return contents as LSP.MarkupContent; } // now we have MarkedString @@ -85,17 +86,17 @@ export class Hover extends CodeMirrorLSPFeature { // coerce to MarkedString object return { kind: 'plaintext', - value: content + value: content, }; } else { return { kind: 'markdown', - value: '```' + content.language + '\n' + content.value + '```' + value: '```' + content.language + '\n' + content.value + '```', }; } } - public handleHover = (response: lsProtocol.Hover, documentUri: string) => { + public handleHover = (response: LSP.Hover, documentUri: string) => { if (documentUri !== this.virtual_document.document_info.uri) { return; } @@ -206,7 +207,7 @@ export class Hover extends CodeMirrorLSPFeature { } }; - protected editor_range_for_hover(range: lsProtocol.Range): IEditorRange { + protected editor_range_for_hover(range: LSP.Range): IEditorRange { let character = this.hover_character; // NOTE: foreign document ranges are checked before the request is sent, // no need to to this again here. @@ -225,17 +226,17 @@ export class Hover extends CodeMirrorLSPFeature { let start_in_root = { line: character.line, - ch: token.start + ch: token.start, } as IRootPosition; let end_in_root = { line: character.line, - ch: token.end + ch: token.end, } as IRootPosition; return { start: this.virtual_editor.root_position_to_editor(start_in_root), end: this.virtual_editor.root_position_to_editor(end_in_root), - editor: cm_editor + editor: cm_editor, }; } } diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts index 13e3d3fce..449d2316c 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts @@ -21,8 +21,8 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { await jump_feature.handle_jump(targets, document.document_info.uri); }, is_enabled: ({ connection }) => connection.isDefinitionSupported(), - label: 'Jump to definition' - } + label: 'Jump to definition', + }, ]; get jumper() { @@ -53,12 +53,12 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { if ('targetUri' in location_or_link) { return { uri: decodeURI(location_or_link.targetUri), - range: location_or_link.targetRange + range: location_or_link.targetRange, }; } else if ('uri' in location_or_link) { return { uri: decodeURI(location_or_link.uri), - range: location_or_link.range + range: location_or_link.range, }; } } @@ -91,9 +91,9 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { this.jumper.jump({ token: { offset: this.jumper.getOffset(editor_position_ce, editor_index), - value: '' + value: '', }, - index: editor_index + index: editor_index, }); } else { // otherwise there is no virtual document and we expect the returned position to be source position: @@ -114,7 +114,7 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { let jump_data = { editor_index: 0, line: source_position_ce.line, - column: source_position_ce.column + column: source_position_ce.column, }; // assume that we got a relative path to a file within the project @@ -123,7 +123,7 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { try { await this.jumper.document_manager.services.contents.get(uri, { - content: false + content: false, }); this.jumper.global_jump({ uri, ...jump_data }, false); return; diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts index e0af38dff..6378f9ce0 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts @@ -1,8 +1,9 @@ -import * as lsProtocol from 'vscode-languageserver-protocol'; +import * as LSP from '../../../comm/lsp-types'; + import { CodeMirrorLSPFeature, IEditOutcome, - IFeatureCommand + IFeatureCommand, } from '../feature'; import { InputDialog } from '@jupyterlab/apputils'; import { Diagnostics } from './diagnostics'; @@ -19,7 +20,7 @@ export class Rename extends CodeMirrorLSPFeature { connection, virtual_position, document, - features + features, }) => { let old_value = document.getTokenAt(virtual_position).string; const rename_feature = features.get('Rename') as Rename; @@ -41,7 +42,7 @@ export class Rename extends CodeMirrorLSPFeature { const dialog_value = await InputDialog.getText({ title: 'Rename to', text: old_value, - okLabel: 'Rename' + okLabel: 'Rename', }); try { @@ -57,11 +58,11 @@ export class Rename extends CodeMirrorLSPFeature { } }, is_enabled: ({ connection }) => connection.isRenameSupported(), - label: 'Rename symbol' - } + label: 'Rename symbol', + }, ]; - async handleRename(workspaceEdit: lsProtocol.WorkspaceEdit) { + async handleRename(workspaceEdit: LSP.WorkspaceEdit) { let outcome: IEditOutcome; try { @@ -120,7 +121,7 @@ function ux_workaround_for_rope_limitation( let dire_python_errors = ( diagnostics_feature.diagnostics_db.all || [] ).filter( - diagnostic => + (diagnostic) => diagnostic.diagnostic.message.includes('invalid syntax') || diagnostic.diagnostic.message.includes('SyntaxError') || diagnostic.diagnostic.message.includes('IndentationError') @@ -132,7 +133,7 @@ function ux_workaround_for_rope_limitation( let dire_errors = [ ...new Set( - dire_python_errors.map(diagnostic => { + dire_python_errors.map((diagnostic) => { let message = diagnostic.diagnostic.message; let start = diagnostic.range.start; if (editor.has_cells) { @@ -147,7 +148,7 @@ function ux_workaround_for_rope_limitation( return `${message} at line ${start.line}`; } }) - ) + ), ].join(', '); return `Syntax error(s) prevent rename: ${dire_errors}`; } diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/signature.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/signature.ts index 8edd4f1c3..98a9a67d2 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/signature.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/signature.ts @@ -1,4 +1,5 @@ -import * as lsProtocol from 'vscode-languageserver-protocol'; +import * as LSP from '../../../comm/lsp-types'; + import { IRootPosition } from '../../../positioning'; import * as CodeMirror from 'codemirror'; import { CodeMirrorLSPFeature } from '../feature'; @@ -9,19 +10,19 @@ export class Signature extends CodeMirrorLSPFeature { protected _signatureCharacters: string[]; protected get_markup_for_signature_help( - response: lsProtocol.SignatureHelp, + response: LSP.SignatureHelp, language: string - ): lsProtocol.MarkupContent { + ): LSP.MarkupContent { let signatures = new Array(); - response.signatures.forEach(item => { + response.signatures.forEach((item) => { let markdown = this.markdown_from_signature(item, language); signatures.push(markdown); }); return { kind: 'markdown', - value: signatures.join('\n\n') + value: signatures.join('\n\n'), }; } @@ -31,7 +32,7 @@ export class Signature extends CodeMirrorLSPFeature { * them to return markdown instead. */ private markdown_from_signature( - item: lsProtocol.SignatureInformation, + item: LSP.SignatureInformation, language: string ): string { let markdown = '```' + language + '\n' + item.label + '\n```'; @@ -80,7 +81,7 @@ export class Signature extends CodeMirrorLSPFeature { return markdown; } - private handleSignature(response: lsProtocol.SignatureHelp) { + private handleSignature(response: LSP.SignatureHelp) { this.jupyterlab_components.remove_tooltip(); this.virtual_editor.console.log('Signature received', response); @@ -142,7 +143,7 @@ export class Signature extends CodeMirrorLSPFeature { this.virtual_document.document_info, false ) - .then(help => this.handleSignature(help)) + .then((help) => this.handleSignature(help)) .catch(console.warn); } } diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts index 739b1f30e..ca7d67fd6 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts @@ -3,12 +3,12 @@ import { CompletionHandler, ContextConnector, KernelConnector, - CompletionConnector + CompletionConnector, } from '@jupyterlab/completer'; import { CodeEditor } from '@jupyterlab/codeeditor'; import { ReadonlyJSONObject } from '@lumino/coreutils'; import { completionItemKindNames, CompletionTriggerKind } from '../../../lsp'; -import * as lsProtocol from 'vscode-languageserver-protocol'; +import * as LSP from '../../../comm/lsp-types'; import { PositionConverter } from '../../../converter'; import { VirtualDocument } from '../../../virtual/document'; import { VirtualEditor } from '../../../virtual/editor'; @@ -16,7 +16,7 @@ import { CodeMirrorEditor } from '@jupyterlab/codemirror'; import { IEditorPosition, IRootPosition, - IVirtualPosition + IVirtualPosition, } from '../../../positioning'; import { Session } from '@jupyterlab/services'; import { ILSPConnection } from '../../../tokens'; @@ -164,7 +164,7 @@ export class LSPConnector extends DataConnector< virtual_cursor, document, position_in_token - ) + ), ]).then(([kernel, lsp]) => this.merge_replies(kernel, lsp, this._editor) ); @@ -179,7 +179,7 @@ export class LSPConnector extends DataConnector< virtual_cursor, document, position_in_token - ).catch(e => { + ).catch((e) => { console.warn('LSP: hint failed', e); return this.fallback_connector.fetch(request); }); @@ -213,13 +213,13 @@ export class LSPConnector extends DataConnector< { start, end, - text: token.value + text: token.value, }, document.document_info, false, typed_character, this.trigger_kind - )) || []) as lsProtocol.CompletionItem[]; + )) || []) as LSP.CompletionItem[]; let prefix = token.value.slice(0, position_in_token + 1); @@ -255,7 +255,7 @@ export class LSPConnector extends DataConnector< matches.push(text); types.push({ text: text, - type: match.kind ? completionItemKindNames[match.kind] : '' + type: match.kind ? completionItemKindNames[match.kind] : '', }); } @@ -273,8 +273,8 @@ export class LSPConnector extends DataConnector< end: token.offset + prefix.length, matches: matches, metadata: { - _jupyter_types_experimental: types - } + _jupyter_types_experimental: types, + }, }; } @@ -302,7 +302,7 @@ export class LSPConnector extends DataConnector< // Cache all the lsp matches in a memo. const memo = new Set(matches); const memo_types = new Map( - types.map(v => [v.text, v.type]) + types.map((v) => [v.text, v.type]) ); let prefix = ''; @@ -332,7 +332,7 @@ export class LSPConnector extends DataConnector< let kernel_types = kernel.metadata._jupyter_types_experimental as Array< IItemType >; - kernel_types.forEach(itemType => { + kernel_types.forEach((itemType) => { let text = remove_prefix(itemType.text); if (!memo_types.has(text)) { memo_types.set(text, itemType.type); @@ -344,7 +344,7 @@ export class LSPConnector extends DataConnector< } // Add each context match that is not in the memo to the result. - kernel.matches.forEach(match => { + kernel.matches.forEach((match) => { match = remove_prefix(match); if (!memo.has(match) && !priority_matches.has(match)) { matches.push(match); @@ -362,8 +362,8 @@ export class LSPConnector extends DataConnector< ...lsp, matches: final_matches, metadata: { - _jupyter_types_experimental: merged_types - } + _jupyter_types_experimental: merged_types, + }, }; } diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/free_tooltip.ts b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/free_tooltip.ts index 938dcb4e2..81a162531 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/free_tooltip.ts +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/free_tooltip.ts @@ -76,7 +76,7 @@ export class FreeTooltip extends Tooltip { node: this.node, offset: { horizontal: -1 * paddingLeft }, privilege: 'below', - style: style + style: style, }); } } diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/statusbar.tsx b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/statusbar.tsx index c9a320d0d..e8d835430 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/statusbar.tsx +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/statusbar.tsx @@ -14,14 +14,14 @@ import { interactiveItem, Popup, showPopup, - TextItem + TextItem, } from '@jupyterlab/statusbar'; import { LabIcon, refreshIcon, runningIcon, - stopIcon + stopIcon, } from '@jupyterlab/ui-components'; import { JupyterLabWidgetAdapter } from '../jl_adapter'; import { collect_documents, VirtualDocument } from '../../../virtual/document'; @@ -71,8 +71,8 @@ class CollapsibleList extends React.Component< } handleClick = () => { - this.setState(state => ({ - isCollapsed: !state.isCollapsed + this.setState((state) => ({ + isCollapsed: !state.isCollapsed, })); }; @@ -111,7 +111,7 @@ class LSPPopup extends VDomRenderer { let key = -1; for (let [ session, - documents_by_language + documents_by_language, ] of this.model.documents_by_server.entries()) { key += 1; let documents_html = new Array(); @@ -271,7 +271,7 @@ export class LSPStatus extends VDomRenderer { this._popup = showPopup({ body: new LSPPopup(this.model), anchor: this, - align: 'left' + align: 'left', }); }; } @@ -289,7 +289,7 @@ export interface IStatus { function collect_languages(virtual_document: VirtualDocument): Set { let documents = collect_documents(virtual_document); return new Set( - [...documents].map(document => document.language.toLocaleLowerCase()) + [...documents].map((document) => document.language.toLocaleLowerCase()) ); } @@ -300,14 +300,14 @@ const iconByStatus: StatusIcon = { waiting: refreshIcon, initialized: runningIcon, initializing: refreshIcon, - connecting: refreshIcon + connecting: refreshIcon, }; const shortMessageByStatus: StatusMap = { waiting: 'Waiting...', initialized: 'Fully initialized', initializing: 'Partially initialized', - connecting: 'Connecting...' + connecting: 'Connecting...', }; export namespace LSPStatus { @@ -357,7 +357,7 @@ export namespace LSPStatus { for (let document of documents.values()) { let language = document.language.toLocaleLowerCase(); let servers = this.available_servers.filter( - server => server.spec.languages.indexOf(language) !== -1 + (server) => server.spec.languages.indexOf(language) !== -1 ); if (servers.length > 1) { console.warn('More than one server per language for' + language); @@ -385,7 +385,7 @@ export namespace LSPStatus { get servers_available_not_in_use(): Array { return this.available_servers.filter( - server => !this.is_server_running(server) + (server) => !this.is_server_running(server) ); } @@ -401,7 +401,8 @@ export namespace LSPStatus { get missing_languages(): Array { // TODO: false negative for r vs R? return [...this.detected_languages].filter( - language => !this.supported_languages.has(language.toLocaleLowerCase()) + (language) => + !this.supported_languages.has(language.toLocaleLowerCase()) ); } @@ -450,7 +451,7 @@ export namespace LSPStatus { connected_documents, initialized_documents, detected_documents: new Set([...detected_documents.values()]), - status + status, }; } @@ -494,7 +495,7 @@ export namespace LSPStatus { msg = `Fully connected, but ${uninitialized.size}/${ status.detected_documents.size } virtual document${plural} stuck uninitialized: ${[...uninitialized] - .map(document => document.id_path) + .map((document) => document.id_path) .join(', ')}`; } else { const unconnected = new Set(status.detected_documents); @@ -507,7 +508,7 @@ export namespace LSPStatus { } virtual document${plural} connected (${ status.open_connections.length } connections; waiting for: ${[...unconnected] - .map(document => document.id_path) + .map((document) => document.id_path) .join(', ')})`; } return msg; diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/file_editor.ts b/packages/jupyterlab-lsp/src/adapters/jupyterlab/file_editor.ts index 771d06ce3..56c6a9a10 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/file_editor.ts +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/file_editor.ts @@ -84,12 +84,12 @@ export class FileEditorAdapter extends JupyterLabWidgetAdapter { this.current_completion_connector = new LSPConnector({ editor: this.editor.editor, connections: this.connection_manager.connections, - virtual_editor: this.virtual_editor + virtual_editor: this.virtual_editor, }); this.completion_manager.register({ connector: this.current_completion_connector, editor: this.editor.editor, - parent: this.widget + parent: this.widget, }); } diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/jl_adapter.ts b/packages/jupyterlab-lsp/src/adapters/jupyterlab/jl_adapter.ts index 4bb07efd2..d47103593 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/jl_adapter.ts +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/jl_adapter.ts @@ -7,7 +7,7 @@ import { CodeEditor } from '@jupyterlab/codeeditor'; import { IRenderMimeRegistry } from '@jupyterlab/rendermime'; import { DocumentRegistry, IDocumentWidget } from '@jupyterlab/docregistry'; -import * as lsProtocol from 'vscode-languageserver-protocol'; +import * as LSP from '../../comm/lsp-types'; import { FreeTooltip } from './components/free_tooltip'; import { Widget } from '@lumino/widgets'; import { VirtualEditor } from '../../virtual/editor'; @@ -29,7 +29,7 @@ import { JSONObject } from '@lumino/coreutils'; import { DocumentConnectionManager, IDocumentConnectionData, - ISocketConnectionOptions + ISocketConnectionOptions, } from '../../connection_manager'; import { Rename } from '../codemirror/features/rename'; @@ -40,13 +40,13 @@ export const lsp_features: Array = [ Hover, Signature, JumpToDefinition, - Rename + Rename, ]; export interface IJupyterLabComponentsManager { invoke_completer: (kind: CompletionTriggerKind) => void; create_tooltip: ( - markup: lsProtocol.MarkupContent, + markup: LSP.MarkupContent, cm_editor: CodeMirror.Editor, position: IEditorPosition ) => FreeTooltip; @@ -95,7 +95,7 @@ const mime_type_language_map: JSONObject = { 'text/x-rsrc': 'r', 'text/x-r-source': 'r', // currently there are no LSP servers for IPython we are aware of - 'text/x-ipython': 'python' + 'text/x-ipython': 'python', }; /** @@ -434,7 +434,7 @@ export abstract class JupyterLabWidgetAdapter let options: ISocketConnectionOptions = { virtual_document, language, - document_path: this.document_path + document_path: this.document_path, }; let connection = await this.connection_manager.connect(options); @@ -443,7 +443,7 @@ export abstract class JupyterLabWidgetAdapter return { connection, - virtual_document + virtual_document, }; } @@ -494,10 +494,7 @@ export abstract class JupyterLabWidgetAdapter update_documents(_slot: any) { // update the virtual documents (sending the updates to LSP is out of scope here) - this.virtual_editor - .update_documents() - .then() - .catch(console.warn); + this.virtual_editor.update_documents().then().catch(console.warn); } get_position_from_context_menu(): IRootPosition { @@ -523,7 +520,7 @@ export abstract class JupyterLabWidgetAdapter return this.virtual_editor.coordsChar( { left: left, - top: top + top: top, }, 'window' ) as IRootPosition; @@ -542,7 +539,7 @@ export abstract class JupyterLabWidgetAdapter features: this.get_features(document), editor: this.virtual_editor, app: this.app, - adapter: this + adapter: this, }; } @@ -552,7 +549,7 @@ export abstract class JupyterLabWidgetAdapter } public create_tooltip( - markup: lsProtocol.MarkupContent, + markup: LSP.MarkupContent, cm_editor: CodeMirror.Editor, position: IEditorPosition ): FreeTooltip { @@ -567,7 +564,7 @@ export abstract class JupyterLabWidgetAdapter editor: this.find_ce_editor(cm_editor), rendermime: this.rendermime_registry, position: PositionConverter.cm_to_ce(position), - moveToLineEnd: false + moveToLineEnd: false, }); Widget.attach(tooltip, document.body); this._tooltip = tooltip; diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/notebook.ts b/packages/jupyterlab-lsp/src/adapters/jupyterlab/notebook.ts index ac77c0a56..97ce83dd2 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/notebook.ts +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/notebook.ts @@ -172,7 +172,7 @@ export class NotebookAdapter extends JupyterLabWidgetAdapter { editor: cell.editor, connections: this.connection_manager.connections, virtual_editor: this.virtual_editor, - session: this.widget.sessionContext.session + session: this.widget.sessionContext.session, }); } @@ -188,7 +188,7 @@ export class NotebookAdapter extends JupyterLabWidgetAdapter { const handler = this.completion_manager.register({ connector: this.current_completion_connector, editor: cell.editor, - parent: this.widget + parent: this.widget, }); this.current_completion_handler = handler; this.widget.content.activeCellChanged.connect(this.on_completions, this); diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index 65412f686..e137338d9 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -1,4 +1,4 @@ -import * as LSP from 'vscode-languageserver-protocol'; +import * as LSP from './lsp-types'; import { ILSPConnection } from '../tokens'; import { CommLSP } from './lsp'; @@ -6,7 +6,7 @@ import { ICommRPC } from '.'; import { Signal } from '@lumino/signaling'; import { registerServerCapability, - unregisterServerCapability + unregisterServerCapability, } from './server-capability-registration'; export class CommConnection extends CommLSP implements ILSPConnection { @@ -14,7 +14,7 @@ export class CommConnection extends CommLSP implements ILSPConnection { protected _isInitialized = false; public serverCapabilities: LSP.ServerCapabilities; - protected documentsToOpen: ILSPConnection.IDocumentInfo[]; + protected documentsToOpen: ILSPConnection.IDocumentInfo[] = []; private _rootUri: string; private _signals: Map< @@ -85,56 +85,56 @@ export class CommConnection extends CommLSP implements ILSPConnection { [ILSPConnection.LegacyEvents.ON_CLOSE, new Signal(this)], [ILSPConnection.LegacyEvents.ON_DIAGNOSTIC, new Signal(this)], [ILSPConnection.LegacyEvents.ON_LOGGING, new Signal(this)], - [ILSPConnection.LegacyEvents.ON_INITIALIZED, new Signal(this)] + [ILSPConnection.LegacyEvents.ON_INITIALIZED, new Signal(this)], ]); } protected initHandlers() { // logging this.onNotification(CommLSP.SHOW_MESSAGE, { - onMsg: async params => { + onMsg: async (params) => { this._signals.get(ILSPConnection.LegacyEvents.ON_LOGGING).emit(params); - } + }, }); this.onRequest(CommLSP.SHOW_MESSAGE_REQUEST, { - onMsg: async params => { + onMsg: async (params) => { this._signals.get(ILSPConnection.LegacyEvents.ON_LOGGING).emit(params); // nb: this seems important return null; - } + }, }); // diagnostics this.onNotification(CommLSP.PUBLISH_DIAGNOSTICS, { - onMsg: async params => { + onMsg: async (params) => { this._signals .get(ILSPConnection.LegacyEvents.ON_DIAGNOSTIC) .emit(params); - } + }, }); // capabilities this.onRequest(CommLSP.REGISTER_CAPABILITY, { - onMsg: async params => { + onMsg: async (params) => { for (const registration of params.registrations) { this.serverCapabilities = registerServerCapability( this.serverCapabilities, registration ); } - } + }, }); this.onRequest(CommLSP.UNREGISTER_CAPABILITY, { - onMsg: async params => { + onMsg: async (params) => { for (const registration of params.unregisterations) { this.serverCapabilities = unregisterServerCapability( this.serverCapabilities, registration ); } - } + }, }); } @@ -161,13 +161,13 @@ export class CommConnection extends CommLSP implements ILSPConnection { textDocument: { hover: { dynamicRegistration: true, - contentFormat: ['markdown', 'plaintext'] + contentFormat: ['markdown', 'plaintext'], }, synchronization: { dynamicRegistration: true, willSave: false, didSave: true, - willSaveWaitUntil: false + willSaveWaitUntil: false, }, completion: { dynamicRegistration: true, @@ -176,43 +176,43 @@ export class CommConnection extends CommLSP implements ILSPConnection { commitCharactersSupport: true, documentationFormat: ['markdown', 'plaintext'], deprecatedSupport: false, - preselectSupport: false + preselectSupport: false, }, - contextSupport: false + contextSupport: false, }, signatureHelp: { dynamicRegistration: true, signatureInformation: { - documentationFormat: ['markdown', 'plaintext'] - } + documentationFormat: ['markdown', 'plaintext'], + }, }, declaration: { dynamicRegistration: true, - linkSupport: true + linkSupport: true, }, definition: { dynamicRegistration: true, - linkSupport: true + linkSupport: true, }, typeDefinition: { dynamicRegistration: true, - linkSupport: true + linkSupport: true, }, implementation: { dynamicRegistration: true, - linkSupport: true - } + linkSupport: true, + }, } as LSP.ClientCapabilities, workspace: { didChangeConfiguration: { - dynamicRegistration: true - } - } as LSP.WorkspaceClientCapabilities + dynamicRegistration: true, + }, + } as LSP.WorkspaceClientCapabilities, } as LSP.ClientCapabilities, initializationOptions: null, processId: null, rootUri: this._rootUri, - workspaceFolders: null + workspaceFolders: null, }; } @@ -221,20 +221,22 @@ export class CommConnection extends CommLSP implements ILSPConnection { return; } - const { capabilities } = await this.request( + const initialized = await this.request( CommLSP.INITIALIZE, this.initializeParams() ); + const { capabilities } = initialized; + this.serverCapabilities = capabilities; - this.notify(CommLSP.INITIALIZED, null).catch(err => console.warn(err)); + this.notify(CommLSP.INITIALIZED, null).catch((err) => console.warn(err)); this._isInitialized = true; - this.notify(CommLSP.DID_CHANGE_CONFIGURATION, { settings: {} }).catch(err => - console.warn(err) - ); + this.notify(CommLSP.DID_CHANGE_CONFIGURATION, { + settings: {}, + }).catch((err) => console.warn(err)); while (this.documentsToOpen.length) { this.sendOpen(this.documentsToOpen.pop()); @@ -300,9 +302,9 @@ export class CommConnection extends CommLSP implements ILSPConnection { uri: documentInfo.uri, languageId: documentInfo.languageId, text: documentInfo.text, - version: documentInfo.version - } - }).catch(err => console.warn(err)); + version: documentInfo.version, + }, + }).catch((err) => console.warn(err)); this.sendChange(documentInfo); } @@ -313,10 +315,10 @@ export class CommConnection extends CommLSP implements ILSPConnection { this.notify(CommLSP.DID_CHANGE, { textDocument: { uri: documentInfo.uri, - version: documentInfo.version + version: documentInfo.version, }, - contentChanges: [{ text: documentInfo.text }] - }).catch(err => console.warn(err)); + contentChanges: [{ text: documentInfo.text }], + }).catch((err) => console.warn(err)); documentInfo.version++; } @@ -345,13 +347,13 @@ export class CommConnection extends CommLSP implements ILSPConnection { } return await this.request(CommLSP.RENAME, { textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch + character: location.ch, }, - newName + newName, }); } @@ -366,12 +368,12 @@ export class CommConnection extends CommLSP implements ILSPConnection { return await this.request(CommLSP.DOCUMENT_HIGHLIGHT, { textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch - } + character: location.ch, + }, }); } @@ -385,12 +387,12 @@ export class CommConnection extends CommLSP implements ILSPConnection { } return await this.request(CommLSP.HOVER, { textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch - } + character: location.ch, + }, }); } @@ -415,12 +417,12 @@ export class CommConnection extends CommLSP implements ILSPConnection { return await this.request(CommLSP.SIGNATURE_HELP, { textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch - } + character: location.ch, + }, }); } @@ -438,16 +440,16 @@ export class CommConnection extends CommLSP implements ILSPConnection { const items = await this.request(CommLSP.COMPLETION, { textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch + character: location.ch, }, context: { triggerKind: triggerKind || LSP.CompletionTriggerKind.Invoked, - triggerCharacter - } + triggerCharacter, + }, }); if (Array.isArray(items)) { @@ -467,15 +469,15 @@ export class CommConnection extends CommLSP implements ILSPConnection { return this.request(CommLSP.REFERENCES, { context: { - includeDeclaration: true + includeDeclaration: true, }, textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch - } + character: location.ch, + }, }); } @@ -487,10 +489,10 @@ export class CommConnection extends CommLSP implements ILSPConnection { this.notify(CommLSP.DID_SAVE, { textDocument: { uri: documentInfo.uri, - version: documentInfo.version - } as LSP.VersionedTextDocumentIdentifier, - text: documentInfo.text - }).catch(err => console.warn(err)); + version: documentInfo.version, + }, + text: documentInfo.text, + }).catch((err) => console.warn(err)); } async getTypeDefinition( @@ -504,12 +506,12 @@ export class CommConnection extends CommLSP implements ILSPConnection { return await this.request(CommLSP.TYPE_DEFINITION, { textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch - } + character: location.ch, + }, }); } @@ -524,12 +526,12 @@ export class CommConnection extends CommLSP implements ILSPConnection { return this.request(CommLSP.DEFINITION, { textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch - } + character: location.ch, + }, }); } @@ -544,10 +546,10 @@ export class CommConnection extends CommLSP implements ILSPConnection { this.notify(CommLSP.DID_CHANGE, { textDocument: { uri: documentInfo.uri, - version: documentInfo.version + version: documentInfo.version, }, - contentChanges: changeEvents - }).catch(err => console.warn(err)); + contentChanges: changeEvents, + }).catch((err) => console.warn(err)); documentInfo.version++; } } diff --git a/packages/jupyterlab-lsp/src/comm/json-rpc.ts b/packages/jupyterlab-lsp/src/comm/json-rpc.ts index a45e6a497..984baa301 100644 --- a/packages/jupyterlab-lsp/src/comm/json-rpc.ts +++ b/packages/jupyterlab-lsp/src/comm/json-rpc.ts @@ -39,6 +39,7 @@ export class CommRPC implements ICommRPC { this._comm = comm; if (this._comm) { + console.warn('installing handleMessage', this._comm); this._comm.onMsg = this.handleMessage.bind(this); } this._commChanged.emit(void 0); @@ -60,15 +61,23 @@ export class CommRPC implements ICommRPC { options?: ICommRPC.ICommunicateOptions ): Promise { const id = this.getNextId(); - let promise: Promise; - if (options?.noWait === true) { - const delegate = new PromiseDelegate(); + const delegate = new PromiseDelegate(); + const noWait = options?.noWait === true; + + if (!noWait) { this._responsePromises.set(id, delegate); - promise = delegate.promise; } - // nb: just dropping the future on the ground - this.comm.send({ jsonrpc: this._jsonrpc, id, method, params }); - return promise; + + const msg = { jsonrpc: this._jsonrpc, id, method, params }; + + console.warn('sending', this.comm.commId, msg); + this.comm.send(msg, null, null, true); + + if (noWait) { + delegate.resolve(null); + } + + return delegate.promise; } addHandler( @@ -108,6 +117,7 @@ export class CommRPC implements ICommRPC { * Resolve a previously-requested method, or notify on the appropriate signal */ protected handleMessage(msg: ICommRPC.IIRPCCommMsg) { + console.warn('handle msg', msg); const { result, id, params, method } = msg.content .data as ICommRPC.TRPCData; @@ -127,17 +137,17 @@ export class CommRPC implements ICommRPC { if (handler != null) { handler .onMsg(params) - .then(result => { + .then((result) => { if (result != null) { this.comm.send({ jsonrpc: this._jsonrpc, id, result }); } }) - .catch(error => { + .catch((error) => { if (error?.rpcError) { this.comm.send({ jsonrpc: this._jsonrpc, id, - error: error.rpcError + error: error.rpcError, }); } else { throw error; diff --git a/packages/jupyterlab-lsp/src/comm/lsp-constants.ts b/packages/jupyterlab-lsp/src/comm/lsp-constants.ts new file mode 100644 index 000000000..e34bb112b --- /dev/null +++ b/packages/jupyterlab-lsp/src/comm/lsp-constants.ts @@ -0,0 +1,21 @@ +/** reproduced here to avoid imports */ +export namespace CompletionTriggerKind { + /** + * Completion was triggered by typing an identifier (24x7 code + * complete), manual invocation (e.g Ctrl+Space) or via API. + */ + export const Invoked: 1 = 1; + + /** + * Completion was triggered by a trigger character specified by + * the `triggerCharacters` properties of the `CompletionRegistrationOptions`. + */ + export const TriggerCharacter: 2 = 2; + + /** + * Completion was re-triggered as the current completion list is incomplete. + */ + export const TriggerForIncompleteCompletions: 3 = 3; +} + +export type CompletionTriggerKind = 1 | 2 | 3; diff --git a/packages/jupyterlab-lsp/src/comm/lsp-types.ts b/packages/jupyterlab-lsp/src/comm/lsp-types.ts new file mode 100644 index 000000000..0fc1a9f32 --- /dev/null +++ b/packages/jupyterlab-lsp/src/comm/lsp-types.ts @@ -0,0 +1,89 @@ +import type { + CompletionList, + CompletionItem, + Location, + LocationLink, + PublishDiagnosticsParams, + ShowMessageParams, + RegistrationParams, + UnregistrationParams, + MessageActionItem, + ShowMessageRequestParams, + InitializeParams, + InitializedParams, + DidOpenTextDocumentParams, + DidChangeTextDocumentParams, + DidSaveTextDocumentParams, + DidChangeConfigurationParams, + CompletionParams, + TextDocumentPositionParams, + ReferenceParams, + RenameParams, + DocumentSymbolParams, + DocumentHighlight, + Hover, + InitializeResult, + SignatureHelp, + WorkspaceEdit, + DocumentSymbol, + ServerCapabilities, + ClientCapabilities, + WorkspaceClientCapabilities, + TextDocumentContentChangeEvent, + Position, + TextDocumentEdit, + TextEdit, + Range, + Diagnostic, + MarkupContent, + MarkedString, + SignatureInformation, + Registration, + Unregistration, +} from 'vscode-languageserver-protocol'; + +export type { + CompletionList, + CompletionItem, + Location, + LocationLink, + PublishDiagnosticsParams, + ShowMessageParams, + RegistrationParams, + UnregistrationParams, + MessageActionItem, + ShowMessageRequestParams, + InitializeParams, + InitializedParams, + DidOpenTextDocumentParams, + DidChangeTextDocumentParams, + DidSaveTextDocumentParams, + DidChangeConfigurationParams, + CompletionParams, + TextDocumentPositionParams, + ReferenceParams, + RenameParams, + DocumentSymbolParams, + DocumentHighlight, + Hover, + InitializeResult, + SignatureHelp, + WorkspaceEdit, + DocumentSymbol, + ServerCapabilities, + ClientCapabilities, + WorkspaceClientCapabilities, + TextDocumentContentChangeEvent, + Position, + TextDocumentEdit, + TextEdit, + Range, + Diagnostic, + MarkupContent, + MarkedString, + SignatureInformation, + Registration, + Unregistration, +}; + +export * from './lsp-constants'; diff --git a/packages/jupyterlab-lsp/src/comm/lsp.ts b/packages/jupyterlab-lsp/src/comm/lsp.ts index b1e31df9b..7c566f515 100644 --- a/packages/jupyterlab-lsp/src/comm/lsp.ts +++ b/packages/jupyterlab-lsp/src/comm/lsp.ts @@ -1,4 +1,4 @@ -import * as LSP from 'vscode-languageserver-protocol'; +import * as LSP from './lsp-types'; import { ICommRPC } from '.'; import { CommRPC } from './json-rpc'; diff --git a/packages/jupyterlab-lsp/src/comm/server-capability-registration.ts b/packages/jupyterlab-lsp/src/comm/server-capability-registration.ts index 12d158634..2bc5778d6 100644 --- a/packages/jupyterlab-lsp/src/comm/server-capability-registration.ts +++ b/packages/jupyterlab-lsp/src/comm/server-capability-registration.ts @@ -1,8 +1,8 @@ import { Registration, ServerCapabilities, - Unregistration -} from 'vscode-languageserver-protocol'; + Unregistration, +} from '../comm/lsp-types'; interface IFlexibleServerCapabilities extends ServerCapabilities { [key: string]: any; diff --git a/packages/jupyterlab-lsp/src/command_manager.spec.ts b/packages/jupyterlab-lsp/src/command_manager.spec.ts index 2c7d40777..0f1bbfcea 100644 --- a/packages/jupyterlab-lsp/src/command_manager.spec.ts +++ b/packages/jupyterlab-lsp/src/command_manager.spec.ts @@ -2,7 +2,7 @@ import { expect } from 'chai'; import { ContextCommandManager, ICommandContext } from './command_manager'; import { CommandEntryPoint, - IFeatureCommand + IFeatureCommand, } from './adapters/codemirror/feature'; import { JupyterLabWidgetAdapter } from './adapters/jupyterlab/jl_adapter'; @@ -33,7 +33,7 @@ describe('ContextMenuCommandManager', () => { is_enabled: () => { return true; }, - label: 'Command' + label: 'Command', } as IFeatureCommand; describe('#get_rank()', () => { @@ -58,14 +58,14 @@ describe('ContextMenuCommandManager', () => { let rank = manager.get_rank({ ...base_command, rank: 1, - is_rank_relative: false + is_rank_relative: false, }); expect(rank).to.equal(1); rank = manager.get_rank({ ...base_command, rank: 1, - is_rank_relative: true + is_rank_relative: true, }); expect(rank).to.equal(1 / 5); }); diff --git a/packages/jupyterlab-lsp/src/command_manager.ts b/packages/jupyterlab-lsp/src/command_manager.ts index c1f368f9b..2c57705b9 100644 --- a/packages/jupyterlab-lsp/src/command_manager.ts +++ b/packages/jupyterlab-lsp/src/command_manager.ts @@ -4,7 +4,7 @@ import { JupyterLabWidgetAdapter } from './adapters/jupyterlab/jl_adapter'; import { CommandEntryPoint, IFeatureCommand, - ILSPFeature + ILSPFeature, } from './adapters/codemirror/feature'; import { IEditorTracker } from '@jupyterlab/fileeditor'; import { FileEditorAdapter } from './adapters/jupyterlab/file_editor'; @@ -15,7 +15,7 @@ import { ILSPConnection } from './tokens'; import { IEditorPosition, IRootPosition, - IVirtualPosition + IVirtualPosition, } from './positioning'; import { VirtualEditor } from './virtual/editor'; import { PositionConverter } from './converter'; @@ -56,7 +56,7 @@ abstract class LSPCommandManager { execute: () => this.execute(cmd), isEnabled: () => this.is_enabled(cmd), isVisible: () => this.is_visible(cmd), - label: cmd.label + label: cmd.label, }); if (this.should_attach(cmd)) { @@ -103,7 +103,7 @@ export abstract class ContextCommandManager extends LSPCommandManager { this.app.contextMenu.addItem({ selector: this.selector, command: this.create_id(command), - rank: this.get_rank(command) + rank: this.get_rank(command), }); } @@ -111,7 +111,7 @@ export abstract class ContextCommandManager extends LSPCommandManager { this.app.contextMenu.addItem({ type: 'separator', selector: this.selector, - rank: this.rank_group + position_in_group + rank: this.rank_group + position_in_group, }); } diff --git a/packages/jupyterlab-lsp/src/connection_manager.ts b/packages/jupyterlab-lsp/src/connection_manager.ts index b6c13c685..bee4d2d66 100644 --- a/packages/jupyterlab-lsp/src/connection_manager.ts +++ b/packages/jupyterlab-lsp/src/connection_manager.ts @@ -7,7 +7,7 @@ import { sleep, until_ready } from './utils'; import { TLanguageServerId, ILanguageServerManager, - ILSPConnection + ILSPConnection, } from './tokens'; import { CommConnection } from './comm/connection'; @@ -130,7 +130,7 @@ export class DocumentConnectionManager { ); const language_server_id = this.language_server_manager.getServerId({ - language + language, }); // lazily load 1) the underlying library (1.5mb) and/or 2) a live WebSocket- @@ -180,19 +180,19 @@ export class DocumentConnectionManager { // } // }); - connection.on('serverInitialized', capabilities => { - this.forEachDocumentOfConnection(connection, virtual_document => { + connection.on('serverInitialized', (capabilities) => { + this.forEachDocumentOfConnection(connection, (virtual_document) => { // TODO: is this still neccessary, e.g. for status bar to update responsively? this.initialized.emit({ connection, virtual_document }); }); }); - connection.on('close', closed_manually => { + connection.on('close', (closed_manually) => { if (!closed_manually) { console.warn('LSP: Connection unexpectedly disconnected'); } else { console.warn('LSP: Connection closed'); - this.forEachDocumentOfConnection(connection, virtual_document => { + this.forEachDocumentOfConnection(connection, (virtual_document) => { this.closed.emit({ connection, virtual_document }); }); } @@ -205,7 +205,7 @@ export class DocumentConnectionManager { ) { for (const [ virtual_document_id_path, - a_connection + a_connection, ] of this.connections.entries()) { if (connection !== a_connection) { continue; @@ -237,7 +237,7 @@ export class DocumentConnectionManager { .then(() => { success = true; }) - .catch(e => { + .catch((e) => { console.warn(e); }); @@ -297,7 +297,7 @@ export namespace DocumentConnectionManager { : virtualDocumentsUri; const language_server_id = Private.getLanguageServerManager().getServerId({ - language + language, }); return { @@ -309,7 +309,7 @@ export namespace DocumentConnectionManager { ILanguageServerManager.URL_NS, 'ws', language_server_id - ) + ), }; } diff --git a/packages/jupyterlab-lsp/src/converter.ts b/packages/jupyterlab-lsp/src/converter.ts index 7b4e5a648..6ec29ee64 100644 --- a/packages/jupyterlab-lsp/src/converter.ts +++ b/packages/jupyterlab-lsp/src/converter.ts @@ -1,13 +1,13 @@ -import * as lsProtocol from 'vscode-languageserver-protocol'; +import * as LSP from './comm/lsp-types'; import { CodeEditor } from '@jupyterlab/codeeditor'; import * as CodeMirror from 'codemirror'; export class PositionConverter { - static lsp_to_cm(position: lsProtocol.Position): CodeMirror.Position { + static lsp_to_cm(position: LSP.Position): CodeMirror.Position { return { line: position.line, ch: position.character }; } - static lsp_to_ce(position: lsProtocol.Position): CodeEditor.IPosition { + static lsp_to_ce(position: LSP.Position): CodeEditor.IPosition { return { line: position.line, column: position.character }; } diff --git a/packages/jupyterlab-lsp/src/extractors/defaults.spec.ts b/packages/jupyterlab-lsp/src/extractors/defaults.spec.ts index 638ce3c40..49490987c 100644 --- a/packages/jupyterlab-lsp/src/extractors/defaults.spec.ts +++ b/packages/jupyterlab-lsp/src/extractors/defaults.spec.ts @@ -13,7 +13,7 @@ describe('Default extractors', () => { function extract(code: string) { return document.extract_foreign_code(code, null, { line: 0, - column: 0 + column: 0, }); } diff --git a/packages/jupyterlab-lsp/src/extractors/defaults.ts b/packages/jupyterlab-lsp/src/extractors/defaults.ts index b6832c02b..81b70f9a5 100644 --- a/packages/jupyterlab-lsp/src/extractors/defaults.ts +++ b/packages/jupyterlab-lsp/src/extractors/defaults.ts @@ -3,7 +3,7 @@ import { RegExpForeignCodeExtractor } from './regexp'; import { extract_r_args, rpy2_args_pattern, - RPY2_MAX_ARGS + RPY2_MAX_ARGS, } from '../magics/rpy2'; function rpy2_code_extractor(match: string, ...args: string[]) { @@ -20,7 +20,7 @@ function rpy2_code_extractor(match: string, ...args: string[]) { function rpy2_args(match: string, ...args: string[]) { let r = extract_r_args(args, -3); // define dummy input variables using empty data frames - let inputs = r.inputs.map(i => i + ' <- data.frame();').join(' '); + let inputs = r.inputs.map((i) => i + ' <- data.frame();').join(' '); let code = rpy2_code_extractor(match, ...args); if (inputs !== '' && code) { inputs += ' '; @@ -41,7 +41,7 @@ export let foreign_code_extractors: IForeignCodeExtractorsRegistry = { extract_to_foreign: rpy2_code_extractor, extract_arguments: rpy2_args, is_standalone: false, - file_extension: 'R' + file_extension: 'R', }), new RegExpForeignCodeExtractor({ language: 'r', @@ -49,7 +49,7 @@ export let foreign_code_extractors: IForeignCodeExtractorsRegistry = { extract_to_foreign: rpy2_code_extractor, extract_arguments: rpy2_args, is_standalone: false, - file_extension: 'R' + file_extension: 'R', }), // // Standalone IPython magics @@ -60,35 +60,35 @@ export let foreign_code_extractors: IForeignCodeExtractorsRegistry = { pattern: '^%%(python|python2|python3|pypy)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: true, - file_extension: 'py' + file_extension: 'py', }), new RegExpForeignCodeExtractor({ language: 'perl', pattern: '^%%(perl)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: true, - file_extension: 'pl' + file_extension: 'pl', }), new RegExpForeignCodeExtractor({ language: 'ruby', pattern: '^%%(ruby)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: true, - file_extension: 'rb' + file_extension: 'rb', }), new RegExpForeignCodeExtractor({ language: 'sh', pattern: '^%%(sh|bash)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: true, - file_extension: 'sh' + file_extension: 'sh', }), new RegExpForeignCodeExtractor({ language: 'html', pattern: '^%%(html --isolated)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: true, - file_extension: 'html' + file_extension: 'html', }), // // IPython magics producing continuous documents (non-standalone): @@ -98,28 +98,28 @@ export let foreign_code_extractors: IForeignCodeExtractorsRegistry = { pattern: '^%%(js|javascript)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: false, - file_extension: 'js' + file_extension: 'js', }), new RegExpForeignCodeExtractor({ language: 'html', pattern: '^%%(html)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: false, - file_extension: 'html' + file_extension: 'html', }), new RegExpForeignCodeExtractor({ language: 'latex', pattern: '^%%(latex)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: false, - file_extension: 'latex' + file_extension: 'latex', }), new RegExpForeignCodeExtractor({ language: 'markdown', pattern: '^%%(markdown)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: false, - file_extension: 'md' - }) - ] + file_extension: 'md', + }), + ], }; diff --git a/packages/jupyterlab-lsp/src/extractors/regexp.spec.ts b/packages/jupyterlab-lsp/src/extractors/regexp.spec.ts index 6111433c7..82f8ae8de 100644 --- a/packages/jupyterlab-lsp/src/extractors/regexp.spec.ts +++ b/packages/jupyterlab-lsp/src/extractors/regexp.spec.ts @@ -30,7 +30,7 @@ describe('RegExpForeignCodeExtractor', () => { extract_to_foreign: '$2', keep_in_host: true, is_standalone: false, - file_extension: 'R' + file_extension: 'R', }); let r_line_extractor = new RegExpForeignCodeExtractor({ @@ -39,7 +39,7 @@ describe('RegExpForeignCodeExtractor', () => { extract_to_foreign: '$2', keep_in_host: true, is_standalone: false, - file_extension: 'R' + file_extension: 'R', }); describe('#has_foreign_code()', () => { @@ -84,7 +84,7 @@ describe('RegExpForeignCodeExtractor', () => { extract_to_foreign: '<$1$2>$3', keep_in_host: false, is_standalone: false, - file_extension: 'R' + file_extension: 'R', }); let results = html_extractor.extract_foreign_code(HTML_IN_PYTHON); @@ -121,7 +121,7 @@ describe('RegExpForeignCodeExtractor', () => { extract_to_foreign: '$2', keep_in_host: false, is_standalone: false, - file_extension: 'R' + file_extension: 'R', }); let results = extractor.extract_foreign_code(R_CELL_MAGIC_EXISTS); expect(results.length).to.equal(1); @@ -139,7 +139,7 @@ describe('RegExpForeignCodeExtractor', () => { extract_to_foreign: '$2', keep_in_host: false, is_standalone: false, - file_extension: 'R' + file_extension: 'R', }); let results = r_line_extractor.extract_foreign_code(R_LINE_MAGICS); diff --git a/packages/jupyterlab-lsp/src/extractors/regexp.ts b/packages/jupyterlab-lsp/src/extractors/regexp.ts index 6e0c51e8d..c43dcba89 100644 --- a/packages/jupyterlab-lsp/src/extractors/regexp.ts +++ b/packages/jupyterlab-lsp/src/extractors/regexp.ts @@ -85,7 +85,7 @@ export class RegExpForeignCodeExtractor implements IForeignCodeExtractor { host_code: host_code_fragment, foreign_code: prefix + foreign_code_fragment, range: { start, end }, - virtual_shift: position_shift + virtual_shift: position_shift, }); started_from = this.global_expression.lastIndex; @@ -98,7 +98,7 @@ export class RegExpForeignCodeExtractor implements IForeignCodeExtractor { host_code: final_host_code_fragment, foreign_code: null, range: null, - virtual_shift: null + virtual_shift: null, }); } diff --git a/packages/jupyterlab-lsp/src/index.ts b/packages/jupyterlab-lsp/src/index.ts index 2557d8c37..7eaa8a8f0 100644 --- a/packages/jupyterlab-lsp/src/index.ts +++ b/packages/jupyterlab-lsp/src/index.ts @@ -1,7 +1,7 @@ import { ILabShell, JupyterFrontEnd, - JupyterFrontEndPlugin + JupyterFrontEndPlugin, } from '@jupyterlab/application'; import { ICommandPalette } from '@jupyterlab/apputils'; import { INotebookTracker, NotebookPanel } from '@jupyterlab/notebook'; @@ -30,19 +30,19 @@ import { file_editor_adapters, FileEditorCommandManager, notebook_adapters, - NotebookCommandManager + NotebookCommandManager, } from './command_manager'; import IPaths = JupyterFrontEnd.IPaths; import { IStatusBar } from '@jupyterlab/statusbar'; import { LSPStatus } from './adapters/jupyterlab/components/statusbar'; import { IDocumentWidget, - DocumentRegistry + DocumentRegistry, } from '@jupyterlab/docregistry/lib/registry'; import { DocumentConnectionManager } from './connection_manager'; const lsp_commands: Array = [].concat( - ...lsp_features.map(feature => feature.commands) + ...lsp_features.map((feature) => feature.commands) ); /** @@ -60,7 +60,7 @@ const plugin: JupyterFrontEndPlugin = { IRenderMimeRegistry, IPaths, ILabShell, - IStatusBar + IStatusBar, ], activate: ( app: JupyterFrontEnd, @@ -76,10 +76,10 @@ const plugin: JupyterFrontEndPlugin = { status_bar: IStatusBar ) => { const language_server_manager = new LanguageServerManager({ - serviceManager: app.serviceManager + serviceManager: app.serviceManager, }); const connection_manager = new DocumentConnectionManager({ - language_server_manager + language_server_manager, }); const status_bar_item = new LSPStatus(); @@ -115,7 +115,7 @@ const plugin: JupyterFrontEndPlugin = { labShell.currentWidget && (fileEditorTracker.currentWidget || notebookTracker.currentWidget) && (labShell.currentWidget === fileEditorTracker.currentWidget || - labShell.currentWidget === notebookTracker.currentWidget) + labShell.currentWidget === notebookTracker.currentWidget), } ); @@ -248,7 +248,7 @@ const plugin: JupyterFrontEndPlugin = { settingRegistry .load(plugin.id) - .then(settings => { + .then((settings) => { updateOptions(settings); settings.changed.connect(() => { updateOptions(settings); @@ -258,7 +258,7 @@ const plugin: JupyterFrontEndPlugin = { console.error(reason.message); }); }, - autoStart: true + autoStart: true, }; /** diff --git a/packages/jupyterlab-lsp/src/magics/defaults.ts b/packages/jupyterlab-lsp/src/magics/defaults.ts index b239f429b..0f0216f4b 100644 --- a/packages/jupyterlab-lsp/src/magics/defaults.ts +++ b/packages/jupyterlab-lsp/src/magics/defaults.ts @@ -4,7 +4,7 @@ import { rpy2_args_pattern, RPY2_MAX_ARGS, rpy2_reverse_pattern, - rpy2_reverse_replacement + rpy2_reverse_replacement, } from './rpy2'; function escape(x: string) { @@ -43,8 +43,8 @@ export const language_specific_overrides: IOverridesRegistry = { replacement: 'get_ipython().getoutput("$1$2")$3', reverse: { pattern: 'get_ipython\\(\\).getoutput\\("(.*?)"\\)(\n)?', - replacement: '!$1$2' - } + replacement: '!$1$2', + }, }, { // support up to 10 arguments @@ -58,8 +58,8 @@ export const language_specific_overrides: IOverridesRegistry = { replacement: (match, ...args) => { let r = rpy2_reverse_replacement(match, ...args); return '%R' + r.input + r.output + r.other + r.contents; - } - } + }, + }, }, { pattern: '%(\\S+)(.*)(\n)?', @@ -74,9 +74,9 @@ export const language_specific_overrides: IOverridesRegistry = { replacement: (match, name, args) => { args = unescape(args); return `%${name}${args}`; - } - } - } + }, + }, + }, ], // if a match for expresion in the key is found at the beginning of a cell, the entire cell is replaced with the value cell_magics: [ @@ -93,8 +93,8 @@ export const language_specific_overrides: IOverridesRegistry = { replacement: (match, ...args) => { let r = rpy2_reverse_replacement(match, ...args); return '%%R' + r.input + r.output + r.other + '\n' + r.contents; - } - } + }, + }, }, { pattern: '^%%(\\S+)(.*\n)([\\s\\S]*)', @@ -114,9 +114,9 @@ export const language_specific_overrides: IOverridesRegistry = { content = content.replace(/\\"\\"\\"/g, '"""'); line = unescape(line); return `%%${name}${line}\n${content}`; - } - } - } - ] - } + }, + }, + }, + ], + }, }; diff --git a/packages/jupyterlab-lsp/src/magics/maps.ts b/packages/jupyterlab-lsp/src/magics/maps.ts index 8e1c8151b..7b010bb71 100644 --- a/packages/jupyterlab-lsp/src/magics/maps.ts +++ b/packages/jupyterlab-lsp/src/magics/maps.ts @@ -2,7 +2,7 @@ import { IMagicOverride, IMagicOverrideRule, replacer } from './overrides'; abstract class MagicsMap extends Map { protected constructor(magic_overrides: IMagicOverrideRule[]) { - super(magic_overrides.map(m => [new RegExp(m.pattern), m.replacement])); + super(magic_overrides.map((m) => [new RegExp(m.pattern), m.replacement])); } abstract override_for(code: string): string | null; @@ -28,7 +28,7 @@ abstract class ReversibleMagicsMap extends MagicsMap { } get reverse(): MagicsMap { - return this.type(this.overrides.map(override => override.reverse)); + return this.type(this.overrides.map((override) => override.reverse)); } } @@ -66,7 +66,7 @@ export class LineMagicsMap extends ReversibleMagicsMap { } return { lines: substituted_lines, - skip_inspect: skip_inspect + skip_inspect: skip_inspect, }; } diff --git a/packages/jupyterlab-lsp/src/magics/rpy2.ts b/packages/jupyterlab-lsp/src/magics/rpy2.ts index b187f78e8..b76a1284e 100644 --- a/packages/jupyterlab-lsp/src/magics/rpy2.ts +++ b/packages/jupyterlab-lsp/src/magics/rpy2.ts @@ -21,7 +21,7 @@ export function extract_r_args(args: string[], content_position: number) { inputs: inputs, outputs: outputs, rest: args[args.length + content_position], - others: others + others: others, }; } @@ -42,7 +42,7 @@ export function parse_r_args(args: string[], content_position: number) { content: rest, others: others.join(' '), inputs: input_variables, - outputs: output_variables + outputs: output_variables, }; } @@ -92,7 +92,7 @@ export function rpy2_reverse_replacement(match: string, ...args: string[]) { input: input_variables, output: output_variables, other: other_args, - contents: contents + contents: contents, }; } diff --git a/packages/jupyterlab-lsp/src/manager.ts b/packages/jupyterlab-lsp/src/manager.ts index 6a194be9f..4395f7af2 100644 --- a/packages/jupyterlab-lsp/src/manager.ts +++ b/packages/jupyterlab-lsp/src/manager.ts @@ -4,21 +4,21 @@ import { PageConfig, URLExt } from '@jupyterlab/coreutils'; import { // ServerConnection, ServiceManager, - KernelMessage + KernelMessage, } from '@jupyterlab/services'; import { ILanguageServerManager, TSessionMap, TCommMap, - TLanguageServerId + TLanguageServerId, } from './tokens'; import * as SCHEMA from './_schema'; import { ISessionConnection } from '@jupyterlab/services/lib/session/session'; import { IComm } from '@jupyterlab/services/lib/kernel/kernel'; const CONTROL_COMM_TARGET = 'jupyter.lsp.control'; -const SERVER_COMM_TARGET = 'jupyter.lsp.server'; +const LANGUAGE_SERVER_COMM_TARGET = 'jupyter.lsp.language_server'; export class LanguageServerManager implements ILanguageServerManager { protected _sessionsChanged: Signal = new Signal< @@ -26,14 +26,13 @@ export class LanguageServerManager implements ILanguageServerManager { void >(this); protected _sessions: TSessionMap = new Map(); + protected _controlComm: IComm; protected _comms: TCommMap = new Map(); - // private _settings: ServerConnection.ISettings; private _baseUrl: string; private _serviceManager: ServiceManager; private _kernelSessionConnection: ISessionConnection; constructor(options: ILanguageServerManager.IOptions) { - // this._settings = options.settings || ServerConnection.makeSettings(); this._baseUrl = options.baseUrl || PageConfig.getBaseUrl(); this._serviceManager = options.serviceManager; this.initKernel().catch(console.warn); @@ -52,7 +51,16 @@ export class LanguageServerManager implements ILanguageServerManager { } async getComm(language_server_id: TLanguageServerId): Promise { - return this._comms.get(language_server_id); + let comm = this._comms.get(language_server_id); + + if (comm != null) { + return comm; + } + + // nb: check sessions first? + comm = await this.makeLanguageServerComm(language_server_id); + this._comms.set(language_server_id, comm); + return comm; } getServerId(options: ILanguageServerManager.IGetServerIdOptions) { @@ -70,43 +78,61 @@ export class LanguageServerManager implements ILanguageServerManager { /** * Register a new kernel */ - protected _handleKernelChanged({ + protected async _handleKernelChanged({ oldValue, - newValue - }: ISessionConnection.IKernelChangedArgs): void { - if (oldValue) { - oldValue.removeCommTarget(SERVER_COMM_TARGET, this._handleServerCommOpen); + newValue, + }: ISessionConnection.IKernelChangedArgs): Promise { + if (this._controlComm) { + this._controlComm = null; } - if (newValue) { - newValue.registerCommTarget( - SERVER_COMM_TARGET, - async (comm, msg) => await this._handleServerCommOpen(comm, msg) - ); - - console.warn('server comm registered'); + if (newValue == null) { + return; } + + this._controlComm = await this.makeControlComm(); } - async _handleServerCommOpen(comm: IComm, msg: KernelMessage.ICommOpenMsg) { - console.warn('server comm openened', comm, msg); - const { metadata } = msg; - const language_server = `${metadata.language_server}`; - this._comms.set(language_server, comm); - comm.onMsg = msg => { - console.log('msg', comm, msg.content.data); - }; - this._sessions.set( - language_server, - (metadata.session as any) as SCHEMA.LanguageServerSession + protected async makeControlComm() { + const comm = this._kernelSessionConnection.kernel.createComm( + CONTROL_COMM_TARGET ); + + comm.onMsg = this.onControlCommMsg.bind(this); + + // nb: do something here? negotiate schema version? + comm.open({}); + console.warn('control comm opened', comm); + // nb: should we await something? + return comm; + } + + async onControlCommMsg(msg: KernelMessage.ICommMsgMsg) { + console.warn('got control message', this._controlComm, msg); + + const { sessions } = msg.content.data as SCHEMA.ServersResponse; + this._sessions = new Map(Object.entries(sessions)); this._sessionsChanged.emit(void 0); - // nb: put this in connection manager? - const { CommLSP } = await import( - /* webpackChunkName: "jupyter-lsp-comms" */ './comm/lsp' + console.warn(this._sessions); + } + + protected async makeLanguageServerComm( + language_server_id: TLanguageServerId + ) { + const comm = this._kernelSessionConnection.kernel.createComm( + LANGUAGE_SERVER_COMM_TARGET ); - const lspComm = new CommLSP({ comm }); - console.warn(lspComm); + + this._comms.set(language_server_id, comm); + + comm.onMsg = (msg) => { + console.warn('unitialized comm', comm, msg.content.data); + }; + + comm.open({}, { language_server: language_server_id }); + + console.warn('opened comm for', language_server_id); + return comm; } async initKernel() { @@ -121,32 +147,20 @@ export class LanguageServerManager implements ILanguageServerManager { path: '/', type: '', name: 'language-server', - kernel: { name: 'jupyter-lsp-kernel' } + kernel: { name: 'jupyter-lsp-kernel' }, } )); - session.kernelChanged.connect((sender, args) => { - this._handleKernelChanged(args); + session.kernelChanged.connect(async (sender, args) => { + await this._handleKernelChanged(args); }); const { kernel } = session; - this._handleKernelChanged({ + await this._handleKernelChanged({ name: 'kernel', oldValue: null, - newValue: kernel + newValue: kernel, }); - - const controlComm = session.kernel.createComm(CONTROL_COMM_TARGET); - - controlComm.onMsg = (msg: KernelMessage.ICommMsgMsg) => { - console.log('we got a control message', controlComm, msg); - }; - - const opened = controlComm.open({}); - await opened.done; - - console.warn('sent a control message'); - console.log(this._comms); } } diff --git a/packages/jupyterlab-lsp/src/tokens.ts b/packages/jupyterlab-lsp/src/tokens.ts index b035b2a1b..7137612d2 100644 --- a/packages/jupyterlab-lsp/src/tokens.ts +++ b/packages/jupyterlab-lsp/src/tokens.ts @@ -1,6 +1,6 @@ import { ISignal } from '@lumino/signaling'; import { ServerConnection, ServiceManager } from '@jupyterlab/services'; -import * as LSP from 'vscode-languageserver-protocol'; +import * as LSP from './comm/lsp-types'; import * as SCHEMA from './_schema'; import { CommLSP } from './comm/lsp'; diff --git a/packages/jupyterlab-lsp/src/utils.ts b/packages/jupyterlab-lsp/src/utils.ts index 849b787d4..990ab7a10 100644 --- a/packages/jupyterlab-lsp/src/utils.ts +++ b/packages/jupyterlab-lsp/src/utils.ts @@ -3,7 +3,7 @@ import { PageConfig } from '@jupyterlab/coreutils'; const RE_PATH_ANCHOR = /^file:\/\/([^\/]+|\/[A-Z]:)/; export async function sleep(timeout: number) { - return new Promise(resolve => { + return new Promise((resolve) => { setTimeout(() => { resolve(); }, timeout); @@ -117,7 +117,7 @@ export function is_win_path(uri: string) { * lowercase the drive component of a URI */ export function normalize_win_path(uri: string) { - return uri.replace(RE_PATH_ANCHOR, it => it.toLowerCase()); + return uri.replace(RE_PATH_ANCHOR, (it) => it.toLowerCase()); } export function uri_to_contents_path(child: string, parent?: string) { diff --git a/packages/jupyterlab-lsp/src/virtual/console.ts b/packages/jupyterlab-lsp/src/virtual/console.ts index 0f2f884ac..cb7dc968c 100644 --- a/packages/jupyterlab-lsp/src/virtual/console.ts +++ b/packages/jupyterlab-lsp/src/virtual/console.ts @@ -26,7 +26,7 @@ export class FloatingConsole extends EditorLogConsole { private to_string(args: any[]) { return args - .map(arg => '' + JSON.stringify(arg) + '') + .map((arg) => '' + JSON.stringify(arg) + '') .join(', '); } diff --git a/packages/jupyterlab-lsp/src/virtual/document.spec.ts b/packages/jupyterlab-lsp/src/virtual/document.spec.ts index 16830f250..06fa03eee 100644 --- a/packages/jupyterlab-lsp/src/virtual/document.spec.ts +++ b/packages/jupyterlab-lsp/src/virtual/document.spec.ts @@ -14,11 +14,11 @@ print("plotted") describe('is_within_range', () => { let line_range: CodeEditor.IRange = { start: { line: 1, column: 0 }, - end: { line: 1, column: 10 } + end: { line: 1, column: 10 }, }; let long_range: CodeEditor.IRange = { start: { line: 0, column: 3 }, - end: { line: 1, column: 0 } + end: { line: 1, column: 0 }, }; it('recognizes positions within range in a single-line case', () => { expect(is_within_range({ line: 1, column: 0 }, line_range)).to.equal(true); @@ -60,10 +60,10 @@ describe('VirtualDocument', () => { it('joins non-standalone fragments together', () => { let { cell_code_kept, - foreign_document_map + foreign_document_map, } = document.extract_foreign_code(R_LINE_MAGICS, null, { line: 0, - column: 0 + column: 0, }); // note R cell lines are kept in code (keep_in_host=true) @@ -120,7 +120,7 @@ describe('VirtualDocument', () => { // The first (Python) line in the first block let editor_position = document.transform_virtual_to_editor({ line: 0, - ch: 0 + ch: 0, } as IVirtualPosition); expect(editor_position.line).to.equal(0); expect(editor_position.ch).to.equal(0); @@ -128,7 +128,7 @@ describe('VirtualDocument', () => { // The first (Python) line in the second block editor_position = document.transform_virtual_to_editor({ line: 4, - ch: 0 + ch: 0, } as IVirtualPosition); expect(editor_position.line).to.equal(0); expect(editor_position.ch).to.equal(0); @@ -138,7 +138,7 @@ describe('VirtualDocument', () => { init_document_with_Python_and_R(); let foreign_document = document.document_at_source_position({ line: 1, - ch: 3 + ch: 3, } as ISourcePosition); expect(foreign_document).to.not.equal(document); expect(foreign_document.value).to.equal( @@ -155,7 +155,7 @@ describe('VirtualDocument', () => { // targeting "s" in "1st", "1st" in "1st test line in R line magic" (first virtual line == line 0) let virtual_r_1_1 = { line: 0, - ch: 1 + ch: 1, } as IVirtualPosition; // For future reference, the code below would be wrong: @@ -174,7 +174,7 @@ describe('VirtualDocument', () => { // targeting 1 in "1st test line in R line magic 2" (4th virtual line == line 3) editor_position = foreign_document.transform_virtual_to_editor({ line: 3, - ch: 0 + ch: 0, } as IVirtualPosition); // 0th editor line is 'test line in Python 2\n' expect(editor_position.line).to.equal(1); @@ -186,7 +186,7 @@ describe('VirtualDocument', () => { // targeting "s" in "1st" in "1st test line in R line magic 3" (7th virtual line == line 6) editor_position = foreign_document.transform_virtual_to_editor({ line: 6, - ch: 36 + ch: 36, } as IVirtualPosition); // 0th editor line is 'test line in Python 3\n' expect(editor_position.line).to.equal(1); @@ -198,7 +198,7 @@ describe('VirtualDocument', () => { // targeting "s" in "1st" in "1st test line in R cell magic 2" (13th virtual lines == line 12) editor_position = foreign_document.transform_virtual_to_editor({ line: 12, - ch: 36 + ch: 36, } as IVirtualPosition); // 0th editor line is '%%R -i imported_variable\n' expect(editor_position.line).to.equal(1); diff --git a/packages/jupyterlab-lsp/src/virtual/document.ts b/packages/jupyterlab-lsp/src/virtual/document.ts index 03b57affb..b38a5023c 100644 --- a/packages/jupyterlab-lsp/src/virtual/document.ts +++ b/packages/jupyterlab-lsp/src/virtual/document.ts @@ -1,6 +1,6 @@ import { IForeignCodeExtractor, - IForeignCodeExtractorsRegistry + IForeignCodeExtractorsRegistry, } from '../extractors/types'; import { CellMagicsMap, LineMagicsMap } from '../magics/maps'; import { IOverridesRegistry } from '../magics/overrides'; @@ -11,7 +11,7 @@ import * as CodeMirror from 'codemirror'; import { IEditorPosition, ISourcePosition, - IVirtualPosition + IVirtualPosition, } from '../positioning'; import IRange = CodeEditor.IRange; import { ILSPConnection } from '../tokens'; @@ -324,7 +324,7 @@ export class VirtualDocument { ); const context: IForeignContext = { foreign_document: document, - parent_host: this + parent_host: this, }; this.foreign_document_opened.emit(context); // pass through any future signals @@ -345,17 +345,17 @@ export class VirtualDocument { let source_position_ce: CodeEditor.IPosition = { line: source_line.editor_line, - column: position.ch + column: position.ch, }; for (let [ range, - { virtual_document: document } + { virtual_document: document }, ] of source_line.foreign_documents_map) { if (is_within_range(source_position_ce, range)) { let source_position_cm = { line: source_position_ce.line - range.start.line, - ch: source_position_ce.column - range.start.column + ch: source_position_ce.column - range.start.column, }; return document.document_at_source_position( @@ -372,7 +372,7 @@ export class VirtualDocument { let source_position_ce: CodeEditor.IPosition = { line: source_line.editor_line, - column: source_position.ch + column: source_position.ch, }; for (let [range] of source_line.foreign_documents_map) { if (is_within_range(source_position_ce, range)) { @@ -391,18 +391,18 @@ export class VirtualDocument { // position inside the cell (block) let source_position_ce: CodeEditor.IPosition = { line: source_line.editor_line, - column: source_position.ch + column: source_position.ch, }; for (let [ range, - { virtual_line, virtual_document: document } + { virtual_line, virtual_document: document }, ] of source_line.foreign_documents_map) { if (is_within_range(source_position_ce, range)) { // position inside the foreign document block let source_position_cm = { line: source_position_ce.line - range.start.line, - ch: source_position_ce.column - range.start.column + ch: source_position_ce.column - range.start.column, }; if (document.is_within_foreign(source_position_cm as ISourcePosition)) { return this.virtual_position_at_document( @@ -418,7 +418,7 @@ export class VirtualDocument { return { ch: source_position.ch, - line: virtual_line + line: virtual_line, } as IVirtualPosition; } @@ -477,11 +477,11 @@ export class VirtualDocument { foreign_document_map.set(result.range, { virtual_line: foreign_document.last_virtual_line, - virtual_document: foreign_document + virtual_document: foreign_document, }); let foreign_shift = { line: editor_shift.line + result.range.start.line, - column: editor_shift.column + result.range.start.column + column: editor_shift.column + result.range.start.column, }; foreign_document.append_code_block( result.foreign_code, @@ -537,14 +537,14 @@ export class VirtualDocument { let cell_override = this.cell_magics_overrides.override_for(cell_code); if (cell_override != null) { lines = cell_override.split('\n'); - skip_inspect = lines.map(l => [this.id_path]); + skip_inspect = lines.map((l) => [this.id_path]); } else { // otherwise, we replace line magics - if any let result = this.line_magics_overrides.replace_all( cell_code.split('\n') ); lines = result.lines; - skip_inspect = result.skip_inspect.map(skip => + skip_inspect = result.skip_inspect.map((skip) => skip ? [this.id_path] : [] ); } @@ -571,7 +571,7 @@ export class VirtualDocument { skip_inspect: skip_inspect[i], editor: cm_editor, // TODO this is incorrect, wont work if something was extracted - source_line: this.last_source_line + i + source_line: this.last_source_line + i, }); } for (let i = 0; i < source_cell_lines.length; i++) { @@ -580,13 +580,13 @@ export class VirtualDocument { editor_shift: { line: editor_shift.line - (virtual_shift?.line || 0), column: - i === 0 ? editor_shift.column - (virtual_shift?.column || 0) : 0 + i === 0 ? editor_shift.column - (virtual_shift?.column || 0) : 0, }, // TODO: move those to a new abstraction layer (DocumentBlock class) editor: cm_editor, foreign_documents_map: foreign_document_map, // TODO this is incorrect, wont work if something was extracted - virtual_line: this.last_virtual_line + i + virtual_line: this.last_virtual_line + i, }); } @@ -601,7 +601,7 @@ export class VirtualDocument { this.virtual_lines.set(this.last_virtual_line + i, { skip_inspect: [this.id_path], editor: cm_editor, - source_line: null + source_line: null, }); } @@ -633,7 +633,7 @@ export class VirtualDocument { console.log('LSP: closing document', document); this.foreign_document_closed.emit({ foreign_document: document, - parent_host: this + parent_host: this, }); // remove it from foreign documents list this.foreign_documents.delete(document.virtual_id); @@ -691,7 +691,7 @@ export class VirtualDocument { return { // only shift column in the line beginning the virtual document (first list of the editor in cell magics, but might be any line of editor in line magics!) ch: pos.ch + (editor_line === 0 ? editor_shift.column : 0), - line: editor_line + editor_shift.line + line: editor_line + editor_shift.line, // TODO or: // line: pos.line + editor_shift.line - this.first_line_of_the_block(editor) } as IEditorPosition; @@ -707,7 +707,7 @@ export class VirtualDocument { transform_virtual_to_source(position: IVirtualPosition): ISourcePosition { return { ch: position.ch, - line: this.virtual_lines.get(position.line).source_line + line: this.virtual_lines.get(position.line).source_line, } as ISourcePosition; } diff --git a/packages/jupyterlab-lsp/src/virtual/editor.ts b/packages/jupyterlab-lsp/src/virtual/editor.ts index ae03cdb84..bf3ca8c99 100644 --- a/packages/jupyterlab-lsp/src/virtual/editor.ts +++ b/packages/jupyterlab-lsp/src/virtual/editor.ts @@ -6,7 +6,7 @@ import { IEditorPosition, IRootPosition, ISourcePosition, - IVirtualPosition + IVirtualPosition, } from '../positioning'; import { until_ready } from '../utils'; import { Signal } from '@lumino/signaling'; @@ -71,7 +71,7 @@ export abstract class VirtualEditor implements CodeMirror.Editor { this.documents_updated.disconnect(this.on_updated, this); for (let [[eventName], wrapped_handler] of this._event_wrappers.entries()) { - this.forEveryBlockEditor(cm_editor => { + this.forEveryBlockEditor((cm_editor) => { cm_editor.off(eventName, wrapped_handler); }, false); } @@ -239,7 +239,7 @@ export abstract class VirtualEditor implements CodeMirror.Editor { }; this._event_wrappers.set([eventName, handler], wrapped_handler); - this.forEveryBlockEditor(cm_editor => { + this.forEveryBlockEditor((cm_editor) => { cm_editor.on(eventName, wrapped_handler); }); } @@ -247,7 +247,7 @@ export abstract class VirtualEditor implements CodeMirror.Editor { off(eventName: string, handler: CodeMirrorHandler, ...args: any[]): void { let wrapped_handler = this._event_wrappers.get([eventName, handler]); - this.forEveryBlockEditor(cm_editor => { + this.forEveryBlockEditor((cm_editor) => { cm_editor.off(eventName, wrapped_handler); }); } diff --git a/packages/jupyterlab-lsp/src/virtual/editors/file_editor.ts b/packages/jupyterlab-lsp/src/virtual/editors/file_editor.ts index f19d63a3e..9d07717f9 100644 --- a/packages/jupyterlab-lsp/src/virtual/editors/file_editor.ts +++ b/packages/jupyterlab-lsp/src/virtual/editors/file_editor.ts @@ -3,7 +3,7 @@ import * as CodeMirror from 'codemirror'; import { IEditorPosition, IRootPosition, - IVirtualPosition + IVirtualPosition, } from '../../positioning'; export class VirtualFileEditor extends VirtualEditor { @@ -22,7 +22,7 @@ export class VirtualFileEditor extends VirtualEditor { super(language, file_extension, path, {}, {}, true); this.cm_editor = cm_editor; let handler = { - get: function( + get: function ( target: VirtualFileEditor, prop: keyof CodeMirror.Editor, receiver: any @@ -32,7 +32,7 @@ export class VirtualFileEditor extends VirtualEditor { } else { return Reflect.get(target, prop, receiver); } - } + }, }; return new Proxy(this, handler); } diff --git a/packages/jupyterlab-lsp/src/virtual/editors/notebook.ts b/packages/jupyterlab-lsp/src/virtual/editors/notebook.ts index f66539507..6ceda6899 100644 --- a/packages/jupyterlab-lsp/src/virtual/editors/notebook.ts +++ b/packages/jupyterlab-lsp/src/virtual/editors/notebook.ts @@ -8,7 +8,7 @@ import * as CodeMirror from 'codemirror'; import { IEditorPosition, IRootPosition, - IVirtualPosition + IVirtualPosition, } from '../../positioning'; // @ts-ignore @@ -81,7 +81,7 @@ export class VirtualEditorForNotebook extends VirtualEditor { this.code_extractors = foreign_code_extractors; this.language = language; this._proxy = new Proxy(this, { - get: function( + get: function ( target: VirtualEditorForNotebook, prop: keyof CodeMirror.Editor, receiver: any @@ -94,7 +94,7 @@ export class VirtualEditorForNotebook extends VirtualEditor { } else { return Reflect.get(target, prop, receiver); } - } + }, }); return this._proxy; } @@ -125,7 +125,7 @@ export class VirtualEditorForNotebook extends VirtualEditor { } return { ...(position as CodeMirror.Position), - line: position.line + shift + line: position.line + shift, } as IRootPosition; } @@ -144,7 +144,7 @@ export class VirtualEditorForNotebook extends VirtualEditor { public get_editor_index(position: IVirtualPosition): number { let cell = this.get_cell_at(position); - return this.notebook.widgets.findIndex(other_cell => { + return this.notebook.widgets.findIndex((other_cell) => { return cell === other_cell; }); } @@ -314,7 +314,7 @@ export class VirtualEditorForNotebook extends VirtualEditor { return; } - this.notebook.widgets.every(cell => { + this.notebook.widgets.every((cell) => { let codemirror_editor = cell.editor as CodeMirrorEditor; let cm_editor = codemirror_editor.editor; this.cm_editor_to_cell.set(cm_editor, cell); @@ -354,7 +354,7 @@ export class VirtualEditorForNotebook extends VirtualEditor { } addEventListener(type: string, listener: EventListenerOrEventListenerObject) { - this.forEveryBlockEditor(cm_editor => { + this.forEveryBlockEditor((cm_editor) => { cm_editor.getWrapperElement().addEventListener(type, listener); }); } @@ -399,7 +399,7 @@ export class VirtualEditorForNotebook extends VirtualEditor { if (cell_editor === cm_editor) { return { cell_id: i, - cell: cell + cell: cell, }; } } diff --git a/packages/lsp-ws-connection/karma.conf.js b/packages/lsp-ws-connection/karma.conf.js index 498e8ea72..c25a8914b 100644 --- a/packages/lsp-ws-connection/karma.conf.js +++ b/packages/lsp-ws-connection/karma.conf.js @@ -1,18 +1,18 @@ process.env.CHROME_BIN = require('puppeteer').executablePath(); -module.exports = function(config) { +module.exports = function (config) { config.set({ basePath: '', files: [ // The entry files are processed by webpack - 'lib/test/**/*.test.js' + 'lib/test/**/*.test.js', ], browsers: ['ChromeHeadless'], mime: { - 'text/x-typescript': ['ts', 'tsx'] + 'text/x-typescript': ['ts', 'tsx'], }, module: 'commonjs', @@ -27,22 +27,22 @@ module.exports = function(config) { preprocessors: { '**/*!(.d).ts': 'webpack', - '**/*!(.d).js': 'webpack' + '**/*!(.d).js': 'webpack', }, junitReporter: { - outputFile: 'junit.xml' + outputFile: 'junit.xml', }, webpack: { mode: 'development', resolve: { - extensions: ['.tsx', '.ts', '.js'] + extensions: ['.tsx', '.ts', '.js'], }, target: 'web', node: { - net: 'mock' - } - } + net: 'mock', + }, + }, }); }; diff --git a/packages/lsp-ws-connection/package.json b/packages/lsp-ws-connection/package.json index 9f0e76da8..cf2a81840 100644 --- a/packages/lsp-ws-connection/package.json +++ b/packages/lsp-ws-connection/package.json @@ -10,10 +10,8 @@ ], "types": "lib/index.d.ts", "scripts": { - "build": "webpack", "test": "karma start", "test-dev": "karma start --browsers Chrome --singleRun false --timeout 30000 --autoWatch", - "watch": "webpack --watch", "bundle": "npm pack .", "clean": "rimraf lib dist" }, @@ -53,7 +51,7 @@ "rimraf": "^2.6.3", "sinon": "^7.3.2", "source-map-loader": "~0.2.1", - "typescript": "^3.7.2", + "typescript": "~3.9.3", "webpack": "^4.32.2", "webpack-cli": "^3.3.0" } diff --git a/packages/lsp-ws-connection/src/server-capability-registration.ts b/packages/lsp-ws-connection/src/server-capability-registration.ts index 12d158634..3a681a34a 100644 --- a/packages/lsp-ws-connection/src/server-capability-registration.ts +++ b/packages/lsp-ws-connection/src/server-capability-registration.ts @@ -1,7 +1,7 @@ import { Registration, ServerCapabilities, - Unregistration + Unregistration, } from 'vscode-languageserver-protocol'; interface IFlexibleServerCapabilities extends ServerCapabilities { diff --git a/packages/lsp-ws-connection/src/test/connection.test.ts b/packages/lsp-ws-connection/src/test/connection.test.ts index 74d52c336..a5f134d34 100644 --- a/packages/lsp-ws-connection/src/test/connection.test.ts +++ b/packages/lsp-ws-connection/src/test/connection.test.ts @@ -15,7 +15,7 @@ const mockInfo = { uri: 'file://' + __dirname, version: 0, languageId: 'plaintext', - text: '' + text: '', }; // There is a library that can be used to mock WebSockets, but the API surface tested here is small @@ -70,7 +70,7 @@ class MockSocket implements EventTarget { public removeEventListener = sinon .mock() .callsFake((type: keyof WebSocketEventMap, listener: Listener) => { - const index = this.listeners[type].indexOf(l => l === listener); + const index = this.listeners[type].indexOf((l) => l === listener); if (index > -1) { this.listeners[type].splice(index, 1); } @@ -85,7 +85,7 @@ class MockSocket implements EventTarget { if (!listeners) { return false; } - listeners.forEach(listener => listener.call(null, event)); + listeners.forEach((listener) => listener.call(null, event)); }; constructor(url: string, protocols?: string[]) { @@ -101,7 +101,7 @@ describe('LspWsConnection', () => { connection = new LspWsConnection({ languageId: 'plaintext', rootUri: 'file://' + __dirname, - serverUri + serverUri, }); mockSocket = new MockSocket('ws://localhost:8080'); }); @@ -110,9 +110,9 @@ describe('LspWsConnection', () => { sinon.restore(); }); - it('initializes the connection in the right order', done => { + it('initializes the connection in the right order', (done) => { // 1. It sends initialize and expects a response with capabilities - mockSocket.send.onFirstCall().callsFake(str => { + mockSocket.send.onFirstCall().callsFake((str) => { const message = JSON.parse(str); expect(message.method).equal('initialize'); @@ -127,12 +127,12 @@ describe('LspWsConnection', () => { documentHighlightProvider: true, documentRangeFormattingProvider: false, documentLinkProvider: { - resolveProvider: false + resolveProvider: false, }, documentSymbolProvider: true, definitionProvider: true, signatureHelpProvider: { - triggerCharacters: ['('] + triggerCharacters: ['('], }, typeDefinitionProvider: true, referencesProvider: true, @@ -141,22 +141,22 @@ describe('LspWsConnection', () => { workspaceSymbolProvider: true, completionProvider: { resolveProvider: true, - triggerCharacters: ['.'] + triggerCharacters: ['.'], }, codeActionProvider: true, renameProvider: true, executeCommandProvider: { - commands: [] - } - } - } as lsProtocol.InitializeResult + commands: [], + }, + }, + } as lsProtocol.InitializeResult, }); mockSocket.dispatchEvent(new MessageEvent('message', { data })); }); // 2. After receiving capabilities from the server, it sends more configuration options - mockSocket.send.onSecondCall().callsFake(str => { + mockSocket.send.onSecondCall().callsFake((str) => { const message = JSON.parse(str); expect(message.method).equal('initialized'); @@ -173,7 +173,7 @@ describe('LspWsConnection', () => { }, 0); }); - connection.connect(mockSocket).catch(err => console.warn(err)); + connection.connect(mockSocket).catch((err) => console.warn(err)); mockSocket.dispatchEvent(new Event('open')); // Send the messages @@ -185,22 +185,22 @@ describe('LspWsConnection', () => { describe('register/unregister capability', () => { beforeEach(() => { - mockSocket.send.onFirstCall().callsFake(str => { + mockSocket.send.onFirstCall().callsFake((str) => { const data = JSON.stringify({ jsonrpc: '2.0', id: 0, result: { capabilities: { - definitionProvider: true - } - } as lsProtocol.InitializeResult + definitionProvider: true, + }, + } as lsProtocol.InitializeResult, }); mockSocket.dispatchEvent(new MessageEvent('message', { data })); }); }); - it('registers a new server capability', done => { + it('registers a new server capability', (done) => { mockSocket.send.onSecondCall().callsFake(() => { expect(connection.isDefinitionSupported()).equal(true); expect(connection.isImplementationSupported()).equal(false); @@ -213,10 +213,10 @@ describe('LspWsConnection', () => { registrations: [ { id: 'id', - method: 'textDocument/implementation' - } as lsProtocol.Registration - ] - } as lsProtocol.RegistrationParams + method: 'textDocument/implementation', + } as lsProtocol.Registration, + ], + } as lsProtocol.RegistrationParams, }); mockSocket.dispatchEvent(new MessageEvent('message', { data })); @@ -228,11 +228,11 @@ describe('LspWsConnection', () => { }, 0); }); - connection.connect(mockSocket).catch(err => console.warn(err)); + connection.connect(mockSocket).catch((err) => console.warn(err)); mockSocket.dispatchEvent(new Event('open')); }); - it('unregisters a server capability', done => { + it('unregisters a server capability', (done) => { mockSocket.send.onSecondCall().callsFake(() => { expect(connection.isDefinitionSupported()).equal(true); @@ -244,10 +244,10 @@ describe('LspWsConnection', () => { unregisterations: [ { id: 'id', - method: 'textDocument/definition' - } - ] - } as lsProtocol.UnregistrationParams + method: 'textDocument/definition', + }, + ], + } as lsProtocol.UnregistrationParams, }); mockSocket.dispatchEvent(new MessageEvent('message', { data })); @@ -258,7 +258,7 @@ describe('LspWsConnection', () => { }); }); - connection.connect(mockSocket).catch(err => console.warn(err)); + connection.connect(mockSocket).catch((err) => console.warn(err)); mockSocket.dispatchEvent(new Event('open')); }); }); @@ -268,87 +268,87 @@ describe('LspWsConnection', () => { beforeEach(() => { // Fake response just includes the hover provider - mockSocket.send.onFirstCall().callsFake(str => { + mockSocket.send.onFirstCall().callsFake((str) => { const data = JSON.stringify({ jsonrpc: '2.0', id: 0, result: { capabilities: { - hoverProvider: true - } - } as lsProtocol.InitializeResult + hoverProvider: true, + }, + } as lsProtocol.InitializeResult, }); mockSocket.dispatchEvent(new MessageEvent('message', { data })); }); // 2. After receiving capabilities from the server, we will send a hover - mockSocket.send.onSecondCall().callsFake(str => { + mockSocket.send.onSecondCall().callsFake((str) => { void connection.getHoverTooltip( { line: 1, - ch: 0 + ch: 0, }, mockInfo ); }); }); - it('emits a null hover event', done => { + it('emits a null hover event', (done) => { // 3. Fake a server response for the hover - mockSocket.send.onThirdCall().callsFake(str => { + mockSocket.send.onThirdCall().callsFake((str) => { const message = JSON.parse(str); const data = JSON.stringify({ jsonrpc: '2.0', id: message.id, - result: null + result: null, }); mockSocket.dispatchEvent(new MessageEvent('message', { data })); }); - connection.connect(mockSocket).catch(err => console.warn(err)); + connection.connect(mockSocket).catch((err) => console.warn(err)); mockSocket.dispatchEvent(new Event('open')); - connection.on('hover', response => { + connection.on('hover', (response) => { expect(response).to.be.a('null'); done(); }); }); - it('emits a complete hover event', done => { + it('emits a complete hover event', (done) => { hoverResponse = { contents: 'Details of hover', range: { start: { line: 1, - character: 0 + character: 0, }, end: { line: 2, - character: 0 - } - } + character: 0, + }, + }, } as lsProtocol.Hover; // 3. Fake a server response for the hover - mockSocket.send.onThirdCall().callsFake(str => { + mockSocket.send.onThirdCall().callsFake((str) => { const message = JSON.parse(str); const data = JSON.stringify({ jsonrpc: '2.0', id: message.id, - result: hoverResponse + result: hoverResponse, }); mockSocket.dispatchEvent(new MessageEvent('message', { data })); }); - connection.connect(mockSocket).catch(err => console.warn(err)); + connection.connect(mockSocket).catch((err) => console.warn(err)); mockSocket.dispatchEvent(new Event('open')); - connection.on('hover', response => { + connection.on('hover', (response) => { expect(response).to.deep.equal(hoverResponse); done(); }); @@ -360,7 +360,7 @@ describe('LspWsConnection', () => { beforeEach(() => { // Fake response just includes the hover provider - mockSocket.send.onFirstCall().callsFake(str => { + mockSocket.send.onFirstCall().callsFake((str) => { const data = JSON.stringify({ jsonrpc: '2.0', id: 0, @@ -368,123 +368,123 @@ describe('LspWsConnection', () => { capabilities: { completionProvider: { triggerCharacters: ['.'], - resolveProvider: false - } - } - } as lsProtocol.InitializeResult + resolveProvider: false, + }, + }, + } as lsProtocol.InitializeResult, }); mockSocket.dispatchEvent(new MessageEvent('message', { data })); }); // 2. After receiving capabilities from the server, we will send a completion - mockSocket.send.onSecondCall().callsFake(str => { + mockSocket.send.onSecondCall().callsFake((str) => { void connection.getCompletion( { line: 1, - ch: 8 + ch: 8, }, { start: { line: 1, - ch: 8 + ch: 8, }, end: { line: 1, - ch: 9 + ch: 9, }, - text: '.' + text: '.', }, mockInfo ); }); }); - it('emits a null completion event', done => { + it('emits a null completion event', (done) => { // 3. Fake a server response for the hover - mockSocket.send.onThirdCall().callsFake(str => { + mockSocket.send.onThirdCall().callsFake((str) => { const message = JSON.parse(str); const data = JSON.stringify({ jsonrpc: '2.0', id: message.id, - result: null + result: null, }); mockSocket.dispatchEvent(new MessageEvent('message', { data })); }); - connection.connect(mockSocket).catch(err => console.warn(err)); + connection.connect(mockSocket).catch((err) => console.warn(err)); mockSocket.dispatchEvent(new Event('open')); - connection.on('completion', response => { + connection.on('completion', (response) => { expect(response).to.be.a('null'); done(); }); }); - it('emits a completion event using CompletionList', done => { + it('emits a completion event using CompletionList', (done) => { completionResponse = { isIncomplete: false, items: [ { - label: 'log' + label: 'log', }, { - label: 'info' - } - ] + label: 'info', + }, + ], } as lsProtocol.CompletionList; // 3. Fake a server response for the hover - mockSocket.send.onThirdCall().callsFake(str => { + mockSocket.send.onThirdCall().callsFake((str) => { const message = JSON.parse(str); const data = JSON.stringify({ jsonrpc: '2.0', id: message.id, - result: completionResponse + result: completionResponse, }); mockSocket.dispatchEvent(new MessageEvent('message', { data })); }); - connection.connect(mockSocket).catch(err => console.warn(err)); + connection.connect(mockSocket).catch((err) => console.warn(err)); mockSocket.dispatchEvent(new Event('open')); - connection.on('completion', response => { + connection.on('completion', (response) => { expect(response).to.deep.equal(completionResponse.items); done(); }); }); - it('emits a completion event of CompletionItem[]', done => { + it('emits a completion event of CompletionItem[]', (done) => { const completion = [ { - label: 'log' + label: 'log', }, { - label: 'info' - } + label: 'info', + }, ] as lsProtocol.CompletionItem[]; // 3. Fake a server response for the hover - mockSocket.send.onThirdCall().callsFake(str => { + mockSocket.send.onThirdCall().callsFake((str) => { const message = JSON.parse(str); const data = JSON.stringify({ jsonrpc: '2.0', id: message.id, - result: completion + result: completion, }); mockSocket.dispatchEvent(new MessageEvent('message', { data })); }); - connection.connect(mockSocket).catch(err => console.warn(err)); + connection.connect(mockSocket).catch((err) => console.warn(err)); mockSocket.dispatchEvent(new Event('open')); - connection.on('completion', response => { + connection.on('completion', (response) => { expect(response).to.deep.equal(completion); done(); }); @@ -492,7 +492,7 @@ describe('LspWsConnection', () => { }); it('closes the socket connection and stops sending messages', () => { - connection.connect(mockSocket).catch(err => console.warn(err)); + connection.connect(mockSocket).catch((err) => console.warn(err)); connection.close(); connection.sendChange(mockInfo); diff --git a/packages/lsp-ws-connection/src/test/mock-connection.ts b/packages/lsp-ws-connection/src/test/mock-connection.ts index 8ade623ea..e9998742a 100644 --- a/packages/lsp-ws-connection/src/test/mock-connection.ts +++ b/packages/lsp-ws-connection/src/test/mock-connection.ts @@ -18,7 +18,7 @@ export class MockConnection implements ILspConnection { if (!listeners) { return false; } - listeners.forEach(listener => listener.call(null, event.data)); + listeners.forEach((listener) => listener.call(null, event.data)); }; public sendInitialize = sinon.stub(); @@ -62,7 +62,7 @@ export class MockConnection implements ILspConnection { return; } - const index = listeners.findIndex(l => l === listener); + const index = listeners.findIndex((l) => l === listener); if (index > -1) { this.listeners[type].splice(index); } diff --git a/packages/lsp-ws-connection/src/test/server-capability-registration.test.ts b/packages/lsp-ws-connection/src/test/server-capability-registration.test.ts index 344ddbe77..d16af6a1c 100644 --- a/packages/lsp-ws-connection/src/test/server-capability-registration.test.ts +++ b/packages/lsp-ws-connection/src/test/server-capability-registration.test.ts @@ -2,11 +2,11 @@ import { expect } from 'chai'; import { Registration, ServerCapabilities, - Unregistration + Unregistration, } from 'vscode-languageserver-protocol'; import { registerServerCapability, - unregisterServerCapability + unregisterServerCapability, } from '../server-capability-registration'; describe('ServerCapabilities client registration', () => { @@ -14,10 +14,10 @@ describe('ServerCapabilities client registration', () => { hoverProvider: true, completionProvider: { resolveProvider: true, - triggerCharacters: ['.', ','] + triggerCharacters: ['.', ','], }, signatureHelpProvider: { - triggerCharacters: ['.', ','] + triggerCharacters: ['.', ','], }, definitionProvider: true, typeDefinitionProvider: true, @@ -28,31 +28,31 @@ describe('ServerCapabilities client registration', () => { workspaceSymbolProvider: true, codeActionProvider: true, codeLensProvider: { - resolveProvider: true + resolveProvider: true, }, documentFormattingProvider: true, documentRangeFormattingProvider: true, documentOnTypeFormattingProvider: { - firstTriggerCharacter: '.' + firstTriggerCharacter: '.', }, renameProvider: true, documentLinkProvider: { - resolveProvider: true + resolveProvider: true, }, colorProvider: true, foldingRangeProvider: true, declarationProvider: true, executeCommandProvider: { - commands: ['not', 'real', 'commands'] - } + commands: ['not', 'real', 'commands'], + }, }; it('registers server capabilities', () => { - Object.keys(serverCapabilities).forEach(capability => { + Object.keys(serverCapabilities).forEach((capability) => { const capabilityOptions = (serverCapabilities as any)[capability]; const registration = { id: 'id', - method: getMethodFromCapability(capability) + method: getMethodFromCapability(capability), } as Registration; if (typeof capabilityOptions !== 'boolean') { @@ -77,10 +77,10 @@ describe('ServerCapabilities client registration', () => { }); it('unregisters server capabilities', () => { - Object.keys(serverCapabilities).forEach(capability => { + Object.keys(serverCapabilities).forEach((capability) => { const unregistration = { id: 'some id', - method: getMethodFromCapability(capability) + method: getMethodFromCapability(capability), } as Unregistration; const newServerCapabilities = unregisterServerCapability( serverCapabilities, diff --git a/packages/lsp-ws-connection/src/types.ts b/packages/lsp-ws-connection/src/types.ts index 9c721e4cf..03f5cc17b 100644 --- a/packages/lsp-ws-connection/src/types.ts +++ b/packages/lsp-ws-connection/src/types.ts @@ -351,7 +351,7 @@ export function getFilledDefaults( enableParameterHints: true, iconsInSuggestions: true, formatOnType: false, - formatOnPaste: false + formatOnPaste: false, }, options ); diff --git a/packages/lsp-ws-connection/src/ws-connection.ts b/packages/lsp-ws-connection/src/ws-connection.ts index 71d4f00f5..118f99e02 100644 --- a/packages/lsp-ws-connection/src/ws-connection.ts +++ b/packages/lsp-ws-connection/src/ws-connection.ts @@ -4,7 +4,7 @@ import * as protocol from 'vscode-languageserver-protocol'; import { ConsoleLogger, listen, MessageConnection } from 'vscode-ws-jsonrpc'; import { registerServerCapability, - unregisterServerCapability + unregisterServerCapability, } from './server-capability-registration'; import { ILspConnection, @@ -13,7 +13,7 @@ import { ITokenInfo, IDocumentInfo, AnyLocation, - AnyCompletion + AnyCompletion, } from './types'; /** @@ -111,7 +111,7 @@ export class LspWsConnection extends events.EventEmitter } ); - this.connection.onError(e => { + this.connection.onError((e) => { this.emit('error', e); }); @@ -119,8 +119,8 @@ export class LspWsConnection extends events.EventEmitter this.isConnected = false; }); - this.sendInitialize().catch(err => console.warn(err)); - } + this.sendInitialize().catch((err) => console.warn(err)); + }, }); } @@ -141,13 +141,13 @@ export class LspWsConnection extends events.EventEmitter textDocument: { hover: { dynamicRegistration: true, - contentFormat: ['markdown', 'plaintext'] + contentFormat: ['markdown', 'plaintext'], }, synchronization: { dynamicRegistration: true, willSave: false, didSave: true, - willSaveWaitUntil: false + willSaveWaitUntil: false, }, completion: { dynamicRegistration: true, @@ -156,43 +156,43 @@ export class LspWsConnection extends events.EventEmitter commitCharactersSupport: true, documentationFormat: ['markdown', 'plaintext'], deprecatedSupport: false, - preselectSupport: false + preselectSupport: false, }, - contextSupport: false + contextSupport: false, }, signatureHelp: { dynamicRegistration: true, signatureInformation: { - documentationFormat: ['markdown', 'plaintext'] - } + documentationFormat: ['markdown', 'plaintext'], + }, }, declaration: { dynamicRegistration: true, - linkSupport: true + linkSupport: true, }, definition: { dynamicRegistration: true, - linkSupport: true + linkSupport: true, }, typeDefinition: { dynamicRegistration: true, - linkSupport: true + linkSupport: true, }, implementation: { dynamicRegistration: true, - linkSupport: true - } + linkSupport: true, + }, } as protocol.ClientCapabilities, workspace: { didChangeConfiguration: { - dynamicRegistration: true - } - } as protocol.WorkspaceClientCapabilities + dynamicRegistration: true, + }, + } as protocol.WorkspaceClientCapabilities, } as protocol.ClientCapabilities, initializationOptions: null, processId: null, rootUri: this.rootUri, - workspaceFolders: null + workspaceFolders: null, }; } @@ -206,10 +206,10 @@ export class LspWsConnection extends events.EventEmitter this.connection .sendRequest('initialize', message) .then( - result => { + (result) => { this.onServerInitialized(result); }, - e => { + (e) => { console.warn('lsp-ws-connection initialization failure', e); } ); @@ -221,8 +221,8 @@ export class LspWsConnection extends events.EventEmitter uri: documentInfo.uri, languageId: documentInfo.languageId, text: documentInfo.text, - version: documentInfo.version - } as protocol.TextDocumentItem + version: documentInfo.version, + } as protocol.TextDocumentItem, }; this.connection.sendNotification( 'textDocument/didOpen', @@ -238,9 +238,9 @@ export class LspWsConnection extends events.EventEmitter const textDocumentChange: protocol.DidChangeTextDocumentParams = { textDocument: { uri: documentInfo.uri, - version: documentInfo.version + version: documentInfo.version, } as protocol.VersionedTextDocumentIdentifier, - contentChanges: [{ text: documentInfo.text }] + contentChanges: [{ text: documentInfo.text }], }; this.connection.sendNotification( 'textDocument/didChange', @@ -257,9 +257,9 @@ export class LspWsConnection extends events.EventEmitter const textDocumentChange: protocol.DidSaveTextDocumentParams = { textDocument: { uri: documentInfo.uri, - version: documentInfo.version + version: documentInfo.version, } as protocol.VersionedTextDocumentIdentifier, - text: documentInfo.text + text: documentInfo.text, }; this.connection.sendNotification( 'textDocument/didSave', @@ -278,12 +278,12 @@ export class LspWsConnection extends events.EventEmitter const params: protocol.TextDocumentPositionParams = { textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch - } + character: location.ch, + }, }; const hover = await this.connection.sendRequest( @@ -312,16 +312,16 @@ export class LspWsConnection extends events.EventEmitter const params: protocol.CompletionParams = { textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch + character: location.ch, }, context: { triggerKind: triggerKind || protocol.CompletionTriggerKind.Invoked, - triggerCharacter - } + triggerCharacter, + }, }; const items = await this.connection.sendRequest( @@ -346,7 +346,7 @@ export class LspWsConnection extends events.EventEmitter 'completionItem/resolve', completionItem ) - .then(result => { + .then((result) => { this.emit('completionResolved', result); }); } @@ -373,12 +373,12 @@ export class LspWsConnection extends events.EventEmitter const params: protocol.TextDocumentPositionParams = { textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch - } + character: location.ch, + }, }; const help = await this.connection.sendRequest( @@ -409,12 +409,12 @@ export class LspWsConnection extends events.EventEmitter protocol.DocumentHighlight[] >('textDocument/documentHighlight', { textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch - } + character: location.ch, + }, } as protocol.TextDocumentPositionParams); if (emit) { @@ -439,12 +439,12 @@ export class LspWsConnection extends events.EventEmitter const params: protocol.TextDocumentPositionParams = { textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch - } + character: location.ch, + }, }; const targets = await this.connection.sendRequest( @@ -474,12 +474,12 @@ export class LspWsConnection extends events.EventEmitter const params: protocol.TextDocumentPositionParams = { textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch - } + character: location.ch, + }, }; const locations = await this.connection.sendRequest( @@ -508,15 +508,15 @@ export class LspWsConnection extends events.EventEmitter 'textDocument/implementation', { textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch - } + character: location.ch, + }, } as protocol.TextDocumentPositionParams ) - .then(result => { + .then((result) => { this.emit('goTo', result); }); } @@ -536,15 +536,15 @@ export class LspWsConnection extends events.EventEmitter const params: protocol.ReferenceParams = { context: { - includeDeclaration: true + includeDeclaration: true, }, textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch - } + character: location.ch, + }, }; const locations = await this.connection.sendRequest( @@ -608,7 +608,7 @@ export class LspWsConnection extends events.EventEmitter this.serverCapabilities = params.capabilities; this.connection.sendNotification('initialized'); this.connection.sendNotification('workspace/didChangeConfiguration', { - settings: {} + settings: {}, }); this.emit('serverInitialized', this.serverCapabilities); } diff --git a/packages/lsp-ws-connection/webpack.config.js b/packages/lsp-ws-connection/webpack.config.js index c9b050ec1..bd286f6dc 100644 --- a/packages/lsp-ws-connection/webpack.config.js +++ b/packages/lsp-ws-connection/webpack.config.js @@ -3,7 +3,7 @@ const path = require('path'); module.exports = { mode: 'production', entry: { - index: './lib/index.js' + index: './lib/index.js', }, devtool: 'sourcemap', module: { @@ -13,22 +13,22 @@ module.exports = { use: ['source-map-loader'], enforce: 'pre', // eslint-disable-next-line no-undef - exclude: /node_modules/ + exclude: /node_modules/, }, - { test: /\.js.map$/, use: 'file-loader' } - ] + { test: /\.js.map$/, use: 'file-loader' }, + ], }, resolve: { - extensions: ['.js'] + extensions: ['.js'], }, target: 'web', node: { - net: 'mock' + net: 'mock', }, output: { filename: '[name].js', path: path.resolve(__dirname, 'dist'), library: 'lsp-ws-connection', - libraryTarget: 'umd' - } + libraryTarget: 'umd', + }, }; diff --git a/packages/metapackage/package.json b/packages/metapackage/package.json index 1d6629958..a58deccca 100644 --- a/packages/metapackage/package.json +++ b/packages/metapackage/package.json @@ -33,7 +33,7 @@ "fs-extra": "^8.0.1", "rimraf": "~2.6.2", "typedoc": "^0.14.2", - "typescript": "~3.7.2" + "typescript": "~3.9.3" }, "publishConfig": { "access": "public" diff --git a/py_src/jupyter_lsp/kernel/handlers.py b/py_src/jupyter_lsp/kernel/handlers.py new file mode 100644 index 000000000..613359a6f --- /dev/null +++ b/py_src/jupyter_lsp/kernel/handlers.py @@ -0,0 +1,38 @@ +import json +from tornado.ioloop import IOLoop + +class CommHandler: + """ Jupyter Kernel Comm-based transport that imitates the tornado websocket handler + """ + + comm = None + subscribed = None + + def __init__(self, language_server, comm, manager): + self.language_server = language_server + self.comm = comm + self.manager = manager + self.subscribed = False + comm.on_msg(self.on_message_sync) + self.log.error("[{}] on_msg installed".format(self.language_server)) + + @property + def log(self): + return self.manager.log + + def on_message_sync(self, message): + """ shim to put the message handler on the event loop + """ + IOLoop.current().add_callback(self.on_message, message) + + async def on_message(self, message): + self.log.error("[{}] Got a message".format(self.language_server)) + if not self.subscribed: + self.manager.subscribe(self) + self.subscribed = True + await self.manager.on_client_message(json.dumps(message["content"]["data"]), self) + self.log.error("[{}] Finished handling message".format(self.language_server)) + + def write_message(self, message: str): + self.log.error("[{}] Sending a message: {}".format(self.language_server, message)) + self.comm.send(json.loads(message)) diff --git a/py_src/jupyter_lsp/kernel/kernel.py b/py_src/jupyter_lsp/kernel/kernel.py index b75869e00..9d36d360d 100644 --- a/py_src/jupyter_lsp/kernel/kernel.py +++ b/py_src/jupyter_lsp/kernel/kernel.py @@ -7,11 +7,12 @@ from pathlib import Path from typing import Dict, List, Text +import traitlets from ipykernel.ipkernel import IPythonKernel from ipykernel.kernelapp import IPKernelApp -from ipykernel.comm import Comm from .._version import __version__ +from .manager import CommLanguageServerManager __all__ = ["LanguageServerKernel"] @@ -25,39 +26,6 @@ "file_extension": ".py", } -CONTROL_COMM_TARGET = "jupyter.lsp.control" -SERVER_COMM_TARGET = "jupyter.lsp.server" - -from ..manager import LanguageServerManager - - -class CommHandler: - """ imitates the websocket handler - """ - - comm = None - subscribed = None - - def __init__(self, language_server, comm, manager): - self.language_server = language_server - self.comm = comm - self.manager = manager - self.subscribed = False - comm.on_msg(self.on_message) - - @property - def log(self): - return self.manager.log - - async def on_message(self, message): - self.log.debug("[{}] Handling a message".format(self.language_server)) - if not self.subscribed: - self.manager.subscribe(self) - self.subscribed = True - await self.manager.on_client_message(message, self) - - def write_message(self, message: str): - self.comm.send(json.loads(message)) class LanguageServerKernel(IPythonKernel): @@ -74,42 +42,17 @@ class LanguageServerKernel(IPythonKernel): {"text": "Language Server Protocol", "url": "https://microsoft.github.io/language-server-protocol/"}, ] + language_server_manager = traitlets.Instance(CommLanguageServerManager) + + @traitlets.default("language_server_manager") + def _default_language_server_manager(self): + manager = CommLanguageServerManager(parent=self) + return manager + def __init__(self, **kwargs): super().__init__(**kwargs) - self._lsp_comms = {} - self.init_lsp_comm() - self.init_lsp_manager() - - def init_lsp_manager(self): - self.lsp_manager = LanguageServerManager(parent=self) - self.lsp_manager.initialize() - - def init_lsp_comm(self): - self.comm_manager.register_target(CONTROL_COMM_TARGET, self.on_lsp_comm_opened) - self.log.error('comm target registered') - - def on_lsp_comm_opened(self, comm, comm_msg): - self.log.error('comm received %s: %s', comm, comm_msg) - self.init_server_comms() - - def init_server_comms(self): - for language_server, session in self.lsp_manager.sessions.items(): - self.make_server_comm(language_server, session) - - def make_server_comm(self, language_server, session): - self.log.error("comm for %s", language_server) - comm = Comm( - target_name=SERVER_COMM_TARGET, - metadata={ - "language_server": language_server, - "session": session.to_json() - }, - ) - self._lsp_comms[language_server] = CommHandler( - language_server=language_server, - comm=comm, - manager=self.lsp_manager - ) + self.log.error("Initializing Language Server Manager...") + self.language_server_manager.initialize() def launch(): diff --git a/py_src/jupyter_lsp/kernel/manager.py b/py_src/jupyter_lsp/kernel/manager.py new file mode 100644 index 000000000..45294c799 --- /dev/null +++ b/py_src/jupyter_lsp/kernel/manager.py @@ -0,0 +1,65 @@ +import traitlets +from ipykernel.comm import Comm + +from ..manager import LanguageServerManager +from ..schema import SERVERS_RESPONSE +from .handlers import CommHandler + + +class CommLanguageServerManager(LanguageServerManager): + CONTROL_COMM_TARGET = "jupyter.lsp.control" + LANGUAGE_SERVER_COMM_TARGET = "jupyter.lsp.language_server" + + _lsp_comms = traitlets.Dict() + + @traitlets.default("_lsp_comms") + def _default_lsp_comms(self): + return {} + + @property + def log(self): + return self.parent.log + + @property + def comm_manager(self): + return self.parent.comm_manager + + def initialize(self, *args, **kwargs): + super().initialize(*args, **kwargs) + self.init_comm_targets() + + def init_comm_targets(self): + self.comm_manager.register_target(self.CONTROL_COMM_TARGET, self.on_control_comm_opened) + self.comm_manager.register_target(self.LANGUAGE_SERVER_COMM_TARGET, self.on_language_server_comm_opened) + self.log.error("comm targets registered: {}".format([self.CONTROL_COMM_TARGET, self.LANGUAGE_SERVER_COMM_TARGET])) + + def on_control_comm_opened(self, comm, comm_msg): + self.log.error("[{}] control comm opened: {}".format(comm, comm_msg)) + self.send_status(comm) + # nb: when should we update? + + def send_status(self, comm): + response = { + "version": 2, + "sessions": { + language_server: session.to_json() + for language_server, session in self.sessions.items() + }, + } + + errors = list(SERVERS_RESPONSE.iter_errors(response)) + + if errors: # pragma: no cover + self.log.warn("{} validation errors: {}", len(errors), errors) + + comm.send(response) + + def on_language_server_comm_opened(self, comm, comm_msg): + self.log.error("[{}] language server comm requested: {}".format(comm, comm_msg)) + language_server = comm_msg["metadata"]["language_server"] + + self._lsp_comms[language_server] = CommHandler( + language_server=language_server, + comm=comm, + manager=self + ) diff --git a/yarn.lock b/yarn.lock index c5f132ce2..a05a15013 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,668 +2,799 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.1.tgz#d5481c5095daa1c57e16e54c6f9198443afb49ff" + integrity sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw== + dependencies: + "@babel/highlight" "^7.10.1" + +"@babel/compat-data@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.10.1.tgz#b1085ffe72cd17bf2c0ee790fc09f9626011b2db" + integrity sha512-CHvCj7So7iCkGKPRFUfryXIkU2gSBw7VSZFYLsqVhrS47269VK2Hfi9S/YcublPMW8k1u2bQBlbDruoQEm4fgw== dependencies: - "@babel/highlight" "^7.8.3" + browserslist "^4.12.0" + invariant "^2.2.4" + semver "^5.5.0" "@babel/core@^7.1.0": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.4.tgz#d496799e5c12195b3602d0fddd77294e3e38e80e" - integrity sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.4" - "@babel/helpers" "^7.8.4" - "@babel/parser" "^7.8.4" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.4" - "@babel/types" "^7.8.3" + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.10.2.tgz#bd6786046668a925ac2bd2fd95b579b92a23b36a" + integrity sha512-KQmV9yguEjQsXqyOUGKjS4+3K8/DlOCE2pZcq4augdQmtTy5iv5EHtmMSJ7V4c1BIPjuwtZYqYLCq9Ga+hGBRQ== + dependencies: + "@babel/code-frame" "^7.10.1" + "@babel/generator" "^7.10.2" + "@babel/helper-module-transforms" "^7.10.1" + "@babel/helpers" "^7.10.1" + "@babel/parser" "^7.10.2" + "@babel/template" "^7.10.1" + "@babel/traverse" "^7.10.1" + "@babel/types" "^7.10.2" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" - json5 "^2.1.0" + json5 "^2.1.2" lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.4.0", "@babel/generator@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.4.tgz#35bbc74486956fe4251829f9f6c48330e8d0985e" - integrity sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA== +"@babel/generator@^7.10.1", "@babel/generator@^7.10.2", "@babel/generator@^7.4.0": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.2.tgz#0fa5b5b2389db8bfdfcc3492b551ee20f5dd69a9" + integrity sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.10.2" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz#5f73f2b28580e224b5b9bd03146a4015d6217f5f" - integrity sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ== +"@babel/helper-annotate-as-pure@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz#f6d08acc6f70bbd59b436262553fb2e259a1a268" + integrity sha512-ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw== dependencies: - "@babel/helper-explode-assignable-expression" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/types" "^7.10.1" -"@babel/helper-call-delegate@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz#621b83e596722b50c0066f9dc37d3232e461b801" - integrity sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.1.tgz#0ec7d9be8174934532661f87783eb18d72290059" + integrity sha512-cQpVq48EkYxUU0xozpGCLla3wlkdRRqLWu1ksFMXA9CM5KQmyyRpSEsYXbao7JUkOw/tAaYKCaYyZq6HOFYtyw== dependencies: - "@babel/helper-hoist-variables" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-explode-assignable-expression" "^7.10.1" + "@babel/types" "^7.10.1" -"@babel/helper-create-regexp-features-plugin@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz#6d5762359fd34f4da1500e4cff9955b5299aaf59" - integrity sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A== +"@babel/helper-compilation-targets@^7.10.2": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz#a17d9723b6e2c750299d2a14d4637c76936d8285" + integrity sha512-hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA== dependencies: - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.6.0" + "@babel/compat-data" "^7.10.1" + browserslist "^4.12.0" + invariant "^2.2.4" + levenary "^1.1.1" + semver "^5.5.0" -"@babel/helper-define-map@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz#2841bf92eb8bd9c906851546fe6b9d45e162f176" - integrity sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg== - dependencies: - "@babel/helper-function-name" "^7.7.4" - "@babel/types" "^7.7.4" +"@babel/helper-create-class-features-plugin@^7.10.1": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.2.tgz#7474295770f217dbcf288bf7572eb213db46ee67" + integrity sha512-5C/QhkGFh1vqcziq1vAL6SI9ymzUp8BCYjFpvYVhWP4DlATIb3u5q3iUd35mvlyGs8fO7hckkW7i0tmH+5+bvQ== + dependencies: + "@babel/helper-function-name" "^7.10.1" + "@babel/helper-member-expression-to-functions" "^7.10.1" + "@babel/helper-optimise-call-expression" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/helper-replace-supers" "^7.10.1" + "@babel/helper-split-export-declaration" "^7.10.1" + +"@babel/helper-create-regexp-features-plugin@^7.10.1", "@babel/helper-create-regexp-features-plugin@^7.8.3": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz#1b8feeab1594cbcfbf3ab5a3bbcabac0468efdbd" + integrity sha512-Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.1" + "@babel/helper-regex" "^7.10.1" + regexpu-core "^4.7.0" + +"@babel/helper-define-map@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.1.tgz#5e69ee8308648470dd7900d159c044c10285221d" + integrity sha512-+5odWpX+OnvkD0Zmq7panrMuAGQBu6aPUgvMzuMGo4R+jUOvealEj2hiqI6WhxgKrTpFoFj0+VdsuA8KDxHBDg== + dependencies: + "@babel/helper-function-name" "^7.10.1" + "@babel/types" "^7.10.1" lodash "^4.17.13" -"@babel/helper-explode-assignable-expression@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz#fa700878e008d85dc51ba43e9fb835cddfe05c84" - integrity sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg== +"@babel/helper-explode-assignable-expression@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.1.tgz#e9d76305ee1162ca467357ae25df94f179af2b7e" + integrity sha512-vcUJ3cDjLjvkKzt6rHrl767FeE7pMEYfPanq5L16GRtrXIoznc0HykNW2aEYkcnP76P0isoqJ34dDMFZwzEpJg== dependencies: - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/traverse" "^7.10.1" + "@babel/types" "^7.10.1" -"@babel/helper-function-name@^7.7.4", "@babel/helper-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" - integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== +"@babel/helper-function-name@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz#92bd63829bfc9215aca9d9defa85f56b539454f4" + integrity sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ== dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/helper-get-function-arity" "^7.10.1" + "@babel/template" "^7.10.1" + "@babel/types" "^7.10.1" -"@babel/helper-get-function-arity@^7.7.4", "@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== +"@babel/helper-get-function-arity@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz#7303390a81ba7cb59613895a192b93850e373f7d" + integrity sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.10.1" -"@babel/helper-hoist-variables@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz#612384e3d823fdfaaf9fce31550fe5d4db0f3d12" - integrity sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ== +"@babel/helper-hoist-variables@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.1.tgz#7e77c82e5dcae1ebf123174c385aaadbf787d077" + integrity sha512-vLm5srkU8rI6X3+aQ1rQJyfjvCBLXP8cAGeuw04zeAM2ItKb1e7pmVmLyHb4sDaAYnLL13RHOZPLEtcGZ5xvjg== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.10.1" -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== +"@babel/helper-member-expression-to-functions@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.1.tgz#432967fd7e12a4afef66c4687d4ca22bc0456f15" + integrity sha512-u7XLXeM2n50gb6PWJ9hoO5oO7JFPaZtrh35t8RqKLT1jFKj9IWeD1zrcrYp1q1qiZTdEarfDWfTIP8nGsu0h5g== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.10.1" -"@babel/helper-module-imports@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== +"@babel/helper-module-imports@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz#dd331bd45bccc566ce77004e9d05fe17add13876" + integrity sha512-SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.10.1" -"@babel/helper-module-transforms@^7.7.4", "@babel/helper-module-transforms@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz#d044da7ffd91ec967db25cd6748f704b6b244835" - integrity sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw== +"@babel/helper-module-transforms@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz#24e2f08ee6832c60b157bb0936c86bef7210c622" + integrity sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg== dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-simple-access" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-module-imports" "^7.10.1" + "@babel/helper-replace-supers" "^7.10.1" + "@babel/helper-simple-access" "^7.10.1" + "@babel/helper-split-export-declaration" "^7.10.1" + "@babel/template" "^7.10.1" + "@babel/types" "^7.10.1" lodash "^4.17.13" -"@babel/helper-optimise-call-expression@^7.7.4", "@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== +"@babel/helper-optimise-call-expression@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.1.tgz#b4a1f2561870ce1247ceddb02a3860fa96d72543" + integrity sha512-a0DjNS1prnBsoKx83dP2falChcs7p3i8VMzdrSbfLhuQra/2ENC4sbri34dz/rWmDADsmF1q5GbfaXydh0Jbjg== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.10.1" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" - integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.1", "@babel/helper-plugin-utils@^7.8.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz#ec5a5cf0eec925b66c60580328b122c01230a127" + integrity sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA== -"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" - integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== +"@babel/helper-regex@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.1.tgz#021cf1a7ba99822f993222a001cc3fec83255b96" + integrity sha512-7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g== dependencies: lodash "^4.17.13" -"@babel/helper-remap-async-to-generator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz#c68c2407350d9af0e061ed6726afb4fff16d0234" - integrity sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw== +"@babel/helper-remap-async-to-generator@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.1.tgz#bad6aaa4ff39ce8d4b82ccaae0bfe0f7dbb5f432" + integrity sha512-RfX1P8HqsfgmJ6CwaXGKMAqbYdlleqglvVtht0HGPMSsy2V6MqLlOJVF/0Qyb/m2ZCi2z3q3+s6Pv7R/dQuZ6A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.1" + "@babel/helper-wrap-function" "^7.10.1" + "@babel/template" "^7.10.1" + "@babel/traverse" "^7.10.1" + "@babel/types" "^7.10.1" + +"@babel/helper-replace-supers@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz#ec6859d20c5d8087f6a2dc4e014db7228975f13d" + integrity sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.10.1" + "@babel/helper-optimise-call-expression" "^7.10.1" + "@babel/traverse" "^7.10.1" + "@babel/types" "^7.10.1" + +"@babel/helper-simple-access@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz#08fb7e22ace9eb8326f7e3920a1c2052f13d851e" + integrity sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw== + dependencies: + "@babel/template" "^7.10.1" + "@babel/types" "^7.10.1" + +"@babel/helper-split-export-declaration@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz#c6f4be1cbc15e3a868e4c64a17d5d31d754da35f" + integrity sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g== + dependencies: + "@babel/types" "^7.10.1" + +"@babel/helper-validator-identifier@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz#5770b0c1a826c4f53f5ede5e153163e0318e94b5" + integrity sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw== + +"@babel/helper-wrap-function@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz#956d1310d6696257a7afd47e4c42dfda5dfcedc9" + integrity sha512-C0MzRGteVDn+H32/ZgbAv5r56f2o1fZSA/rj/TYo8JEJNHg+9BdSmKBUND0shxWRztWhjlT2cvHYuynpPsVJwQ== + dependencies: + "@babel/helper-function-name" "^7.10.1" + "@babel/template" "^7.10.1" + "@babel/traverse" "^7.10.1" + "@babel/types" "^7.10.1" + +"@babel/helpers@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.1.tgz#a6827b7cb975c9d9cef5fd61d919f60d8844a973" + integrity sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw== + dependencies: + "@babel/template" "^7.10.1" + "@babel/traverse" "^7.10.1" + "@babel/types" "^7.10.1" + +"@babel/highlight@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.1.tgz#841d098ba613ba1a427a2b383d79e35552c38ae0" + integrity sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg== + dependencies: + "@babel/helper-validator-identifier" "^7.10.1" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.10.1", "@babel/parser@^7.10.2", "@babel/parser@^7.4.3": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.2.tgz#871807f10442b92ff97e4783b9b54f6a0ca812d0" + integrity sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ== + +"@babel/plugin-proposal-async-generator-functions@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.1.tgz#6911af5ba2e615c4ff3c497fe2f47b35bf6d7e55" + integrity sha512-vzZE12ZTdB336POZjmpblWfNNRpMSua45EYnRigE2XsZxcXcIyly2ixnTJasJE4Zq3U7t2d8rRF7XRUuzHxbOw== dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-wrap-function" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/helper-remap-async-to-generator" "^7.10.1" + "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/helper-replace-supers@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz#91192d25f6abbcd41da8a989d4492574fb1530bc" - integrity sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA== +"@babel/plugin-proposal-class-properties@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.1.tgz#046bc7f6550bb08d9bd1d4f060f5f5a4f1087e01" + integrity sha512-sqdGWgoXlnOdgMXU+9MbhzwFRgxVLeiGBqTrnuS7LC2IBU31wSsESbTUreT2O418obpfPdGUR2GbEufZF1bpqw== dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/helper-create-class-features-plugin" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/helper-simple-access@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz#a169a0adb1b5f418cfc19f22586b2ebf58a9a294" - integrity sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A== +"@babel/plugin-proposal-dynamic-import@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz#e36979dc1dc3b73f6d6816fc4951da2363488ef0" + integrity sha512-Cpc2yUVHTEGPlmiQzXj026kqwjEQAD9I4ZC16uzdbgWgitg/UHKHLffKNCQZ5+y8jpIZPJcKcwsr2HwPh+w3XA== dependencies: - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/helper-split-export-declaration@^7.7.4", "@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== +"@babel/plugin-proposal-json-strings@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz#b1e691ee24c651b5a5e32213222b2379734aff09" + integrity sha512-m8r5BmV+ZLpWPtMY2mOKN7wre6HIO4gfIiV+eOmsnZABNenrt/kzYBwrh+KOfgumSWpnlGs5F70J8afYMSJMBg== dependencies: - "@babel/types" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-json-strings" "^7.8.0" -"@babel/helper-wrap-function@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz#37ab7fed5150e22d9d7266e830072c0cdd8baace" - integrity sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz#02dca21673842ff2fe763ac253777f235e9bbf78" + integrity sha512-56cI/uHYgL2C8HVuHOuvVowihhX0sxb3nnfVRzUeVHTWmRHTZrKuAh/OBIMggGU/S1g/1D2CRCXqP+3u7vX7iA== dependencies: - "@babel/helper-function-name" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/helpers@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.4.tgz#754eb3ee727c165e0a240d6c207de7c455f36f73" - integrity sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w== +"@babel/plugin-proposal-numeric-separator@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz#a9a38bc34f78bdfd981e791c27c6fdcec478c123" + integrity sha512-jjfym4N9HtCiNfyyLAVD8WqPYeHUrw4ihxuAynWj6zzp2gf9Ey2f7ImhFm6ikB3CLf5Z/zmcJDri6B4+9j9RsA== dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.4" - "@babel/types" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-numeric-separator" "^7.10.1" -"@babel/highlight@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" - integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== +"@babel/plugin-proposal-object-rest-spread@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.1.tgz#cba44908ac9f142650b4a65b8aa06bf3478d5fb6" + integrity sha512-Z+Qri55KiQkHh7Fc4BW6o+QBuTagbOp9txE+4U1i79u9oWlf2npkiDx+Rf3iK3lbcHBuNy9UOkwuR5wOMH3LIQ== dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.10.1" -"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.8.3", "@babel/parser@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.4.tgz#d1dbe64691d60358a974295fa53da074dd2ce8e8" - integrity sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw== +"@babel/plugin-proposal-optional-catch-binding@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz#c9f86d99305f9fa531b568ff5ab8c964b8b223d2" + integrity sha512-VqExgeE62YBqI3ogkGoOJp1R6u12DFZjqwJhqtKc2o5m1YTUuUWnos7bZQFBhwkxIFpWYJ7uB75U7VAPPiKETA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-async-generator-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz#0351c5ac0a9e927845fffd5b82af476947b7ce6d" - integrity sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw== +"@babel/plugin-proposal-optional-chaining@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.1.tgz#15f5d6d22708629451a91be28f8facc55b0e818c" + integrity sha512-dqQj475q8+/avvok72CF3AOSV/SGEcH29zT5hhohqqvvZ2+boQoOr7iGldBG5YXTO2qgCgc2B3WvVLUdbeMlGA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.4" - "@babel/plugin-syntax-async-generators" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/plugin-proposal-dynamic-import@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz#dde64a7f127691758cbfed6cf70de0fa5879d52d" - integrity sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ== +"@babel/plugin-proposal-private-methods@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.1.tgz#ed85e8058ab0fe309c3f448e5e1b73ca89cdb598" + integrity sha512-RZecFFJjDiQ2z6maFprLgrdnm0OzoC23Mx89xf1CcEsxmHuzuXOdniEuI+S3v7vjQG4F5sa6YtUp+19sZuSxHg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.7.4" + "@babel/helper-create-class-features-plugin" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-proposal-json-strings@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz#7700a6bfda771d8dc81973249eac416c6b4c697d" - integrity sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw== +"@babel/plugin-proposal-unicode-property-regex@^7.10.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz#dc04feb25e2dd70c12b05d680190e138fa2c0c6f" + integrity sha512-JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.7.4" + "@babel/helper-create-regexp-features-plugin" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-proposal-object-rest-spread@^7.7.7": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.0.tgz#ca8ac673d32db774c2154a4c7517fd46ec45e9cf" - integrity sha512-SjJ2ZXCylpWC+5DTES0/pbpNmw/FnjU/3dF068xF0DU9aN+oOKah+3MCSFcb4pnZ9IwmxfOy4KnbGJSQR+hAZA== +"@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-object-rest-spread" "^7.8.0" -"@babel/plugin-proposal-optional-catch-binding@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz#ec21e8aeb09ec6711bc0a39ca49520abee1de379" - integrity sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w== +"@babel/plugin-syntax-class-properties@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz#d5bc0645913df5b17ad7eda0fa2308330bde34c5" + integrity sha512-Gf2Yx/iRs1JREDtVZ56OrjjgFHCaldpTnuy9BHla10qyVT3YkIIGEtoDWhyop0ksu1GvNjHIoYRBqm3zoR1jyQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-proposal-unicode-property-regex@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz#433fa9dac64f953c12578b29633f456b68831c4e" - integrity sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w== +"@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-create-regexp-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-async-generators@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz#331aaf310a10c80c44a66b238b6e49132bd3c889" - integrity sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g== +"@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.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-dynamic-import@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz#29ca3b4415abfe4a5ec381e903862ad1a54c3aec" - integrity sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg== +"@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.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-json-strings@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz#86e63f7d2e22f9e27129ac4e83ea989a382e86cc" - integrity sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg== +"@babel/plugin-syntax-numeric-separator@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz#25761ee7410bc8cf97327ba741ee94e4a61b7d99" + integrity sha512-uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.7.4", "@babel/plugin-syntax-object-rest-spread@^7.8.0": +"@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.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz#a3e38f59f4b6233867b4a92dcb0ee05b2c334aa6" - integrity sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ== +"@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.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz#bd7d8fa7b9fee793a36e4027fd6dd1aa32f946da" - integrity sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg== +"@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.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-arrow-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz#76309bd578addd8aee3b379d809c802305a98a12" - integrity sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA== +"@babel/plugin-syntax-top-level-await@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz#8b8733f8c57397b3eaa47ddba8841586dcaef362" + integrity sha512-hgA5RYkmZm8FTFT3yu2N9Bx7yVVOKYT6yEdXXo6j2JTm0wNxgqaGeQVaSHRjhfnQbX91DtjFB6McRFSlcJH3xQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-async-to-generator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz#694cbeae6d613a34ef0292713fa42fb45c4470ba" - integrity sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg== +"@babel/plugin-transform-arrow-functions@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz#cb5ee3a36f0863c06ead0b409b4cc43a889b295b" + integrity sha512-6AZHgFJKP3DJX0eCNJj01RpytUa3SOGawIxweHkNX2L6PYikOZmoh5B0d7hIHaIgveMjX990IAa/xK7jRTN8OA== dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-block-scoped-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz#d0d9d5c269c78eaea76227ace214b8d01e4d837b" - integrity sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ== +"@babel/plugin-transform-async-to-generator@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz#e5153eb1a3e028f79194ed8a7a4bf55f862b2062" + integrity sha512-XCgYjJ8TY2slj6SReBUyamJn3k2JLUIiiR5b6t1mNCMSvv7yx+jJpaewakikp0uWFQSF7ChPPoe3dHmXLpISkg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-imports" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/helper-remap-async-to-generator" "^7.10.1" -"@babel/plugin-transform-block-scoping@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz#200aad0dcd6bb80372f94d9e628ea062c58bf224" - integrity sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg== +"@babel/plugin-transform-block-scoped-functions@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz#146856e756d54b20fff14b819456b3e01820b85d" + integrity sha512-B7K15Xp8lv0sOJrdVAoukKlxP9N59HS48V1J3U/JGj+Ad+MHq+am6xJVs85AgXrQn4LV8vaYFOB+pr/yIuzW8Q== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.13" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-classes@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz#c92c14be0a1399e15df72667067a8f510c9400ec" - integrity sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg== +"@babel/plugin-transform-block-scoping@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz#47092d89ca345811451cd0dc5d91605982705d5e" + integrity sha512-8bpWG6TtF5akdhIm/uWTyjHqENpy13Fx8chg7pFH875aNLwX8JxIxqm08gmAT+Whe6AOmaTeLPe7dpLbXt+xUw== dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-define-map" "^7.7.4" - "@babel/helper-function-name" "^7.7.4" - "@babel/helper-optimise-call-expression" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.1" + lodash "^4.17.13" + +"@babel/plugin-transform-classes@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.1.tgz#6e11dd6c4dfae70f540480a4702477ed766d733f" + integrity sha512-P9V0YIh+ln/B3RStPoXpEQ/CoAxQIhRSUn7aXqQ+FZJ2u8+oCtjIXR3+X0vsSD8zv+mb56K7wZW1XiDTDGiDRQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.1" + "@babel/helper-define-map" "^7.10.1" + "@babel/helper-function-name" "^7.10.1" + "@babel/helper-optimise-call-expression" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/helper-replace-supers" "^7.10.1" + "@babel/helper-split-export-declaration" "^7.10.1" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz#e856c1628d3238ffe12d668eb42559f79a81910d" - integrity sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ== +"@babel/plugin-transform-computed-properties@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.1.tgz#59aa399064429d64dce5cf76ef9b90b7245ebd07" + integrity sha512-mqSrGjp3IefMsXIenBfGcPXxJxweQe2hEIwMQvjtiDQ9b1IBvDUjkAtV/HMXX47/vXf14qDNedXsIiNd1FmkaQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-destructuring@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz#2b713729e5054a1135097b6a67da1b6fe8789267" - integrity sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA== +"@babel/plugin-transform-destructuring@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz#abd58e51337815ca3a22a336b85f62b998e71907" + integrity sha512-V/nUc4yGWG71OhaTH705pU8ZSdM6c1KmmLP8ys59oOYbT7RpMYAR3MsVOt6OHL0WzG7BlTU076va9fjJyYzJMA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-dotall-regex@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz#3e9713f1b69f339e87fa796b097d73ded16b937b" - integrity sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg== +"@babel/plugin-transform-dotall-regex@^7.10.1", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz#920b9fec2d78bb57ebb64a644d5c2ba67cc104ee" + integrity sha512-19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-duplicate-keys@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz#3d21731a42e3f598a73835299dd0169c3b90ac91" - integrity sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA== +"@babel/plugin-transform-duplicate-keys@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz#c900a793beb096bc9d4d0a9d0cde19518ffc83b9" + integrity sha512-wIEpkX4QvX8Mo9W6XF3EdGttrIPZWozHfEaDTU0WJD/TDnXMvdDh30mzUl/9qWhnf7naicYartcEfUghTCSNpA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-exponentiation-operator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz#dd30c0191e3a1ba19bcc7e389bdfddc0729d5db9" - integrity sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ== +"@babel/plugin-transform-exponentiation-operator@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz#279c3116756a60dd6e6f5e488ba7957db9c59eb3" + integrity sha512-lr/przdAbpEA2BUzRvjXdEDLrArGRRPwbaF9rvayuHRvdQ7lUTTkZnhZrJ4LE2jvgMRFF4f0YuPQ20vhiPYxtA== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-for-of@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz#248800e3a5e507b1f103d8b4ca998e77c63932bc" - integrity sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA== +"@babel/plugin-transform-for-of@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz#ff01119784eb0ee32258e8646157ba2501fcfda5" + integrity sha512-US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-function-name@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz#75a6d3303d50db638ff8b5385d12451c865025b1" - integrity sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g== +"@babel/plugin-transform-function-name@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz#4ed46fd6e1d8fde2a2ec7b03c66d853d2c92427d" + integrity sha512-//bsKsKFBJfGd65qSNNh1exBy5Y9gD9ZN+DvrJ8f7HXr4avE5POW6zB7Rj6VnqHV33+0vXWUwJT0wSHubiAQkw== dependencies: - "@babel/helper-function-name" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-function-name" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz#27fe87d2b5017a2a5a34d1c41a6b9f6a6262643e" - integrity sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw== +"@babel/plugin-transform-literals@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz#5794f8da82846b22e4e6631ea1658bce708eb46a" + integrity sha512-qi0+5qgevz1NHLZroObRm5A+8JJtibb7vdcPQF1KQE12+Y/xxl8coJ+TpPW9iRq+Mhw/NKLjm+5SHtAHCC7lAw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-member-expression-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz#aee127f2f3339fc34ce5e3055d7ffbf7aa26f19a" - integrity sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA== +"@babel/plugin-transform-member-expression-literals@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz#90347cba31bca6f394b3f7bd95d2bbfd9fce2f39" + integrity sha512-UmaWhDokOFT2GcgU6MkHC11i0NQcL63iqeufXWfRy6pUOGYeCGEKhvfFO6Vz70UfYJYHwveg62GS83Rvpxn+NA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-modules-amd@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz#39e0fb717224b59475b306402bb8eedab01e729c" - integrity sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ== +"@babel/plugin-transform-modules-amd@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz#65950e8e05797ebd2fe532b96e19fc5482a1d52a" + integrity sha512-31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw== dependencies: - "@babel/helper-module-transforms" "^7.7.5" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-module-transforms" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz#1d27f5eb0bcf7543e774950e5b2fa782e637b345" - integrity sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q== +"@babel/plugin-transform-modules-commonjs@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz#d5ff4b4413ed97ffded99961056e1fb980fb9301" + integrity sha512-AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg== dependencies: - "@babel/helper-module-transforms" "^7.7.5" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.7.4" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-module-transforms" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/helper-simple-access" "^7.10.1" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz#cd98152339d3e763dfe838b7d4273edaf520bb30" - integrity sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw== +"@babel/plugin-transform-modules-systemjs@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.1.tgz#9962e4b0ac6aaf2e20431ada3d8ec72082cbffb6" + integrity sha512-ewNKcj1TQZDL3YnO85qh9zo1YF1CHgmSTlRQgHqe63oTrMI85cthKtZjAiZSsSNjPQ5NCaYo5QkbYqEw1ZBgZA== dependencies: - "@babel/helper-hoist-variables" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-hoist-variables" "^7.10.1" + "@babel/helper-module-transforms" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz#1027c355a118de0aae9fee00ad7813c584d9061f" - integrity sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw== +"@babel/plugin-transform-modules-umd@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz#ea080911ffc6eb21840a5197a39ede4ee67b1595" + integrity sha512-EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA== dependencies: - "@babel/helper-module-transforms" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-transforms" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-named-capturing-groups-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz#fb3bcc4ee4198e7385805007373d6b6f42c98220" - integrity sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw== +"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" + integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" + "@babel/helper-create-regexp-features-plugin" "^7.8.3" -"@babel/plugin-transform-new-target@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz#4a0753d2d60639437be07b592a9e58ee00720167" - integrity sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg== +"@babel/plugin-transform-new-target@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz#6ee41a5e648da7632e22b6fb54012e87f612f324" + integrity sha512-MBlzPc1nJvbmO9rPr1fQwXOM2iGut+JC92ku6PbiJMMK7SnQc1rytgpopveE3Evn47gzvGYeCdgfCDbZo0ecUw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-object-super@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz#48488937a2d586c0148451bf51af9d7dda567262" - integrity sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg== +"@babel/plugin-transform-object-super@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz#2e3016b0adbf262983bf0d5121d676a5ed9c4fde" + integrity sha512-WnnStUDN5GL+wGQrJylrnnVlFhFmeArINIR9gjhSeYyvroGhBrSAXYg/RHsnfzmsa+onJrTJrEClPzgNmmQ4Gw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/helper-replace-supers" "^7.10.1" -"@babel/plugin-transform-parameters@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz#7a884b2460164dc5f194f668332736584c760007" - integrity sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew== +"@babel/plugin-transform-parameters@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz#b25938a3c5fae0354144a720b07b32766f683ddd" + integrity sha512-tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg== dependencies: - "@babel/helper-call-delegate" "^7.7.4" - "@babel/helper-get-function-arity" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-get-function-arity" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-property-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz#2388d6505ef89b266103f450f9167e6bd73f98c2" - integrity sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ== +"@babel/plugin-transform-property-literals@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz#cffc7315219230ed81dc53e4625bf86815b6050d" + integrity sha512-Kr6+mgag8auNrgEpbfIWzdXYOvqDHZOF0+Bx2xh4H2EDNwcbRb9lY6nkZg8oSjsX+DH9Ebxm9hOqtKW+gRDeNA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-regenerator@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz#3a8757ee1a2780f390e89f246065ecf59c26fce9" - integrity sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw== +"@babel/plugin-transform-regenerator@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.1.tgz#10e175cbe7bdb63cc9b39f9b3f823c5c7c5c5490" + integrity sha512-B3+Y2prScgJ2Bh/2l9LJxKbb8C8kRfsG4AdPT+n7ixBHIxJaIG8bi8tgjxUMege1+WqSJ+7gu1YeoMVO3gPWzw== dependencies: - regenerator-transform "^0.14.0" + regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz#6a7cf123ad175bb5c69aec8f6f0770387ed3f1eb" - integrity sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ== +"@babel/plugin-transform-reserved-words@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz#0fc1027312b4d1c3276a57890c8ae3bcc0b64a86" + integrity sha512-qN1OMoE2nuqSPmpTqEM7OvJ1FkMEV+BjVeZZm9V9mq/x1JLKQ4pcv8riZJMNN3u2AUGl0ouOMjRr2siecvHqUQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-shorthand-properties@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz#74a0a9b2f6d67a684c6fbfd5f0458eb7ba99891e" - integrity sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q== +"@babel/plugin-transform-shorthand-properties@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz#e8b54f238a1ccbae482c4dce946180ae7b3143f3" + integrity sha512-AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-spread@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz#aa673b356fe6b7e70d69b6e33a17fef641008578" - integrity sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q== +"@babel/plugin-transform-spread@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz#0c6d618a0c4461a274418460a28c9ccf5239a7c8" + integrity sha512-8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-sticky-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz#ffb68c05090c30732076b1285dc1401b404a123c" - integrity sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A== +"@babel/plugin-transform-sticky-regex@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz#90fc89b7526228bed9842cff3588270a7a393b00" + integrity sha512-j17ojftKjrL7ufX8ajKvwRilwqTok4q+BjkknmQw9VNHnItTyMP5anPFzxFJdCQs7clLcWpCV3ma+6qZWLnGMA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/helper-regex" "^7.10.1" -"@babel/plugin-transform-template-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz#1eb6411736dd3fe87dbd20cc6668e5121c17d604" - integrity sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ== +"@babel/plugin-transform-template-literals@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.1.tgz#914c7b7f4752c570ea00553b4284dad8070e8628" + integrity sha512-t7B/3MQf5M1T9hPCRG28DNGZUuxAuDqLYS03rJrIk2prj/UV7Z6FOneijhQhnv/Xa039vidXeVbvjK2SK5f7Gg== dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-annotate-as-pure" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-typeof-symbol@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz#3174626214f2d6de322882e498a38e8371b2140e" - integrity sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg== +"@babel/plugin-transform-typeof-symbol@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz#60c0239b69965d166b80a84de7315c1bc7e0bb0e" + integrity sha512-qX8KZcmbvA23zDi+lk9s6hC1FM7jgLHYIjuLgULgc8QtYnmB3tAVIYkNoKRQ75qWBeyzcoMoK8ZQmogGtC/w0g== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/plugin-transform-unicode-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz#a3c0f65b117c4c81c5b6484f2a5e7b95346b83ae" - integrity sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw== +"@babel/plugin-transform-unicode-escapes@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.1.tgz#add0f8483dab60570d9e03cecef6c023aa8c9940" + integrity sha512-zZ0Poh/yy1d4jeDWpx/mNwbKJVwUYJX73q+gyh4bwtG0/iUlzdEu0sLMda8yuDFS6LBQlT/ST1SJAR6zYwXWgw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.1" -"@babel/preset-env@^7.4.3": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.7.tgz#c294167b91e53e7e36d820e943ece8d0c7fe46ac" - integrity sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg== +"@babel/plugin-transform-unicode-regex@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz#6b58f2aea7b68df37ac5025d9c88752443a6b43f" + integrity sha512-Y/2a2W299k0VIUdbqYm9X2qS6fE0CUBhhiPpimK6byy7OJ/kORLlIX+J6UrjgNu5awvs62k+6RSslxhcvVw2Tw== dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.7.4" - "@babel/plugin-proposal-dynamic-import" "^7.7.4" - "@babel/plugin-proposal-json-strings" "^7.7.4" - "@babel/plugin-proposal-object-rest-spread" "^7.7.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.7.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.7.7" - "@babel/plugin-syntax-async-generators" "^7.7.4" - "@babel/plugin-syntax-dynamic-import" "^7.7.4" - "@babel/plugin-syntax-json-strings" "^7.7.4" - "@babel/plugin-syntax-object-rest-spread" "^7.7.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" - "@babel/plugin-syntax-top-level-await" "^7.7.4" - "@babel/plugin-transform-arrow-functions" "^7.7.4" - "@babel/plugin-transform-async-to-generator" "^7.7.4" - "@babel/plugin-transform-block-scoped-functions" "^7.7.4" - "@babel/plugin-transform-block-scoping" "^7.7.4" - "@babel/plugin-transform-classes" "^7.7.4" - "@babel/plugin-transform-computed-properties" "^7.7.4" - "@babel/plugin-transform-destructuring" "^7.7.4" - "@babel/plugin-transform-dotall-regex" "^7.7.7" - "@babel/plugin-transform-duplicate-keys" "^7.7.4" - "@babel/plugin-transform-exponentiation-operator" "^7.7.4" - "@babel/plugin-transform-for-of" "^7.7.4" - "@babel/plugin-transform-function-name" "^7.7.4" - "@babel/plugin-transform-literals" "^7.7.4" - "@babel/plugin-transform-member-expression-literals" "^7.7.4" - "@babel/plugin-transform-modules-amd" "^7.7.5" - "@babel/plugin-transform-modules-commonjs" "^7.7.5" - "@babel/plugin-transform-modules-systemjs" "^7.7.4" - "@babel/plugin-transform-modules-umd" "^7.7.4" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4" - "@babel/plugin-transform-new-target" "^7.7.4" - "@babel/plugin-transform-object-super" "^7.7.4" - "@babel/plugin-transform-parameters" "^7.7.7" - "@babel/plugin-transform-property-literals" "^7.7.4" - "@babel/plugin-transform-regenerator" "^7.7.5" - "@babel/plugin-transform-reserved-words" "^7.7.4" - "@babel/plugin-transform-shorthand-properties" "^7.7.4" - "@babel/plugin-transform-spread" "^7.7.4" - "@babel/plugin-transform-sticky-regex" "^7.7.4" - "@babel/plugin-transform-template-literals" "^7.7.4" - "@babel/plugin-transform-typeof-symbol" "^7.7.4" - "@babel/plugin-transform-unicode-regex" "^7.7.4" - "@babel/types" "^7.7.4" - browserslist "^4.6.0" - core-js-compat "^3.6.0" + "@babel/helper-create-regexp-features-plugin" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + +"@babel/preset-env@^7.4.3": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.10.2.tgz#715930f2cf8573b0928005ee562bed52fb65fdfb" + integrity sha512-MjqhX0RZaEgK/KueRzh+3yPSk30oqDKJ5HP5tqTSB1e2gzGS3PLy7K0BIpnp78+0anFuSwOeuCf1zZO7RzRvEA== + dependencies: + "@babel/compat-data" "^7.10.1" + "@babel/helper-compilation-targets" "^7.10.2" + "@babel/helper-module-imports" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-proposal-async-generator-functions" "^7.10.1" + "@babel/plugin-proposal-class-properties" "^7.10.1" + "@babel/plugin-proposal-dynamic-import" "^7.10.1" + "@babel/plugin-proposal-json-strings" "^7.10.1" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.1" + "@babel/plugin-proposal-numeric-separator" "^7.10.1" + "@babel/plugin-proposal-object-rest-spread" "^7.10.1" + "@babel/plugin-proposal-optional-catch-binding" "^7.10.1" + "@babel/plugin-proposal-optional-chaining" "^7.10.1" + "@babel/plugin-proposal-private-methods" "^7.10.1" + "@babel/plugin-proposal-unicode-property-regex" "^7.10.1" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-class-properties" "^7.10.1" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.1" + "@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.1" + "@babel/plugin-transform-arrow-functions" "^7.10.1" + "@babel/plugin-transform-async-to-generator" "^7.10.1" + "@babel/plugin-transform-block-scoped-functions" "^7.10.1" + "@babel/plugin-transform-block-scoping" "^7.10.1" + "@babel/plugin-transform-classes" "^7.10.1" + "@babel/plugin-transform-computed-properties" "^7.10.1" + "@babel/plugin-transform-destructuring" "^7.10.1" + "@babel/plugin-transform-dotall-regex" "^7.10.1" + "@babel/plugin-transform-duplicate-keys" "^7.10.1" + "@babel/plugin-transform-exponentiation-operator" "^7.10.1" + "@babel/plugin-transform-for-of" "^7.10.1" + "@babel/plugin-transform-function-name" "^7.10.1" + "@babel/plugin-transform-literals" "^7.10.1" + "@babel/plugin-transform-member-expression-literals" "^7.10.1" + "@babel/plugin-transform-modules-amd" "^7.10.1" + "@babel/plugin-transform-modules-commonjs" "^7.10.1" + "@babel/plugin-transform-modules-systemjs" "^7.10.1" + "@babel/plugin-transform-modules-umd" "^7.10.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" + "@babel/plugin-transform-new-target" "^7.10.1" + "@babel/plugin-transform-object-super" "^7.10.1" + "@babel/plugin-transform-parameters" "^7.10.1" + "@babel/plugin-transform-property-literals" "^7.10.1" + "@babel/plugin-transform-regenerator" "^7.10.1" + "@babel/plugin-transform-reserved-words" "^7.10.1" + "@babel/plugin-transform-shorthand-properties" "^7.10.1" + "@babel/plugin-transform-spread" "^7.10.1" + "@babel/plugin-transform-sticky-regex" "^7.10.1" + "@babel/plugin-transform-template-literals" "^7.10.1" + "@babel/plugin-transform-typeof-symbol" "^7.10.1" + "@babel/plugin-transform-unicode-escapes" "^7.10.1" + "@babel/plugin-transform-unicode-regex" "^7.10.1" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.10.2" + browserslist "^4.12.0" + core-js-compat "^3.6.2" invariant "^2.2.2" - js-levenshtein "^1.1.3" + levenary "^1.1.1" semver "^5.5.0" -"@babel/runtime@^7.1.2": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.4.tgz#d79f5a2040f7caa24d53e563aad49cbc05581308" - integrity sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ== - dependencies: - regenerator-runtime "^0.13.2" - -"@babel/template@^7.4.0", "@babel/template@^7.7.4", "@babel/template@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8" - integrity sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ== +"@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/code-frame" "^7.8.3" - "@babel/parser" "^7.8.3" - "@babel/types" "^7.8.3" + "@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/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.4", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.4.tgz#f0845822365f9d5b0e312ed3959d3f827f869e3c" - integrity sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.4" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.8.4" - "@babel/types" "^7.8.3" +"@babel/runtime@^7.1.2", "@babel/runtime@^7.8.4": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.2.tgz#d103f21f2602497d38348a32e008637d506db839" + integrity sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.10.1", "@babel/template@^7.4.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.1.tgz#e167154a94cb5f14b28dc58f5356d2162f539811" + integrity sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig== + dependencies: + "@babel/code-frame" "^7.10.1" + "@babel/parser" "^7.10.1" + "@babel/types" "^7.10.1" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.1", "@babel/traverse@^7.4.3": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.1.tgz#bbcef3031e4152a6c0b50147f4958df54ca0dd27" + integrity sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ== + dependencies: + "@babel/code-frame" "^7.10.1" + "@babel/generator" "^7.10.1" + "@babel/helper-function-name" "^7.10.1" + "@babel/helper-split-export-declaration" "^7.10.1" + "@babel/parser" "^7.10.1" + "@babel/types" "^7.10.1" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.7.4", "@babel/types@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" - integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg== +"@babel/types@^7.0.0", "@babel/types@^7.10.1", "@babel/types@^7.10.2", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.2.tgz#30283be31cad0dbf6fb00bd40641ca0ea675172d" + integrity sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng== dependencies: - esutils "^2.0.2" + "@babel/helper-validator-identifier" "^7.10.1" lodash "^4.17.13" to-fast-properties "^2.0.0" -"@blueprintjs/core@^3.22.2", "@blueprintjs/core@^3.24.0": - version "3.24.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-3.24.0.tgz#593a2b289bb94224f3a924eb1b3065ea3c4ca00a" - integrity sha512-qW29DDPjzYsT27J6n97C0jZ1ifvEEziwNC98UhaKdSE7I8qxbLsb+ft2JOop+pEX4ab67T1lhQKAiQjWCPKZng== +"@blueprintjs/core@^3.22.2", "@blueprintjs/core@^3.28.1": + version "3.28.1" + resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-3.28.1.tgz#cb4056c9637b09d8b8c46bd4efe7363cdb796b8d" + integrity sha512-Ws4+FrtHh5U4TMaqhFW1PXajJobn2By72LOxu18q8ksY4CuyUzvo8xIOooViQdA7ZLx9pwhC6dytsYdykwRy0w== dependencies: - "@blueprintjs/icons" "^3.14.0" + "@blueprintjs/icons" "^3.18.0" "@types/dom4" "^2.0.1" classnames "^2.2" dom4 "^2.1.5" @@ -675,27 +806,27 @@ resize-observer-polyfill "^1.5.1" tslib "~1.10.0" -"@blueprintjs/icons@^3.14.0": - version "3.14.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-3.14.0.tgz#9f9a51b116907d103e4e2e9b78d53d4ac6f107fd" - integrity sha512-cvQ3CSdy0DqVqcXcPqSxoycJw497TVP5goyE6xCFlVs84477ahxh7Uung6J+CCoDVBuI87h576LtuyjwSxorvQ== +"@blueprintjs/icons@^3.18.0": + version "3.18.0" + resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-3.18.0.tgz#acf7a6915baeb0558d1bec323c0083dbae48ae51" + integrity sha512-emvW6AHWcilE3QoYnTs0eCkAZvpn13liTLnfajMfMVPB2/KKeYDa+TVbEqhVXWhrPanXkvJlZCVcizQvFeEYxw== dependencies: classnames "^2.2" tslib "~1.10.0" "@blueprintjs/select@^3.11.2": - version "3.12.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/select/-/select-3.12.0.tgz#cd20b39ecb79c9c117d9a26fd54789ed6d605aec" - integrity sha512-rABlv5M+h7onuoUuNsratyiukPnkdblDm7lt7GT4fbRmJglSsKylNnfHogNDZkMMHqmgmVB05mgzBQ+kcLA1cw== + version "3.13.2" + resolved "https://registry.yarnpkg.com/@blueprintjs/select/-/select-3.13.2.tgz#45cc1bf50e4cd51d9e99f8b39a071ee4c84c64c3" + integrity sha512-cx/pUqAbbGJpBQgmdc9Cwj8CKbDbgq6dxcG5qTXs3nXNZQRO5KtwaKSJEzSxO9PhmxxpEn6FrScukoevqHwHvw== dependencies: - "@blueprintjs/core" "^3.24.0" + "@blueprintjs/core" "^3.28.1" classnames "^2.2" tslib "~1.10.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" @@ -775,9 +906,9 @@ which "^1.3.1" "@fortawesome/fontawesome-free@^5.12.0": - version "5.12.1" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.12.1.tgz#2a98fea9fbb8a606ddc79a4680034e9d5591c550" - integrity sha512-ZtjIIFplxncqxvogq148C3hBLQE+W3iJ8E4UvJ09zIJUgzwLcROsWwFDErVSXY2Plzao5J9KUYNHKHMEUYDMKw== + version "5.13.0" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.0.tgz#fcb113d1aca4b471b709e8c9c168674fbd6e06d9" + integrity sha512-xKOeQEl5O47GPZYIMToj6uuA2syyFlq9EMSl2ui0uytjY9xbe8XS0pexNWmxrdcCyNGyDmLyYw5FtKsalBUeOg== "@jest/console@^24.7.1", "@jest/console@^24.9.0": version "24.9.0" @@ -927,20 +1058,20 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" -"@jupyterlab/application@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-2.0.0.tgz#55c59b3e903caca6d5f0ce95f6ca6f3fbd3fdd8e" - integrity sha512-CeN4jwshV/gQqa8dG9R3YlSH2KD3UGsJY+ptGdZqxoq44DNl1xX4gYfNW6VweTJRXPD2uozUywpXu01b1h6KTQ== +"@jupyterlab/application@2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-2.0.3.tgz#a28ee8edf361036c9a8cb529209167847afa169c" + integrity sha512-5OFLj/qL7qV8gwe3QXn1yR7Gqv9pcJ9GMHu2/EwCKIyRZ8wiA/6m7DsFaTrAdsLzA463y0MwtPAVDDmws/P9mw== dependencies: "@fortawesome/fontawesome-free" "^5.12.0" - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/docregistry" "^2.0.0" - "@jupyterlab/rendermime" "^2.0.0" - "@jupyterlab/rendermime-interfaces" "^2.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/statedb" "^2.0.0" - "@jupyterlab/ui-components" "^2.0.0" + "@jupyterlab/apputils" "^2.0.3" + "@jupyterlab/coreutils" "^4.0.2" + "@jupyterlab/docregistry" "^2.0.3" + "@jupyterlab/rendermime" "^2.0.3" + "@jupyterlab/rendermime-interfaces" "^2.0.1" + "@jupyterlab/services" "^5.0.3" + "@jupyterlab/statedb" "^2.0.1" + "@jupyterlab/ui-components" "^2.0.2" "@lumino/algorithm" "^1.2.3" "@lumino/application" "^1.8.4" "@lumino/commands" "^1.10.1" @@ -952,16 +1083,16 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/apputils@^2.0.0", "@jupyterlab/apputils@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-2.0.0.tgz#bef09118a2af3273a3725fca33e58d48520cbcb7" - integrity sha512-4dehZZ3XADFbHIWTDxeqxURRCPvC+bDzGmrk8qfBy9kHnvB5A4+X87BobJpnNRjZKx8LxyABddFBQewLfDynkg== - dependencies: - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/settingregistry" "^2.0.0" - "@jupyterlab/statedb" "^2.0.0" - "@jupyterlab/ui-components" "^2.0.0" +"@jupyterlab/apputils@2", "@jupyterlab/apputils@^2.0.3", "@jupyterlab/apputils@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-2.1.1.tgz#069dc8214261c01c9e2ef58209137430649d4c01" + integrity sha512-orGzvW2S1k/FjW42dhygq8XJZbQRBTsNXXKFWsqewSn9sNTd3irKjDEwS3Ilce1w+LsS/t3H03xCnsOYPu8LSQ== + dependencies: + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/settingregistry" "^2.1.0" + "@jupyterlab/statedb" "^2.1.0" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/commands" "^1.10.1" "@lumino/coreutils" "^1.4.2" @@ -977,35 +1108,35 @@ react-dom "~16.9.0" sanitize-html "~1.20.1" -"@jupyterlab/attachments@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/attachments/-/attachments-2.0.0.tgz#5e376bd1981245cdfce68ef4a03b422fa193403b" - integrity sha512-NczM6NBDXOnRr17cuxVy4J0sD5cSb0AsGbTCIxIb32ZiYqqKMgI/Q9TkxjEC1A/713KH6kn3A526KOqCxcaF1Q== +"@jupyterlab/attachments@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/attachments/-/attachments-2.1.1.tgz#bee9964fe1acee39f9d3da489f5484fb24f91ff8" + integrity sha512-fyL198rn0SUDz+eViIVVR1Yyf89omK+FItxRtN0hRFVPSJedbLrdHn0YiuaqBNiyGyi9D8rvGOiQ/f5iy7Sotg== dependencies: - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/rendermime" "^2.0.0" - "@jupyterlab/rendermime-interfaces" "^2.0.0" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/rendermime" "^2.1.1" + "@jupyterlab/rendermime-interfaces" "^2.1.0" "@lumino/disposable" "^1.3.5" "@lumino/signaling" "^1.3.5" -"@jupyterlab/cells@^2.0.0", "@jupyterlab/cells@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/cells/-/cells-2.0.0.tgz#552670008c3c645b541aefa1d3eb3e53a32bbee3" - integrity sha512-7AfcuaUhhX+84qnAySy8nGHmUKUvecyA3cLk60Ctqit53wjTKip10qE/6vObVQgmal0isaKUuQ5XldQA/F6yBw== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/attachments" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/codemirror" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/filebrowser" "^2.0.0" - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/outputarea" "^2.0.0" - "@jupyterlab/rendermime" "^2.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/ui-components" "^2.0.0" +"@jupyterlab/cells@2", "@jupyterlab/cells@^2.0.3", "@jupyterlab/cells@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupyterlab/cells/-/cells-2.1.2.tgz#6d913e50cf434aa2eeed554c4337bdf17e6111bf" + integrity sha512-Ndi2rq/9+BaZZ3PCJC55BTSesiuZXkCXfkLhoTVMj/ifJ1YVP5CNwyEr0h2YGqNl8R9oKtHFA9CRUei49Qv3DA== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/attachments" "^2.1.1" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/codemirror" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/filebrowser" "^2.1.2" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/outputarea" "^2.1.1" + "@jupyterlab/rendermime" "^2.1.1" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/dragdrop" "^1.5.1" @@ -1015,15 +1146,15 @@ "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/codeeditor@^2.0.0", "@jupyterlab/codeeditor@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-2.0.0.tgz#8c7cf3d71d18617eb609a954881abe707ad7dd4e" - integrity sha512-4aqupSmOFRdmUOZxv3xxRoXAQK6oEdTjyMNFe2N/gXVdWZOBfAezSt1c8sN4xrVG3BkUDmzaRHAXhgTWNp8LHw== +"@jupyterlab/codeeditor@2", "@jupyterlab/codeeditor@^2.0.2", "@jupyterlab/codeeditor@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-2.1.1.tgz#3adb55e2d1a5c8792d064ce5ed16e7738e16a362" + integrity sha512-vdAxFHEv76cnAFlmaDQcnrKrtEODodYqZrckg0S/mKS7eR8QZQmnf52d8PjdQabtcEKpVY25pQu2/+UkrLKRig== dependencies: - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/ui-components" "^2.0.0" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" "@lumino/dragdrop" "^1.5.1" @@ -1031,37 +1162,37 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/codemirror@^2.0.0", "@jupyterlab/codemirror@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-2.0.0.tgz#1a9fc92d736f7fa84ed021b4b0ed7337fbd569ba" - integrity sha512-6BbdS5tCKhxVc9GtkVQuE5bxuJDZD2kTVUlLHaO7UsRWpU9PHkVEn8D0PmA8ilZw3DmVN/xsSCwGkTuT0CTKMQ== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/statusbar" "^2.0.0" +"@jupyterlab/codemirror@2", "@jupyterlab/codemirror@^2.0.3", "@jupyterlab/codemirror@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-2.1.1.tgz#156b489438a2d5fd840b9797b464b4c3514cec75" + integrity sha512-f4cvsM5d7GI5se6Y/L7aCnYlm/XxrYXnK4ehZeqS3m8haRWyijwJW2BxOi0QJd2F25nv68adIuXVzV5581eTGQ== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/statusbar" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/commands" "^1.10.1" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" - "@lumino/polling" "^1.0.4" + "@lumino/polling" "^1.1.1" "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" codemirror "~5.49.2" react "~16.9.0" -"@jupyterlab/completer@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/completer/-/completer-2.0.0.tgz#0324eb71c74766dee793794e6fa566589fb76cc7" - integrity sha512-x+3J82zSLufZiAVs9YG+UfyJG9r5An6o2/zYR5OdNubGej11ep1xEKSrctoL9m9Ps5JLUCLPIf+5X6oYq7MMEw== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/statedb" "^2.0.0" +"@jupyterlab/completer@2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@jupyterlab/completer/-/completer-2.0.3.tgz#5960637b446864e3d4dbf685d2e40e7abec1cc17" + integrity sha512-H+FnuOAlpVShAqChLiUdlQ/yXsknGfqKy13KvLalkK/rsmyy8cPBtZu+ZSyYkkYvn+UPpIf3wsxzhldE/lDDLQ== + dependencies: + "@jupyterlab/apputils" "^2.0.3" + "@jupyterlab/codeeditor" "^2.0.2" + "@jupyterlab/coreutils" "^4.0.2" + "@jupyterlab/services" "^5.0.3" + "@jupyterlab/statedb" "^2.0.1" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1070,10 +1201,10 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/coreutils@^4.0.0", "@jupyterlab/coreutils@~4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-4.0.0.tgz#84ea7cdeedc23989f05d1993ee705d4a0b883f71" - integrity sha512-f7wvlmJSYiSsjzTjD2wI6iXbt8hPYjWlM0l7J2ULbI7E1tsPmpn14mo/kmF/Ft0cLYXP9ApkItU5QrXB5BNoXA== +"@jupyterlab/coreutils@4", "@jupyterlab/coreutils@^4.0.2", "@jupyterlab/coreutils@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-4.1.0.tgz#ac6cee0558b7c15786e0a210ac3b40a86aec8e84" + integrity sha512-2lcXHd8ZCUuqoiZYK9Xs4HHX46jkdtsdmfgvgg/3odFXFMdv4Twau7fqr9URgRl5JYszPPpItGJIorAVipVfNQ== dependencies: "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1083,16 +1214,16 @@ path-posix "~1.0.0" url-parse "~1.4.7" -"@jupyterlab/docmanager@^2.0.0", "@jupyterlab/docmanager@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-2.0.0.tgz#efb58e5fc4237ede0634275179e88edc7bf53c1f" - integrity sha512-r8qYuatNOn0wI5DVxvxOrZSm7+XNpb1MaWtL4nHhyRSUkxFjIapMcbZMYTFa8b9W2CI9gKFRGvL1WS+l0SvWoQ== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/docregistry" "^2.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/statusbar" "^2.0.0" +"@jupyterlab/docmanager@2", "@jupyterlab/docmanager@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-2.1.2.tgz#036f6a2ef61eacee2a4d4f2e9bc85e225a85f343" + integrity sha512-Yh5qlgR9RsPrMvYMPsLe+ZF8/1pRp6AzvHC9pR9j6DvuDkkO5DRyfJooCuQUoYYLGGEVYvioqj049M0rWT8gxw== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/docregistry" "^2.1.2" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/statusbar" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1102,20 +1233,20 @@ "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/docregistry@^2.0.0", "@jupyterlab/docregistry@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-2.0.0.tgz#bfc4996978253f72f4059667d82ae50f51ed27fa" - integrity sha512-JhsSNMv9Mgzc2M9qm3OmTi26qtS7jF/s6WexWx5LBpt0B4uekJoq1ro3B96xInO4Z6XqByuKW4ozRXqrHyea6w== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/codemirror" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/rendermime" "^2.0.0" - "@jupyterlab/rendermime-interfaces" "^2.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/ui-components" "^2.0.0" +"@jupyterlab/docregistry@2", "@jupyterlab/docregistry@^2.0.3", "@jupyterlab/docregistry@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-2.1.2.tgz#62fa7bb2e345ca5005d5781a5481be6213964614" + integrity sha512-nUTkijFXmyaro0V4lLb9PudkdwNa/IyzNggW9Y8VJtDX4uCuwYznWspQ6w6HeXTfV2NSLfNvJ4n3gASxUmaCPQ== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/codemirror" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/rendermime" "^2.1.1" + "@jupyterlab/rendermime-interfaces" "^2.1.0" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1123,68 +1254,68 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/filebrowser@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-2.0.0.tgz#05703f62744ce9ed48ff03f2779b540214a408ba" - integrity sha512-vvG3OE/yY8VAlsyojLv329+rpXzchhmWWWtj77ld5mhKUG8167A4mDHpeiMO71uVGTWSB9FGYnYmKPi//U3Owg== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/docmanager" "^2.0.0" - "@jupyterlab/docregistry" "^2.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/statedb" "^2.0.0" - "@jupyterlab/statusbar" "^2.0.0" - "@jupyterlab/ui-components" "^2.0.0" +"@jupyterlab/filebrowser@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-2.1.2.tgz#b024ce334412a8c8f52be0c346f5fe678373bebe" + integrity sha512-6rEntHke97REIkuZ8kxcvxmui1HIsMmhNNYkQ2aOyhu206YBSvq6+tQ0PzITfhr/UnPJbIhIfWZ+/jZZBSpTqA== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/docmanager" "^2.1.2" + "@jupyterlab/docregistry" "^2.1.2" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/statedb" "^2.1.0" + "@jupyterlab/statusbar" "^2.1.1" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" "@lumino/domutils" "^1.1.7" "@lumino/dragdrop" "^1.5.1" "@lumino/messaging" "^1.3.3" - "@lumino/polling" "^1.0.4" + "@lumino/polling" "^1.1.1" "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/fileeditor@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/fileeditor/-/fileeditor-2.0.0.tgz#aad6860e196f35e3efeefc7928abc5c2e0994859" - integrity sha512-T/0ORfT1no+bIzTLQrRKN9/KT3dLORlFgv5gPwRmTtFEvj1Yp51zss3ecu2PXBTnOdOE9vUeUv8vZRpLwE4fAw== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/docregistry" "^2.0.0" - "@jupyterlab/statusbar" "^2.0.0" - "@jupyterlab/ui-components" "^2.0.0" +"@jupyterlab/fileeditor@2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@jupyterlab/fileeditor/-/fileeditor-2.0.3.tgz#345226056b7f0a472adafa3ad82dddd7576e1b95" + integrity sha512-dWvnDYWNPwqPt9msq9gWWQhY0IpGMuF8UsvAUv+mWtXqsDJSoZoxDOjkLVsVEM5MWOqBZYDEMqrN3yGScfNyog== + dependencies: + "@jupyterlab/apputils" "^2.0.3" + "@jupyterlab/codeeditor" "^2.0.2" + "@jupyterlab/docregistry" "^2.0.3" + "@jupyterlab/statusbar" "^2.0.3" + "@jupyterlab/ui-components" "^2.0.2" "@lumino/coreutils" "^1.4.2" "@lumino/messaging" "^1.3.3" "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/nbformat@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-2.0.0.tgz#166ed71277681d270e139ebe33477ca26a22973a" - integrity sha512-TumS7G1fAeLhw07BtGdMUcuAaYEKGYXYov0LK/tDx99jSfdqMMrS+o4SlQKoZhZ/+xUwesmA/8L4dMkbYdyGgg== +"@jupyterlab/nbformat@^2.0.1", "@jupyterlab/nbformat@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-2.1.0.tgz#cff41b91c647d32c30f1587ff12e6a3ee6d91ba0" + integrity sha512-4NybeAvLTpGLZguARl6g4ENGzIPYwUaU+CZpcH2H0vq47oXrzRrZMsiWq5Dufrn0sIhOD9CINHXJ9mxIYzj/JA== dependencies: "@lumino/coreutils" "^1.4.2" -"@jupyterlab/notebook@^2.0.0", "@jupyterlab/notebook@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/notebook/-/notebook-2.0.0.tgz#c627afec08032e347277dd335b2205e99d7450cc" - integrity sha512-BOkrxCIydBgY70Sf4P+zkCiQfw7J5OEzZ+LfONxqMU/pY1vmKMiiDxOfex7RX8NfBG/P52zwlFRuXzPMWiAzxw== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/cells" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/docregistry" "^2.0.0" - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/rendermime" "^2.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/statusbar" "^2.0.0" - "@jupyterlab/ui-components" "^2.0.0" +"@jupyterlab/notebook@2", "@jupyterlab/notebook@^2.0.3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupyterlab/notebook/-/notebook-2.1.2.tgz#b41c9769e3427fb53f5932845fc526b939f1f255" + integrity sha512-zJXLlG6+GqZaH1uEcYk3bj7qXj6p/TJwlhezyeZVdS9/KsVfiozmO+2S79O5ZEEXKuzSujdqmjLyR3sJAhr+PA== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/cells" "^2.1.2" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/docregistry" "^2.1.2" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/rendermime" "^2.1.1" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/statusbar" "^2.1.1" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/domutils" "^1.1.7" @@ -1196,10 +1327,10 @@ "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/observables@^3.0.0", "@jupyterlab/observables@~3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-3.0.0.tgz#e6f2a772f7778817d727a1f6c52a926cbe84a138" - integrity sha512-RN7wlWPzc5JGkRWBLWx+dbgAci0s3zOh2hixnUjxiokYvKARPmHUtLxxFa4YQUSm2iV0ynHYZwCImLtc0YAWsw== +"@jupyterlab/observables@3", "@jupyterlab/observables@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-3.1.0.tgz#8c6e95ea8354802d84c081e0e120892314289806" + integrity sha512-4Dx6o5BzHVdWFFUPTAaeUkGngJfy5Qm0N37lbh/2NcWz1NZuuC6SrgREW3zcLSKwxdwkMAXo6En0T1UyrCFjTA== dependencies: "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" @@ -1207,17 +1338,17 @@ "@lumino/messaging" "^1.3.3" "@lumino/signaling" "^1.3.5" -"@jupyterlab/outputarea@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/outputarea/-/outputarea-2.0.0.tgz#f5cb9966d7522786c6c0dda6a9665a138e6c31e4" - integrity sha512-5/7vnKnjIg31dvfdnN24fTSsFO8oZalpVLLhssEAJhqEWUQY65owKZLmLPG0mGEKlpkMMSb82CE4TsInOsOtfQ== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/rendermime" "^2.0.0" - "@jupyterlab/rendermime-interfaces" "^2.0.0" - "@jupyterlab/services" "^5.0.0" +"@jupyterlab/outputarea@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/outputarea/-/outputarea-2.1.1.tgz#72abeb796ebac7a4df3ccdb163ef8c40f740c591" + integrity sha512-MtJpK+1D4A1nW2tMQ4+Y/4URiFecnGnPbNtIv8kYjuJ/ApXbvBLzCKusgEuo5GFo2RpN/lHpaEcG2TqaXZd0XQ== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/rendermime" "^2.1.1" + "@jupyterlab/rendermime-interfaces" "^2.1.0" + "@jupyterlab/services" "^5.1.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1226,26 +1357,26 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/rendermime-interfaces@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-2.0.0.tgz#b421cd4c9ff0b91f54bef11f3114d5ef1f597092" - integrity sha512-1BRpxIppycFmJtV5kq+BVcQT80k3PflMmDsSITXFUspX20SiEktjZcSfzUplTwkp6pSXlr2QCLTV2rQE00dGNA== +"@jupyterlab/rendermime-interfaces@^2.0.1", "@jupyterlab/rendermime-interfaces@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-2.1.0.tgz#936fec0248a70c0e64c8bf292e9719fbc5d3516c" + integrity sha512-WZsFan4snRX3UkxMer4dOpsQcV1R3Two8wT4wLM7nrIHuwHxuruiIlzpmsZENaKfF6C5SKP5esi6DSfjs5y90g== dependencies: "@lumino/coreutils" "^1.4.2" "@lumino/widgets" "^1.11.1" -"@jupyterlab/rendermime@^2.0.0", "@jupyterlab/rendermime@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-2.0.0.tgz#749ed288461ed67a96c38c823f7bcf254dc594b6" - integrity sha512-vOCOwuG1UEqOnCZ/1U/cr5CUde+Wle6+OS1dRLu9srat57NpCysYcxXEih17d7dBTZnOQIXU5k2xAV8iDOHemA== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/codemirror" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/rendermime-interfaces" "^2.0.0" - "@jupyterlab/services" "^5.0.0" +"@jupyterlab/rendermime@2", "@jupyterlab/rendermime@^2.0.3", "@jupyterlab/rendermime@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-2.1.1.tgz#da466027ff18be611aa133a96dfd75fc11045989" + integrity sha512-ePzpX8w2DcI/pYy7ew8cgBqUzoAhOvBpy4iMRTntbiUYhLqSipsOg71jW1h8U/fSwyvZMr/3d5keBHeJTP4U/w== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/codemirror" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/rendermime-interfaces" "^2.1.0" + "@jupyterlab/services" "^5.1.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/messaging" "^1.3.3" @@ -1254,30 +1385,30 @@ lodash.escape "^4.0.1" marked "^0.8.0" -"@jupyterlab/services@^5.0.0", "@jupyterlab/services@~5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-5.0.0.tgz#677ce58f759e470031ab89a0f5989dc5aac307ca" - integrity sha512-j1dJ1FdoZu+VhCz+v3SqOHVTp4r1kDTS3QCbjllMYbA0nuq1a1M4FfdlZKPuiKbAHWN3nZe2boDqFRAOhLCPuQ== - dependencies: - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/settingregistry" "^2.0.0" - "@jupyterlab/statedb" "^2.0.0" +"@jupyterlab/services@5", "@jupyterlab/services@^5.0.3", "@jupyterlab/services@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-5.1.0.tgz#891607d87cbe9413219cfe4ceb9905193b85b657" + integrity sha512-xhtDvAdgw+sWNSbpkExCYyJbHxlwhiZYqc07+zhOdYrpxO19k/ZmmyNoYCyfvNLcMQ4JWVBoczI714u1QNLj4w== + dependencies: + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/settingregistry" "^2.1.0" + "@jupyterlab/statedb" "^2.1.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" - "@lumino/polling" "^1.0.4" + "@lumino/polling" "^1.1.1" "@lumino/signaling" "^1.3.5" node-fetch "^2.6.0" ws "^7.2.0" -"@jupyterlab/settingregistry@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-2.0.0.tgz#1d4068be65ad0d061d4114076c4ef3616a286e75" - integrity sha512-wetj5bCdvyRaNqadgzUwMK0+IjcbOfK9m1pb4MEK4nQfxfXOJ5eKjH7R99yNK4GgE5z8cDQ/UtyJZn/QdfHfZQ== +"@jupyterlab/settingregistry@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-2.1.0.tgz#6be3c56b58657cdbff5320670ed17ddf0119db32" + integrity sha512-FkWKcg+7d4iWz/u7am3kmRWraJiVE5uidvzADE/PfByGhYQnwJ0ROjyJwaf/GFJv7yJZewxyr7Q4JXVuoIZwPg== dependencies: - "@jupyterlab/statedb" "^2.0.0" + "@jupyterlab/statedb" "^2.1.0" "@lumino/commands" "^1.10.1" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1285,10 +1416,10 @@ ajv "^6.10.2" json5 "^2.1.1" -"@jupyterlab/statedb@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-2.0.0.tgz#91fe8447fd7328de9f34031594f6251ba0f1d9ed" - integrity sha512-bBK0urGUVMlid8Gq7lQbap35hU91VbOR8aQbZFkK4pha+9y5CsiP4eFoVTLlPY+9soTV2bROAzXLnROD3O9Ndg== +"@jupyterlab/statedb@^2.0.1", "@jupyterlab/statedb@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-2.1.0.tgz#3b1889417563bb855bb3fd64fb8d2f45f5df7013" + integrity sha512-3L0NGJvNeI2KeU6jrY97riEmxcKtHb1WRxbMU9ORIppR5Sb5x3K3qErep7r9qu0lV7XH9Zb95uMukX4bgj2GaA== dependencies: "@lumino/commands" "^1.10.1" "@lumino/coreutils" "^1.4.2" @@ -1296,40 +1427,41 @@ "@lumino/properties" "^1.1.6" "@lumino/signaling" "^1.3.5" -"@jupyterlab/statusbar@^2.0.0", "@jupyterlab/statusbar@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-2.0.0.tgz#8b0421774917cc5ec067970b6ed99e0031fc7702" - integrity sha512-JFRecSRZmTW1gnrmYnNMY0kyNA5XMJZDs6HFbREQm21AKMzOZJ3/2c2SoXos5wR664rz5Rb+Uo37xdmuAVvDgg== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/ui-components" "^2.0.0" +"@jupyterlab/statusbar@2", "@jupyterlab/statusbar@^2.0.3", "@jupyterlab/statusbar@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-2.1.1.tgz#ccf4672d0ca0911e8dd02788aaa8c8cb0e63f1c0" + integrity sha512-Q9/7wXy0m2/g+bn6KHUC7s0YQCbjArZ4G+OuCesHJpj0XiU8yuJki7uiRvTfxdrmB6w2/oU+YykLojS1NYgOWA== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" "@lumino/messaging" "^1.3.3" - "@lumino/polling" "^1.0.4" + "@lumino/polling" "^1.1.1" "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" + csstype "~2.6.9" react "~16.9.0" typestyle "^2.0.4" -"@jupyterlab/testutils@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/testutils/-/testutils-2.0.0.tgz#f35ea7ccbbc1b34229e17c2b3411519b530c9767" - integrity sha512-QvDsetETNsmD0GTDyAkJztI9rW9LptuuF9g59wK8mPdOoOJYX8war5g6b/mlsl32qBKaKuuus8jKWLwc4OksyA== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/cells" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/codemirror" "^2.0.0" - "@jupyterlab/docregistry" "^2.0.0" - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/notebook" "^2.0.0" - "@jupyterlab/rendermime" "^2.0.0" - "@jupyterlab/services" "^5.0.0" +"@jupyterlab/testutils@2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@jupyterlab/testutils/-/testutils-2.0.3.tgz#b9d80413b3d62e634b5ac4e6b7027eead22016fc" + integrity sha512-IB8f/6e0ph/4q368LUbWCIzm72xtXLZ8PDRk0F6+chEaD0XMv+CzDykNZU6VzY2zNN3gu9S6bKcPkMM7jNe2Fw== + dependencies: + "@jupyterlab/apputils" "^2.0.3" + "@jupyterlab/cells" "^2.0.3" + "@jupyterlab/codeeditor" "^2.0.2" + "@jupyterlab/codemirror" "^2.0.3" + "@jupyterlab/docregistry" "^2.0.3" + "@jupyterlab/nbformat" "^2.0.1" + "@jupyterlab/notebook" "^2.0.3" + "@jupyterlab/rendermime" "^2.0.3" + "@jupyterlab/services" "^5.0.3" "@lumino/coreutils" "^1.4.2" "@lumino/signaling" "^1.3.5" fs-extra "^8.1.0" @@ -1340,27 +1472,27 @@ path "~0.12.7" simulate-event "~1.4.0" -"@jupyterlab/tooltip@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/tooltip/-/tooltip-2.0.0.tgz#eb7c10ef0f23e6d4c8f91fbe1d5a6f04b8d7d0b0" - integrity sha512-K6gjiCaMNVkcV59J5/8C/etE94FoYfu0cWeCNXwQb1vXHYW+ejHzq2zBKPCCAZWvfLZ9/U8RLyiCzDsFMbipcw== +"@jupyterlab/tooltip@2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@jupyterlab/tooltip/-/tooltip-2.0.3.tgz#6dc2b6637d3d21a7f4d60770160b9272999e5030" + integrity sha512-8O9Za2nKHni456gaw4Q6rz7m+TVLKEUMCvLyEa7x6aui7SejntLRIIr+As+GOIOI25hpL71dPG6SMN1kPuQ1RQ== dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/rendermime" "^2.0.0" - "@jupyterlab/services" "^5.0.0" + "@jupyterlab/apputils" "^2.0.3" + "@jupyterlab/codeeditor" "^2.0.2" + "@jupyterlab/rendermime" "^2.0.3" + "@jupyterlab/services" "^5.0.3" "@lumino/coreutils" "^1.4.2" "@lumino/messaging" "^1.3.3" "@lumino/widgets" "^1.11.1" -"@jupyterlab/ui-components@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-2.0.0.tgz#aedceddc4265fac7d545091413dd3f71273fc14c" - integrity sha512-SNojvg37k/jwL5C6lwvZu/+Oge3DbGnnkNmKiExp2YwauVDSSMV88EIkWGo6t1nZPBDHB0j8lb9SEMs+9j59zQ== +"@jupyterlab/ui-components@^2.0.2", "@jupyterlab/ui-components@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-2.1.1.tgz#ace65290ebe3e913e85e574d5d94f3c9f55d244c" + integrity sha512-VZWtJud5XXzSTK6HJebbqg7TkJmvuRk5K+F30u+pgX7PStC4j8OFD7IXCreLWmrvxoVvEXd4GFH2sVng5cgsQA== dependencies: "@blueprintjs/core" "^3.22.2" "@blueprintjs/select" "^3.11.2" - "@jupyterlab/coreutils" "^4.0.0" + "@jupyterlab/coreutils" "^4.1.0" "@lumino/coreutils" "^1.4.2" "@lumino/signaling" "^1.3.5" "@lumino/virtualdom" "^1.6.1" @@ -1373,19 +1505,18 @@ version "1.0.0" dependencies: "@krassowski/jupyterlab_go_to_definition" "~1.0.0" - lsp-ws-connection "~0.4.0" "@krassowski/jupyterlab_go_to_definition@file:packages/jupyterlab-go-to-definition": version "1.0.0" -"@lerna/add@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.20.0.tgz#bea7edf36fc93fb72ec34cb9ba854c48d4abf309" - integrity sha512-AnH1oRIEEg/VDa3SjYq4x1/UglEAvrZuV0WssHUMN81RTZgQk3we+Mv3qZNddrZ/fBcZu2IAdN/EQ3+ie2JxKQ== +"@lerna/add@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.21.0.tgz#27007bde71cc7b0a2969ab3c2f0ae41578b4577b" + integrity sha512-vhUXXF6SpufBE1EkNEXwz1VLW03f177G9uMOFMQkp6OJ30/PWg4Ekifuz9/3YfgB2/GH8Tu4Lk3O51P2Hskg/A== dependencies: "@evocateur/pacote" "^9.6.3" - "@lerna/bootstrap" "3.20.0" - "@lerna/command" "3.18.5" + "@lerna/bootstrap" "3.21.0" + "@lerna/command" "3.21.0" "@lerna/filter-options" "3.20.0" "@lerna/npm-conf" "3.16.0" "@lerna/validation-error" "3.13.0" @@ -1394,12 +1525,12 @@ p-map "^2.1.0" semver "^6.2.0" -"@lerna/bootstrap@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.20.0.tgz#635d71046830f208e851ab429a63da1747589e37" - integrity sha512-Wylullx3uthKE7r4izo09qeRGL20Y5yONlQEjPCfnbxCC2Elu+QcPu4RC6kqKQ7b+g7pdC3OOgcHZjngrwr5XQ== +"@lerna/bootstrap@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.21.0.tgz#bcd1b651be5b0970b20d8fae04c864548123aed6" + integrity sha512-mtNHlXpmvJn6JTu0KcuTTPl2jLsDNud0QacV/h++qsaKbhAaJr/FElNZ5s7MwZFUM3XaDmvWzHKaszeBMHIbBw== dependencies: - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/filter-options" "3.20.0" "@lerna/has-npm-version" "3.16.5" "@lerna/npm-install" "3.16.5" @@ -1423,13 +1554,13 @@ read-package-tree "^5.1.6" semver "^6.2.0" -"@lerna/changed@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.20.0.tgz#66b97ebd6c8f8d207152ee524a0791846a9097ae" - integrity sha512-+hzMFSldbRPulZ0vbKk6RD9f36gaH3Osjx34wrrZ62VB4pKmjyuS/rxVYkCA3viPLHoiIw2F8zHM5BdYoDSbjw== +"@lerna/changed@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.21.0.tgz#108e15f679bfe077af500f58248c634f1044ea0b" + integrity sha512-hzqoyf8MSHVjZp0gfJ7G8jaz+++mgXYiNs9iViQGA8JlN/dnWLI5sWDptEH3/B30Izo+fdVz0S0s7ydVE3pWIw== dependencies: "@lerna/collect-updates" "3.20.0" - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/listable" "3.18.5" "@lerna/output" "3.13.0" @@ -1451,12 +1582,12 @@ execa "^1.0.0" strong-log-transformer "^2.0.0" -"@lerna/clean@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.20.0.tgz#ba777e373ddeae63e57860df75d47a9e5264c5b2" - integrity sha512-9ZdYrrjQvR5wNXmHfDsfjWjp0foOkCwKe3hrckTzkAeQA1ibyz5llGwz5e1AeFrV12e2/OLajVqYfe+qdkZUgg== +"@lerna/clean@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.21.0.tgz#c0b46b5300cc3dae2cda3bec14b803082da3856d" + integrity sha512-b/L9l+MDgE/7oGbrav6rG8RTQvRiZLO1zTcG17zgJAAuhlsPxJExMlh2DFwJEVi2les70vMhHfST3Ue1IMMjpg== dependencies: - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/filter-options" "3.20.0" "@lerna/prompt" "3.18.5" "@lerna/pulse-till-done" "3.13.0" @@ -1496,14 +1627,14 @@ npmlog "^4.1.2" slash "^2.0.0" -"@lerna/command@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.18.5.tgz#14c6d2454adbfd365f8027201523e6c289cd3cd9" - integrity sha512-36EnqR59yaTU4HrR1C9XDFti2jRx0BgpIUBeWn129LZZB8kAB3ov1/dJNa1KcNRKp91DncoKHLY99FZ6zTNpMQ== +"@lerna/command@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.21.0.tgz#9a2383759dc7b700dacfa8a22b2f3a6e190121f7" + integrity sha512-T2bu6R8R3KkH5YoCKdutKv123iUgUbW8efVjdGCDnCMthAQzoentOJfDeodBwn0P2OqCl3ohsiNVtSn9h78fyQ== dependencies: "@lerna/child-process" "3.16.5" "@lerna/package-graph" "3.18.5" - "@lerna/project" "3.18.0" + "@lerna/project" "3.21.0" "@lerna/validation-error" "3.13.0" "@lerna/write-log-file" "3.13.0" clone-deep "^4.0.1" @@ -1512,10 +1643,10 @@ is-ci "^2.0.0" npmlog "^4.1.2" -"@lerna/conventional-commits@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-3.18.5.tgz#08efd2e5b45acfaf3f151a53a3ec7ecade58a7bc" - integrity sha512-qcvXIEJ3qSgalxXnQ7Yxp5H9Ta5TVyai6vEor6AAEHc20WiO7UIdbLDCxBtiiHMdGdpH85dTYlsoYUwsCJu3HQ== +"@lerna/conventional-commits@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-3.22.0.tgz#2798f4881ee2ef457bdae027ab7d0bf0af6f1e09" + integrity sha512-z4ZZk1e8Mhz7+IS8NxHr64wyklHctCJyWpJKEZZPJiLFJ8yKto/x38O80R10pIzC0rr8Sy/OsjSH4bl0TbbgqA== dependencies: "@lerna/validation-error" "3.13.0" conventional-changelog-angular "^5.0.3" @@ -1538,14 +1669,14 @@ fs-extra "^8.1.0" npmlog "^4.1.2" -"@lerna/create@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.18.5.tgz#11ac539f069248eaf7bc4c42e237784330f4fc47" - integrity sha512-cHpjocbpKmLopCuZFI7cKEM3E/QY8y+yC7VtZ4FQRSaLU8D8i2xXtXmYaP1GOlVNavji0iwoXjuNpnRMInIr2g== +"@lerna/create@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.22.0.tgz#d6bbd037c3dc5b425fe5f6d1b817057c278f7619" + integrity sha512-MdiQQzCcB4E9fBF1TyMOaAEz9lUjIHp1Ju9H7f3lXze5JK6Fl5NYkouAvsLgY6YSIhXMY8AHW2zzXeBDY4yWkw== dependencies: "@evocateur/pacote" "^9.6.3" "@lerna/child-process" "3.16.5" - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/npm-conf" "3.16.0" "@lerna/validation-error" "3.13.0" camelcase "^5.0.0" @@ -1570,23 +1701,23 @@ "@lerna/child-process" "3.16.5" npmlog "^4.1.2" -"@lerna/diff@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.18.5.tgz#e9e2cb882f84d5b84f0487c612137305f07accbc" - integrity sha512-u90lGs+B8DRA9Z/2xX4YaS3h9X6GbypmGV6ITzx9+1Ga12UWGTVlKaCXBgONMBjzJDzAQOK8qPTwLA57SeBLgA== +"@lerna/diff@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.21.0.tgz#e6df0d8b9916167ff5a49fcb02ac06424280a68d" + integrity sha512-5viTR33QV3S7O+bjruo1SaR40m7F2aUHJaDAC7fL9Ca6xji+aw1KFkpCtVlISS0G8vikUREGMJh+c/VMSc8Usw== dependencies: "@lerna/child-process" "3.16.5" - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/validation-error" "3.13.0" npmlog "^4.1.2" -"@lerna/exec@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.20.0.tgz#29f0c01aee2340eb46f90706731fef2062a49639" - integrity sha512-pS1mmC7kzV668rHLWuv31ClngqeXjeHC8kJuM+W2D6IpUVMGQHLcCTYLudFgQsuKGVpl0DGNYG+sjLhAPiiu6A== +"@lerna/exec@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.21.0.tgz#17f07533893cb918a17b41bcc566dc437016db26" + integrity sha512-iLvDBrIE6rpdd4GIKTY9mkXyhwsJ2RvQdB9ZU+/NhR3okXfqKc6py/24tV111jqpXTtZUW6HNydT4dMao2hi1Q== dependencies: "@lerna/child-process" "3.16.5" - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/filter-options" "3.20.0" "@lerna/profiler" "3.20.0" "@lerna/run-topologically" "3.18.5" @@ -1629,13 +1760,13 @@ ssri "^6.0.1" tar "^4.4.8" -"@lerna/github-client@3.16.5": - version "3.16.5" - resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-3.16.5.tgz#2eb0235c3bf7a7e5d92d73e09b3761ab21f35c2e" - integrity sha512-rHQdn8Dv/CJrO3VouOP66zAcJzrHsm+wFuZ4uGAai2At2NkgKH+tpNhQy2H1PSC0Ezj9LxvdaHYrUzULqVK5Hw== +"@lerna/github-client@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-3.22.0.tgz#5d816aa4f76747ed736ae64ff962b8f15c354d95" + integrity sha512-O/GwPW+Gzr3Eb5bk+nTzTJ3uv+jh5jGho9BOqKlajXaOkMYGBELEAqV5+uARNGWZFvYAiF4PgqHb6aCUu7XdXg== dependencies: "@lerna/child-process" "3.16.5" - "@octokit/plugin-enterprise-rest" "^3.6.1" + "@octokit/plugin-enterprise-rest" "^6.0.1" "@octokit/rest" "^16.28.4" git-url-parse "^11.1.2" npmlog "^4.1.2" @@ -1662,13 +1793,13 @@ "@lerna/child-process" "3.16.5" semver "^6.2.0" -"@lerna/import@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.18.5.tgz#a9c7d8601870729851293c10abd18b3707f7ba5e" - integrity sha512-PH0WVLEgp+ORyNKbGGwUcrueW89K3Iuk/DDCz8mFyG2IG09l/jOF0vzckEyGyz6PO5CMcz4TI1al/qnp3FrahQ== +"@lerna/import@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.22.0.tgz#1a5f0394f38e23c4f642a123e5e1517e70d068d2" + integrity sha512-uWOlexasM5XR6tXi4YehODtH9Y3OZrFht3mGUFFT3OIl2s+V85xIGFfqFGMTipMPAGb2oF1UBLL48kR43hRsOg== dependencies: "@lerna/child-process" "3.16.5" - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/prompt" "3.18.5" "@lerna/pulse-till-done" "3.13.0" "@lerna/validation-error" "3.13.0" @@ -1676,43 +1807,43 @@ fs-extra "^8.1.0" p-map-series "^1.0.0" -"@lerna/info@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@lerna/info/-/info-3.20.0.tgz#3a5212f3029f2bc6255f9533bdf4bcb120ef329a" - integrity sha512-Rsz+KQF9mczbGUbPTrtOed1N0C+cA08Qz0eX/oI+NNjvsryZIju/o7uedG4I3P55MBiAioNrJI88fHH3eTgYug== +"@lerna/info@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/info/-/info-3.21.0.tgz#76696b676fdb0f35d48c83c63c1e32bb5e37814f" + integrity sha512-0XDqGYVBgWxUquFaIptW2bYSIu6jOs1BtkvRTWDDhw4zyEdp6q4eaMvqdSap1CG+7wM5jeLCi6z94wS0AuiuwA== dependencies: - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/output" "3.13.0" envinfo "^7.3.1" -"@lerna/init@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.18.5.tgz#86dd0b2b3290755a96975069b5cb007f775df9f5" - integrity sha512-oCwipWrha98EcJAHm8AGd2YFFLNI7AW9AWi0/LbClj1+XY9ah+uifXIgYGfTk63LbgophDd8936ZEpHMxBsbAg== +"@lerna/init@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.21.0.tgz#1e810934dc8bf4e5386c031041881d3b4096aa5c" + integrity sha512-6CM0z+EFUkFfurwdJCR+LQQF6MqHbYDCBPyhu/d086LRf58GtYZYj49J8mKG9ktayp/TOIxL/pKKjgLD8QBPOg== dependencies: "@lerna/child-process" "3.16.5" - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" fs-extra "^8.1.0" p-map "^2.1.0" write-json-file "^3.2.0" -"@lerna/link@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.18.5.tgz#f24347e4f0b71d54575bd37cfa1794bc8ee91b18" - integrity sha512-xTN3vktJpkT7Nqc3QkZRtHO4bT5NvuLMtKNIBDkks0HpGxC9PRyyqwOoCoh1yOGbrWIuDezhfMg3Qow+6I69IQ== +"@lerna/link@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.21.0.tgz#8be68ff0ccee104b174b5bbd606302c2f06e9d9b" + integrity sha512-tGu9GxrX7Ivs+Wl3w1+jrLi1nQ36kNI32dcOssij6bg0oZ2M2MDEFI9UF2gmoypTaN9uO5TSsjCFS7aR79HbdQ== dependencies: - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/package-graph" "3.18.5" "@lerna/symlink-dependencies" "3.17.0" p-map "^2.1.0" slash "^2.0.0" -"@lerna/list@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.20.0.tgz#7e67cc29c5cf661cfd097e8a7c2d3dcce7a81029" - integrity sha512-fXTicPrfioVnRzknyPawmYIVkzDRBaQqk9spejS1S3O1DOidkihK0xxNkr8HCVC0L22w6f92g83qWDp2BYRUbg== +"@lerna/list@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.21.0.tgz#42f76fafa56dea13b691ec8cab13832691d61da2" + integrity sha512-KehRjE83B1VaAbRRkRy6jLX1Cin8ltsrQ7FHf2bhwhRHK0S54YuA6LOoBnY/NtA8bHDX/Z+G5sMY78X30NS9tg== dependencies: - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/filter-options" "3.20.0" "@lerna/listable" "3.18.5" "@lerna/output" "3.13.0" @@ -1858,10 +1989,10 @@ npmlog "^4.1.2" upath "^1.2.0" -"@lerna/project@3.18.0": - version "3.18.0" - resolved "https://registry.yarnpkg.com/@lerna/project/-/project-3.18.0.tgz#56feee01daeb42c03cbdf0ed8a2a10cbce32f670" - integrity sha512-+LDwvdAp0BurOAWmeHE3uuticsq9hNxBI0+FMHiIai8jrygpJGahaQrBYWpwbshbQyVLeQgx3+YJdW2TbEdFWA== +"@lerna/project@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/project/-/project-3.21.0.tgz#5d784d2d10c561a00f20320bcdb040997c10502d" + integrity sha512-xT1mrpET2BF11CY32uypV2GPtPVm6Hgtha7D81GQP9iAitk9EccrdNjYGt5UBYASl4CIDXBRxwmTTVGfrCx82A== dependencies: "@lerna/package" "3.16.0" "@lerna/validation-error" "3.13.0" @@ -1884,10 +2015,10 @@ inquirer "^6.2.0" npmlog "^4.1.2" -"@lerna/publish@3.20.2": - version "3.20.2" - resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.20.2.tgz#a45d29813099b3249657ea913d0dc3f8ebc5cc2e" - integrity sha512-N7Y6PdhJ+tYQPdI1tZum8W25cDlTp4D6brvRacKZusweWexxaopbV8RprBaKexkEX/KIbncuADq7qjDBdQHzaA== +"@lerna/publish@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.22.0.tgz#7a3fb61026d3b7425f3b9a1849421f67d795c55d" + integrity sha512-8LBeTLBN8NIrCrLGykRu+PKrfrCC16sGCVY0/bzq9TDioR7g6+cY0ZAw653Qt/0Kr7rg3J7XxVNdzj3fvevlwA== dependencies: "@evocateur/libnpmaccess" "^3.1.2" "@evocateur/npm-registry-fetch" "^4.0.0" @@ -1895,7 +2026,7 @@ "@lerna/check-working-tree" "3.16.5" "@lerna/child-process" "3.16.5" "@lerna/collect-updates" "3.20.0" - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/describe-ref" "3.16.5" "@lerna/log-packed" "3.16.0" "@lerna/npm-conf" "3.16.0" @@ -1910,7 +2041,7 @@ "@lerna/run-lifecycle" "3.16.2" "@lerna/run-topologically" "3.18.5" "@lerna/validation-error" "3.13.0" - "@lerna/version" "3.20.2" + "@lerna/version" "3.22.0" figgy-pudding "^3.5.1" fs-extra "^8.1.0" npm-package-arg "^6.1.0" @@ -1973,12 +2104,12 @@ figgy-pudding "^3.5.1" p-queue "^4.0.0" -"@lerna/run@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.20.0.tgz#a479f7c42bdf9ebabb3a1e5a2bdebb7a8d201151" - integrity sha512-9U3AqeaCeB7KsGS9oyKNp62s9vYoULg/B4cqXTKZkc+OKL6QOEjYHYVSBcMK9lUXrMjCjDIuDSX3PnTCPxQ2Dw== +"@lerna/run@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.21.0.tgz#2a35ec84979e4d6e42474fe148d32e5de1cac891" + integrity sha512-fJF68rT3veh+hkToFsBmUJ9MHc9yGXA7LSDvhziAojzOb0AI/jBDp6cEcDQyJ7dbnplba2Lj02IH61QUf9oW0Q== dependencies: - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/filter-options" "3.20.0" "@lerna/npm-run-script" "3.16.5" "@lerna/output" "3.13.0" @@ -2023,17 +2154,17 @@ dependencies: npmlog "^4.1.2" -"@lerna/version@3.20.2": - version "3.20.2" - resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.20.2.tgz#3709141c0f537741d9bc10cb24f56897bcb30428" - integrity sha512-ckBJMaBWc+xJen0cMyCE7W67QXLLrc0ELvigPIn8p609qkfNM0L0CF803MKxjVOldJAjw84b8ucNWZLvJagP/Q== +"@lerna/version@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.22.0.tgz#67e1340c1904e9b339becd66429f32dd8ad65a55" + integrity sha512-6uhL6RL7/FeW6u1INEgyKjd5dwO8+IsbLfkfC682QuoVLS7VG6OOB+JmTpCvnuyYWI6fqGh1bRk9ww8kPsj+EA== dependencies: "@lerna/check-working-tree" "3.16.5" "@lerna/child-process" "3.16.5" "@lerna/collect-updates" "3.20.0" - "@lerna/command" "3.18.5" - "@lerna/conventional-commits" "3.18.5" - "@lerna/github-client" "3.16.5" + "@lerna/command" "3.21.0" + "@lerna/conventional-commits" "3.22.0" + "@lerna/github-client" "3.22.0" "@lerna/gitlab-client" "3.15.0" "@lerna/output" "3.13.0" "@lerna/prerelease-id-from-version" "3.16.0" @@ -2063,123 +2194,123 @@ npmlog "^4.1.2" write-file-atomic "^2.3.0" -"@lumino/algorithm@*", "@lumino/algorithm@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.2.3.tgz#4ab9883d7e9a5b1845372a752dcaee2a35a770c6" - integrity sha512-XBJ/homcm7o8Y9G6MzYvf0FF7SVqUCzvkIO01G2mZhCOnkZZhZ9c4uNOcE2VjSHNxHv2WU0l7d8rdhyKhmet+A== +"@lumino/algorithm@*", "@lumino/algorithm@^1.2.3", "@lumino/algorithm@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.3.0.tgz#1b8b07b537c1660b9e94cb1607d2e74cbf8aa15e" + integrity sha512-j0OFVm3/SpvKnKxHiUt8sgct25x+G97ohdrPRzDS9rHX0SLnx4GEVp5qE8OmzfGoAcY9V6C89F6Gh+PnN4LtiA== "@lumino/application@^1.8.4": - version "1.8.4" - resolved "https://registry.yarnpkg.com/@lumino/application/-/application-1.8.4.tgz#63a26c4ecf8128bf0123739e37922415016f970a" - integrity sha512-f+CgggJ/9jopHT6db76+BjsiPBHjv6fgReU/vKtRGg8rsDjNRDefoWd9bWGWRuPiGymBY8c/+9Kyq5v0UDs5vg== + version "1.10.0" + resolved "https://registry.yarnpkg.com/@lumino/application/-/application-1.10.0.tgz#91b7bee4794614ee9bdcf07fe21961953317dba7" + integrity sha512-Kfs5aHoVXf/v3D/9ooc2EETA1+Cjgi6vGD1YWEB+xNSvZqTocBINeSXrqEJYijAbcQg3ejri+r/JFfvADQfpTA== dependencies: - "@lumino/commands" "^1.10.1" - "@lumino/coreutils" "^1.4.2" - "@lumino/widgets" "^1.11.1" + "@lumino/commands" "^1.11.0" + "@lumino/coreutils" "^1.5.0" + "@lumino/widgets" "^1.13.0" -"@lumino/collections@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@lumino/collections/-/collections-1.2.3.tgz#8cd9578dac3a5ecba68972991fdfd2b94d3339bc" - integrity sha512-lrSTb7kru/w8xww8qWqHHhHO3GkoQeXST2oNkOEbWNEO4wuBIHoKPSOmXpUwu58UykBUfd5hL5wbkeTzyNMONg== +"@lumino/collections@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@lumino/collections/-/collections-1.3.0.tgz#83146171544a0fcc818f2eb4f544a676f556940d" + integrity sha512-+xMprIHaPyqrRFHWTxr3BJcSAfapeXmn+WhrGovFHm5qgctGOZLW+MjIpZG+3vCcs5lbmsdgt/LgT4Y3J4JB6w== dependencies: - "@lumino/algorithm" "^1.2.3" + "@lumino/algorithm" "^1.3.0" -"@lumino/commands@^1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@lumino/commands/-/commands-1.10.1.tgz#149186d23cc48215f9f7f6515321f8871797a444" - integrity sha512-HGtXtqKD1WZJszJ42u2DyM3sgxrLal66IoHSJjbn2ygcEVCKDK73NSzoaQtXFtiissMedzKl8aIRXB3uyeEOlw== +"@lumino/commands@^1.10.1", "@lumino/commands@^1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@lumino/commands/-/commands-1.11.0.tgz#a0687dcdbf82a7bfc6bc918c112300298436d3b1" + integrity sha512-tu+ahScLAsz4CuTxrAqLvFOA/oDgbghujexM9p/rJI3gLwO4d1wZGopbRNPSmR4Iv8DCc4OEIRtyKwWR5CMQjg== dependencies: - "@lumino/algorithm" "^1.2.3" - "@lumino/coreutils" "^1.4.2" - "@lumino/disposable" "^1.3.5" - "@lumino/domutils" "^1.1.7" - "@lumino/keyboard" "^1.1.6" - "@lumino/signaling" "^1.3.5" - "@lumino/virtualdom" "^1.6.1" + "@lumino/algorithm" "^1.3.0" + "@lumino/coreutils" "^1.5.0" + "@lumino/disposable" "^1.4.0" + "@lumino/domutils" "^1.2.0" + "@lumino/keyboard" "^1.2.0" + "@lumino/signaling" "^1.4.0" + "@lumino/virtualdom" "^1.7.0" -"@lumino/coreutils@^1.4.2": - version "1.4.2" - resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-1.4.2.tgz#44cd3d55bb692e876c792f1ecc0df3daa1de63e9" - integrity sha512-SmQ4YDANe25rZd0bLoW7LVAHmgySjkrJmyNPnPW0GrpBt2u4/6D+EQJ8PCCMNWuJvrljBCdlmgOFsT38qYhfcw== +"@lumino/coreutils@^1.4.2", "@lumino/coreutils@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-1.5.0.tgz#dd89573a3715fe18e2dd85622f16485899a22bf3" + integrity sha512-ioa+9YA+9jgTBl+FrlzSf1vqh25RUEaAltiY2s9WHyHP0vzizwaDEpiHQgMByhUS5ZN0FzuD1fOrKyb8izSi4Q== -"@lumino/disposable@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-1.3.5.tgz#3562ca063117fd2a0735df170f51e41620fa21d0" - integrity sha512-IWDAd+nysBnwLhEtW7M62PVk84OEex9OEktZsS6V+19n/o8/Rw4ccL0pt0GFby01CsVK0YcELDoDaMUZsMiAmA== +"@lumino/disposable@^1.3.5", "@lumino/disposable@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-1.4.0.tgz#caab853579fe3662172a6ae7c922d07664f62adc" + integrity sha512-Tz/t3XU2E/Pn8TmuyOG/X4TTcnYaaKYUVbxfIIHWDJJln5hdqKe8ikMrufaJyhPkt7lTjOEKKilGePUj66POvA== dependencies: - "@lumino/algorithm" "^1.2.3" - "@lumino/signaling" "^1.3.5" + "@lumino/algorithm" "^1.3.0" + "@lumino/signaling" "^1.4.0" -"@lumino/domutils@^1.1.7": - version "1.1.7" - resolved "https://registry.yarnpkg.com/@lumino/domutils/-/domutils-1.1.7.tgz#9cc16cba0c1e8f31fcb734879dec050505925b16" - integrity sha512-NPysY8XfpCvLNvDe+z1caIUPxOLXWRPQMUAjOj/EhggRyXadan6Lm/5uO6M9S5gW/v9QUXT4+1Sxe3WXz0nRCA== +"@lumino/domutils@^1.1.7", "@lumino/domutils@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@lumino/domutils/-/domutils-1.2.0.tgz#f47938d966cdeba7a67e2e389b474c36186808e0" + integrity sha512-eew73Dn/FOolSS2UUEshyiqbbVpAxgmCFbs7yAA7iOXUNj4vs7xDxINcISCKVhAW918K8QxkeOH5wbMp9pEhoQ== -"@lumino/dragdrop@^1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@lumino/dragdrop/-/dragdrop-1.5.1.tgz#502305183d430693edc112f7c234a3d9f2d89f02" - integrity sha512-MFg/hy6hHdPwBZypBue5mlrBzjoNrtBQzzJW+kbM5ftAOvS99ZRgyMMlMQcbsHd+6yib9NOQ64Hd8P8uZEWTdw== +"@lumino/dragdrop@^1.5.1", "@lumino/dragdrop@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@lumino/dragdrop/-/dragdrop-1.6.0.tgz#4b531dcfe8cdabfeb5bf2744749e1e529f97a372" + integrity sha512-fuQxVv4G21LZZ3CgCIWmbkTm804ar9ka6WXYCa6wfNQA6VQoLE2IioJiGfIEm7eLP5+NsYjIxt8rdE8gDj4Ezw== dependencies: - "@lumino/coreutils" "^1.4.2" - "@lumino/disposable" "^1.3.5" + "@lumino/coreutils" "^1.5.0" + "@lumino/disposable" "^1.4.0" -"@lumino/keyboard@^1.1.6": - version "1.1.6" - resolved "https://registry.yarnpkg.com/@lumino/keyboard/-/keyboard-1.1.6.tgz#bf222369bbeacf2c7d2dfe5003d52736c5a2fc3d" - integrity sha512-W6pqe0TXRfGOoz1ZK1PRmuGZUWpmdoJArrzwmduUf0t2r06yl56S7w76gxrB7ExTidNPPaOWydGIosPgdgZf5A== +"@lumino/keyboard@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@lumino/keyboard/-/keyboard-1.2.0.tgz#47a13d6326b20c111701ac4f1d9a1e2a31eef77a" + integrity sha512-MgQSlqFTEzMe4olVaj2/yNCLznTSy+u5Fwdj3Bozx5Yi0l6DBz52V/2LX4aCVqqw18wucn/szGZyMv+MUqu2bA== -"@lumino/messaging@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@lumino/messaging/-/messaging-1.3.3.tgz#75d3c880b11087da130554eeefa9a19572b24d22" - integrity sha512-J+0m1aywl64I9/dr9fzE9IwC+eq90T5gUi1hCXP1MFnZh4aLUymmRV5zFw1CNh/vYlNnEu72xxEuhfCfuhiy8g== +"@lumino/messaging@^1.3.3", "@lumino/messaging@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@lumino/messaging/-/messaging-1.4.0.tgz#22914801bcfa8e57572be7dab9a280a6097eaa47" + integrity sha512-mKjfMLSjZXaaVRwnAhHKVGzQmZA7jGI2b9jsmJGPEj5g4jX9que+lI150rM3IoFRummy7a2QZKIltvA5+zPopg== dependencies: - "@lumino/algorithm" "^1.2.3" - "@lumino/collections" "^1.2.3" + "@lumino/algorithm" "^1.3.0" + "@lumino/collections" "^1.3.0" -"@lumino/polling@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@lumino/polling/-/polling-1.0.4.tgz#85f956933fa63c47edf808c141cdb9a7a1a49f4c" - integrity sha512-9OYIDTohToj6SLrxOr+FbeyPvirBU/r53FgmPxulcDgUVnVk4tqTSLIJAUu3mjJd9hnmZZqpSn9ppyjQAo3qSg== +"@lumino/polling@^1.0.4", "@lumino/polling@^1.1.1": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@lumino/polling/-/polling-1.3.0.tgz#cd401706bc2508508a7f193298da40f9476a49db" + integrity sha512-sMg6UYXZGjc02dCXqyvseFGVzskSN0Xc877JJVXb0uTBlDRT0dvGxGzVL2EjYf6glwTnwiMTfW7ZXpxBFeBilg== dependencies: - "@lumino/coreutils" "^1.4.2" - "@lumino/disposable" "^1.3.5" - "@lumino/signaling" "^1.3.5" - -"@lumino/properties@^1.1.6": - version "1.1.6" - resolved "https://registry.yarnpkg.com/@lumino/properties/-/properties-1.1.6.tgz#367538d63453e99e8c94e5559748a0713d9874ac" - integrity sha512-QnZa1IB7sr4Tawf0OKvwgZAptxDRK7DUAMJ71zijXNXH4FlxyThzOWXef51HHFsISKYa8Rn3rysOwtc62XkmXw== + "@lumino/coreutils" "^1.5.0" + "@lumino/disposable" "^1.4.0" + "@lumino/signaling" "^1.4.0" -"@lumino/signaling@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@lumino/signaling/-/signaling-1.3.5.tgz#21d77cf201c429f9824e04c19f0cc04027f963c8" - integrity sha512-6jniKrLrJOXKJmaJyU7hr6PBzE4GJ5Wms5hc/yzNKKDBxGSEPdtNJlW3wTNUuSTTtF/9ItN8A8ZC/G0yIu53Tw== - dependencies: - "@lumino/algorithm" "^1.2.3" +"@lumino/properties@^1.1.6", "@lumino/properties@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@lumino/properties/-/properties-1.2.0.tgz#ceb63991c4b46eb553f12ca2956837f5eafca826" + integrity sha512-1vT2xvj8Wn113kkY5F4TZQ8POEgmOfxDk8TObqGwDNNzjKfyofg68hdvOgiMUHHnNAqd43oLNxVnoetB6UMUeg== -"@lumino/virtualdom@^1.6.1": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@lumino/virtualdom/-/virtualdom-1.6.1.tgz#7f190091e065e7e4e4814836ed5b293aa8359b2d" - integrity sha512-+KdzSw8TCPwvK6qhZr4xTyp6HymvEb2Da0xPdi4RsVUNhYf2gBI03uidXHx76Vx5OIbEgCn1B+0srxvm2ZbWsQ== +"@lumino/signaling@^1.3.5", "@lumino/signaling@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@lumino/signaling/-/signaling-1.4.0.tgz#e9f8b7bbd5db99a16576bcfbb390a9578961fbe7" + integrity sha512-rUoaKbdrSSOYEqr4Y5B+OJW9lurFgIU/gZlL/elpNsOj/0Bwkyh5B+RGm2YKYA6j00Rei+D7KgJo4Wm+2xi0qQ== dependencies: - "@lumino/algorithm" "^1.2.3" + "@lumino/algorithm" "^1.3.0" -"@lumino/widgets@*", "@lumino/widgets@^1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@lumino/widgets/-/widgets-1.11.1.tgz#2aba526f1dba7cb004786f25b3bc4a58bd8fe14d" - integrity sha512-f4QDe6lVNPcjL8Vb20BiP0gzbT1rx0/1Hc719u5oW9c0Z/xrXMWwNhnb/zYM/kBBVBe3omLmCfJOiNuE0oZl0A== - dependencies: - "@lumino/algorithm" "^1.2.3" - "@lumino/commands" "^1.10.1" - "@lumino/coreutils" "^1.4.2" - "@lumino/disposable" "^1.3.5" - "@lumino/domutils" "^1.1.7" - "@lumino/dragdrop" "^1.5.1" - "@lumino/keyboard" "^1.1.6" - "@lumino/messaging" "^1.3.3" - "@lumino/properties" "^1.1.6" - "@lumino/signaling" "^1.3.5" - "@lumino/virtualdom" "^1.6.1" +"@lumino/virtualdom@^1.6.1", "@lumino/virtualdom@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@lumino/virtualdom/-/virtualdom-1.7.0.tgz#32ae6d13a739bbf0b04733da006ac59be897dd62" + integrity sha512-aagqYemvqsXXfUTFZbAkfkWDKkbT/14gszF6/rAyKN3hMpuEa29psd2ZfpR2NdLdLQX/G5x+sM1aneKx3UWWbA== + dependencies: + "@lumino/algorithm" "^1.3.0" + +"@lumino/widgets@*", "@lumino/widgets@^1.11.1", "@lumino/widgets@^1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@lumino/widgets/-/widgets-1.13.0.tgz#edd44e1690c8bc65afa23a53d2093803270b0cc2" + integrity sha512-0TuOT7W6v4OpBeKTEbyd+4SRzKSXikF8DwPNo2ixfVjQOp2kM+vXNpnSfxvMinfxbsYXpVS9//eU2l+6lbgYEQ== + dependencies: + "@lumino/algorithm" "^1.3.0" + "@lumino/commands" "^1.11.0" + "@lumino/coreutils" "^1.5.0" + "@lumino/disposable" "^1.4.0" + "@lumino/domutils" "^1.2.0" + "@lumino/dragdrop" "^1.6.0" + "@lumino/keyboard" "^1.2.0" + "@lumino/messaging" "^1.4.0" + "@lumino/properties" "^1.2.0" + "@lumino/signaling" "^1.4.0" + "@lumino/virtualdom" "^1.7.0" "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" @@ -2195,25 +2326,25 @@ integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== "@octokit/auth-token@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.0.tgz#b64178975218b99e4dfe948253f0673cbbb59d9f" - integrity sha512-eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg== + version "2.4.1" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.1.tgz#375d79eebd03750e6a9b0299e80b8167c7c85655" + integrity sha512-NB81O5h39KfHYGtgfWr2booRxp2bWOJoqbWwbyUg2hw6h35ArWYlAST5B3XwAkbdcx13yt84hFXyFP5X0QToWA== dependencies: - "@octokit/types" "^2.0.0" + "@octokit/types" "^4.0.1" -"@octokit/endpoint@^5.5.0": - version "5.5.3" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.5.3.tgz#0397d1baaca687a4c8454ba424a627699d97c978" - integrity sha512-EzKwkwcxeegYYah5ukEeAI/gYRLv2Y9U5PpIsseGSFDk+G3RbipQGBs8GuYS1TLCtQaqoO66+aQGtITPalxsNQ== +"@octokit/endpoint@^6.0.1": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.2.tgz#e876aafe68d7f9b6c6d80bf29458403f9afe7b2b" + integrity sha512-xs1mmCEZ2y4shXCpFjNq3UbmNR+bLzxtZim2L0zfEtj9R6O6kc4qLDvYw66hvO6lUsYzPTM5hMkltbuNAbRAcQ== dependencies: - "@octokit/types" "^2.0.0" + "@octokit/types" "^4.0.1" is-plain-object "^3.0.0" universal-user-agent "^5.0.0" -"@octokit/plugin-enterprise-rest@^3.6.1": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-3.6.2.tgz#74de25bef21e0182b4fa03a8678cd00a4e67e561" - integrity sha512-3wF5eueS5OHQYuAEudkpN+xVeUsg8vYEMMenEzLphUZ7PRZ8OJtDcsreL3ad9zxXmBbaFWzLmFcdob5CLyZftA== +"@octokit/plugin-enterprise-rest@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" + integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== "@octokit/plugin-paginate-rest@^1.1.1": version "1.1.2" @@ -2235,7 +2366,7 @@ "@octokit/types" "^2.0.1" deprecation "^2.3.1" -"@octokit/request-error@^1.0.1", "@octokit/request-error@^1.0.2": +"@octokit/request-error@^1.0.2": version "1.2.1" resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.2.1.tgz#ede0714c773f32347576c25649dc013ae6b31801" integrity sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA== @@ -2244,14 +2375,23 @@ deprecation "^2.0.0" once "^1.4.0" +"@octokit/request-error@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.1.tgz#49bd71e811daffd5bdd06ef514ca47b5039682d1" + integrity sha512-5lqBDJ9/TOehK82VvomQ6zFiZjPeSom8fLkFVLuYL3sKiIb5RB8iN/lenLkY7oBmyQcGP7FBMGiIZTO8jufaRQ== + dependencies: + "@octokit/types" "^4.0.1" + deprecation "^2.0.0" + once "^1.4.0" + "@octokit/request@^5.2.0": - version "5.3.2" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.3.2.tgz#1ca8b90a407772a1ee1ab758e7e0aced213b9883" - integrity sha512-7NPJpg19wVQy1cs2xqXjjRq/RmtSomja/VSWnptfYwuBxLdbYh2UjhGi0Wx7B1v5Iw5GKhfFDQL7jM7SSp7K2g== + version "5.4.4" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.4.tgz#dc57e85e86284fa016d0c1a2701a70a10cec4ff2" + integrity sha512-vqv1lz41c6VTxUvF9nM+a6U+vvP3vGk7drDpr0DVQg4zyqlOiKVrY17DLD6de5okj+YLHKcoqaUZTBtlNZ1BtQ== dependencies: - "@octokit/endpoint" "^5.5.0" - "@octokit/request-error" "^1.0.1" - "@octokit/types" "^2.0.0" + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.0.0" + "@octokit/types" "^4.0.1" deprecation "^2.0.0" is-plain-object "^3.0.0" node-fetch "^2.3.0" @@ -2281,16 +2421,23 @@ universal-user-agent "^4.0.0" "@octokit/types@^2.0.0", "@octokit/types@^2.0.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.3.1.tgz#40cd61c125a6161cfb3bfabc75805ac7a54213b4" - integrity sha512-rvJP1Y9A/+Cky2C3var1vsw3Lf5Rjn/0sojNl2AjCX+WbpIHYccaJ46abrZoIxMYnOToul6S9tPytUVkFI7CXQ== + version "2.16.2" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.16.2.tgz#4c5f8da3c6fecf3da1811aef678fda03edac35d2" + integrity sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q== dependencies: "@types/node" ">= 8" -"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.4.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.6.0.tgz#ec7670432ae9c8eb710400d112c201a362d83393" - integrity sha512-w4/WHG7C4WWFyE5geCieFJF6MZkbW4VAriol5KlmQXpAQdxvV0p26sqNZOW6Qyw6Y0l9K4g+cHvvczR2sEEpqg== +"@octokit/types@^4.0.1": + version "4.1.6" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-4.1.6.tgz#03d3f277dee73086940578c2518c2ed700ac07a0" + integrity sha512-/gN/VeZirpFb0GIpbDF6SgtfDp9EQ+ymqPf595wjRkEoRgkrCnJGctGAd8MrynStBvYRmMWF1P64qzZFzhW7Vg== + dependencies: + "@types/node" ">= 8" + +"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.4.0", "@sinonjs/commons@^1.7.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.0.tgz#c8d68821a854c555bba172f3b06959a0039b236d" + integrity sha512-wEj54PfsZ5jGSwMX68G8ZXFawcSglQSXqCftWX3ec8MDUzQdHgcKvw97awHbY0efQEL5iKUOAmmVtoYgmrSG4Q== dependencies: type-detect "4.0.8" @@ -2317,9 +2464,9 @@ integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== "@types/babel__core@^7.1.0": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.3.tgz#e441ea7df63cd080dfcd02ab199e6d16a735fc30" - integrity sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA== + version "7.1.8" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.8.tgz#057f725aca3641f49fc11c7a87a9de5ec588a5d7" + integrity sha512-KXBiQG2OXvaPWFPDS1rD8yV9vO0OuWIqAEqLsbfX0oU2REN5KuoMnZ1gClWcBhO5I3n6oTVAmrMufOvRqdmFTQ== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -2328,9 +2475,9 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.0.tgz#f1ec1c104d1bb463556ecb724018ab788d0c172a" - integrity sha512-c1mZUu4up5cp9KROs/QAw0gTeHrw/x7m52LcnvMxxOZ03DmLwPV0MlGmlgzV3cnSdjhJOZsj7E7FHeioai+egw== + 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" @@ -2343,16 +2490,16 @@ "@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.12" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.12.tgz#22f49a028e69465390f87bb103ebd61bd086b8f5" + integrity sha512-t4CoEokHTfcyfb4hUaF9oOHu9RmmNWnm1CP0YmMqOOfClKascOmvlEM736vlqeScuGvBDsHkf8R2INd4DWreQA== dependencies: "@babel/types" "^7.3.0" "@types/chai@^4.1.7": - version "4.2.9" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.9.tgz#194332625ed2ae914aef00b8d5ca3b77e7924cc6" - integrity sha512-NeXgZj+MFL4izGqA4sapdYzkzQG+MtGra9vhQ58dnmDY++VgJaRUws+aLVV5zRJCYJl/8s9IjMmhiUw1WsKSmw== + version "4.2.11" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.11.tgz#d3614d6c5f500142358e6ed24e1bf16657536c50" + integrity sha512-t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw== "@types/codemirror@^0.0.74": version "0.0.74" @@ -2367,9 +2514,9 @@ integrity sha512-kSkVAvWmMZiCYtvqjqQEwOmvKwcH+V4uiv3qPQ8pAh1Xl39xggGEo8gHUqV4waYGHezdFw0rKBR8Jt0CrQSDZA== "@types/estree@*": - version "0.0.42" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.42.tgz#8d0c1f480339efedb3e46070e22dd63e0430dd11" - integrity sha512-K1DPVvnBCPxzD+G51/cxVIoc2X8uUVl1zpJeE6iKcgHMj4+tbat5Xu4TjV7v2QSDbIeAfLi2hIk+u2+s0MlpUQ== + version "0.0.44" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.44.tgz#980cc5a29a3ef3bea6ff1f7d021047d7ea575e21" + integrity sha512-iaIVzr+w2ZJ5HkidlZ3EJM8VTZb2MJLCjw3V+505yVts0gRC4UMvjw0d1HPtGqI/HQC/KdsYtayfzl+AXY2R8g== "@types/events@*", "@types/events@^3.0.0": version "3.0.0" @@ -2400,26 +2547,31 @@ handlebars "*" "@types/highlight.js@^9.12.3": - version "9.12.3" - resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.12.3.tgz#b672cfaac25cbbc634a0fd92c515f66faa18dbca" - integrity sha512-pGF/zvYOACZ/gLGWdQH8zSwteQS1epp68yRcVLJMgUck/MjEn/FBYmPub9pXT8C1e4a8YZfHo1CKyV8q1vKUnQ== + version "9.12.4" + resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.12.4.tgz#8c3496bd1b50cc04aeefd691140aa571d4dbfa34" + integrity sha512-t2szdkwmg2JJyuCM20e8kR2X59WCE5Zkl4bzm1u1Oukjm79zpbiAv+QjnwLnuuV0WHEcX2NgUItu0pAMKuOPww== + +"@types/is-glob@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/is-glob/-/is-glob-4.0.1.tgz#a93eec1714172c8eb3225a1cc5eb88c2477b7d00" + integrity sha512-k3RS5HyBPu4h+5hTmIEfPB2rl5P3LnGdQEZrV2b9OWTJVtsUQ2VBcedqYKGqxvZqle5UALUXdSfVA8nf3HfyWQ== "@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.2" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.2.tgz#79d7a78bad4219f4c03d6557a1c72d9ca6ba62d5" + integrity sha512-rsZg7eL+Xcxsxk2XlBt9KcG8nOp9iYdKCOikY9x2RFJCyOdNj4MKPQty0e8oZr29vVAzKXr1BmR+kZauti3o1w== "@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" "*" @@ -2435,9 +2587,9 @@ integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== "@types/lodash@^4.14.110": - version "4.14.149" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz#1342d63d948c6062838fbf961012f74d4e638440" - integrity sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ== + version "4.14.155" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.155.tgz#e2b4514f46a261fd11542e47519c20ebce7bc23a" + integrity sha512-vEcX7S7aPhsBCivxMwAANQburHBtfN9RdyXFk84IJmu2Z4Hkg1tOFgaslRiEqqvoLtbCBi6ika1EMspE+NZ9Lg== "@types/marked@^0.4.0": version "0.4.2" @@ -2449,20 +2601,32 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== +"@types/minimist@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" + integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= + +"@types/mkdirp@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz#503aacfe5cc2703d5484326b1b27efa67a339c1f" + integrity sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg== + dependencies: + "@types/node" "*" + "@types/mocha@^5.2.7": version "5.2.7" resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.7.tgz#315d570ccb56c53452ff8638738df60726d5b6ea" integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ== -"@types/node@*", "@types/node@>= 8", "@types/node@>=4.5.0": - version "13.7.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.7.tgz#1628e6461ba8cc9b53196dfeaeec7b07fa6eea99" - integrity sha512-Uo4chgKbnPNlxQwoFmYIwctkQVkMMmsAoGGU4JKwLuvBefF0pCq4FybNSnfkfRCpC7ZW7kttcC/TrRtAJsvGtg== +"@types/node@*", "@types/node@>= 8": + version "14.0.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.10.tgz#dbfaa170bd9eafccccb6d7060743a761b0844afd" + integrity sha512-Bz23oN/5bi0rniKT24ExLf4cK0JdvN3dH/3k0whYkdN4eI4vS2ZW/2ENNn2uxHCzWcbdHIa/GRuWQytfzCjRYw== "@types/node@^12.0.7": - version "12.12.17" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.17.tgz#191b71e7f4c325ee0fb23bc4a996477d92b8c39b" - integrity sha512-Is+l3mcHvs47sKy+afn2O1rV4ldZFU7W8101cNlOd+MRbjM4Onida8jSZnJdTe/0Pcf25g9BNIUsuugmE6puHA== + version "12.12.43" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.43.tgz#b60ce047822e526e7a9252e50844eee79d5386ff" + integrity sha512-KUyZdkGCnVPuXfsKmDUu2XLui65LZIJ2s0M57noy5e+ixUT2oK33ep7zlvgzI8LElcWqbf8AR+o/3GqAPac2zA== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -2470,9 +2634,9 @@ integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== "@types/prettier@^1.16.1": - version "1.19.0" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.0.tgz#a2502fb7ce9b6626fdbfc2e2a496f472de1bdd05" - integrity sha512-gDE8JJEygpay7IjA/u3JiIURvwZW08f0cZSZLAzFoX/ZmeqvS0Sqv+97aKuHpNsalAMMhwPe+iAS6fQbfmbt7A== + version "1.19.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" + integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ== "@types/prop-types@*": version "15.7.3" @@ -2480,17 +2644,17 @@ integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== "@types/react@~16.9.16": - version "16.9.23" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.23.tgz#1a66c6d468ba11a8943ad958a8cb3e737568271c" - integrity sha512-SsGVT4E7L2wLN3tPYLiF20hmZTPGuzaayVunfgXzUn1x4uHVsKH6QDJQ/TdpHqwsTLd4CwrmQ2vOgxN7gE24gw== + version "16.9.35" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.35.tgz#a0830d172e8aadd9bd41709ba2281a3124bbd368" + integrity sha512-q0n0SsWcGc8nDqH2GJfWQWUOmZSJhXV64CjVN5SvcNti3TdEaA3AH0D8DwNmMdzjMAC/78tB8nAZIlV8yTz+zQ== dependencies: "@types/prop-types" "*" csstype "^2.2.0" "@types/shelljs@^0.8.0": - version "0.8.6" - resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.8.6.tgz#45193a51df99e0f00513c39a2152832399783221" - integrity sha512-svx2eQS268awlppL/P8wgDLBrsDXdKznABHJcuqXyWpSKJgE1s2clXlBvAwbO/lehTmG06NtEWJRkAk4tAgenA== + version "0.8.8" + resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.8.8.tgz#e439c69929b88a2c8123c1a55e09eb708315addf" + integrity sha512-lD3LWdg6j8r0VRBFahJVaxoW0SIcswxKaFUrmKl33RJVeeoNYQAz4uqCJ5Z6v4oIBOsC5GozX+I5SorIKiTcQA== dependencies: "@types/glob" "*" "@types/node" "*" @@ -2534,161 +2698,160 @@ "@types/vfile-message" "*" "@types/yargs-parser@*": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz#c563aa192f39350a1d18da36c5a8da382bbd8228" - integrity sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg== + 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.3" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.3.tgz#76482af3981d4412d65371a318f992d33464a380" - integrity sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ== + version "13.0.9" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.9.tgz#44028e974343c7afcf3960f1a2b1099c39a7b5e1" + integrity sha512-xrvhZ4DZewMDhoH1utLtOAwYQy60eYFoXeje30TzM3VOvQlBwQaEpKFq5m34k1wOw2AKIi2pwtiAjdmhvlBUzg== dependencies: "@types/yargs-parser" "*" -"@webassemblyjs/ast@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" - integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== - dependencies: - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" - -"@webassemblyjs/floating-point-hex-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" - integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== - -"@webassemblyjs/helper-api-error@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" - integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== - -"@webassemblyjs/helper-buffer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" - integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== - -"@webassemblyjs/helper-code-frame@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" - integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== - dependencies: - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/helper-fsm@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" - integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== - -"@webassemblyjs/helper-module-context@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" - integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== - dependencies: - "@webassemblyjs/ast" "1.8.5" - mamacro "^0.0.3" - -"@webassemblyjs/helper-wasm-bytecode@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" - integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== - -"@webassemblyjs/helper-wasm-section@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" - integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - -"@webassemblyjs/ieee754@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" - integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" - integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" - integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== - -"@webassemblyjs/wasm-edit@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" - integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/helper-wasm-section" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-opt" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/wasm-gen@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" - integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wasm-opt@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" - integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - -"@webassemblyjs/wasm-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" - integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wast-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" - integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/floating-point-hex-parser" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-code-frame" "1.8.5" - "@webassemblyjs/helper-fsm" "1.8.5" +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" - integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" "@xtuc/ieee754@^1.2.0": @@ -2719,9 +2882,9 @@ JSONStream@^1.0.4, JSONStream@^1.3.4: through ">=2.2.7 <3" abab@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.2.tgz#a2fba1b122c69a85caa02d10f9270c7219709a9d" - integrity sha512-2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" + integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== abbrev@1: version "1.1.1" @@ -2745,9 +2908,9 @@ acorn-globals@^4.1.0: acorn-walk "^6.0.1" acorn-jsx@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" - integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw== + 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-walk@^6.0.1: version "6.2.0" @@ -2759,10 +2922,10 @@ acorn@^5.5.3: resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== -acorn@^6.0.1, acorn@^6.0.7, acorn@^6.2.1: - version "6.4.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" - integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw== +acorn@^6.0.1, acorn@^6.0.7, acorn@^6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== after@0.8.2: version "0.8.2" @@ -2801,9 +2964,9 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1: - version "6.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" - integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== + version "6.12.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" + integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -2939,9 +3102,9 @@ array-ify@^1.0.0: integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= array-iterate@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/array-iterate/-/array-iterate-1.1.3.tgz#b116bdb1e37f3c3fec13acdfb91ac829f122543c" - integrity sha512-7MIv7HE9MuzfK6B2UnWv07oSHBLOaY1UUXAxZ07bIeRM+4IkPTlveMDs9MY//qvxPZPSvCn2XV4bmtQgSkVodg== + version "1.1.4" + resolved "https://registry.yarnpkg.com/array-iterate/-/array-iterate-1.1.4.tgz#add1522e9dd9749bb41152d08b845bd08d6af8b7" + integrity sha512-sNRaPGh9nnmdC8Zf+pT3UqP8rnWj5Hf9wiFGsX3wUQ2yVSIhO2ShFwCoceIPpB41QF6i2OEmrHmCo36xronCVA== array-union@^1.0.2: version "1.0.2" @@ -2970,6 +3133,11 @@ arrify@^1.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + asap@^2.0.0: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -3057,9 +3225,9 @@ aws-sign2@~0.7.0: integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" - integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== + version "1.10.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" + integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== babel-jest@^24.9.0: version "24.9.0" @@ -3074,10 +3242,10 @@ babel-jest@^24.9.0: chalk "^2.4.2" slash "^2.0.0" -babel-plugin-dynamic-import-node@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== +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" @@ -3150,17 +3318,19 @@ base@^0.11.1: pascalcase "^0.1.1" bash-language-server@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/bash-language-server/-/bash-language-server-1.7.0.tgz#9b7e93d056ac26bebde08decdf9689685352853d" - integrity sha512-7LoZPq2jYPov87LDnoYY5/3KdwTjjUQbQAim9zvRvjV2DI6sku5CKLGmoqaivOyx0Ah8mUWwnvHg/1R+H5N9qg== + version "1.16.1" + resolved "https://registry.yarnpkg.com/bash-language-server/-/bash-language-server-1.16.1.tgz#e3896cd280ceee4d6582a3a976b0b7b0beae8d6e" + integrity sha512-IS1Ix7qyRq7GTMXqhHUF44yY89i/1Ucn5KFLimEfDpwU1f3GvbV9VnDpqpG6kedJsl2LigEthSnoVlzaOwgt0g== dependencies: - glob "^7.1.2" + fuzzy-search "^3.2.1" + glob "^7.1.6" request "^2.83.0" request-promise-native "^1.0.5" turndown "^4.0.2" urijs "^1.19.1" - vscode-languageserver "^5.2.1" - web-tree-sitter "^0.15.9" + vscode-languageserver "^6.1.1" + vscode-languageserver-textdocument "^1.0.1" + web-tree-sitter "^0.16.2" bcrypt-pbkdf@^1.0.0: version "1.0.2" @@ -3213,10 +3383,15 @@ bluebird@^3.3.0, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: 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: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== +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.2" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" + integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== body-parser@^1.16.1: version "1.19.0" @@ -3270,10 +3445,10 @@ brorand@^1.0.1: 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" @@ -3318,7 +3493,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= @@ -3327,17 +3502,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.0" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11" + integrity sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.2" + 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" @@ -3346,14 +3523,15 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.6.0, browserslist@^4.8.2: - version "4.8.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.2.tgz#b45720ad5fbc8713b7253c20766f701c9a694289" - integrity sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA== +browserslist@^4.12.0, browserslist@^4.8.5: + version "4.12.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" + integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== dependencies: - caniuse-lite "^1.0.30001015" - electron-to-chromium "^1.3.322" - node-releases "^1.1.42" + caniuse-lite "^1.0.30001043" + electron-to-chromium "^1.3.413" + node-releases "^1.1.53" + pkg-up "^2.0.0" bs-logger@0.x: version "0.2.6" @@ -3387,6 +3565,11 @@ buffer-alloc@^1.2.0: buffer-alloc-unsafe "^1.1.0" buffer-fill "^1.0.0" +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + buffer-fill@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" @@ -3452,9 +3635,9 @@ bytes@3.1.0: integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: - version "12.0.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" - integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== dependencies: bluebird "^3.5.5" chownr "^1.1.1" @@ -3538,6 +3721,15 @@ camelcase-keys@^4.0.0: map-obj "^2.0.0" quick-lru "^1.0.0" +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + camelcase@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" @@ -3553,10 +3745,15 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001015: - version "1.0.30001015" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001015.tgz#15a7ddf66aba786a71d99626bc8f2b91c6f0f5f0" - integrity sha512-/xL2AbW/XWHNu1gnIrO8UitBGoFthcsDgU9VLK1/dpsoxbaD5LscHozKze05R6WLsBvLhqv78dAPozMFQBYLbQ== +camelcase@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e" + integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== + +caniuse-lite@^1.0.30001043: + version "1.0.30001077" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001077.tgz#5d7da6a120b08d9f4fd94823786ecb454aaa5626" + integrity sha512-AEzsGvjBJL0lby/87W96PyEvwN0GsYvk5LHsglLg9tW37K4BqvAvoSCdWIE13OZQ8afupqZ73+oL/1LkedN8hA== capture-exit@^2.0.0: version "2.0.0" @@ -3623,7 +3820,7 @@ check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= -chokidar@^2.0.2: +chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== @@ -3642,10 +3839,10 @@ chokidar@^2.0.2: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6" - integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A== +chokidar@^3.0.0, chokidar@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8" + integrity sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -3653,9 +3850,9 @@ chokidar@^3.0.0: is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.2.0" + readdirp "~3.4.0" optionalDependencies: - fsevents "~2.1.1" + fsevents "~2.1.2" chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" @@ -3722,9 +3919,9 @@ cli-spinners@^1.0.1: integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg== 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== cliui@^5.0.0: version "5.0.0" @@ -3765,9 +3962,9 @@ code-point-at@^1.0.0: integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= codemirror@*: - version "5.50.2" - resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.50.2.tgz#32ddfe2b50193fcf573d8141c4a31d267c92b4a3" - integrity sha512-PPjUsC1oXSM86lunKrw609P1oM0Wu8z9rqzjbeyBYCcx44VL41aUpccdOf1PfAZtTONlmN3sT3p2etLNYa1OGg== + version "5.54.0" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.54.0.tgz#82b6adf662b29eeb7b867fe7839d49e25e4a0b38" + integrity sha512-Pgf3surv4zvw+KaW3doUU7pGjF0BPU8/sj7eglWJjzni46U/DDW8pu3nZY0QgQKUcICDXRkq8jZmq0y6KhxM3Q== codemirror@~5.49.2: version "5.49.2" @@ -3830,9 +4027,9 @@ commondir@^1.0.1: integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= compare-func@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" - integrity sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg= + version "1.3.4" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.4.tgz#6b07c4c5e8341119baf44578085bda0f4a823516" + integrity sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q== dependencies: array-ify "^1.0.0" dot-prop "^3.0.0" @@ -3862,7 +4059,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@1.6.2, concat-stream@^1.5.0: +concat-stream@^1.5.0, concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -3891,13 +4088,13 @@ config-chain@^1.1.11: proto-list "~1.2.1" connect@^3.6.0: - version "3.6.6" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" - integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ= + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== dependencies: debug "2.6.9" - finalhandler "1.1.0" - parseurl "~1.3.2" + finalhandler "1.1.2" + parseurl "~1.3.3" utils-merge "1.0.1" console-browserify@^1.1.0: @@ -3921,9 +4118,9 @@ content-type@~1.0.4: integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== conventional-changelog-angular@^5.0.3: - version "5.0.6" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.6.tgz#269540c624553aded809c29a3508fdc2b544c059" - integrity sha512-QDEmLa+7qdhVIv8sFZfVxU1VSyVvnXPsxq8Vam49mKUcO1Z8VTLEJk9uI21uiJUsnmm0I4Hrsdc9TgkOQo9WSA== + version "5.0.10" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.10.tgz#5cf7b00dd315b6a6a558223c80d5ef24ddb34205" + integrity sha512-k7RPPRs0vp8+BtPsM9uDxRl6KcgqtCJmzRD1wRtgqmhQ96g8ifBGo9O/TZBG23jqlXS/rg8BKRDELxfnQQGiaA== dependencies: compare-func "^1.3.1" q "^1.5.1" @@ -3948,43 +4145,43 @@ conventional-changelog-core@^3.1.6: through2 "^3.0.0" conventional-changelog-preset-loader@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.0.tgz#580fa8ab02cef22c24294d25e52d7ccd247a9a6a" - integrity sha512-/rHb32J2EJnEXeK4NpDgMaAVTFZS3o1ExmjKMtYVgIC4MQn0vkNSbYpdGRotkfGGRWiqk3Ri3FBkiZGbAfIfOQ== + version "2.3.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c" + integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== conventional-changelog-writer@^4.0.6: - version "4.0.11" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.11.tgz#9f56d2122d20c96eb48baae0bf1deffaed1edba4" - integrity sha512-g81GQOR392I+57Cw3IyP1f+f42ME6aEkbR+L7v1FBBWolB0xkjKTeCWVguzRrp6UiT1O6gBpJbEy2eq7AnV1rw== + version "4.0.16" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.16.tgz#ca10f2691a8ea6d3c2eb74bd35bcf40aa052dda5" + integrity sha512-jmU1sDJDZpm/dkuFxBeRXvyNcJQeKhGtVcFFkwTphUAzyYWcwz2j36Wcv+Mv2hU3tpvLMkysOPXJTLO55AUrYQ== dependencies: compare-func "^1.3.1" - conventional-commits-filter "^2.0.2" + conventional-commits-filter "^2.0.6" dateformat "^3.0.0" - handlebars "^4.4.0" + handlebars "^4.7.6" json-stringify-safe "^5.0.1" lodash "^4.17.15" - meow "^5.0.0" + meow "^7.0.0" semver "^6.0.0" split "^1.0.0" through2 "^3.0.0" -conventional-commits-filter@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz#f122f89fbcd5bb81e2af2fcac0254d062d1039c1" - integrity sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ== +conventional-commits-filter@^2.0.2, conventional-commits-filter@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.6.tgz#0935e1240c5ca7698329affee1b6a46d33324c4c" + integrity sha512-4g+sw8+KA50/Qwzfr0hL5k5NWxqtrOVw4DDk3/h6L85a9Gz0/Eqp3oP+CWCNfesBvZZZEFHF7OTEbRe+yYSyKw== dependencies: lodash.ismatch "^4.4.0" modify-values "^1.0.0" conventional-commits-parser@^3.0.3: - version "3.0.8" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.8.tgz#23310a9bda6c93c874224375e72b09fb275fe710" - integrity sha512-YcBSGkZbYp7d+Cr3NWUeXbPDFUN6g3SaSIzOybi8bjHL5IJ5225OSCxJJ4LgziyEJ7AaJtE9L2/EU6H7Nt/DDQ== + version "3.1.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.1.0.tgz#10140673d5e7ef5572633791456c5d03b69e8be4" + integrity sha512-RSo5S0WIwXZiRxUGTPuYFbqvrR4vpJ1BDdTlthFgvHt5kEdnd1+pdvwWphWn57/oIl4V72NMmOocFqqJ8mFFhA== dependencies: JSONStream "^1.0.4" is-text-path "^1.0.1" lodash "^4.17.15" - meow "^5.0.0" + meow "^7.0.0" split2 "^2.0.0" through2 "^3.0.0" trim-off-newlines "^1.0.0" @@ -4032,12 +4229,12 @@ 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.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.1.tgz#39638c935c83c93a793abb628b252ec43e85783a" - integrity sha512-2Tl1EuxZo94QS2VeH28Ebf5g3xbPZG/hj/N5HDDy4XMP/ImR0JIer/nggQRiMN91Q54JVkGbytf42wO29oXVHg== +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.2" + browserslist "^4.8.5" semver "7.0.0" core-util-is@1.0.2, core-util-is@~1.0.0: @@ -4063,7 +4260,7 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.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== @@ -4074,7 +4271,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== @@ -4143,11 +4340,16 @@ cssstyle@^1.0.0: dependencies: cssom "0.3.x" -csstype@^2.2.0, csstype@^2.4.0: +csstype@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098" integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q== +csstype@^2.2.0, csstype@~2.6.9: + version "2.6.10" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b" + integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w== + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -4206,7 +4408,7 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -4239,7 +4441,7 @@ debuglog@^1.0.1: resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= -decamelize-keys@^1.0.0: +decamelize-keys@^1.0.0, decamelize-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= @@ -4384,9 +4586,9 @@ dictionary-en-gb@^2.0.0: integrity sha512-kYhSoaD9yOaq/h14DyT/+hyjs5X96kFdnlmy582wr+hCOIRuv1hqAe9gWM+oUQAA1+MH8fAKzyAsTxS8ps/qsg== diff-match-patch@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.4.tgz#6ac4b55237463761c4daf0dc603eb869124744b1" - integrity sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg== + version "1.0.5" + resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz#abb584d5f10cd1196dfc55aa03701592ae3f7b37" + integrity sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw== diff-sequences@^24.9.0: version "24.9.0" @@ -4584,12 +4786,12 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.322: - version "1.3.322" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8" - integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA== +electron-to-chromium@^1.3.413: + version "1.3.459" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.459.tgz#49a43d78f60b5bf42312b636f3af43c695e0c652" + integrity sha512-aN3Z89qEYIwVjzGi9SrcTjjopRZ3STUA6xTufS0fxZy8xOO2iqVw8rYKdT32CHgOKHOYj5KGmz3n6xUKE4QJiQ== -elliptic@^6.0.0: +elliptic@^6.0.0, elliptic@^6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== @@ -4612,7 +4814,12 @@ emojis-list@^2.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= -encodeurl@~1.0.1: +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== + +encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= @@ -4700,9 +4907,9 @@ entities@^1.1.1: integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" - integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" + integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== env-paths@^2.2.0: version "2.2.0" @@ -4710,9 +4917,9 @@ env-paths@^2.2.0: integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== envinfo@^7.3.1: - version "7.5.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.5.0.tgz#91410bb6db262fb4f1409bd506e9ff57e91023f4" - integrity sha512-jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ== + version "7.5.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.5.1.tgz#93c26897225a00457c75e734d354ea9106a72236" + integrity sha512-hQBkDf2iO4Nv0CNHpCuSBeaSrveU6nThVxFGTrq/eDlV716UQk09zChaJae4mZRsos1x4YLY2TaH3LHUae3ZmQ== err-code@^1.0.0: version "1.1.2" @@ -4748,10 +4955,10 @@ error@^7.0.0: dependencies: string-template "~0.2.1" -es-abstract@^1.17.0-next.1: - version "1.17.4" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184" - integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ== +es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: + version "1.17.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" + integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" @@ -4833,11 +5040,11 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escodegen@^1.9.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" - integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== + version "1.14.2" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.2.tgz#14ab71bf5026c2aa08173afba22c6f3173284a84" + integrity sha512-InuOIiKk8wwuOFg6x9BQXbzjrQhtyXh46K9bqVTPzSo2FnyMBaYGBMC6PhQy7yxxil9vIedFBweQBMK74/7o8A== dependencies: - esprima "^3.1.3" + esprima "^4.0.1" estraverse "^4.2.0" esutils "^2.0.2" optionator "^0.8.1" @@ -4860,9 +5067,9 @@ eslint-plugin-prettier@^2.2.0: jest-docblock "^21.0.0" eslint-plugin-prettier@^3.0.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.1.tgz#507b8562410d02a03f0ddc949c616f877852f2ba" - integrity sha512-A+TZuHZ0KU0cnn56/9mfR7/KjUJ9QNVXUhwvRFSR7PGPe0zQR6PTkmyqg1AtUUEOzTqeRsUwyKFh0oVZKVCrtA== + version "3.1.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz#ae116a0fc0e598fdae48743a4430903de5b4e6ca" + integrity sha512-+HG5jmu/dN3ZV3T6eCD7a4BlAySdN7mLIbJYo0z1cFQuI+r2DiTJEFeF68ots93PsnrMxbzIZ2S/ieX+mkrBeQ== dependencies: prettier-linter-helpers "^1.0.0" @@ -4882,9 +5089,9 @@ eslint-utils@^1.3.1: eslint-visitor-keys "^1.1.0" eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" - integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + version "1.2.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz#74415ac884874495f78ec2a97349525344c981fa" + integrity sha512-WFb4ihckKil6hu3Dp798xdzSfddwKKU3+nGniKF6HfeW6OLd2OUDEPP7TcHtB5+QXOKg2s6B2DaMPE1Nn/kxKQ== eslint@^5.16.0: version "5.16.0" @@ -4937,22 +5144,17 @@ espree@^5.0.1: acorn-jsx "^5.0.0" eslint-visitor-keys "^1.0.0" -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= - -esprima@^4.0.0: +esprima@^4.0.0, esprima@^4.0.1: 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.0.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" - integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== + 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 "^4.0.0" + estraverse "^5.1.0" esrecurse@^4.1.0: version "4.2.1" @@ -4961,11 +5163,16 @@ esrecurse@^4.1.0: dependencies: estraverse "^4.1.0" -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: 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.1.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -4985,9 +5192,9 @@ eventemitter3@^3.1.0: integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== eventemitter3@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" - integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== + version "4.0.4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" + integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== events@^3.0.0: version "3.1.0" @@ -5003,9 +5210,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== + 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@^0.9.0: version "0.9.0" @@ -5121,14 +5328,14 @@ extglob@^2.0.4: to-regex "^3.0.1" extract-zip@^1.6.6: - version "1.6.7" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" - integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= + version "1.7.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== dependencies: - concat-stream "1.6.2" - debug "2.6.9" - mkdirp "0.5.1" - yauzl "2.4.1" + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" extsprintf@1.3.0: version "1.3.0" @@ -5191,17 +5398,17 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= dependencies: pend "~1.2.0" figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" - integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== figures@^2.0.0: version "2.0.0" @@ -5247,17 +5454,17 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" - integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U= +finalhandler@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" - encodeurl "~1.0.1" + encodeurl "~1.0.2" escape-html "~1.0.3" on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" + parseurl "~1.3.3" + statuses "~1.5.0" unpipe "~1.0.0" find-cache-dir@^2.1.0: @@ -5291,7 +5498,7 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" -find-up@^4.0.0: +find-up@^4.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== @@ -5326,9 +5533,9 @@ flat@^4.1.0: is-buffer "~2.0.3" flatted@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" - integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== flush-write-stream@^1.0.0: version "1.1.1" @@ -5339,9 +5546,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f" - integrity sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A== + version "1.11.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.11.0.tgz#afa14f08ba12a52963140fe43212658897bc0ecb" + integrity sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA== dependencies: debug "^3.0.0" @@ -5376,10 +5583,10 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -free-style@2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/free-style/-/free-style-2.6.1.tgz#6af512568291195854842cbbaacd95578a6a9a8b" - integrity sha512-uaVA8e57tvhrFKAl6x32SGIrGFBoeTAFtfHDzWxjPhiXQiUxOI6EEdEReRkjNO2H9XcdMJXXEnMHw8Q7iMYLbw== +free-style@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/free-style/-/free-style-3.1.0.tgz#4e2996029534e6b1731611d843437b9e2f473f08" + integrity sha512-vJujYSIyT30iDoaoeigNAxX4yB1RUrh+N2ZMhIElMr3BvCuGXOw7XNJMEEJkDUeamK2Rnb/IKFGKRKlTWIGRWA== from2@^2.1.0: version "2.3.0" @@ -5437,17 +5644,17 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.11" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3" - integrity sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw== + 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" -fsevents@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" - integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== +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" @@ -5459,6 +5666,11 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +fuzzy-search@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/fuzzy-search/-/fuzzy-search-3.2.1.tgz#65d5faad6bc633aee86f1898b7788dfe312ac6c9" + integrity sha512-vAcPiyomt1ioKAsAL2uxSABHJ4Ju/e4UeDM+g1OlR0vV4YhLGMNsdLNvZTpEDY4JCSt0E4hASCNM5t2ETtsbyg== + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -5606,9 +5818,9 @@ glob-parent@^3.1.0: path-dirname "^1.0.0" glob-parent@^5.0.0, glob-parent@~5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" - integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== + 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" @@ -5629,7 +5841,7 @@ glob@7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: +glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -5697,9 +5909,9 @@ globby@^9.2.0: slash "^2.0.0" 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, graceful-fs@^4.2.2: - version "4.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== growl@1.10.5: version "1.10.5" @@ -5716,14 +5928,15 @@ gud@^1.0.0: resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== -handlebars@*, handlebars@^4.0.6, handlebars@^4.1.2, handlebars@^4.4.0, handlebars@^4.5.3: - version "4.7.3" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.3.tgz#8ece2797826886cf8082d1726ff21d2a022550ee" - integrity sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg== +handlebars@*, handlebars@^4.0.6, handlebars@^4.7.6: + version "4.7.6" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" + integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== dependencies: + minimist "^1.2.5" neo-async "^2.6.0" - optimist "^0.6.1" source-map "^0.6.1" + wordwrap "^1.0.0" optionalDependencies: uglify-js "^3.1.4" @@ -5740,6 +5953,11 @@ har-validator@~5.1.3: ajv "^6.5.5" har-schema "^2.0.0" +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + harmony-reflect@^1.4.6: version "1.6.1" resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" @@ -5811,12 +6029,13 @@ 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" @@ -5842,11 +6061,9 @@ hexer@^1.5.0: xtend "^4.0.0" highlight.js@^9.13.1: - version "9.17.1" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.17.1.tgz#14a4eded23fd314b05886758bb906e39dd627f9a" - integrity sha512-TA2/doAur5Ol8+iM3Ov7qy3jYcr/QiJ2eDTdRF4dfbjG7AaaB99J5G+zSl11ljbl6cIcahgPY6SKb3sC3EJ0fw== - dependencies: - handlebars "^4.5.3" + version "9.18.1" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.1.tgz#ed21aa001fe6252bb10a3d76d47573c6539fe13c" + integrity sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg== hmac-drbg@^1.0.0: version "1.0.1" @@ -5865,9 +6082,9 @@ homedir-polyfill@^1.0.1: parse-passwd "^1.0.0" hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: - version "2.8.7" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.7.tgz#4d2e0d5248e1cfabc984b0f6a6d75fe36e679511" - integrity sha512-ChkjQtKJ3GI6SsI4O5jwr8q8EPrWCnxuc4Tbx+vRI5x6mDOpjKKltNo1lRlszw3xwgTOSns1ZRBiMmmwpcvLxg== + 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" @@ -5876,6 +6093,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== + htmlparser2@^3.10.0: version "3.10.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" @@ -5913,9 +6135,9 @@ http-proxy-agent@^2.1.0: debug "3.1.0" http-proxy@^1.13.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" - integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== dependencies: eventemitter3 "^4.0.0" follow-redirects "^1.0.0" @@ -6049,6 +6271,11 @@ indent-string@^3.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" @@ -6067,7 +6294,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.0, 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== @@ -6120,11 +6347,16 @@ inquirer@^6.2.0, inquirer@^6.2.2: strip-ansi "^5.1.0" through "^2.3.6" -interpret@1.2.0, interpret@^1.0.0: +interpret@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -6209,9 +6441,9 @@ is-buffer@^2.0.0, is-buffer@~2.0.3: integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== is-callable@^1.1.4, is-callable@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== + 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" @@ -6361,17 +6593,17 @@ is-plain-object@^3.0.0: dependencies: isobject "^4.0.0" -is-promise@^2.1, 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= +is-promise@^2.1: + 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, is-regex@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff" + integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw== dependencies: - has "^1.0.3" + has-symbols "^1.0.1" is-ssh@^1.3.0: version "1.3.1" @@ -6517,11 +6749,11 @@ istanbul-lib-source-maps@^3.0.1: source-map "^0.6.1" istanbul-reports@^2.2.6: - 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== + 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" iterare@^1.1.2: version "1.2.0" @@ -6529,12 +6761,12 @@ iterare@^1.1.2: integrity sha512-RxMV9p/UzdK0Iplnd8mVgRvNdXlsTOiuDrqMRnDi3wIhbT+JP4xDquAX9ay13R3CH72NBzQ91KWe0+C168QAyQ== jaeger-client@^3.5.3: - version "3.17.2" - resolved "https://registry.yarnpkg.com/jaeger-client/-/jaeger-client-3.17.2.tgz#92cf26752c5c66f3e66adf595cdde2f548cc0804" - integrity sha512-19YloSidmKbrXHgecLWod8eXo7rm2ieUnsfg0ripTFGRCW5v2OWE96Gte4/tOQG/8N+T39VoLU2nMBdjbdMUJg== + version "3.18.0" + resolved "https://registry.yarnpkg.com/jaeger-client/-/jaeger-client-3.18.0.tgz#95c9183e06a9b14b957bce33b5e2ddaecb2ed51f" + integrity sha512-xZ9WvZDWLkZFq7SObpLwu1asMCKCgBRNcDxxGSvK+ZQ7OZyJC5xPlU+rJa4+s/P6autPBVwHpqMGbOERFxWuuA== dependencies: node-int64 "^0.4.0" - opentracing "^0.13.0" + opentracing "^0.14.4" thriftrw "^3.5.0" uuid "^3.2.1" xorshift "^0.2.0" @@ -6938,17 +7170,12 @@ jest@^24.7.1: import-local "^2.0.0" jest-cli "^24.9.0" -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@3.13.1, js-yaml@^3.12.0, js-yaml@^3.12.1, js-yaml@^3.13.0, js-yaml@^3.13.1: +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== @@ -6956,6 +7183,14 @@ js-yaml@3.13.1, js-yaml@^3.12.0, js-yaml@^3.12.1, js-yaml@^3.13.0, js-yaml@^3.13 argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^3.12.0, js-yaml@^3.12.1, js-yaml@^3.13.0, js-yaml@^3.13.1: + 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" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -7018,18 +7253,22 @@ json-schema-ref-parser@^6.1.0: ono "^4.0.11" json-schema-to-typescript@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/json-schema-to-typescript/-/json-schema-to-typescript-8.1.0.tgz#c92174a3f70d5eb68646c1ab16cb6bcba6d1cbee" - integrity sha512-SGGX82OofMggPDUIO6+GYc14g8bew4ETtEif9G8I9SSXYFVHPSfoNE0AaNcfTFwI/xHSepHRse4aMurAtc8+mw== + version "8.2.0" + resolved "https://registry.yarnpkg.com/json-schema-to-typescript/-/json-schema-to-typescript-8.2.0.tgz#a859f836df89db63c5f17a6c9c2f1dea93e8dd9b" + integrity sha512-yvi4v9oLeJzJCktt+Zta6kOgEu8R93gNMZUJYo83aAPxoG0qB+cXIxVg5xa6gmdNkyffjH9Ebw1rvyaJKIor5A== dependencies: + "@types/is-glob" "^4.0.1" "@types/json-schema" "^7.0.3" - "@types/node" ">=4.5.0" + "@types/mkdirp" "^0.5.2" "@types/prettier" "^1.16.1" cli-color "^1.4.0" + glob "^7.1.4" + is-glob "^4.0.1" json-schema-ref-parser "^6.1.0" json-stringify-safe "^5.0.1" lodash "^4.17.11" minimist "^1.2.0" + mkdirp "^0.5.1" mz "^2.7.0" prettier "^1.19.1" stdin "0.0.1" @@ -7059,12 +7298,12 @@ json-to-html@~0.1.2: resolved "https://registry.yarnpkg.com/json-to-html/-/json-to-html-0.1.2.tgz#7a095ae4a34b33534aad0970ca4b7417b2c11ee3" integrity sha1-egla5KNLM1NKrQlwykt0F7LBHuM= -json5@2.x, json5@^2.1.0, json5@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" - integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== +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.0" + minimist "^1.2.5" json5@^1.0.1: version "1.0.1" @@ -7078,10 +7317,10 @@ jsonc-parser@^1.0.0, jsonc-parser@^1.0.3: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-1.0.3.tgz#1d53d7160e401a783dbceabaad82473f80e6ad7e" integrity sha512-hk/69oAeaIzchq/v3lS50PXuzn5O2ynldopMC+SWBql7J2WtdptfB9dy8Y7+Og5rPkTCpn83zTiO8FMcqlXJ/g== -jsonc-parser@^2.0.0-next.1, jsonc-parser@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.0.tgz#f206f87f9d49d644b7502052c04e82dd6392e9ef" - integrity sha512-4fLQxW1j/5fWj6p78vAlAafoCKtuBm6ghv+Ij5W2DrDx0qE+ZdEl2c6Ko1mgJNF5ftX1iEWQQ4Ap7+3GlhjkOA== +jsonc-parser@^2.0.0-next.1, jsonc-parser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.1.tgz#db73cd59d78cce28723199466b2a03d1be1df2bc" + integrity sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w== jsonfile@^4.0.0: version "4.0.0" @@ -7106,9 +7345,9 @@ jsprim@^1.2.2: verror "1.10.0" just-extend@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc" - integrity sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw== + version "4.1.0" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.1.0.tgz#7278a4027d889601640ee0ce0e5a00b992467da4" + integrity sha512-ApcjaOdVTJ7y4r08xI5wIqpvwS48Q0PBG4DJROcEkH1f8MdAiNFyFxz3xoL0LWAVwjrwPYZdVHHxhRHcx/uGLA== karma-chrome-launcher@^2.2.0: version "2.2.0" @@ -7205,7 +7444,7 @@ kind-of@^5.0.0: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== -kind-of@^6.0.0, kind-of@^6.0.2: +kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: 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== @@ -7228,26 +7467,26 @@ left-pad@^1.3.0: integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== lerna@^3.13.2: - version "3.20.2" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.20.2.tgz#abf84e73055fe84ee21b46e64baf37b496c24864" - integrity sha512-bjdL7hPLpU3Y8CBnw/1ys3ynQMUjiK6l9iDWnEGwFtDy48Xh5JboR9ZJwmKGCz9A/sarVVIGwf1tlRNKUG9etA== - dependencies: - "@lerna/add" "3.20.0" - "@lerna/bootstrap" "3.20.0" - "@lerna/changed" "3.20.0" - "@lerna/clean" "3.20.0" + version "3.22.0" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.22.0.tgz#da14d08f183ffe6eec566a4ef3f0e11afa621183" + integrity sha512-xWlHdAStcqK/IjKvjsSMHPZjPkBV1lS60PmsIeObU8rLljTepc4Sg/hncw4HWfQxPIewHAUTqhrxPIsqf9L2Eg== + dependencies: + "@lerna/add" "3.21.0" + "@lerna/bootstrap" "3.21.0" + "@lerna/changed" "3.21.0" + "@lerna/clean" "3.21.0" "@lerna/cli" "3.18.5" - "@lerna/create" "3.18.5" - "@lerna/diff" "3.18.5" - "@lerna/exec" "3.20.0" - "@lerna/import" "3.18.5" - "@lerna/info" "3.20.0" - "@lerna/init" "3.18.5" - "@lerna/link" "3.18.5" - "@lerna/list" "3.20.0" - "@lerna/publish" "3.20.2" - "@lerna/run" "3.20.0" - "@lerna/version" "3.20.2" + "@lerna/create" "3.22.0" + "@lerna/diff" "3.21.0" + "@lerna/exec" "3.21.0" + "@lerna/import" "3.22.0" + "@lerna/info" "3.21.0" + "@lerna/init" "3.21.0" + "@lerna/link" "3.21.0" + "@lerna/list" "3.21.0" + "@lerna/publish" "3.22.0" + "@lerna/run" "3.21.0" + "@lerna/version" "3.22.0" import-local "^2.0.0" npmlog "^4.1.2" @@ -7256,6 +7495,13 @@ leven@^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: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -7306,7 +7552,7 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: +loader-utils@1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== @@ -7315,6 +7561,15 @@ loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2. emojis-list "^2.0.0" json5 "^1.0.1" +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 "^3.0.0" + json5 "^1.0.1" + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -7446,11 +7701,18 @@ log4js@^4.0.0: rfdc "^1.1.4" streamroller "^1.0.6" -lolex@^4.1.0, lolex@^4.2.0: +lolex@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lolex/-/lolex-4.2.0.tgz#ddbd7f6213ca1ea5826901ab1222b65d714b3cd7" integrity sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg== +lolex@^5.0.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" + integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== + dependencies: + "@sinonjs/commons" "^1.7.0" + long@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/long/-/long-2.4.0.tgz#9fa180bb1d9500cdc29c4156766a1995e1f4524f" @@ -7493,15 +7755,6 @@ lru-queue@0.1: dependencies: es5-ext "~0.10.2" -"lsp-ws-connection@file:packages/lsp-ws-connection": - version "0.4.0" - dependencies: - vscode-jsonrpc "^4.1.0-next" - vscode-languageclient "^5.2.1" - vscode-languageserver-protocol "^3.14.1" - vscode-languageserver-types "^3.14.0" - vscode-ws-jsonrpc "0.1.1" - macos-release@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" @@ -7523,9 +7776,9 @@ make-dir@^2.0.0, make-dir@^2.1.0: semver "^5.6.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== make-fetch-happen@^5.0.0: version "5.0.2" @@ -7551,11 +7804,6 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" -mamacro@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" - integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== - map-age-cleaner@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -7578,6 +7826,11 @@ map-obj@^2.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= +map-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" + integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== + map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -7596,9 +7849,9 @@ marked@^0.4.0: integrity sha512-tMsdNBgOsrUophCAFQl0XPe6Zqk/uy9gnue+jIIKhykO51hxyu6uNx7zBPy0+y/WKYVZZMspV9YeXLNdKk+iYw== marked@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.0.tgz#ec5c0c9b93878dc52dd54be8d0e524097bd81a99" - integrity sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ== + version "0.8.2" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.2.tgz#4faad28d26ede351a7a1aaa5fec67915c869e355" + integrity sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw== md5.js@^1.3.4: version "1.3.5" @@ -7630,9 +7883,9 @@ mdast-util-to-nlcst@^3.2.0: vfile-location "^2.0.0" mdast-util-to-string@^1.0.2: - version "1.0.8" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.0.8.tgz#a414cee45ad4bef93a60f32f48266d43e263d88f" - integrity sha512-GBracya0dOzckEEizUBzfrkWRLCHMsppuU97LPUriY9kWnYyGFWTx4VDW+sUcj2LneBz/Tp1aYp3aUCibzjtWg== + version "1.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527" + integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== media-typer@0.3.0: version "0.3.0" @@ -7709,20 +7962,24 @@ meow@^4.0.0: redent "^2.0.0" trim-newlines "^2.0.0" -meow@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" - integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - yargs-parser "^10.0.0" +meow@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-7.0.1.tgz#1ed4a0a50b3844b451369c48362eb0515f04c1dc" + integrity sha512-tBKIQqVrAHqwit0vfuFPY3LlzJYkEOFyKa3bPgxzNl6q/RtN8KQ+ALYEASYuFayzSAsjlhXj/JZ10rH85Q6TUw== + dependencies: + "@types/minimist" "^1.2.0" + arrify "^2.0.1" + camelcase "^6.0.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "^4.0.2" + normalize-package-data "^2.5.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.13.1" + yargs-parser "^18.1.3" merge-stream@^2.0.0: version "2.0.0" @@ -7730,9 +7987,9 @@ merge-stream@^2.0.0: integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.2.3: - version "1.3.0" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" - integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" @@ -7761,22 +8018,22 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.43.0: - version "1.43.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" - integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== +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, mime-types@~2.1.24: - version "2.1.26" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" - integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== + 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.43.0" + mime-db "1.44.0" mime@^2.0.3, mime@^2.3.1, mime@^2.4.4: - version "2.4.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" - integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== + version "2.4.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" + integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== mimic-fn@^1.0.0: version "1.2.0" @@ -7788,6 +8045,11 @@ mimic-fn@^2.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + 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" @@ -7813,16 +8075,25 @@ minimist-options@^3.0.1: arrify "^1.0.1" is-plain-obj "^1.1.0" -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-options@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" -minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: +minimist@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.0: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" @@ -7875,21 +8146,28 @@ mkdirp-promise@^5.0.1: mkdirp "*" mkdirp@*: - version "1.0.3" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz#4cf2e30ad45959dddea53ad97d518b6c8205e1ea" - integrity sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g== + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mkdirp@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" + integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== + dependencies: + minimist "^1.2.5" -mkdirp@0.5.1, mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= +mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4: + 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" mocha@^6.1.4: - version "6.2.2" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.2.tgz#5d8987e28940caf8957a7d7664b910dc5b2fea20" - integrity sha512-FgDS9Re79yU1xz5d+C4rv1G7QagNGHZ+iXF81hO8zY35YZZcLEsJVfFolfsqKFWunATEvNzMK0r/CwWd/szO9A== + version "6.2.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.3.tgz#e648432181d8b99393410212664450a4c1e31912" + integrity sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg== dependencies: ansi-colors "3.2.3" browser-stdout "1.3.1" @@ -7903,7 +8181,7 @@ mocha@^6.1.4: js-yaml "3.13.1" log-symbols "2.2.0" minimatch "3.0.4" - mkdirp "0.5.1" + mkdirp "0.5.4" ms "2.1.1" node-environment-flags "1.0.5" object.assign "4.1.0" @@ -7911,8 +8189,8 @@ mocha@^6.1.4: supports-color "6.0.0" which "1.3.1" wide-align "1.1.3" - yargs "13.3.0" - yargs-parser "13.1.1" + yargs "13.3.2" + yargs-parser "13.1.2" yargs-unparser "1.6.0" modify-values@^1.0.0: @@ -7921,9 +8199,9 @@ modify-values@^1.0.0: integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== moment@^2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" - integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== + version "2.26.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.26.0.tgz#5e1f82c6bafca6e83e808b30c8705eed0dcbd39a" + integrity sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw== move-concurrently@^1.0.1: version "1.0.1" @@ -7938,9 +8216,9 @@ move-concurrently@^1.0.1: run-queue "^1.0.3" mri@^1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.4.tgz#7cb1dd1b9b40905f1fac053abe25b6720f44744a" - integrity sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w== + version "1.1.5" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.5.tgz#ce21dba2c69f74a9b7cf8a1ec62307e089e223e0" + integrity sha512-d2RKzMD4JNyHMbnbWnznPaa8vbdlq/4pNZ3IgdaGrVbBhebBsGUUE/6qorTMYNS6TwuH3ilfOlD2bf4Igh8CKg== ms@2.0.0: version "2.0.0" @@ -7987,9 +8265,9 @@ mz@^2.5.0, mz@^2.6.0, mz@^2.7.0: thenify-all "^1.0.0" 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" @@ -8039,14 +8317,14 @@ nice-try@^1.0.4: integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== nise@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.2.tgz#b6d29af10e48b321b307e10e065199338eeb2652" - integrity sha512-/6RhOUlicRCbE9s+94qCUsyE+pKlVJ5AhIv+jEE7ESKwnbXqulKZ1FYU+XAtHHWE9TinYvAxDUJAb912PwPoWA== + version "1.5.3" + resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.3.tgz#9d2cfe37d44f57317766c6e9408a359c5d3ac1f7" + integrity sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ== dependencies: "@sinonjs/formatio" "^3.2.1" "@sinonjs/text-encoding" "^0.7.1" just-extend "^4.0.2" - lolex "^4.1.0" + lolex "^5.0.1" path-to-regexp "^1.7.0" nlcst-is-literal@^1.0.0: @@ -8057,9 +8335,9 @@ nlcst-is-literal@^1.0.0: nlcst-to-string "^2.0.0" nlcst-to-string@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/nlcst-to-string/-/nlcst-to-string-2.0.3.tgz#b7913bb1305263b0561a86de68e179f17f7febe3" - integrity sha512-OY2QhGdf6jpYfHqS4vJwqF7aIBZkaMjMUkcHcskMPitvXLuYNGdQvgVWI/5yKwkmIdmhft3ounSJv+Re2yydng== + version "2.0.4" + resolved "https://registry.yarnpkg.com/nlcst-to-string/-/nlcst-to-string-2.0.4.tgz#9315dfab80882bbfd86ddf1b706f53622dc400cc" + integrity sha512-3x3jwTd6UPG7vi5k4GEzvxJ5rDA7hVUIRNHPblKuMVP9Z3xmlsd9cgLcpAMkc5uPOBna82EeshROFhsPkbnTZg== node-environment-flags@1.0.5: version "1.0.5" @@ -8070,9 +8348,9 @@ node-environment-flags@1.0.5: semver "^5.7.0" node-fetch-npm@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" - integrity sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" + integrity sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg== dependencies: encoding "^0.1.11" json-parse-better-errors "^1.0.0" @@ -8084,9 +8362,9 @@ node-fetch@^2.3.0, node-fetch@^2.5.0, node-fetch@^2.6.0: integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== node-gyp@^5.0.2: - version "5.1.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.0.tgz#8e31260a7af4a2e2f994b0673d4e0b3866156332" - integrity sha512-OUTryc5bt/P8zVgNUmC6xdXiDJxLMAW8cF5tLQOT9E5sOQj+UeQxnnPy74K3CLCa/SOjjBlbuzDLR8ANwA+wmw== + version "5.1.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e" + integrity sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw== dependencies: env-paths "^2.2.0" glob "^7.1.4" @@ -8150,17 +8428,15 @@ node-notifier@^5.4.2: shellwords "^0.1.1" which "^1.3.0" -node-releases@^1.1.42: - version "1.1.42" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.42.tgz#a999f6a62f8746981f6da90627a8d2fc090bbad7" - integrity sha512-OQ/ESmUqGawI2PRX+XIRao44qWYBBfN54ImQYdWVTQqUckuejOg76ysSqDBK8NG3zwySRVnX36JwDQ6x+9GxzA== - dependencies: - semver "^6.3.0" +node-releases@^1.1.53: + version "1.1.58" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz#8ee20eef30fa60e52755fcc0942def5a734fe935" + integrity sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg== nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + version "4.0.3" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== dependencies: abbrev "1" osenv "^0.1.4" @@ -8205,9 +8481,9 @@ npm-bundled@^1.0.1: npm-normalize-package-bin "^1.0.1" npm-lifecycle@^3.1.2: - version "3.1.4" - resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.4.tgz#de6975c7d8df65f5150db110b57cce498b0b604c" - integrity sha512-tgs1PaucZwkxECGKhC/stbEgFyc3TGh2TJcg2CDr6jbvQRdteHNhmMeljRzpe4wgFAXQADoy1cSqqi7mtiAa5A== + version "3.1.5" + resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz#9882d3642b8c82c815782a12e6a1bfeed0026309" + integrity sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g== dependencies: byline "^5.0.0" graceful-fs "^4.1.15" @@ -8286,9 +8562,9 @@ 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" @@ -8325,9 +8601,12 @@ object-inspect@^1.7.0: integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== object-is@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" - integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -8351,7 +8630,7 @@ object.assign@4.1.0, object.assign@^4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" -object.getownpropertydescriptors@^2.0.3: +object.getownpropertydescriptors@^2.0.3, 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== @@ -8400,16 +8679,11 @@ ono@^4.0.11: format-util "^1.0.3" opencollective-postinstall@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" - integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== - -opentracing@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.13.0.tgz#6a341442f09d7d866bc11ed03de1e3828e3d6aab" - integrity sha1-ajQUQvCdfYZrwR7QPeHjgo49aqs= + version "2.0.3" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" + integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== -opentracing@^0.14.0: +opentracing@^0.14.0, opentracing@^0.14.4: version "0.14.4" resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.4.tgz#a113408ea740da3a90fde5b3b0011a375c2e4268" integrity sha512-nNnZDkUNExBwEpb7LZaeMeQgvrlO8l4bgY/LvGNZCR0xG/dGWqHqjKrAmR5GUoYo0FIz38kxasvA1aevxWs2CA== @@ -8514,9 +8788,9 @@ p-limit@^1.1.0: p-try "^1.0.0" p-limit@^2.0.0, p-limit@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" - integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== + 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" @@ -8608,7 +8882,7 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0: +parse-asn1@^5.0.0, parse-asn1@^5.1.5: version "5.1.5" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== @@ -8621,9 +8895,9 @@ parse-asn1@^5.0.0: safe-buffer "^5.1.1" parse-english@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/parse-english/-/parse-english-4.1.2.tgz#6710d426caa76db327ef7066991cd1b9f602db9f" - integrity sha512-+PBf+1ifxqJlOpisODiKX4A8wBEgWm4goMvDB5O9zx/cQI58vzHTZeWFbAgCF9fUXRl8/YdINv1cfmfIRR1acg== + version "4.1.3" + resolved "https://registry.yarnpkg.com/parse-english/-/parse-english-4.1.3.tgz#692ec002e515b4b9b3e9e64ee1224b082667a20b" + integrity sha512-IQl1v/ik9gw437T8083coohMihae0rozpc7JYC/9h6hi9xKBSxFwh5HWRpzVC2ZhEs2nUlze2aAktpNBJXdJKA== dependencies: nlcst-to-string "^2.0.0" parse-latin "^4.0.0" @@ -8673,9 +8947,9 @@ parse-json@^5.0.0: lines-and-columns "^1.1.6" parse-latin@^4.0.0, parse-latin@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/parse-latin/-/parse-latin-4.2.0.tgz#b0b107a26ecbe8670f9ed0d20eb491c7780f99d1" - integrity sha512-b8PvsA1Ohh7hIQwDDy6kSjx3EbcuR3oKYm5lC1/l/zIB6mVVV5ESEoS1+Qr5+QgEGmp+aEZzc+D145FIPJUszw== + version "4.2.1" + resolved "https://registry.yarnpkg.com/parse-latin/-/parse-latin-4.2.1.tgz#b78c57c026cdf8e4e9924b296a2d0aa69877fab8" + integrity sha512-7T9g6mIsFFpLlo0Zzb2jLWdCt+H9Qtf/hRmMYFi/Mq6Ovi+YKo+AyDFX3OhFfu0vXX5Nid9FKJGKSSzNcTkWiA== dependencies: nlcst-to-string "^2.0.0" unist-util-modify-children "^1.0.0" @@ -8723,7 +8997,7 @@ parseuri@0.0.5: dependencies: better-assert "~1.0.0" -parseurl@~1.3.2: +parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== @@ -8822,9 +9096,9 @@ pathval@^1.1.0: integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= 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" @@ -8842,10 +9116,10 @@ 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: - version "2.2.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a" - integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA== +picomatch@^2.0.4, 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.0.0, pify@^2.3.0: version "2.3.0" @@ -8895,6 +9169,13 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + please-upgrade-node@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" @@ -8925,9 +9206,9 @@ posix-character-classes@^0.1.0: integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= postcss@^7.0.5: - version "7.0.27" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.27.tgz#cc67cdc6b0daa375105b7c424a85567345fc54d9" - integrity sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ== + 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" @@ -8963,6 +9244,11 @@ prettier@^1.15.2, prettier@^1.19.1: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== +prettier@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" + integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg== + pretty-format@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" @@ -8973,7 +9259,7 @@ pretty-format@^24.9.0: ansi-styles "^3.2.0" react-is "^16.8.4" -private@^0.1.6: +private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== @@ -9012,12 +9298,12 @@ promise-retry@^1.1.1: retry "^0.10.0" prompts@^2.0.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.0.tgz#a444e968fa4cc7e86689a74050685ac8006c4cc4" - integrity sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg== + version "2.3.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" + integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== dependencies: kleur "^3.0.3" - sisteransi "^1.0.3" + sisteransi "^1.0.4" promzard@^0.3.0: version "0.3.0" @@ -9053,9 +9339,9 @@ protoduck@^5.0.1: genfun "^5.0.0" proxy-from-env@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" - integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== prr@~1.0.1: version "1.0.1" @@ -9068,9 +9354,9 @@ pseudomap@^1.0.2: integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= psl@^1.1.28: - version "1.7.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c" - integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ== + 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" @@ -9178,12 +9464,17 @@ quick-lru@^1.0.0: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + quotation@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/quotation/-/quotation-1.1.3.tgz#2a4d11f70105ad398b577883f310469367f53351" integrity sha512-45gUgmX/RtQOQV1kwM06boP49OYXcKCPrYwdmAvs5YqkpiobhNKKwo524JM6Ma0ko3oN9tXNcWs9+ABq3Ry7YA== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== @@ -9224,9 +9515,9 @@ react-dom@~16.9.0: scheduler "^0.15.0" react-is@^16.8.1, react-is@^16.8.4: - version "16.13.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz#0f37c3613c34fe6b37cd7f763a0d6293ab15c527" - integrity sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA== + 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-lifecycles-compat@^3.0.4: version "3.0.4" @@ -9257,9 +9548,9 @@ react-transition-group@^2.9.0: react-lifecycles-compat "^3.0.4" react@*: - version "16.13.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.0.tgz#d046eabcdf64e457bbeed1e792e235e1b9934cf7" - integrity sha512-TSavZz2iSLkq5/oiE7gnFzmURKZMltmi193rm5HEoUDAXpzT9Kzw6oNZnGoai/4+fUnm7FqS5dwgUL34TujcWQ== + 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" @@ -9326,6 +9617,15 @@ read-pkg-up@^4.0.0: find-up "^3.0.0" read-pkg "^3.0.0" +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -9374,7 +9674,7 @@ read@1, read@~1.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.1.1: +"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.1.1, 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== @@ -9402,12 +9702,12 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839" - integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ== +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.0.4" + picomatch "^2.2.1" realpath-native@^1.1.0: version "1.1.0" @@ -9439,10 +9739,18 @@ redent@^2.0.0: indent-string "^3.0.0" strip-indent "^2.0.0" -regenerate-unicode-properties@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.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" @@ -9451,17 +9759,18 @@ regenerate@^1.4.0: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== -regenerator-runtime@^0.13.2: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" - integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== +regenerator-runtime@^0.13.4: + version "0.13.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" + integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== -regenerator-transform@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== +regenerator-transform@^0.14.2: + version "0.14.4" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" + integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== dependencies: - private "^0.1.6" + "@babel/runtime" "^7.8.4" + private "^0.1.8" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -9484,34 +9793,34 @@ regexpp@^2.0.1: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== -regexpu-core@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" - integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== +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.1.0" - regjsgen "^0.5.0" - regjsparser "^0.6.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.1.0" + unicode-match-property-value-ecmascript "^1.2.0" -regjsgen@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== +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.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.1.tgz#5b6b28c418f312ef42898dc6865ae2d4b9f0f7a2" - integrity sha512-7LutE94sz/NKSYegK+/4E77+8DipxF+Qn2Tmu362AcmsF2NYq/wx3+ObvU90TKEhjf7hQoFXo23ajjrXP7eUgg== +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" remark-lint-blockquote-indentation@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-1.0.3.tgz#9c35235dd0e904ad6c085e9f66d94b3f13968d1f" - integrity sha512-qK4C1l2VmeOVWEAkDYP0CaDtSFoaEBEo5l4oyz1kTkY7YB0Jh7llW2KjuhJz5IzMLmloKJzIyGwlu/odcwaHpg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-1.0.4.tgz#246b0bcf6ce83ed3eb3e306bba65d08e8cdeb5d2" + integrity sha512-ExcDP7lufshEBNkVddSHa+Bz/97PtFstIniQ8ZF2TahHPmpx92z3mkI/nXL2Qt5d3B09eTVvh4Pvhgp6x2470g== dependencies: mdast-util-to-string "^1.0.2" plur "^3.0.0" @@ -9521,9 +9830,9 @@ remark-lint-blockquote-indentation@^1.0.0: unist-util-visit "^1.1.1" remark-lint-code-block-style@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-code-block-style/-/remark-lint-code-block-style-1.0.3.tgz#236d8a5558041decf2b275e9d9eb5868950375ec" - integrity sha512-DL+rudnd9ILP5YXm74tLpMzfWZLqziX7NwIwUhqRefaOyWwxgPPy7hbT59FJqcFc6E/zvDz+Oq4nR1BSV5kEdw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-code-block-style/-/remark-lint-code-block-style-1.0.4.tgz#c7d2fc493e4212e6c18a46b3396dae052bd223ad" + integrity sha512-Wq5F94nkaWTx8W/9C/ydG+DhVWLirBrWb0xnoMQ0cHnizAd3BWw8g0x5L7yglMYSUSVLWY0jfMHgOe9UW3JfTw== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9531,9 +9840,9 @@ remark-lint-code-block-style@^1.0.0: unist-util-visit "^1.1.1" remark-lint-definition-case@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-definition-case/-/remark-lint-definition-case-1.0.4.tgz#54d2a112794f1a070a5e8aa7c8090e8ae9aa3e11" - integrity sha512-ebl8vYOab9iy1Mr29Wo/9CmqcYGRjCfBievIZts08efrxIElWz+jB8/n7C17fh8k0djiiS/Of6W+bfRD+kMXLA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-definition-case/-/remark-lint-definition-case-1.0.5.tgz#14746987b90bb91944bf2f7f9c2e0efdac48d9e9" + integrity sha512-iirq74fKhJZsFw7x4FJuLVRkXclntutG1YKajfLaE3Gm14YlJWBEoabNTk+ENR4QXoB9rTdEqn3Cc3ImO8qciQ== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9541,9 +9850,9 @@ remark-lint-definition-case@^1.0.0: unist-util-visit "^1.4.0" remark-lint-definition-spacing@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-definition-spacing/-/remark-lint-definition-spacing-1.0.4.tgz#c322ff110c168449d8217773a23352c4174ffeba" - integrity sha512-UderghITmru72OXB5ErCFhVsY7up2wK/m1bUD3E2dm/TFn73/7WpykENt5UirCDT/aeyoHYl8QXUVL20rAc3XQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-definition-spacing/-/remark-lint-definition-spacing-1.0.5.tgz#d334b418fa66954c13450038056fd383963a6436" + integrity sha512-ss8OQmK4c/1amEAJpDjkFiByLyXpsYFNzmk6rEZQkxZZd+DVHI0oF+CzSeMVHu48rF2qHOkKhVghqrCM0vleAA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9551,9 +9860,9 @@ remark-lint-definition-spacing@^1.0.0: unist-util-visit "^1.4.0" remark-lint-emphasis-marker@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-1.0.3.tgz#6dc4e7df13e5092c1222110f826f68b4b3920550" - integrity sha512-ea2tEVyhZvYxwj6AHsW2qzgEDLljcnzq5taZ3FJFL0KMZYZHfWaIU90H43jrW4seGEtmaP1bmoqJaTavJ2x5Jw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-1.0.4.tgz#86b5824a6d568726a8e5cb675ede92825e3297b7" + integrity sha512-TdYISSw7Ib6EJDApDj9zcZNDCJEaEoQIrYS3+QH2TQxoDx96B0t1bbErRM5L/hx1UWPBpeFLKpgIWL163eMmYA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9561,9 +9870,9 @@ remark-lint-emphasis-marker@^1.0.0: unist-util-visit "^1.1.1" remark-lint-fenced-code-flag@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-1.0.3.tgz#349caf7c6dd153d0b6ffb57cbcc67c8277569d2a" - integrity sha512-X8Oi6dhfqV9NI3cVg29myvT/NATDHVgRGCpnNz76w7VXwzhBvQtJr1MxZzuPxfWLox+ARCXF2rY9n9hbYFHYTg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-1.0.4.tgz#9b0b2f1b0e3a919697d6b24230cd250353b1d5c8" + integrity sha512-bkQvlEYco6ZzdzvGPrY7DBsqSq/2mZEmdhpn0KdMEZ9kcKJP4unQdVQys04SKnf9QISqQ446VnQj5Q4E3HMSkQ== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9571,9 +9880,9 @@ remark-lint-fenced-code-flag@^1.0.0: unist-util-visit "^1.1.1" remark-lint-fenced-code-marker@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-1.0.3.tgz#9df1d16d535856f41b3c17a7d309385475cbec04" - integrity sha512-JKnojSQ8JkwpIpbNm6wtKEfx8iiv8QIwNHFM06iTCHExMhXa4pJ3wb5M5f0wsWNHtoND3lrw6AcVPoZxEPnflg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-1.0.4.tgz#80a6cc501c21435dad4a4ec635e6b3901b04fd2e" + integrity sha512-aJF4ISIEvK3NX+C2rN93QoS/32SSiytQKRSeGa+HwsAn3sTwqmy2IoAwbFeZIZA2vqKcVB4h1b9yKamSlfX30Q== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9581,16 +9890,16 @@ remark-lint-fenced-code-marker@^1.0.0: unist-util-visit "^1.1.1" remark-lint-file-extension@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-file-extension/-/remark-lint-file-extension-1.0.3.tgz#a7fc78fbf041e513c618b2cca0f2160ee37daa13" - integrity sha512-P5gzsxKmuAVPN7Kq1W0f8Ss0cFKfu+OlezYJWXf+5qOa+9Y5GqHEUOobPnsmNFZrVMiM7JoqJN2C9ZjrUx3N6Q== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-file-extension/-/remark-lint-file-extension-1.0.4.tgz#2b8c88a371a79729505108dc22e7ad3df35e4817" + integrity sha512-Zfp1mXNwpg7STjTWynZjL+/JtvIOCrmOAZzL3uK+tYpT0ZDPdQ1EQEl5D92+Eiu5OcYlenzG42jiLcyJjv+Q2g== dependencies: unified-lint-rule "^1.0.0" remark-lint-final-definition@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-final-definition/-/remark-lint-final-definition-1.0.3.tgz#4fd7bbf5a028f6e32645460965099689485508ae" - integrity sha512-QhbBYy99enfQDeUTElioCHrhgg+SgjMNRlru7/JlOguOufP6wn7AXgn2EVTrLZRoByY0VsNS2jCayXxUTzQ8KA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-final-definition/-/remark-lint-final-definition-1.0.4.tgz#4ebf6f45a54b457d426e3247ef6727e3ce7aff60" + integrity sha512-y9aDZPhqWcI7AtrJtL69HE6MoWMqDqLQUyWMadzAYUYb9/m4ciLdygJ4cWVpEN3n4mkBepHIsWzASaKHHBDJOQ== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9598,9 +9907,9 @@ remark-lint-final-definition@^1.0.0: unist-util-visit "^1.1.1" remark-lint-hard-break-spaces@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-1.0.4.tgz#200e1dae849a6bc2f8fdb3b843faf23c70942530" - integrity sha512-YM82UpgliZCZhGNmFxEe7ArfhqR5CplFf2bc0k0+8w3rKWKx7EJcGMar2NK410tIi40gGeWtH/pIEypPJFCCiA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-1.0.5.tgz#875c0b25d69eaadf71e6c5f2a5ebc8cd705e26ec" + integrity sha512-Rss7ujNtxipO/hasWYc0QdiO8D5VyliSwj3zAZ8GeDn0ix2KH+pY4/AJC7i9IGcVVbUGvvXLpJB3Pp1VeY7oKw== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9608,18 +9917,18 @@ remark-lint-hard-break-spaces@^1.0.0: unist-util-visit "^1.1.1" remark-lint-heading-increment@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-heading-increment/-/remark-lint-heading-increment-1.0.3.tgz#44ca296b50e182c2c4a59604b8026911be3977de" - integrity sha512-/KL4/7D2pNxP07KKgktjcIUS+ga8pYI2k9Q/V91pMfyfSC+RYuCGOLFVJSKV0Affr/4Eqnfhw+gJ9X2HAanNuw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-heading-increment/-/remark-lint-heading-increment-1.0.4.tgz#a2bfb6449dda639ed65d361305e5f19a0243ee01" + integrity sha512-3PJj32G7W1OUyRVSZiZbSOxyFAsw/mNssIosS9G8+6Lq2yeTSMDoCJy0+LC+s00nORFcbzeMedMK5U/eLbDe4w== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-visit "^1.1.1" remark-lint-heading-style@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-heading-style/-/remark-lint-heading-style-1.0.3.tgz#de7377996cb9c7e501ec1ba7b7767709a68b824b" - integrity sha512-ZUhMav0HHUxo5gzLqxQsOf2ZpP/I3m6EEK8q25/kqpCYnwm1uRJ5CQ40PDQx46pmKtVibIMzDmraYovxNG3ovw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-heading-style/-/remark-lint-heading-style-1.0.4.tgz#eee857c25da86c0e68473d3a61794886a7d06c37" + integrity sha512-ASssbw0vj9urTMxDJGpOn4K7d9MgPQPJGaCD+7v7je42krofvqC4CxpYvO/fOAkRZcttE91VfFHxkaPjiBtQLw== dependencies: mdast-util-heading-style "^1.0.2" unified-lint-rule "^1.0.0" @@ -9627,9 +9936,9 @@ remark-lint-heading-style@^1.0.0: unist-util-visit "^1.1.1" remark-lint-link-title-style@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-link-title-style/-/remark-lint-link-title-style-1.0.4.tgz#eaca24b6eb1ee62b66a237ea54e532ed2aaaafec" - integrity sha512-61/uH3zDTiozLJqgxp6rHGnVKTChC3UjL3Q0KQDBpprEOL4qLYjTn4fFKscVz776d0uUX6jczrW+GT4AFVOUgg== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-link-title-style/-/remark-lint-link-title-style-1.0.5.tgz#55e098d1d1640ac2275efae8f3147a9b9b701744" + integrity sha512-Nu0cKj220q/PmUzELhYRUR2uxXabWuFJq9sApkgsc59uh+NKDtCEdpxkx7Zwvn6kUEwpuQVimeRfdesiKxX52g== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9638,9 +9947,9 @@ remark-lint-link-title-style@^1.0.0: vfile-location "^2.0.1" remark-lint-list-item-content-indent@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-1.0.3.tgz#e62012ef361fedaca42a764b8389023df4212eca" - integrity sha512-ZSIGJG2/6jd1xj/xEoDlkcJBf2Ksw8U6vIGJO0IFIA3BLCbJm2EMWJxto2cfzRvXoACmAaxTJMqW8qatPExa4w== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-1.0.4.tgz#966640afa93d3e42377851bb47ac4c4d551b83f4" + integrity sha512-zfEeAayZjEKkPr07fnhkGLENxOhnm0WZJTj6UBIXhtGu7rX23WNKSZaiou8iUoHxcO6ySCvIUJAEmq/XN1FxkQ== dependencies: plur "^3.0.0" unified-lint-rule "^1.0.0" @@ -9649,9 +9958,9 @@ remark-lint-list-item-content-indent@^1.0.0: unist-util-visit "^1.1.1" remark-lint-list-item-indent@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-list-item-indent/-/remark-lint-list-item-indent-1.0.4.tgz#7a1ef6283f9a928f4940e02ec37099935f2783e6" - integrity sha512-Sv0gVH6qP1/nFpbJuyyguB9sAD2o42StD2WbEZeUcEexXwRO4u/YaX0Pm5pMtCiEHyN+qyL6ShKBQMtgol9BeA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-indent/-/remark-lint-list-item-indent-1.0.5.tgz#873c51c24ec673af0816347ecf941361a04b1ff4" + integrity sha512-DjRgxjqaVMrnlQFJypizTPtLa9gSM5ad0LVIFDSstV2UVXSgpBi2+bSsFJEXb4Fkjo/d2JAgt27UhzhcoF2lnw== dependencies: plur "^3.0.0" unified-lint-rule "^1.0.0" @@ -9660,9 +9969,9 @@ remark-lint-list-item-indent@^1.0.0: unist-util-visit "^1.1.1" remark-lint-list-item-spacing@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-1.1.3.tgz#5989bd2450fb4bbd5e8f8007887dc5ca56ad2e5f" - integrity sha512-QzDY0Qfk6m+Az0kmxP57OfswIH1WRdd6SIpQLaUEgsTlsbrJOiO0sJYkkOlFPsyJIfp7SV/FCbr+aYCbHF+kRQ== + version "1.1.4" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-1.1.4.tgz#ea0df16f8378ef6414a2473755ade9544adc0888" + integrity sha512-zZELzTPYCoOCnOWh/nYTfQWnGXWg4/I5KpwrjBqe7WYwoMtvLVU9mqjRj2jHEbmirEXas54NZnYnkCoIBMS4bw== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9670,9 +9979,9 @@ remark-lint-list-item-spacing@^1.0.0: unist-util-visit "^1.1.1" remark-lint-maximum-heading-length@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-1.0.3.tgz#e235190e9991567254f9ce1104e15dad8e332b13" - integrity sha512-ybcDpR5VHBjtjzdry7AdSjLFwslPo6rdhIJK2+WfHgfeEjIYnlz1uMvp1Z98QMmjpB5JSN83Kzg5fH8/B7poUw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-1.0.4.tgz#49f6d2df870dcf993c053a67fb82344d5aac0af8" + integrity sha512-dhDBnUFXMuHoW8LSV/VICJAJO+wWumnvuu3ND7MJquCYrsjX2vcRmJXL5cusJSY4yqPosKlOowIkzdV5B6/SDQ== dependencies: mdast-util-to-string "^1.0.2" unified-lint-rule "^1.0.0" @@ -9680,9 +9989,9 @@ remark-lint-maximum-heading-length@^1.0.0: unist-util-visit "^1.1.1" remark-lint-maximum-line-length@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-1.2.1.tgz#1030991d9af3c935731168a0a12ecb1db2d2b2b6" - integrity sha512-CSxX1qc+rAqixk8eBrI+yBsUmD8YGfOezFeJWjJRuUaoOvs67oqCIU+I2HbwcUYY8/KnDxF1MCp+uCM0RkjKKw== + version "1.2.2" + resolved "https://registry.yarnpkg.com/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-1.2.2.tgz#9bb53292a0d3263596bd84e23007ead081558bd1" + integrity sha512-ItAdjK+tUhqggqFvtAJ8iJ0MbBgShLl0HDgpG3In0QSYp/dmofO77DjvRjCJQo1pQYS8/LwlBii9cqg/3MwFfA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9690,9 +9999,9 @@ remark-lint-maximum-line-length@^1.0.0: unist-util-visit "^1.4.0" remark-lint-no-auto-link-without-protocol@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-1.0.3.tgz#f97aed92af24e6c07023a7a7dc2c147f7eb7927f" - integrity sha512-k+hg2mXnO4Q9WV+UShPLen5oThvFxcRVWkx2hviVd/nu3eiszBKH3o38csBwjeJoMG3l2ZhdUW8dlOBhq8670Q== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-1.0.4.tgz#c7417ee8f5ab7eb45aa1f7c6a345ff6db1acf843" + integrity sha512-dhDHQLeaI79p7SRoKfxJ9c8J5otQsGua7ILeNbs2Onzn46/tp9ir6zjq3Lfh4VJJr4OVign2e8u+MzXsS7Uu/A== dependencies: mdast-util-to-string "^1.0.2" unified-lint-rule "^1.0.0" @@ -9701,9 +10010,9 @@ remark-lint-no-auto-link-without-protocol@^1.0.0: unist-util-visit "^1.1.1" remark-lint-no-blockquote-without-marker@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-2.0.3.tgz#7eb431fcb742412e3bc66faa7f58531245ad952f" - integrity sha512-faDzKrA6aKidsRXG6gcIlCO8TexLxIxe+n9B3mdnl8mhZGgE0FfWTkIWVMj0IYps/xVsVMf45KxhXgc1wU9kwg== + version "2.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-2.0.4.tgz#96fe200cd738ee2857c82a549622ed999243a990" + integrity sha512-a5LFGj7It2z7aBRGaAcztk4D2pax2b7dK9iOarIWv/JBus/PSjZJxzZCma2aAAOQhv3wbNTwqQwuQC0UJHMbPg== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9712,9 +10021,9 @@ remark-lint-no-blockquote-without-marker@^2.0.0: vfile-location "^2.0.1" remark-lint-no-consecutive-blank-lines@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-1.0.3.tgz#4fa3b2cf2939c978a3fe7978f726f6142e7dd567" - integrity sha512-2Ef7fPxrfLditA7sTo2Qfqd+xwh/luWl8GzILE5vcWIxLDqKk3dTLJkB5nP+7Cr4kqWJAwXnRkEDd77ehrRV3A== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-1.0.4.tgz#8819e358e9e609360ced6d61e0076ca1a6a2c971" + integrity sha512-33rYrp+3OQ2UjG2/xhctruCvkP2iKLuHJhoUOAUV3BGwqJjAB+xNOl+0DdvDo0fxh5dyZuNesBuos3xr2yVR+w== dependencies: plur "^3.0.0" unified-lint-rule "^1.0.0" @@ -9723,9 +10032,9 @@ remark-lint-no-consecutive-blank-lines@^1.0.0: unist-util-visit "^1.1.1" remark-lint-no-duplicate-headings@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-1.0.4.tgz#52ac1479b6de83d5607b8d07e8ef3401d5078424" - integrity sha512-QuPw+VG502Ctpd/jBjnBYuRXTg0ToP3D+dd3TYds4TRcdgaEFYTZfQ5zjK6XrxLMg0Hn9/WpXr4UqTlV4YZupA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-1.0.5.tgz#c65f65f254df4a6d5ccfff6f370141bbe142aa21" + integrity sha512-4GKPxhKpN797V/6Jg1K4Zwqq+PhsjC633+wQMrZcTvOJfY+Rq1i7sNJ9lJVZnsDAlZJI56VqZCKnPJmS2br87g== dependencies: mdast-util-to-string "^1.0.2" unified-lint-rule "^1.0.0" @@ -9735,53 +10044,53 @@ remark-lint-no-duplicate-headings@^1.0.0: unist-util-visit "^1.1.1" remark-lint-no-emphasis-as-heading@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-1.0.3.tgz#9d837d4c5635a784ef0e983cfb402da15672050d" - integrity sha512-HEmyeyKciUz95+CgpAH98RPR73jq5u5CZb2FOMSqgNl9B6FZXqVpq9F3txPqUw3nAqFYOAEnfiaoRgcqtioh0Q== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-1.0.4.tgz#144aef1df77bfcdc7112bd0616a571a484e82538" + integrity sha512-gnsInLxTkc59eVD3/qelFagD/NcrMPKXT1sy7i4e8D2jqQyrIHHl0p3TfiyNNt8qIjKMKhlIii4k4kVk/3Mczg== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-visit "^1.1.1" remark-lint-no-file-name-articles@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-1.0.3.tgz#c712d06a24e24b0c4c3666cf3084a0052a2c2c17" - integrity sha512-YZDJDKUWZEmhrO6tHB0u0K0K2qJKxyg/kryr14OaRMvWLS62RgMn97sXPZ38XOSN7mOcCnl0k7/bClghJXx0sg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-1.0.4.tgz#cae4aec6a0c1ae6a9bb1d3e35b670a6f3550ba04" + integrity sha512-Ieqg/2WjYs5M+IoZsFrQUG0niN8zRC6IAYWOVaHi3UK/1P0IdmXKZE6pCFSJrhletawAaPw9Xtl42/45tcccCA== dependencies: unified-lint-rule "^1.0.0" remark-lint-no-file-name-consecutive-dashes@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-1.0.3.tgz#6a96ddf60e18dcdb004533733f3ccbfd8ab076ae" - integrity sha512-7f4vyXn/ca5lAguWWC3eu5hi8oZ7etX7aQlnTSgQZeslnJCbVJm6V6prFJKAzrqbBzMicUXr5pZLBDoXyTvHHw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-1.0.4.tgz#b11f1608a13f5dbff656ce74362b7c54ef78a87d" + integrity sha512-Fyc8mL+Fyt2b/BVkCc2Y+GjJ4SwafDKQEUaizeuZQDBTiqRK3S4L9YpvLHTAPgTNntZkXLUsHzFDlGyKzW2gBQ== dependencies: unified-lint-rule "^1.0.0" remark-lint-no-file-name-irregular-characters@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-1.0.3.tgz#6dcd8b51e00e10094585918cb8e7fc999df776c3" - integrity sha512-b4xIy1Yi8qZpM2vnMN+6gEujagPGxUBAs1judv6xJQngkl5d5zT8VQZsYsTGHku4NWHjjh3b7vK5mr0/yp4JSg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-1.0.4.tgz#25aef92aee3cde9e3e9cf72f6a666b4f56a143d5" + integrity sha512-TbqV5rl+5iX8A5th5AS6wlXQSN/SnUqevqOHb0D65AMIIYlDfMGinKpEZ3xy52pJYDiV+1Z8J7WjUg13lBsNpw== dependencies: unified-lint-rule "^1.0.0" remark-lint-no-file-name-mixed-case@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-1.0.3.tgz#0ebe5eedd0191507d27ad6ac5eed1778cb33c2de" - integrity sha512-d7rJ4c8CzDbEbGafw2lllOY8k7pvnsO77t8cV4PHFylwQ3hmCdTHLuDvK87G3DaWCeKclp0PMyamfOgJWKMkPA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-1.0.4.tgz#c50c0834a49254ae05bee61e6840352fd96d4f04" + integrity sha512-kaUrUAZx7rw+PVKgENZ7/2//MIFoe3LxEkdIUoszPTvlEHdEtqCH3JAyxl9alwyhfs6KfCpCE3jLd84MfWfudg== dependencies: unified-lint-rule "^1.0.0" remark-lint-no-file-name-outer-dashes@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-1.0.4.tgz#c6e22a5cc64df4e12fc31712a927e8039854a666" - integrity sha512-+bZvvme2Bm3Vp5L2iKuvGHYVmHKrTkkRt8JqJPGepuhvBvT4Q7+CgfKyMtC/hIjyl+IcuJQ2H0qPRzdicjy1wQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-1.0.5.tgz#7f8306fe02ffcc29225becd928801ff25d92680f" + integrity sha512-5CMrCqyJj4ydM2QMhMAc60o08fJDxBgmO62r+RqVs+aIdIK6TtsF+T8oX+aTEtc3y/euKJ681tqEsSeJZh/h0A== dependencies: unified-lint-rule "^1.0.0" remark-lint-no-heading-punctuation@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-1.0.3.tgz#7357b0b6e668bb6b32338fe280cde9fe4388b547" - integrity sha512-JQD05RjLS99ePBQ4Bed1uWsQTlIMBTcGgIgF6jFXSCEqhwnrIUDwk6S3MG1RZsKd3TLw2xuT/i+POpfBc2+1kQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-1.0.4.tgz#f13adfd3a8b87646fb2e337120e22483a2a8b03e" + integrity sha512-++/HXg/qtVssJjzq2ZgEreoxaazw9KkYrAbTDImKV7Fypo+7bZFELUvFicq0/i9qwAwt1tvhkKtLYt1W/sr1JQ== dependencies: mdast-util-to-string "^1.0.2" unified-lint-rule "^1.0.0" @@ -9789,9 +10098,9 @@ remark-lint-no-heading-punctuation@^1.0.0: unist-util-visit "^1.1.1" remark-lint-no-inline-padding@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-1.0.4.tgz#eedb4ca2691d30f3f05b4e5e33967bd64a34daa4" - integrity sha512-u5rgbDkcfVv645YxxOwoGBBJbsHEwWm/XqnO8EhfKTxkfKOF4ZItG7Ajhj89EDaeXMkvCcB/avBl4bj50eJH3g== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-1.0.5.tgz#01ec68b2be9154601f68805ae5f5f3173c866ee0" + integrity sha512-AjS34hBRasYiIAKZJ7/9U42LouRHok2WVTRdQPcVtRBswStNOuot59S+FRsatqlk1wvMmjytqxUKQfVTSeu9ag== dependencies: mdast-util-to-string "^1.0.2" unified-lint-rule "^1.0.0" @@ -9799,9 +10108,9 @@ remark-lint-no-inline-padding@^1.0.0: unist-util-visit "^1.4.0" remark-lint-no-literal-urls@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-1.0.3.tgz#1b5374e416d1b595ee1902587dc37f34c0d6244a" - integrity sha512-H5quyMzl2kaewK+jYD1FI0G1SIinIsIp4DEyOUwIR+vYUoKwo0B4vvW0cmPpD1dgqqxHYx0B2B0JQQKFVWzGiw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-1.0.4.tgz#02152e46a6381a387f7f0bb887944a33e4b8aef4" + integrity sha512-sHjbzaSG4z6jMu1L0Qx1b7VvIQHy0bR4xZ6t9auJ5AoB5ua8hb/970s77irH1+46TF1ezhE7i+QDjmhcQi09xg== dependencies: mdast-util-to-string "^1.0.2" unified-lint-rule "^1.0.0" @@ -9810,9 +10119,9 @@ remark-lint-no-literal-urls@^1.0.0: unist-util-visit "^1.1.1" remark-lint-no-multiple-toplevel-headings@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-1.0.4.tgz#0cfd8575e5576d7678802eac56fda894afee3817" - integrity sha512-0wDddx6htN5sL9/rofesiQF0oEgwN5224UmueiDx0ZUlYrn6VS0/SS0X3WWxtXmyeqlExfWF3D/g89tNs7dcjw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-1.0.5.tgz#0ac0fa5adf2c87acb78ac44355b554d22f491002" + integrity sha512-RZ1YPxRO7Bo8mT+A36cZ7nx2QHFAKk+oE6j87YrZYpAKr2oF6snKS8nIGhVku4PSI/9cW1G12MZz1cAA5rcjFw== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9821,36 +10130,36 @@ remark-lint-no-multiple-toplevel-headings@^1.0.0: unist-util-visit "^1.1.1" remark-lint-no-shell-dollars@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-1.0.3.tgz#07e99fc3843c665440f9a1d894ee518b2ad23958" - integrity sha512-fT3lQMTjEkPryL+63qDP1NfrohP3tG5i3SkNWSSR4VLU6OSsSSXlHGQGjo0ag//+EPKHB5/9frB/YQ0gDEPRGQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-1.0.4.tgz#18372714b94c0ee89e00ae02279bdc745b95afab" + integrity sha512-YXFj8FUVTKkVvoAbFY3zv1Ol7Kj1i+qdze3pXSgRG61y1LpfL8/HpnvFrseMbBmNw6o4WpjTo7GoArngJ1sCeg== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-visit "^1.1.1" remark-lint-no-shortcut-reference-image@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-1.0.3.tgz#ab4fa15fd8aff251cb8db1f3aed4853e293aff41" - integrity sha512-CGm27X54kXp/5ehXejDTsZjqzK4uIhLGcrFzN3k/KjdwunQouEY92AARGrLSEuJ1hQx0bJsmnvr/hvQyWAfNJg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-1.0.4.tgz#ed819f1af33738bb9003b3d92e043edcf7fd2d55" + integrity sha512-5/9QoesnOHIDwMHU9x+AGPBiFoMe9ZBKIR8nC17C6ZdksgwUIpjBJ3VX5POFlt5E6OhAZaeXqUCq9G2USccEdA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-visit "^1.1.1" remark-lint-no-shortcut-reference-link@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-1.0.4.tgz#92af34b939c0341eacdb2fc2ede855f742dc1779" - integrity sha512-FXdMJYqspZBhPlxYqfVgVluVXjxStg0RHJzqrk8G9wS8fCS62AE3reoaoiCahwoH1tfKcA+poktbKqDAmZo7Jg== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-1.0.5.tgz#0c3c48a0ce80e85b89d3d2ec1d264b00eb151584" + integrity sha512-qDVL7/0ptOTd/nyd9u/4MYFWQtYQU8povdUB45UgTXy5Rrf1WsC+4DfzAEZkX3tOSTExdAIf1WOKqdC5xRcfvA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-visit "^1.1.1" remark-lint-no-table-indentation@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-1.0.4.tgz#6681a26198ee86c4fbbba382a42254125bc5807b" - integrity sha512-H4VGHcg1k8sTIbwazFYLNbDqpPR+M0aHHKDf+93b/xyd27Dp0ODQrMnQbls1Cls5qOAQnwAQbx+75wcpFxP3OQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-1.0.5.tgz#e865ab34b172fa7f52ed410d5bb9a7b8adb18817" + integrity sha512-eE1GL+IzU3vtHdYCKHCZEIhCwiwCM7UH+pMDIMpGfH2LB3cB/Nrfbiz9xadGkARKqxxDMsJSBZDw4A/01IU+kA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9858,9 +10167,9 @@ remark-lint-no-table-indentation@^1.0.0: unist-util-visit "^1.4.0" remark-lint-ordered-list-marker-style@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-1.0.3.tgz#3fc6b9e254a641036e275269254365c42b7c62a1" - integrity sha512-24TmW1eUa/2JlwprZg9jJ8LKLxNGKnlKiI5YOhN4taUp2yv8daqlV9vR54yfn/ZZQh6EQvbIX0jeVY9NYgQUtw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-1.0.4.tgz#338f384094942389fd943af0523fdf639ccbf3d8" + integrity sha512-c6AIqeePzm3nfkPCbTdwBS3/AQICgwE76+ryOc7tsSq4ulyK/Nt8Syvi/oiHYuonBddZoGtFTNCn0jqen9qscA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9868,9 +10177,9 @@ remark-lint-ordered-list-marker-style@^1.0.0: unist-util-visit "^1.1.1" remark-lint-ordered-list-marker-value@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-1.0.4.tgz#4651021892a787bcec7243317549ba51151e761f" - integrity sha512-ojRXhvysomFFf6C747Fo7s5CyhU56e+IKE7cV1couAu+COrajQEbL13If3P3fL9Ucw1yXw9srg0AQWjsEGHYCg== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-1.0.5.tgz#00b52a49aa77e8ed81c53354843846d30525c35b" + integrity sha512-eKepbNNfu9rEuG8WvV0sc7B+KiPMgq5Nc9baAxL9Hi6mhpj347YFWXxJUNttSINS13YTpnHxPvXmF9SzhjFKNQ== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9878,9 +10187,9 @@ remark-lint-ordered-list-marker-value@^1.0.0: unist-util-visit "^1.1.1" remark-lint-rule-style@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-rule-style/-/remark-lint-rule-style-1.0.3.tgz#859aef4d2e2180ecf9db56360497372b90a04aab" - integrity sha512-SJe7IFORYRdo8JUhMSdcTktVAUVNVp36YYl1ZD9CfHqQHWlFD+3vWYzJXOZfog/i+CyWf7Yi0WVYmQes+167dA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-rule-style/-/remark-lint-rule-style-1.0.4.tgz#16de7183711f9bcc96355e3f475f793090552b58" + integrity sha512-omr5P6CCvo2zixCzK9uiGZpwzOE+4rc+95kWH95k2iA6Rp8Qohp8RK4unSRKLtFYGUhSbiQPgWaQXHDxMkWczg== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9888,9 +10197,9 @@ remark-lint-rule-style@^1.0.0: unist-util-visit "^1.1.1" remark-lint-strong-marker@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-strong-marker/-/remark-lint-strong-marker-1.0.3.tgz#028e05b046ef260e8d40b342900061f1d09c8131" - integrity sha512-PFkH282dCwfRsVEw9IxbYbaZBY4UcTuT2SN+lA3R0cBeocWnOySVw8YEm4sv9JfV8BLcQA5gc4tj66/U3KCScw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-strong-marker/-/remark-lint-strong-marker-1.0.4.tgz#7cef1bc8e9446f4f1d009555e42cc08bd30bddb4" + integrity sha512-X9f6yhZ85cdP0cmCgkqlbxllpeQ60pS9Qqk9Jb9SZo6f95esaHptQ5bExb1ZVXzhSHz2Xz86tUhXtzG3zGFD4g== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9898,9 +10207,9 @@ remark-lint-strong-marker@^1.0.0: unist-util-visit "^1.1.1" remark-lint-table-cell-padding@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-1.0.4.tgz#be2b020a3985c414abb59cc5d88fda1993f8f2e8" - integrity sha512-AQWWtV1yca1PN27QaFRJbBK6Ro/bopv1XnVKxj/iMebhOU2D2FBJ8rXmMZXVMC3G9OB2WSzGgqH3nP6QY12LoA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-1.0.5.tgz#0a533eaa60746a5976704ec9e6e49de311d67a95" + integrity sha512-N/WpcymrGBSPbLiv2OQTvdzNn6H9ctdyEA+P/odn4G9FqyrLmeTMkGJuGtinU569hLG/RtHqZIDeFVDiYi8Wzw== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9908,9 +10217,9 @@ remark-lint-table-cell-padding@^1.0.0: unist-util-visit "^1.4.0" remark-lint-table-pipe-alignment@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-1.0.3.tgz#8c6d0c93e417706a4083dc7fa279c537d4ed886c" - integrity sha512-5fhEMcKqNjK6S/y7cVG0+iVqhmhXFW+awIuN7vOBhmDbZ3HF9rCCy20XiHoaG6FzrPJ+zfkjK/QZAbq2Vf58HA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-1.0.4.tgz#5b6a08bc7a8eb66f5002667991405b616d0ffb02" + integrity sha512-pmELEOXeUjMQedyVvOtZcTCnTu6FxZ4gfBskMx6iJhOFEEKTFOmviqlKLpndPBxFNZB86AiE0C00/NvAaut8dw== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9918,9 +10227,9 @@ remark-lint-table-pipe-alignment@^1.0.0: unist-util-visit "^1.1.1" remark-lint-table-pipes@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-table-pipes/-/remark-lint-table-pipes-1.0.3.tgz#e34f91de4371f98c5e16701bd2302928468cbd8a" - integrity sha512-K9NnGZp6i0m/CaOH7ZT4Ymt2seyiRPcBIlNMMGXBm6gpy34KJDDxYqsNUrh+j7dR+Zg4rYAQLnr3BiSHvj+rbQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-table-pipes/-/remark-lint-table-pipes-1.0.4.tgz#b8cd860a3098385bbdbd4b1f9b34ac6cfed16035" + integrity sha512-0fdnoiiSLIPd/76gNvQY4pg27d8HkMmmv5gCGfD+Z/Si9DdpbJdq93U0kX+Botb3+/4VEDIlcU7Cp5HXppMTWA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9928,9 +10237,9 @@ remark-lint-table-pipes@^1.0.0: unist-util-visit "^1.1.1" remark-lint-unordered-list-marker-style@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-1.0.3.tgz#72f9ec8cd54950753593b3b727fd28e48fa197d5" - integrity sha512-0nn/Yscy5ImO4fqByrk/Ua02UwGx8LRu+0kdCbkVz4IxPO5qxTEfyccUQZR71zTdMJp1d2OeqyD9XtMaO4X7Ww== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-1.0.4.tgz#c4952f929a96d82a0e18d86a32b70ea454523c85" + integrity sha512-lcuG1J74VGTT4gl8oH33HpkHrqorxjxMlJnBupLFrVowqvJ2hAq8yPJdGZ7P46uZOYw+Xz+Qv08bF8A73PNWxQ== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -9938,9 +10247,9 @@ remark-lint-unordered-list-marker-style@^1.0.0: unist-util-visit "^1.1.1" remark-lint@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-6.0.5.tgz#fbb864d56bf83d2e5d23ea7e346ca5e36710fda3" - integrity sha512-o1I3ddm+KNsTxk60wWGI+p2yU1jB1gcm8jo2Sy6VhJ4ab2TrQIp1oQbp5xeLoFXYSh/NAqCpKjHkCM/BYpkFdQ== + version "6.0.6" + resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-6.0.6.tgz#5bf64efe5d88f3caf859ad541ab00656e3ca9c63" + integrity sha512-JBY6zz5fYQFN724Vq6VeiHwhyjVIlrww/dE1+hWGcDyUuz7YNCqwZKwBdQGDvslICkzHw/wEExNEb8D4PNiLlA== dependencies: remark-message-control "^4.0.0" @@ -9975,9 +10284,9 @@ remark-parse@^6.0.3: xtend "^4.0.1" remark-preset-lint-markdown-style-guide@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-2.1.3.tgz#2d2e6a162cc18976a2be93f4ebd45835f2ff6c14" - integrity sha512-H/jSoLvTY8abUcB+7/062I2oHevlHcHdrfRMP2RMh19QA1wmARgNEn3tZfdBXFq1TpzhevGgb6VwSdOjdU8NOQ== + version "2.1.4" + resolved "https://registry.yarnpkg.com/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-2.1.4.tgz#fb51373db7f4045fb10dea7aa095686d3762ba7f" + integrity sha512-CGEN3DRtJEp+BvfgZ+VKxuq0Ij8Uw2DXfrbhK2xn4/XxatcHRPN8tnagXbMe1LHaQJGN8Gl1+UyLjsfIk6hyGQ== dependencies: remark-lint "^6.0.0" remark-lint-blockquote-indentation "^1.0.0" @@ -10068,19 +10377,19 @@ request-light@^0.2.1, request-light@^0.2.3: https-proxy-agent "^2.2.3" vscode-nls "^4.1.1" -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.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" + integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== dependencies: - lodash "^4.17.11" + lodash "^4.17.15" 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.8" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" + integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== dependencies: - request-promise-core "1.1.2" + request-promise-core "1.1.3" stealthy-require "^1.1.1" tough-cookie "^2.3.3" @@ -10166,9 +10475,9 @@ resolve@1.1.7: integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= resolve@1.x, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2: - version "1.15.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" - integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== + 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" @@ -10267,11 +10576,9 @@ rsvp@^4.8.4: integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== run-async@^2.2.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" - integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== - dependencies: - is-promise "^2.1.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-node@^1.0.0: version "1.0.0" @@ -10293,16 +10600,16 @@ rxjs@^5.5.0: symbol-observable "1.0.1" rxjs@^6.4.0: - version "6.5.4" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" - integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== + version "6.5.5" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" + integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== 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, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + 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" @@ -10394,15 +10701,17 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -serialize-javascript@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" - integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== +serialize-javascript@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" + integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== + dependencies: + randombytes "^2.1.0" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" @@ -10457,9 +10766,9 @@ shebang-regex@^1.0.0: integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= shelljs@^0.8.2: - version "0.8.3" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.3.tgz#a7f3319520ebf09ee81275b2368adb286659b097" - integrity sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A== + 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" @@ -10471,9 +10780,9 @@ 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== simulate-event@~1.4.0: version "1.4.0" @@ -10495,10 +10804,10 @@ sinon@^7.3.2: nise "^1.5.2" supports-color "^5.5.0" -sisteransi@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.4.tgz#386713f1ef688c7c0304dc4c0632898941cad2e3" - integrity sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig== +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@^2.0.0: version "2.0.0" @@ -10658,9 +10967,9 @@ source-map-resolve@^0.5.0: urix "^0.1.0" source-map-support@^0.5.6, source-map-support@~0.5.12: - version "0.5.16" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" - integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + 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" @@ -10686,22 +10995,22 @@ source-map@^0.7.3: integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== 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" @@ -10785,16 +11094,11 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.5.0 < 2": +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= - stdin@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/stdin/-/stdin-0.0.1.tgz#d3041981aaec3dfdbc77a1b38d6372e38f5fb71e" @@ -10892,21 +11196,39 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string.prototype.trimend@^1.0.0: + 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.trimleft@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" - integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" + integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" + es-abstract "^1.17.5" + string.prototype.trimstart "^1.0.0" string.prototype.trimright@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" - integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" + integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" + es-abstract "^1.17.5" + string.prototype.trimend "^1.0.0" + +string.prototype.trimstart@^1.0.0: + 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" @@ -10972,6 +11294,13 @@ strip-indent@^2.0.0: resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + strip-json-comments@2.0.1, 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" @@ -11063,24 +11392,24 @@ temp-write@^3.4.0: uuid "^3.0.1" terser-webpack-plugin@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" - integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== + version "1.4.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f" + integrity sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA== dependencies: cacache "^12.0.2" find-cache-dir "^2.1.0" is-wsl "^1.1.0" schema-utils "^1.0.0" - serialize-javascript "^2.1.2" + serialize-javascript "^3.1.0" source-map "^0.6.1" terser "^4.1.2" webpack-sources "^1.4.0" worker-farm "^1.7.0" terser@^4.1.2: - version "4.6.4" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.4.tgz#40a0b37afbe5b57e494536815efa68326840fc00" - integrity sha512-5fqgBPLgVHZ/fVvqRhhUp9YUiGXhFJ9ZkrZWD9vQtFBR4QIGTnbsb+/kKqSqfgp3WnBwGWAFnedGTtmX1YTn0w== + version "4.7.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.7.0.tgz#15852cf1a08e3256a80428e865a2fa893ffba006" + integrity sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -11258,6 +11587,11 @@ trim-newlines@^2.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= +trim-newlines@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" + integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== + trim-off-newlines@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" @@ -11295,9 +11629,9 @@ ts-jest@^24.0.2: yargs-parser "10.x" tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" - integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + version "1.13.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== tslib@~1.10.0: version "1.10.0" @@ -11310,9 +11644,9 @@ tslint-config-prettier@^1.18.0: integrity sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg== tslint-plugin-prettier@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslint-plugin-prettier/-/tslint-plugin-prettier-2.1.0.tgz#e2522d273cb9672d93d0e68f2514fe3c19698c3a" - integrity sha512-nMCpU+QSpXtydcWXeZF+3ljIbG/K8SHVZwB7K/MtuoQQFXxXN6watqTSBpVXCInuPFvmjiWkhxeMoUW4N0zgSg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/tslint-plugin-prettier/-/tslint-plugin-prettier-2.3.0.tgz#73fe71bf9f03842ac48c104122ca9b1de012ecf4" + integrity sha512-F9e4K03yc9xuvv+A0v1EmjcnDwpz8SpCD8HzqSDe0eyg34cBinwn9JjmnnRrNAs4HdleRQj7qijp+P/JTxt4vA== dependencies: eslint-plugin-prettier "^2.2.0" lines-and-columns "^1.1.6" @@ -11394,6 +11728,11 @@ type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + type-fest@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" @@ -11404,6 +11743,11 @@ type-fest@^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== + type-is@~1.6.17: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -11470,31 +11814,30 @@ typescript@^2.9.1: resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w== -typescript@^3.7.2, typescript@~3.7.2: - version "3.7.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.5.tgz#0692e21f65fd4108b9330238aac11dd2e177a1ae" - integrity sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw== - typescript@~3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.3.tgz#4853b3e275ecdaa27f78fda46dc273a7eb7fc1c8" integrity sha512-kk80vLW9iGtjMnIv11qyxLqZm20UklzuR2tL0QAnDIygIUIemcZMxlMWudl9OOt76H3ntVzcTiddQ1/pAAJMYg== +typescript@~3.9.3: + version "3.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.3.tgz#d3ac8883a97c26139e42df5e93eeece33d610b8a" + integrity sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ== + typestyle@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/typestyle/-/typestyle-2.0.4.tgz#b8da5feaf8a4f9d1f69066f3cc4659098bd08457" - integrity sha512-+57eGqcEjiAc51hB/zXnZFoVuzwuxb9WbPpb1VT2zPJPIo88wGXod7dHa0IJ1Ue+sncHj2WZMZEPJRAqwVraoA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/typestyle/-/typestyle-2.1.0.tgz#7c5cc567de72cd8bfb686813150b92791aaa7636" + integrity sha512-6uCYPdG4xWLeEcl9O0GtNFnNGhami+irKiLsXSuvWHC/aTS7wdj49WeikWAKN+xHN3b1hm+9v0svwwgSBhCsNA== dependencies: - csstype "^2.4.0" - free-style "2.6.1" + csstype "2.6.9" + free-style "3.1.0" uglify-js@^3.1.4: - version "3.8.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.8.0.tgz#f3541ae97b2f048d7e7e3aa4f39fd8a1f5d7a805" - integrity sha512-ugNSTT8ierCsDHso2jkBHXYrU8Y5/fY2ZUprfrJUiD7YpuFvV4jODLFmb3h4btQjqr5Nh4TX4XtgDfCU1WdioQ== + version "3.9.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.9.4.tgz#867402377e043c1fc7b102253a22b64e5862401b" + integrity sha512-8RZBJq5smLOa7KslsNsVcSH+KOXf1uDU8yqLeNuVKwmT0T3FA0ZoXlinQfRad7SDcbZZRZE4ov+2v71EnxNyCA== dependencies: commander "~2.20.3" - source-map "~0.6.1" uid-number@0.0.6: version "0.0.6" @@ -11532,15 +11875,15 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== +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.0.5" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + 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== unified-language-server@^0.3.0: version "0.3.0" @@ -11559,9 +11902,9 @@ unified-language-server@^0.3.0: vscode-languageserver "^5.2.1" unified-lint-rule@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-1.0.4.tgz#be432d316db7ad801166041727b023ba18963e24" - integrity sha512-q9wY6S+d38xRAuWQVOMjBQYi7zGyKkY23ciNafB8JFVmDroyKjtytXHCg94JnhBCXrNqpfojo3+8D+gmF4zxJQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-1.0.5.tgz#41dcac68a283bfc4b4ff6014e370cc8931eb4b5d" + integrity sha512-jOPr/fx8lTzqszEfh46p99jUMqgPlIZ8rNKllEepumISvgfj9lUq1c7BSpVihr0L1df3lkjVHAThRPS7dIyjYg== dependencies: wrapped "^1.0.1" @@ -11623,16 +11966,16 @@ unist-util-is@^3.0.0: integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== unist-util-modify-children@^1.0.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/unist-util-modify-children/-/unist-util-modify-children-1.1.5.tgz#3cac9a5aea60b33395226eac4e37f15e0f04a7af" - integrity sha512-XeL5qqyoS3TEueCKEzHusWXE9JBDJPE4rl6LmcLOwlzv0RIZrcMNqKx02GSK3Ms4v45ldu+ltPxG42FBMVdPZw== + version "1.1.6" + resolved "https://registry.yarnpkg.com/unist-util-modify-children/-/unist-util-modify-children-1.1.6.tgz#1587130ca0ab5c56155fa60837ff524c3fbfbfaa" + integrity sha512-TOA6W9QLil+BrHqIZNR4o6IA5QwGOveMbnQxnWYq+7EFORx9vz/CHrtzF36zWrW61E2UKw7sM1KPtIgeceVwXw== dependencies: array-iterate "^1.0.0" unist-util-position@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.0.4.tgz#5872be7aec38629b971fdb758051f78817b0040a" - integrity sha512-tWvIbV8goayTjobxDIr4zVTyG+Q7ragMSMeKC3xnPl9xzIc0+she8mxXLM3JVNDDsfARPbCd3XdzkyLdo7fF3g== + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" + integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== unist-util-remove-position@^1.0.0: version "1.1.4" @@ -11654,9 +11997,9 @@ unist-util-stringify-position@^2.0.0: "@types/unist" "^2.0.2" unist-util-visit-children@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/unist-util-visit-children/-/unist-util-visit-children-1.1.3.tgz#92ba5807e3f54637be5de950263f9468942e7503" - integrity sha512-/GQ8KNRrG+qD30H76FZNc6Ok+8XTu8lxJByN5LnQ4eQfqxda2gP0CPsCX63BRB26ZRMNf6i1c+jlvNlqysEoFg== + version "1.1.4" + resolved "https://registry.yarnpkg.com/unist-util-visit-children/-/unist-util-visit-children-1.1.4.tgz#e8a087e58a33a2815f76ea1901c15dec2cb4b432" + integrity sha512-sA/nXwYRCQVRwZU2/tQWUqJ9JSFM1X3x7JIOsIgSzrFHcfVt6NkzDtKzyxg2cZWkCwGF9CO8x4QNZRJRMK8FeQ== unist-util-visit-parents@^2.0.0: version "2.1.2" @@ -11768,20 +12111,29 @@ util-promisify@^2.1.0: object.getownpropertydescriptors "^2.0.3" 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, util@^0.10.3: +util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= dependencies: inherits "2.0.1" +util@^0.10.3: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== + dependencies: + inherits "2.0.3" + util@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" @@ -11834,9 +12186,9 @@ vfile-location@^2.0.0, vfile-location@^2.0.1: integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== vfile-message@*: - version "2.0.2" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.2.tgz#75ba05090ec758fa8420f2c11ce049bcddd8cf3e" - integrity sha512-gNV2Y2fDvDOOqq8bEe7cF3DXU6QgV4uA9zMR2P8tix11l1r7zju3zry3wZ8sx+BEfuO6WQ7z2QzfWTvqHQiwsA== + version "2.0.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" + integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== dependencies: "@types/unist" "^2.0.0" unist-util-stringify-position "^2.0.0" @@ -11931,15 +12283,15 @@ vscode-json-languageservice@3.0.12: vscode-uri "^1.0.3" vscode-json-languageservice@^3.0.1: - version "3.4.11" - resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.4.11.tgz#7c0632bccc4b2b955f99f99f43d96d3eece1de42" - integrity sha512-26Qv1SFp6x3XmCqU1BRceRsSKRO3xkQa6/K8ziSRt52/LQPiw5ipSxlGVSlzIoi5LCmQVEqUajhiVEMNlFXhNw== + version "3.7.0" + resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.7.0.tgz#0174417f139cf41dd60c84538fd052385bfb46f6" + integrity sha512-nGLqcBhTjdfkl8Dz9sYGK/ZCTjscYFoIjYw+qqkWB+vyNfM0k/AyIoT73DQvB/PArteCKjEVfQUF72GRZEDSbQ== dependencies: - jsonc-parser "^2.2.0" - vscode-languageserver-textdocument "^1.0.0-next.5" - vscode-languageserver-types "^3.15.0-next.9" - vscode-nls "^4.1.1" - vscode-uri "^2.1.1" + jsonc-parser "^2.2.1" + vscode-languageserver-textdocument "^1.0.1" + vscode-languageserver-types "^3.15.1" + vscode-nls "^4.1.2" + vscode-uri "^2.1.2" vscode-jsonrpc@3.5.0: version "3.5.0" @@ -12001,17 +12353,17 @@ vscode-languageserver-protocol@^3.10.3, vscode-languageserver-protocol@^3.14.1, vscode-jsonrpc "^5.0.1" vscode-languageserver-types "3.15.1" -vscode-languageserver-textdocument@^1.0.0-next.5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.0.tgz#957381672eb3f507aa320e9f6d7efdfcb767d9fe" - integrity sha512-9E3hfoknSe9wX5Bed4rFbjkWdT9Oazw+suyCQ6ZbS68r3SAwue5M7xHd9WX9jBHguAai+qmwr5dMIf7gmzQryw== +vscode-languageserver-textdocument@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz#178168e87efad6171b372add1dea34f53e5d330f" + integrity sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA== vscode-languageserver-types@3.14.0: version "3.14.0" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz#d3b5952246d30e5241592b6dde8280e03942e743" integrity sha512-lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A== -vscode-languageserver-types@3.15.1, vscode-languageserver-types@^3.0.3, vscode-languageserver-types@^3.13.0, vscode-languageserver-types@^3.14.0, vscode-languageserver-types@^3.15.0-next.9, vscode-languageserver-types@^3.15.1, vscode-languageserver-types@^3.5.0, vscode-languageserver-types@^3.6.1, vscode-languageserver-types@^3.7.2: +vscode-languageserver-types@3.15.1, vscode-languageserver-types@^3.0.3, vscode-languageserver-types@^3.13.0, vscode-languageserver-types@^3.14.0, vscode-languageserver-types@^3.15.1, vscode-languageserver-types@^3.5.0, vscode-languageserver-types@^3.6.1, vscode-languageserver-types@^3.7.2: version "3.15.1" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz#17be71d78d2f6236d414f0001ce1ef4d23e6b6de" integrity sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ== @@ -12050,7 +12402,7 @@ vscode-languageserver@^5.0.0, vscode-languageserver@^5.2.1: vscode-languageserver-protocol "3.14.1" vscode-uri "^1.0.6" -vscode-languageserver@^6.1.0: +vscode-languageserver@^6.1.0, vscode-languageserver@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-6.1.1.tgz#d76afc68172c27d4327ee74332b468fbc740d762" integrity sha512-DueEpkUAkD5XTR4MLYNr6bQIp/UFR0/IPApgXU3YfCBCB08u2sm9hRCs6DxYZELkk++STPjpcjksR2H8qI3cDQ== @@ -12067,20 +12419,20 @@ vscode-nls@^3.2.1, vscode-nls@^3.2.2: resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.5.tgz#25520c1955108036dec607c85e00a522f247f1a4" integrity sha512-ITtoh3V4AkWXMmp3TB97vsMaHRgHhsSFPsUdzlueSL+dRZbSNTZeOmdQv60kjCV306ghPxhDeoNUEm3+EZMuyw== -vscode-nls@^4.0.0, vscode-nls@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.1.tgz#f9916b64e4947b20322defb1e676a495861f133c" - integrity sha512-4R+2UoUUU/LdnMnFjePxfLqNhBS8lrAFyX7pjb2ud/lqDkrUavFUTcG7wR0HBZFakae0Q6KLBFjMS6W93F403A== +vscode-nls@^4.0.0, vscode-nls@^4.1.1, vscode-nls@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.2.tgz#ca8bf8bb82a0987b32801f9fddfdd2fb9fd3c167" + integrity sha512-7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw== vscode-uri@^1.0.1, vscode-uri@^1.0.3, vscode-uri@^1.0.5, vscode-uri@^1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.8.tgz#9769aaececae4026fb6e22359cb38946580ded59" integrity sha512-obtSWTlbJ+a+TFRYGaUumtVwb+InIUVI0Lu0VBUAPmj2cU5JutEXg3xUE0c2J5Tcy7h2DEKVJBFi+Y9ZSFzzPQ== -vscode-uri@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.1.tgz#5aa1803391b6ebdd17d047f51365cf62c38f6e90" - integrity sha512-eY9jmGoEnVf8VE8xr5znSah7Qt1P/xsCdErz+g8HYZtJ7bZqKH5E3d+6oVNm1AC/c6IHUDokbmVXKOi4qPAC9A== +vscode-uri@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz#c8d40de93eb57af31f3c715dd650e2ca2c096f1c" + integrity sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A== vscode-ws-jsonrpc@0.1.1: version "0.1.1" @@ -12090,11 +12442,11 @@ vscode-ws-jsonrpc@0.1.1: vscode-jsonrpc "^4.1.0-next" 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" @@ -12110,14 +12462,23 @@ warning@^4.0.2, warning@^4.0.3: dependencies: loose-envify "^1.0.0" -watchpack@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== +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.6.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.2.tgz#c02e4d4d49913c3e7e122c3325365af9d331e9aa" + integrity sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g== dependencies: - chokidar "^2.0.2" graceful-fs "^4.1.2" neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.0" + watchpack-chokidar2 "^2.0.0" wcwidth@^1.0.0: version "1.0.1" @@ -12126,10 +12487,10 @@ wcwidth@^1.0.0: dependencies: defaults "^1.0.3" -web-tree-sitter@^0.15.9: - version "0.15.11" - resolved "https://registry.yarnpkg.com/web-tree-sitter/-/web-tree-sitter-0.15.11.tgz#2fa29820f4b6273f936e23de9ab1a1a62be347c3" - integrity sha512-7Sr26MV8bPPvKU+4VMpOoLYwaAFBsCsxRGtxYPSxClWIaR2KIciqg6zUeG14W9QrdlpBt7VHHzhd1CBb0e6i8w== +web-tree-sitter@^0.16.2: + version "0.16.4" + resolved "https://registry.yarnpkg.com/web-tree-sitter/-/web-tree-sitter-0.16.4.tgz#3009ac7cf1811f50ad564932126f3779ccaeec63" + integrity sha512-n1CfuJcJ+dynIx/fmavB6haPx37N3GZvY5HIGIselymDiSwNRC+8pAxOzoB4eVwUBJnbP3+aA8vWttrAZbgs7A== webidl-conversions@^4.0.2: version "4.0.2" @@ -12181,15 +12542,15 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1: source-map "~0.6.1" webpack@^4.32.2: - version "4.41.6" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.6.tgz#12f2f804bf6542ef166755050d4afbc8f66ba7e1" - integrity sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/wasm-edit" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - acorn "^6.2.1" + version "4.43.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" + integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" @@ -12200,13 +12561,13 @@ webpack@^4.32.2: loader-utils "^1.2.3" memory-fs "^0.4.1" micromatch "^3.1.10" - mkdirp "^0.5.1" + mkdirp "^0.5.3" neo-async "^2.6.1" node-libs-browser "^2.2.1" schema-utils "^1.0.0" tapable "^1.1.3" terser-webpack-plugin "^1.4.3" - watchpack "^1.6.0" + watchpack "^1.6.1" webpack-sources "^1.4.1" whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: @@ -12259,9 +12620,9 @@ wide-align@1.1.3, wide-align@^1.1.0: string-width "^1.0.2 || 2" windows-release@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.2.0.tgz#8122dad5afc303d833422380680a79cdfa91785f" - integrity sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA== + version "3.3.0" + resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.3.0.tgz#dce167e9f8be733f21c849ebd4d03fe66b29b9f0" + integrity sha512-2HetyTg1Y+R+rUgrKeUEhAG/ZuOmTrI1NBb3ZyAGQMYmOJjBBPe4MTodghRkmLJZHwkuPi02anbeGP+Zf401LQ== dependencies: execa "^1.0.0" @@ -12270,6 +12631,11 @@ word-wrap@~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== +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" @@ -12376,9 +12742,9 @@ ws@^6.1.0: async-limiter "~1.0.0" ws@^7.2.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.1.tgz#03ed52423cd744084b2cf42ed197c8b65a936b8e" - integrity sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A== + version "7.3.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd" + integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w== ws@~3.3.1: version "3.3.3" @@ -12460,25 +12826,33 @@ yaml-language-server@^0.4.0: vscode-uri "^1.0.6" yaml-ast-parser-custom-tags "0.0.43" -yargs-parser@10.x, yargs-parser@^10.0.0: +yargs-parser@10.x: version "10.1.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== dependencies: camelcase "^4.1.0" -yargs-parser@13.1.1, yargs-parser@^13.1.0, yargs-parser@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== +yargs-parser@13.1.2, yargs-parser@^13.1.0, 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@^15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.0.tgz#cdd7a97490ec836195f59f3f4dbe5ea9e8f75f08" - integrity sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ== +yargs-parser@^15.0.1: + version "15.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" + integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.3: + 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" @@ -12509,10 +12883,10 @@ yargs@13.2.4: y18n "^4.0.0" yargs-parser "^13.1.0" -yargs@13.3.0, yargs@^13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== +yargs@13.3.2, 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 "^5.0.0" find-up "^3.0.0" @@ -12523,12 +12897,12 @@ yargs@13.3.0, yargs@^13.3.0: string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^13.1.1" + yargs-parser "^13.1.2" yargs@^14.2.2: - version "14.2.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.2.tgz#2769564379009ff8597cdd38fba09da9b493c4b5" - integrity sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA== + version "14.2.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" + integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== dependencies: cliui "^5.0.0" decamelize "^1.2.0" @@ -12540,14 +12914,15 @@ yargs@^14.2.2: string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^15.0.0" + yargs-parser "^15.0.1" -yauzl@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" - integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= dependencies: - fd-slicer "~1.0.1" + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" yeast@0.1.2: version "0.1.2" From 74f4e512f818e82c47b16a559f7e457d1132a7e9 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Fri, 5 Jun 2020 20:07:06 -0400 Subject: [PATCH 10/82] linting, update deps --- .../adapters/codemirror/cm_adapter.spec.ts | 2 +- .../src/adapters/codemirror/feature.spec.ts | 78 +++++++++---------- .../codemirror/features/diagnostics.spec.ts | 68 ++++++++-------- .../codemirror/features/rename.spec.ts | 10 +-- .../src/adapters/codemirror/testutils.ts | 28 +++---- packages/jupyterlab-lsp/src/connection.ts | 12 +-- .../jupyterlab-lsp/src/virtual/editor.spec.ts | 8 +- py_src/jupyter_lsp/kernel/handlers.py | 10 ++- py_src/jupyter_lsp/kernel/install.py | 27 ++++--- py_src/jupyter_lsp/kernel/kernel.py | 7 +- py_src/jupyter_lsp/kernel/manager.py | 18 +++-- py_src/jupyter_lsp/lspapp.py | 20 +++-- py_src/jupyter_lsp/session.py | 4 +- requirements/atest.yml | 2 +- requirements/dev.txt | 2 +- requirements/lint.yml | 2 +- 16 files changed, 160 insertions(+), 138 deletions(-) diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/cm_adapter.spec.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/cm_adapter.spec.ts index 53f59d1db..e47cf937e 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/cm_adapter.spec.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/cm_adapter.spec.ts @@ -3,7 +3,7 @@ import { CodeMirrorAdapter } from './cm_adapter'; import { LSPConnection } from '../../connection'; import { IJupyterLabComponentsManager, - StatusMessage + StatusMessage, } from '../jupyterlab/jl_adapter'; import { IRootPosition } from '../../positioning'; import * as CodeMirror from 'codemirror'; diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts index 56127524a..0a21bfea3 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts @@ -3,7 +3,7 @@ import { CodeMirrorAdapter } from './cm_adapter'; import { LSPConnection } from '../../connection'; import { IJupyterLabComponentsManager, - StatusMessage + StatusMessage, } from '../jupyterlab/jl_adapter'; import { CodeMirrorLSPFeature } from './feature'; import { @@ -14,7 +14,7 @@ import { NotebookFeatureTestEnvironment, python_notebook_metadata, showAllCells, - synchronize_content + synchronize_content, } from './testutils'; import * as lsProtocol from 'vscode-languageserver-protocol'; import * as nbformat from '@jupyterlab/nbformat'; @@ -44,54 +44,54 @@ const js_partial_edits = [ range: { start: { line: 0, - character: 9 + character: 9, }, end: { line: 0, - character: 12 - } + character: 12, + }, }, - newText: 'fib2' + newText: 'fib2', }, { range: { start: { line: 1, - character: 15 + character: 15, }, end: { line: 1, - character: 18 - } + character: 18, + }, }, - newText: 'fib2' + newText: 'fib2', }, { range: { start: { line: 1, - character: 24 + character: 24, }, end: { line: 1, - character: 27 - } + character: 27, + }, }, - newText: 'fib2' + newText: 'fib2', }, { range: { start: { line: 4, - character: 0 + character: 0, }, end: { line: 4, - character: 3 - } + character: 3, + }, }, - newText: 'fib2' - } + newText: 'fib2', + }, ]; describe('Feature', () => { @@ -164,12 +164,12 @@ describe('Feature', () => { { range: { start: { line: 0, character: 0 }, - end: { line: 1, character: 0 } + end: { line: 1, character: 0 }, }, - newText: 'changed bar' - } as lsProtocol.TextEdit - ] - } + newText: 'changed bar', + } as lsProtocol.TextEdit, + ], + }, }); let raw_value = environment.ce_editor.doc.getValue(); expect(raw_value).to.be.equal('changed bar'); @@ -184,7 +184,7 @@ describe('Feature', () => { await adapter.updateAfterChange(); let result = await feature.do_apply_edit({ - changes: { ['file://' + environment.path()]: js_partial_edits } + changes: { ['file://' + environment.path()]: js_partial_edits }, }); let raw_value = environment.ce_editor.doc.getValue(); expect(raw_value).to.be.equal(js_fib2_code); @@ -231,9 +231,9 @@ describe('Feature', () => { let test_notebook = { cells: [ code_cell(['def a_function():\n', ' pass']), - code_cell(['x = a_function()']) + code_cell(['x = a_function()']), ], - metadata: python_notebook_metadata + metadata: python_notebook_metadata, } as nbformat.INotebookContent; let notebook = environment.notebook; @@ -257,12 +257,12 @@ describe('Feature', () => { { range: { start: { line: 0, character: 0 }, - end: { line: 5, character: 0 } + end: { line: 5, character: 0 }, }, - newText: new_virtual_source - } as lsProtocol.TextEdit - ] - } + newText: new_virtual_source, + } as lsProtocol.TextEdit, + ], + }, }); await synchronizeContent(); @@ -287,9 +287,9 @@ describe('Feature', () => { let test_notebook = { cells: [ code_cell(['x = %ls\n', 'print(x)']), - code_cell(['%%python\n', 'y = x\n', 'print(x)']) + code_cell(['%%python\n', 'y = x\n', 'print(x)']), ], - metadata: python_notebook_metadata + metadata: python_notebook_metadata, } as nbformat.INotebookContent; let notebook = environment.notebook; @@ -325,12 +325,12 @@ print(x)""") { range: { start: { line: 0, character: 0 }, - end: { line: 6, character: 10 } + end: { line: 6, character: 10 }, }, - newText: new_virtual_source - } as lsProtocol.TextEdit - ] - } + newText: new_virtual_source, + } as lsProtocol.TextEdit, + ], + }, }); await synchronizeContent(); expect(main_document.value).to.be.equal(new_virtual_source); diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.spec.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.spec.ts index 67949b65b..9738a6579 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.spec.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.spec.ts @@ -3,14 +3,14 @@ import { TextMarker } from 'codemirror'; import { Diagnostics, diagnostics_panel, - message_without_code + message_without_code, } from './diagnostics'; import { code_cell, FileEditorFeatureTestEnvironment, NotebookFeatureTestEnvironment, set_notebook_content, - showAllCells + showAllCells, } from '../testutils'; import { CodeMirrorEditor } from '@jupyterlab/codemirror'; import { is_equal } from '../../../positioning'; @@ -53,11 +53,11 @@ describe('Diagnostics', () => { { range: { start: { line: 0, character: 1 }, - end: { line: 0, character: 4 } + end: { line: 0, character: 4 }, }, - message: 'Undefined symbol' - } - ] + message: 'Undefined symbol', + }, + ], }); let marks = env.ce_editor.editor.getDoc().getAllMarks(); @@ -86,7 +86,7 @@ describe('Diagnostics', () => { it('renders inspections across cells', async () => { set_notebook_content(env.notebook, [ code_cell(['x =1\n', 'test']), - code_cell([' ']) + code_cell([' ']), ]); showAllCells(env.notebook); await env.virtual_editor.update_documents(); @@ -101,55 +101,55 @@ describe('Diagnostics', () => { source: 'pyflakes', range: { start: { line: 1, character: 0 }, - end: { line: 1, character: 5 } + end: { line: 1, character: 5 }, }, message: "undefined name 'test'", - severity: 1 + severity: 1, }, { source: 'pycodestyle', range: { start: { line: 0, character: 3 }, - end: { line: 0, character: 5 } + end: { line: 0, character: 5 }, }, message: 'E225 missing whitespace around operator', code: 'E225', - severity: 2 + severity: 2, }, { source: 'pycodestyle', range: { start: { line: 4, character: 0 }, - end: { line: 4, character: 5 } + end: { line: 4, character: 5 }, }, message: 'W391 blank line at end of file', code: 'W391', - severity: 2 + severity: 2, }, { source: 'pycodestyle', range: { start: { line: 4, character: 0 }, - end: { line: 4, character: 5 } + end: { line: 4, character: 5 }, }, message: 'W293 blank line contains whitespace', code: 'W293', - severity: 2 + severity: 2, }, { source: 'mypy', range: { start: { line: 1, character: 0 }, - end: { line: 1, character: 4 } + end: { line: 1, character: 4 }, }, message: "Name 'test' is not defined", - severity: 1 - } - ] + severity: 1, + }, + ], }); let cm_editors = env.virtual_editor.notebook.widgets.map( - cell => (cell.editor as CodeMirrorEditor).editor + (cell) => (cell.editor as CodeMirrorEditor).editor ); let marks_cell_1 = cm_editors[0].getDoc().getAllMarks(); // test from mypy, test from pyflakes, whitespace around operator from pycodestyle @@ -180,7 +180,7 @@ describe('Diagnostics', () => { it('Works in foreign documents', async () => { set_notebook_content(env.notebook, [ code_cell(['valid = 0\n', 'code = 1', '# here']), - code_cell(['%%python\n', 'y = 1\n', 'x']) + code_cell(['%%python\n', 'y = 1\n', 'x']), ]); showAllCells(env.notebook); await env.virtual_editor.update_documents(); @@ -202,18 +202,18 @@ describe('Diagnostics', () => { source: 'pyflakes', range: { start: { line: 1, character: 0 }, - end: { line: 1, character: 2 } + end: { line: 1, character: 2 }, }, message: "undefined name 'x'", - severity: 1 - } - ] + severity: 1, + }, + ], } as lsProtocol.PublishDiagnosticsParams; // test guards against wrongly propagated responses: feature.handleDiagnostic(response); let cm_editors = env.virtual_editor.notebook.widgets.map( - cell => (cell.editor as CodeMirrorEditor).editor + (cell) => (cell.editor as CodeMirrorEditor).editor ); let marks_cell_1 = cm_editors[0].getDoc().getAllMarks(); @@ -247,12 +247,12 @@ describe('Diagnostics', () => { source: 'pyflakes', range: { start: { line: 5, character: 0 }, - end: { line: 5, character: 52 } + end: { line: 5, character: 52 }, }, message: "undefined name 'get_ipython'", - severity: 1 - } - ] + severity: 1, + }, + ], }); expect(marks_cell_1.length).to.equal(0); @@ -266,11 +266,11 @@ describe('message_without_code', () => { source: 'pycodestyle', range: { start: { line: 4, character: 0 }, - end: { line: 4, character: 5 } + end: { line: 4, character: 5 }, }, message: 'W293 blank line contains whitespace', code: 'W293', - severity: 2 + severity: 2, }); expect(message).to.be.equal('blank line contains whitespace'); }); @@ -280,13 +280,13 @@ describe('message_without_code', () => { source: 'pyflakes', range: { start: { line: 1, character: 0 }, - end: { line: 1, character: 2 } + end: { line: 1, character: 2 }, }, // a message starting from "undefined" is particularly tricky as // a lazy implementation can have a coercion of undefined "code" // to a string "undefined" which would wrongly chop off "undefined" from message message: "undefined name 'x'", - severity: 1 + severity: 1, }); expect(message).to.be.equal("undefined name 'x'"); }); diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts index 8e86c25e0..7219b27f5 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts @@ -29,12 +29,12 @@ describe('Rename', () => { { range: { start: { line: 0, character: 0 }, - end: { line: 2, character: 0 } + end: { line: 2, character: 0 }, }, - newText: 'y = 1\n' - } as lsProtocol.TextEdit - ] - } + newText: 'y = 1\n', + } as lsProtocol.TextEdit, + ], + }, }); await env.virtual_editor.update_documents(); diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts index 540ddb252..edad0e559 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts @@ -1,6 +1,6 @@ import { CodeMirrorEditor, - CodeMirrorEditorFactory + CodeMirrorEditorFactory, } from '@jupyterlab/codemirror'; import { VirtualEditor } from '../../virtual/editor'; import { CodeMirrorLSPFeature, ILSPFeatureConstructor } from './feature'; @@ -10,7 +10,7 @@ import { VirtualFileEditor } from '../../virtual/editors/file_editor'; import { FreeTooltip } from '../jupyterlab/components/free_tooltip'; import { IJupyterLabComponentsManager, - StatusMessage + StatusMessage, } from '../jupyterlab/jl_adapter'; import { VirtualEditorForNotebook } from '../../virtual/editors/notebook'; import { Notebook, NotebookModel } from '@jupyterlab/notebook'; @@ -89,7 +89,7 @@ export abstract class FeatureTestEnvironment return new LSPConnection({ languageId: this.language(), serverUri: 'ws://localhost:8080', - rootUri: 'file:///unit-test' + rootUri: 'file:///unit-test', }); } @@ -108,7 +108,7 @@ export abstract class FeatureTestEnvironment isDisposed: false, dispose: () => { // nothing yet - } + }, }; } @@ -133,15 +133,15 @@ export class FileEditorFeatureTestEnvironment extends FeatureTestEnvironment { this.ce_editor = factoryService.newDocumentEditor({ host: this.host, - model + model, }); this.language_server_manager = new MockLanguageServerManager({ // NB: FIX - serviceManager: null + serviceManager: null, }); this.connection_manager = new DocumentConnectionManager({ - language_server_manager: this.language_server_manager + language_server_manager: this.language_server_manager, }); this.init(); @@ -202,7 +202,7 @@ export function code_cell( source: source, metadata: metadata, execution_count: null, - outputs: [] + outputs: [], } as nbformat.ICodeCell; } @@ -213,7 +213,7 @@ export function set_notebook_content( ) { let test_notebook = { cells: cells, - metadata: metadata + metadata: metadata, } as nbformat.INotebookContent; notebook.model = new NotebookModel(); @@ -224,21 +224,21 @@ export const python_notebook_metadata = { kernelspec: { display_name: 'Python [default]', language: 'python', - name: 'python3' + name: 'python3', }, language_info: { codemirror_mode: { name: 'ipython', - version: 3 + version: 3, }, file_extension: '.py', mimetype: 'text/x-python', name: 'python', nbconvert_exporter: 'python', pygments_lexer: 'ipython3', - version: '3.5.2' + version: '3.5.2', }, - orig_nbformat: 4.1 + orig_nbformat: 4.1, } as nbformat.INotebookMetadata; export function showAllCells(notebook: Notebook) { @@ -255,7 +255,7 @@ export function getCellsJSON(notebook: Notebook) { for (let i = 0; i < notebook.model.cells.length; i++) { cells.push(notebook.model.cells.get(i)); } - return cells.map(cell => cell.toJSON()); + return cells.map((cell) => cell.toJSON()); } export async function synchronize_content( diff --git a/packages/jupyterlab-lsp/src/connection.ts b/packages/jupyterlab-lsp/src/connection.ts index 01672895f..18cf27307 100644 --- a/packages/jupyterlab-lsp/src/connection.ts +++ b/packages/jupyterlab-lsp/src/connection.ts @@ -7,7 +7,7 @@ import { ILspOptions, IPosition, LspWsConnection, - IDocumentInfo + IDocumentInfo, } from 'lsp-ws-connection'; import { until_ready } from './utils'; import { ILSPConnection } from './tokens'; @@ -66,13 +66,13 @@ export class LSPConnection extends LspWsConnection implements ILSPConnection { const params: lsProtocol.RenameParams = { textDocument: { - uri: documentInfo.uri + uri: documentInfo.uri, }, position: { line: location.line, - character: location.ch + character: location.ch, }, - newName + newName, }; const edit: lsProtocol.WorkspaceEdit = await this.connection.sendRequest( @@ -125,9 +125,9 @@ export class LSPConnection extends LspWsConnection implements ILSPConnection { const textDocumentChange: lsProtocol.DidChangeTextDocumentParams = { textDocument: { uri: documentInfo.uri, - version: documentInfo.version + version: documentInfo.version, } as lsProtocol.VersionedTextDocumentIdentifier, - contentChanges: changeEvents + contentChanges: changeEvents, }; this.connection.sendNotification( 'textDocument/didChange', diff --git a/packages/jupyterlab-lsp/src/virtual/editor.spec.ts b/packages/jupyterlab-lsp/src/virtual/editor.spec.ts index f6c24a075..cedca9256 100644 --- a/packages/jupyterlab-lsp/src/virtual/editor.spec.ts +++ b/packages/jupyterlab-lsp/src/virtual/editor.spec.ts @@ -4,7 +4,7 @@ import { RegExpForeignCodeExtractor } from '../extractors/regexp'; import { IEditorPosition, IRootPosition, - IVirtualPosition + IVirtualPosition, } from '../positioning'; import * as CodeMirror from 'codemirror'; import { PageConfig } from '@jupyterlab/coreutils'; @@ -51,7 +51,7 @@ describe('VirtualEditor', () => { pattern: '(^|\n)%R (.*)\n?', extract_to_foreign: '$2', is_standalone: false, - file_extension: 'R' + file_extension: 'R', }); PageConfig.setOption('rootUri', '/home/username/project'); @@ -61,10 +61,10 @@ describe('VirtualEditor', () => { ); const LANGSERVER_MANAGER = new MockLanguageServerManager({ - serviceManager: null + serviceManager: null, }); const CONNECTION_MANAGER = new DocumentConnectionManager({ - language_server_manager: LANGSERVER_MANAGER + language_server_manager: LANGSERVER_MANAGER, }); const DEBUG = false; diff --git a/py_src/jupyter_lsp/kernel/handlers.py b/py_src/jupyter_lsp/kernel/handlers.py index 613359a6f..d889e1c23 100644 --- a/py_src/jupyter_lsp/kernel/handlers.py +++ b/py_src/jupyter_lsp/kernel/handlers.py @@ -1,6 +1,8 @@ import json + from tornado.ioloop import IOLoop + class CommHandler: """ Jupyter Kernel Comm-based transport that imitates the tornado websocket handler """ @@ -30,9 +32,13 @@ async def on_message(self, message): if not self.subscribed: self.manager.subscribe(self) self.subscribed = True - await self.manager.on_client_message(json.dumps(message["content"]["data"]), self) + await self.manager.on_client_message( + json.dumps(message["content"]["data"]), self + ) self.log.error("[{}] Finished handling message".format(self.language_server)) def write_message(self, message: str): - self.log.error("[{}] Sending a message: {}".format(self.language_server, message)) + self.log.error( + "[{}] Sending a message: {}".format(self.language_server, message) + ) self.comm.send(json.loads(message)) diff --git a/py_src/jupyter_lsp/kernel/install.py b/py_src/jupyter_lsp/kernel/install.py index e853b2c27..c0204dd38 100644 --- a/py_src/jupyter_lsp/kernel/install.py +++ b/py_src/jupyter_lsp/kernel/install.py @@ -16,13 +16,15 @@ pjoin = os.path.join -KERNEL_NAME = 'jupyter-lsp-kernel' +KERNEL_NAME = "jupyter-lsp-kernel" # path to kernelspec resources -RESOURCES = pjoin(os.path.dirname(__file__), 'resources') +RESOURCES = pjoin(os.path.dirname(__file__), "resources") -def make_ipkernel_cmd(mod='jupyter_lsp.kernel', executable=None, extra_arguments=None, **kw): +def make_ipkernel_cmd( + mod="jupyter_lsp.kernel", executable=None, extra_arguments=None, **kw +): """Build Popen command list for launching an IPython kernel. Parameters ---------- @@ -39,7 +41,7 @@ def make_ipkernel_cmd(mod='jupyter_lsp.kernel', executable=None, extra_arguments if executable is None: executable = sys.executable extra_arguments = extra_arguments or [] - arguments = [executable, '-m', mod, '-f', '{connection_file}'] + arguments = [executable, "-m", mod, "-f", "{connection_file}"] arguments.extend(extra_arguments) return arguments @@ -48,9 +50,9 @@ def make_ipkernel_cmd(mod='jupyter_lsp.kernel', executable=None, extra_arguments def get_kernel_dict(extra_arguments=None): """Construct dict for kernel.json""" return { - 'argv': make_ipkernel_cmd(extra_arguments=extra_arguments), - 'display_name': 'Language Server', - 'language': 'lsp', + "argv": make_ipkernel_cmd(extra_arguments=extra_arguments), + "display_name": "Language Server", + "language": "lsp", } @@ -63,7 +65,7 @@ def write_kernel_spec(path=None, overrides=None, extra_arguments=None): The path to the kernelspec is always returned. """ if path is None: - path = os.path.join(tempfile.mkdtemp(suffix='_kernels'), KERNEL_NAME) + path = os.path.join(tempfile.mkdtemp(suffix="_kernels"), KERNEL_NAME) # stage resources shutil.copytree(RESOURCES, path) @@ -72,7 +74,7 @@ def write_kernel_spec(path=None, overrides=None, extra_arguments=None): if overrides: kernel_dict.update(overrides) - with open(pjoin(path, 'kernel.json'), 'w') as f: + with open(pjoin(path, "kernel.json"), "w") as f: json.dump(kernel_dict, f, indent=1) return path @@ -84,7 +86,7 @@ def install( kernel_name=KERNEL_NAME, display_name=None, prefix=None, - profile=None + profile=None, ): """Install the Language Server kernelspec for Jupyter @@ -125,12 +127,13 @@ def install( extra_arguments = ["--profile", profile] if not display_name: # add the profile to the default display name - overrides["display_name"] = 'Language Server [profile=%s]' % (profile) + overrides["display_name"] = "Language Server [profile=%s]" % (profile) else: extra_arguments = None path = write_kernel_spec(overrides=overrides, extra_arguments=extra_arguments) dest = kernel_spec_manager.install_kernel_spec( - path, kernel_name=kernel_name, user=user, prefix=prefix) + path, kernel_name=kernel_name, user=user, prefix=prefix + ) # cleanup afterward shutil.rmtree(path) return dest diff --git a/py_src/jupyter_lsp/kernel/kernel.py b/py_src/jupyter_lsp/kernel/kernel.py index 9d36d360d..a8f7c5a71 100644 --- a/py_src/jupyter_lsp/kernel/kernel.py +++ b/py_src/jupyter_lsp/kernel/kernel.py @@ -27,7 +27,6 @@ } - class LanguageServerKernel(IPythonKernel): """ A Jupyter Kernel for the Language Server Protocol """ @@ -39,7 +38,10 @@ class LanguageServerKernel(IPythonKernel): language_info = LANGUAGE_INFO # type: Dict banner = "Jupyter Language Server Kernel ".format(__version__) # type: Text help_links = [ - {"text": "Language Server Protocol", "url": "https://microsoft.github.io/language-server-protocol/"}, + { + "text": "Language Server Protocol", + "url": "https://microsoft.github.io/language-server-protocol/", + }, ] language_server_manager = traitlets.Instance(CommLanguageServerManager) @@ -61,6 +63,5 @@ def launch(): IPKernelApp.launch_instance(kernel_class=LanguageServerKernel) - if __name__ == "__main__": launch() diff --git a/py_src/jupyter_lsp/kernel/manager.py b/py_src/jupyter_lsp/kernel/manager.py index 45294c799..e76b737d6 100644 --- a/py_src/jupyter_lsp/kernel/manager.py +++ b/py_src/jupyter_lsp/kernel/manager.py @@ -29,9 +29,17 @@ def initialize(self, *args, **kwargs): self.init_comm_targets() def init_comm_targets(self): - self.comm_manager.register_target(self.CONTROL_COMM_TARGET, self.on_control_comm_opened) - self.comm_manager.register_target(self.LANGUAGE_SERVER_COMM_TARGET, self.on_language_server_comm_opened) - self.log.error("comm targets registered: {}".format([self.CONTROL_COMM_TARGET, self.LANGUAGE_SERVER_COMM_TARGET])) + self.comm_manager.register_target( + self.CONTROL_COMM_TARGET, self.on_control_comm_opened + ) + self.comm_manager.register_target( + self.LANGUAGE_SERVER_COMM_TARGET, self.on_language_server_comm_opened + ) + self.log.error( + "comm targets registered: {}".format( + [self.CONTROL_COMM_TARGET, self.LANGUAGE_SERVER_COMM_TARGET] + ) + ) def on_control_comm_opened(self, comm, comm_msg): self.log.error("[{}] control comm opened: {}".format(comm, comm_msg)) @@ -59,7 +67,5 @@ def on_language_server_comm_opened(self, comm, comm_msg): language_server = comm_msg["metadata"]["language_server"] self._lsp_comms[language_server] = CommHandler( - language_server=language_server, - comm=comm, - manager=self + language_server=language_server, comm=comm, manager=self ) diff --git a/py_src/jupyter_lsp/lspapp.py b/py_src/jupyter_lsp/lspapp.py index 81e9f86f8..a21f65454 100644 --- a/py_src/jupyter_lsp/lspapp.py +++ b/py_src/jupyter_lsp/lspapp.py @@ -1,18 +1,19 @@ import sys + from traitlets import Bool from traitlets.config import Application - - - class LSPKernelSpecInstallApp(Application): description = """Install the kernelspec""" - sys_prefix = Bool(default_value=True, help="Install into the current environment", config=True) + sys_prefix = Bool( + default_value=True, help="Install into the current environment", config=True + ) def start(self): from .kernel.install import install + dest = install(prefix=sys.prefix) print("installed kernelspec to", dest) @@ -20,18 +21,23 @@ def start(self): class LSPKernelSpecApp(Application): description = """Work with the Language Server Kernel""" subcommands = dict( - install=(LSPKernelSpecInstallApp, LSPKernelSpecInstallApp.description.splitlines()[0]), + install=( + LSPKernelSpecInstallApp, + LSPKernelSpecInstallApp.description.splitlines()[0], + ), ) class LSPApp(Application): """Dummy app wrapping argparse""" - name = 'jupyter-lsp' + + name = "jupyter-lsp" subcommands = dict( kernelspec=(LSPKernelSpecApp, LSPKernelSpecApp.description.splitlines()[0]), ) + main = launch_instance = LSPApp.launch_instance -if __name__ == '__main__': +if __name__ == "__main__": main() diff --git a/py_src/jupyter_lsp/session.py b/py_src/jupyter_lsp/session.py index b3925645f..f40ad7ffa 100644 --- a/py_src/jupyter_lsp/session.py +++ b/py_src/jupyter_lsp/session.py @@ -11,7 +11,7 @@ from tornado.ioloop import IOLoop from tornado.queues import Queue from tornado.websocket import WebSocketHandler -from traitlets import Bunch, Instance, Set, Unicode, UseEnum, observe, Any +from traitlets import Any, Bunch, Instance, Set, Unicode, UseEnum, observe from traitlets.config import LoggingConfigurable from . import stdio @@ -43,7 +43,7 @@ class LanguageServerSession(LoggingConfigurable): Queue, help="a queue for string message to the server", allow_none=True ) handlers = Set( - trait=Any(), # Instance(WebSocketHandler), + trait=Any(), # Instance(WebSocketHandler), default_value=[], help="the currently subscribed websockets", ) diff --git a/requirements/atest.yml b/requirements/atest.yml index 4a756704e..cac33b56d 100644 --- a/requirements/atest.yml +++ b/requirements/atest.yml @@ -6,6 +6,6 @@ channels: dependencies: - robotframework-seleniumlibrary - - robotframework <3.2 + - robotframework >=3.2 - firefox - geckodriver diff --git a/requirements/dev.txt b/requirements/dev.txt index fa0200d87..a9d861883 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -5,4 +5,4 @@ pyls-isort pyls-mypy pytest-cov ruamel.yaml -robotframework-lint +robotframework-lint >=1.1 diff --git a/requirements/lint.yml b/requirements/lint.yml index 536379361..cf48d6034 100644 --- a/requirements/lint.yml +++ b/requirements/lint.yml @@ -9,4 +9,4 @@ dependencies: - isort - mypy - robotframework-lint - - robotframework <3.2 + - robotframework >=3.2 From ac34763a1399d3358e5ff61a2ed4a2ca070a4804 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Fri, 5 Jun 2020 20:08:31 -0400 Subject: [PATCH 11/82] more requirements --- ci/env-test.yml.in | 2 +- requirements/lint.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/env-test.yml.in b/ci/env-test.yml.in index 0493e39c2..938a1dbc0 100644 --- a/ci/env-test.yml.in +++ b/ci/env-test.yml.in @@ -30,4 +30,4 @@ dependencies: - firefox - geckodriver - robotframework-seleniumlibrary - - robotframework <3.2 + - robotframework >=3.2 diff --git a/requirements/lint.yml b/requirements/lint.yml index cf48d6034..c9af69a7e 100644 --- a/requirements/lint.yml +++ b/requirements/lint.yml @@ -8,5 +8,5 @@ dependencies: - black - isort - mypy - - robotframework-lint + - robotframework-lint >=1.1 - robotframework >=3.2 From 2c4fbc7ba4c37d058b69ec8c72350918f59f1914 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Fri, 5 Jun 2020 20:31:44 -0400 Subject: [PATCH 12/82] linting --- binder/environment.yml | 2 +- docs/rtd.yml | 2 +- py_src/jupyter_lsp/handlers.py | 5 ++++- py_src/jupyter_lsp/kernel/handlers.py | 4 +++- py_src/jupyter_lsp/kernel/install.py | 7 ++++--- py_src/jupyter_lsp/kernel/kernel.py | 7 ++----- py_src/jupyter_lsp/kernel/manager.py | 1 - py_src/jupyter_lsp/session.py | 6 +++--- py_src/jupyter_lsp/types.py | 16 ++++++++++++++++ setup.cfg | 3 +++ 10 files changed, 37 insertions(+), 16 deletions(-) diff --git a/binder/environment.yml b/binder/environment.yml index 9758d6fa5..c838152a7 100644 --- a/binder/environment.yml +++ b/binder/environment.yml @@ -10,7 +10,7 @@ dependencies: - jupyterlab >=2,<3.0.0a0 - notebook >=4.3.1 # build dependencies - - nodejs + - nodejs >=10,<14 # for python language server (and development) - black - flake8 >=3.5 diff --git a/docs/rtd.yml b/docs/rtd.yml index 1deb274c6..8eb831988 100644 --- a/docs/rtd.yml +++ b/docs/rtd.yml @@ -2,7 +2,7 @@ name: jupyterlab-lsp-docs dependencies: - - nodejs + - nodejs >=10,<14 - pip - python >=3.8,<3.9.0a0 - pip: diff --git a/py_src/jupyter_lsp/handlers.py b/py_src/jupyter_lsp/handlers.py index 1a79d4162..7be9bfcbf 100644 --- a/py_src/jupyter_lsp/handlers.py +++ b/py_src/jupyter_lsp/handlers.py @@ -6,6 +6,7 @@ from notebook.base.zmqhandlers import WebSocketHandler, WebSocketMixin from notebook.utils import url_path_join as ujoin +from .types import LangaugeServerClientAPI from .manager import LanguageServerManager from .schema import SERVERS_RESPONSE @@ -17,7 +18,9 @@ def initialize(self, manager: LanguageServerManager): self.manager = manager -class LanguageServerWebSocketHandler(WebSocketMixin, WebSocketHandler, BaseHandler): +class LanguageServerWebSocketHandler( + WebSocketMixin, WebSocketHandler, BaseHandler, LangaugeServerClientAPI +): """ Setup tornado websocket to route to language server sessions """ diff --git a/py_src/jupyter_lsp/kernel/handlers.py b/py_src/jupyter_lsp/kernel/handlers.py index d889e1c23..b9bb1c3cb 100644 --- a/py_src/jupyter_lsp/kernel/handlers.py +++ b/py_src/jupyter_lsp/kernel/handlers.py @@ -2,8 +2,10 @@ from tornado.ioloop import IOLoop +from ..types import LangaugeServerClientAPI -class CommHandler: + +class CommHandler(LangaugeServerClientAPI): """ Jupyter Kernel Comm-based transport that imitates the tornado websocket handler """ diff --git a/py_src/jupyter_lsp/kernel/install.py b/py_src/jupyter_lsp/kernel/install.py index c0204dd38..dc5b373c9 100644 --- a/py_src/jupyter_lsp/kernel/install.py +++ b/py_src/jupyter_lsp/kernel/install.py @@ -5,7 +5,6 @@ """ -import errno import json import os import shutil @@ -100,14 +99,16 @@ def install( Whether to do a user-only install, or system-wide. kernel_name: str, optional Specify a name for the kernelspec. - This is needed for having multiple IPython kernels for different environments. + This is needed for having multiple IPython kernels for different + environments. display_name: str, optional Specify the display name for the kernelspec profile: str, optional Specify a custom profile to be loaded by the kernel. prefix: str, optional Specify an install prefix for the kernelspec. - This is needed to install into a non-default location, such as a conda/virtual-env. + This is needed to install into a non-default location, such as a + conda/virtual-env. Returns ------- diff --git a/py_src/jupyter_lsp/kernel/kernel.py b/py_src/jupyter_lsp/kernel/kernel.py index a8f7c5a71..f3da03ee3 100644 --- a/py_src/jupyter_lsp/kernel/kernel.py +++ b/py_src/jupyter_lsp/kernel/kernel.py @@ -1,11 +1,8 @@ """ A Jupyter Kernel wrapper for your language servers """ import json -import re -import uuid -from collections import OrderedDict from pathlib import Path -from typing import Dict, List, Text +from typing import Dict, Text import traitlets from ipykernel.ipkernel import IPythonKernel @@ -36,7 +33,7 @@ class LanguageServerKernel(IPythonKernel): language = LANGUAGE_INFO["language"] # type: Text language_version = LANGUAGE_INFO["version"] # type: Text language_info = LANGUAGE_INFO # type: Dict - banner = "Jupyter Language Server Kernel ".format(__version__) # type: Text + banner = "Jupyter Language Server Kernel {}".format(__version__) # type: Text help_links = [ { "text": "Language Server Protocol", diff --git a/py_src/jupyter_lsp/kernel/manager.py b/py_src/jupyter_lsp/kernel/manager.py index e76b737d6..d18083e45 100644 --- a/py_src/jupyter_lsp/kernel/manager.py +++ b/py_src/jupyter_lsp/kernel/manager.py @@ -1,5 +1,4 @@ import traitlets -from ipykernel.comm import Comm from ..manager import LanguageServerManager from ..schema import SERVERS_RESPONSE diff --git a/py_src/jupyter_lsp/session.py b/py_src/jupyter_lsp/session.py index f40ad7ffa..d0e966418 100644 --- a/py_src/jupyter_lsp/session.py +++ b/py_src/jupyter_lsp/session.py @@ -11,13 +11,13 @@ from tornado.ioloop import IOLoop from tornado.queues import Queue from tornado.websocket import WebSocketHandler -from traitlets import Any, Bunch, Instance, Set, Unicode, UseEnum, observe +from traitlets import Bunch, Instance, Set, Unicode, UseEnum, observe from traitlets.config import LoggingConfigurable from . import stdio from .schema import LANGUAGE_SERVER_SPEC from .trait_types import Schema -from .types import SessionStatus +from .types import LangaugeServerClientAPI, SessionStatus # these are not desirable to publish to the frontend SKIP_JSON_SPEC = ["argv", "debug_argv", "env"] @@ -43,7 +43,7 @@ class LanguageServerSession(LoggingConfigurable): Queue, help="a queue for string message to the server", allow_none=True ) handlers = Set( - trait=Any(), # Instance(WebSocketHandler), + trait=Instance(LangaugeServerClientAPI), default_value=[], help="the currently subscribed websockets", ) diff --git a/py_src/jupyter_lsp/types.py b/py_src/jupyter_lsp/types.py index dbaf77cbe..343c16deb 100644 --- a/py_src/jupyter_lsp/types.py +++ b/py_src/jupyter_lsp/types.py @@ -3,6 +3,7 @@ import asyncio import enum import json +import logging import pathlib import re import shutil @@ -262,5 +263,20 @@ def _default_node_roots(self): return roots +class LangaugeServerClientAPI: + """ A base class for a connection to a Language Server Protocol Client + """ + + language_server = None # type: str + manager = None # type: LanguageServerManagerAPI + log = None # type: logging.Logger + + async def on_message(self, message) -> None: + raise NotImplementedError() + + def write_message(self, message) -> None: + raise NotImplementedError() + + # Gotta be down here so it can by typed... really should have a IL SpecMaker = Callable[[LanguageServerManagerAPI], KeyedLanguageServerSpecs] diff --git a/setup.cfg b/setup.cfg index 7e8b64234..2e4a4a5f2 100644 --- a/setup.cfg +++ b/setup.cfg @@ -140,3 +140,6 @@ ignore_missing_imports = True [mypy-ipykernel.*] ignore_missing_imports = True + +[mypy-jupyter_client.*] +ignore_missing_imports = True From e1e737f6aa2023a33796a452d11c34f624b04ade Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Fri, 5 Jun 2020 20:35:13 -0400 Subject: [PATCH 13/82] linting --- py_src/jupyter_lsp/handlers.py | 2 +- py_src/jupyter_lsp/kernel/handlers.py | 5 +++-- py_src/jupyter_lsp/session.py | 1 - py_src/jupyter_lsp/types.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/py_src/jupyter_lsp/handlers.py b/py_src/jupyter_lsp/handlers.py index 7be9bfcbf..b3e92f487 100644 --- a/py_src/jupyter_lsp/handlers.py +++ b/py_src/jupyter_lsp/handlers.py @@ -6,9 +6,9 @@ from notebook.base.zmqhandlers import WebSocketHandler, WebSocketMixin from notebook.utils import url_path_join as ujoin -from .types import LangaugeServerClientAPI from .manager import LanguageServerManager from .schema import SERVERS_RESPONSE +from .types import LangaugeServerClientAPI class BaseHandler(IPythonHandler): diff --git a/py_src/jupyter_lsp/kernel/handlers.py b/py_src/jupyter_lsp/kernel/handlers.py index b9bb1c3cb..c8bae6639 100644 --- a/py_src/jupyter_lsp/kernel/handlers.py +++ b/py_src/jupyter_lsp/kernel/handlers.py @@ -1,5 +1,6 @@ import json +from ipykernel.comm import Comm from tornado.ioloop import IOLoop from ..types import LangaugeServerClientAPI @@ -9,8 +10,8 @@ class CommHandler(LangaugeServerClientAPI): """ Jupyter Kernel Comm-based transport that imitates the tornado websocket handler """ - comm = None - subscribed = None + comm = None # type: Comm + subscribed = False def __init__(self, language_server, comm, manager): self.language_server = language_server diff --git a/py_src/jupyter_lsp/session.py b/py_src/jupyter_lsp/session.py index d0e966418..630d4cfd8 100644 --- a/py_src/jupyter_lsp/session.py +++ b/py_src/jupyter_lsp/session.py @@ -10,7 +10,6 @@ from tornado.ioloop import IOLoop from tornado.queues import Queue -from tornado.websocket import WebSocketHandler from traitlets import Bunch, Instance, Set, Unicode, UseEnum, observe from traitlets.config import LoggingConfigurable diff --git a/py_src/jupyter_lsp/types.py b/py_src/jupyter_lsp/types.py index 343c16deb..90c5d8371 100644 --- a/py_src/jupyter_lsp/types.py +++ b/py_src/jupyter_lsp/types.py @@ -267,7 +267,7 @@ class LangaugeServerClientAPI: """ A base class for a connection to a Language Server Protocol Client """ - language_server = None # type: str + language_server = None # type: Optional[Text] manager = None # type: LanguageServerManagerAPI log = None # type: logging.Logger From f5af9b5233159891ebd98f4baf4d6519b22ef6fb Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Fri, 5 Jun 2020 21:12:30 -0400 Subject: [PATCH 14/82] test kernel install --- py_src/jupyter_lsp/kernel/__main__.py | 6 +++++ py_src/jupyter_lsp/kernel/install.py | 18 ++++++------- .../jupyter_lsp/tests/test_kernel_install.py | 25 +++++++++++++++++++ 3 files changed, 38 insertions(+), 11 deletions(-) create mode 100644 py_src/jupyter_lsp/tests/test_kernel_install.py diff --git a/py_src/jupyter_lsp/kernel/__main__.py b/py_src/jupyter_lsp/kernel/__main__.py index 58944998e..a744ef9ca 100644 --- a/py_src/jupyter_lsp/kernel/__main__.py +++ b/py_src/jupyter_lsp/kernel/__main__.py @@ -1,3 +1,9 @@ +""" Entry point for kernel + + it may be neccessary to make a ilsp_kernel_launcher.py because of PYTHONPATH + madness +""" +# pragma: no cover from .kernel import launch if __name__ == "__main__": diff --git a/py_src/jupyter_lsp/kernel/install.py b/py_src/jupyter_lsp/kernel/install.py index dc5b373c9..c558fc4ce 100644 --- a/py_src/jupyter_lsp/kernel/install.py +++ b/py_src/jupyter_lsp/kernel/install.py @@ -16,18 +16,19 @@ pjoin = os.path.join KERNEL_NAME = "jupyter-lsp-kernel" +DISPLAY_NAME = "ILSP" # path to kernelspec resources RESOURCES = pjoin(os.path.dirname(__file__), "resources") -def make_ipkernel_cmd( +def make_ilsp_cmd( mod="jupyter_lsp.kernel", executable=None, extra_arguments=None, **kw ): - """Build Popen command list for launching an IPython kernel. + """Build Popen command list for launching an ILSP kernel. Parameters ---------- - mod : str, optional (default 'ipykernel') + mod : str, optional (default 'ilsp') A string of a module whose __main__ starts an Language Server kernel executable : str, optional (default sys.executable) The Python executable to use for the kernel process. @@ -49,8 +50,8 @@ def make_ipkernel_cmd( def get_kernel_dict(extra_arguments=None): """Construct dict for kernel.json""" return { - "argv": make_ipkernel_cmd(extra_arguments=extra_arguments), - "display_name": "Language Server", + "argv": make_ilsp_cmd(extra_arguments=extra_arguments), + "display_name": DISPLAY_NAME, "language": "lsp", } @@ -85,7 +86,6 @@ def install( kernel_name=KERNEL_NAME, display_name=None, prefix=None, - profile=None, ): """Install the Language Server kernelspec for Jupyter @@ -114,6 +114,7 @@ def install( The path where the kernelspec was installed. """ + extra_arguments = None if kernel_spec_manager is None: kernel_spec_manager = KernelSpecManager() @@ -124,11 +125,6 @@ def install( overrides = {} if display_name: overrides["display_name"] = display_name - if profile: - extra_arguments = ["--profile", profile] - if not display_name: - # add the profile to the default display name - overrides["display_name"] = "Language Server [profile=%s]" % (profile) else: extra_arguments = None path = write_kernel_spec(overrides=overrides, extra_arguments=extra_arguments) diff --git a/py_src/jupyter_lsp/tests/test_kernel_install.py b/py_src/jupyter_lsp/tests/test_kernel_install.py new file mode 100644 index 000000000..50900bc12 --- /dev/null +++ b/py_src/jupyter_lsp/tests/test_kernel_install.py @@ -0,0 +1,25 @@ +import json + +import pytest + +from jupyter_lsp.kernel.install import DISPLAY_NAME, KERNEL_NAME, install + +CUSTOM_NAME = "custom-ilsp-2" + + +@pytest.mark.parametrize( + "kernel_name,display_name,expect_kernel_name,expect_display_name", + [ + [None, None, KERNEL_NAME, DISPLAY_NAME], + [None, "Foo", KERNEL_NAME, "Foo"], + [CUSTOM_NAME, None, CUSTOM_NAME, CUSTOM_NAME], + ], +) +def test_kernel_install( + kernel_name, display_name, expect_kernel_name, expect_display_name, tmp_path +): + install(prefix=tmp_path, kernel_name=kernel_name, display_name=display_name) + spec = tmp_path / "share/jupyter/kernels/{}/kernel.json".format(expect_kernel_name) + assert spec.exists() + spec_json = json.loads(spec.read_text()) + assert spec_json["display_name"] == expect_display_name, spec_json From a7a1ac1c18d89591f6b46482c9e52550a6612754 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Fri, 5 Jun 2020 23:46:55 -0400 Subject: [PATCH 15/82] fix up python unit tests --- .prettierignore | 1 + py_src/jupyter_lsp/kernel/__main__.py | 5 +- py_src/jupyter_lsp/kernel/handlers.py | 44 ++++++------- py_src/jupyter_lsp/kernel/install.py | 12 ++-- py_src/jupyter_lsp/kernel/kernel.py | 7 ++- py_src/jupyter_lsp/kernel/manager.py | 23 ++----- py_src/jupyter_lsp/lspapp.py | 43 +++++++++++-- py_src/jupyter_lsp/tests/conftest.py | 61 +++++++++++++++---- py_src/jupyter_lsp/tests/test_app.py | 7 +++ py_src/jupyter_lsp/tests/test_kernel.py | 54 ++++++++++++++++ .../jupyter_lsp/tests/test_kernel_install.py | 25 -------- py_src/jupyter_lsp/types.py | 7 ++- setup.cfg | 1 + 13 files changed, 195 insertions(+), 95 deletions(-) create mode 100644 py_src/jupyter_lsp/tests/test_app.py create mode 100644 py_src/jupyter_lsp/tests/test_kernel.py delete mode 100644 py_src/jupyter_lsp/tests/test_kernel_install.py diff --git a/.prettierignore b/.prettierignore index a89885ab6..621588973 100644 --- a/.prettierignore +++ b/.prettierignore @@ -24,6 +24,7 @@ envs examples/app/build examples/app/schemas examples/app/themes +htmlcov jupyterlab/geckodriver jupyterlab/schemas jupyterlab/staging/index.js diff --git a/py_src/jupyter_lsp/kernel/__main__.py b/py_src/jupyter_lsp/kernel/__main__.py index a744ef9ca..1a4e695ec 100644 --- a/py_src/jupyter_lsp/kernel/__main__.py +++ b/py_src/jupyter_lsp/kernel/__main__.py @@ -3,8 +3,7 @@ it may be neccessary to make a ilsp_kernel_launcher.py because of PYTHONPATH madness """ -# pragma: no cover -from .kernel import launch +from .kernel import launch # pragma: no cover -if __name__ == "__main__": +if __name__ == "__main__": # pragma: no cover launch() diff --git a/py_src/jupyter_lsp/kernel/handlers.py b/py_src/jupyter_lsp/kernel/handlers.py index c8bae6639..2cc939b3e 100644 --- a/py_src/jupyter_lsp/kernel/handlers.py +++ b/py_src/jupyter_lsp/kernel/handlers.py @@ -11,37 +11,39 @@ class CommHandler(LangaugeServerClientAPI): """ comm = None # type: Comm - subscribed = False - def __init__(self, language_server, comm, manager): - self.language_server = language_server - self.comm = comm + def initialize(self, manager): self.manager = manager - self.subscribed = False - comm.on_msg(self.on_message_sync) - self.log.error("[{}] on_msg installed".format(self.language_server)) + self.comm.on_msg(self.on_message_sync) + + def open(self, language_server): + self.language_server = language_server + self.manager.subscribe(self) + self.log.debug("[{}] Opened a handler".format(self.language_server)) + + def on_close(self): + self.manager.unsubscribe(self) + self.log.debug("[{}] Closed a handler".format(self.language_server)) @property def log(self): return self.manager.log - def on_message_sync(self, message): + def on_message_sync(self, message): # pragma: no cover """ shim to put the message handler on the event loop """ IOLoop.current().add_callback(self.on_message, message) async def on_message(self, message): - self.log.error("[{}] Got a message".format(self.language_server)) - if not self.subscribed: - self.manager.subscribe(self) - self.subscribed = True - await self.manager.on_client_message( - json.dumps(message["content"]["data"]), self - ) - self.log.error("[{}] Finished handling message".format(self.language_server)) - - def write_message(self, message: str): - self.log.error( - "[{}] Sending a message: {}".format(self.language_server, message) - ) + self.log.debug("[{}] Got a message".format(self.language_server)) + + # nb: deal with legacy json for now + message_data = message + if isinstance(message, dict): # pragma: no cover + message_data = json.dumps(message["content"]["data"]) + + await self.manager.on_client_message(message_data, self) + self.log.debug("[{}] Finished handling message".format(self.language_server)) + + def write_message(self, message: str): # pragma: no cover self.comm.send(json.loads(message)) diff --git a/py_src/jupyter_lsp/kernel/install.py b/py_src/jupyter_lsp/kernel/install.py index c558fc4ce..32ce5a305 100644 --- a/py_src/jupyter_lsp/kernel/install.py +++ b/py_src/jupyter_lsp/kernel/install.py @@ -16,19 +16,17 @@ pjoin = os.path.join KERNEL_NAME = "jupyter-lsp-kernel" -DISPLAY_NAME = "ILSP" +DISPLAY_NAME = "Language Server Protocol" # path to kernelspec resources RESOURCES = pjoin(os.path.dirname(__file__), "resources") -def make_ilsp_cmd( - mod="jupyter_lsp.kernel", executable=None, extra_arguments=None, **kw -): - """Build Popen command list for launching an ILSP kernel. +def make_lsp_cmd(mod="jupyter_lsp.kernel", executable=None, extra_arguments=None, **kw): + """Build Popen command list for launching an Language Server Protocol kernel. Parameters ---------- - mod : str, optional (default 'ilsp') + mod : str, optional (default 'jupyter_lsp.kernel') A string of a module whose __main__ starts an Language Server kernel executable : str, optional (default sys.executable) The Python executable to use for the kernel process. @@ -50,7 +48,7 @@ def make_ilsp_cmd( def get_kernel_dict(extra_arguments=None): """Construct dict for kernel.json""" return { - "argv": make_ilsp_cmd(extra_arguments=extra_arguments), + "argv": make_lsp_cmd(extra_arguments=extra_arguments), "display_name": DISPLAY_NAME, "language": "lsp", } diff --git a/py_src/jupyter_lsp/kernel/kernel.py b/py_src/jupyter_lsp/kernel/kernel.py index f3da03ee3..a7df26c19 100644 --- a/py_src/jupyter_lsp/kernel/kernel.py +++ b/py_src/jupyter_lsp/kernel/kernel.py @@ -1,6 +1,7 @@ """ A Jupyter Kernel wrapper for your language servers """ import json +import logging from pathlib import Path from typing import Dict, Text @@ -50,15 +51,17 @@ def _default_language_server_manager(self): def __init__(self, **kwargs): super().__init__(**kwargs) + if self.log is None: + self.log = logging.getLogger(__name__) self.log.error("Initializing Language Server Manager...") self.language_server_manager.initialize() -def launch(): +def launch(): # pragma: no cover """ The main kernel entrypoint which uses the App singleton """ IPKernelApp.launch_instance(kernel_class=LanguageServerKernel) -if __name__ == "__main__": +if __name__ == "__main__": # pragma: no cover launch() diff --git a/py_src/jupyter_lsp/kernel/manager.py b/py_src/jupyter_lsp/kernel/manager.py index d18083e45..3f36cdb2f 100644 --- a/py_src/jupyter_lsp/kernel/manager.py +++ b/py_src/jupyter_lsp/kernel/manager.py @@ -1,5 +1,3 @@ -import traitlets - from ..manager import LanguageServerManager from ..schema import SERVERS_RESPONSE from .handlers import CommHandler @@ -9,12 +7,6 @@ class CommLanguageServerManager(LanguageServerManager): CONTROL_COMM_TARGET = "jupyter.lsp.control" LANGUAGE_SERVER_COMM_TARGET = "jupyter.lsp.language_server" - _lsp_comms = traitlets.Dict() - - @traitlets.default("_lsp_comms") - def _default_lsp_comms(self): - return {} - @property def log(self): return self.parent.log @@ -34,16 +26,9 @@ def init_comm_targets(self): self.comm_manager.register_target( self.LANGUAGE_SERVER_COMM_TARGET, self.on_language_server_comm_opened ) - self.log.error( - "comm targets registered: {}".format( - [self.CONTROL_COMM_TARGET, self.LANGUAGE_SERVER_COMM_TARGET] - ) - ) def on_control_comm_opened(self, comm, comm_msg): - self.log.error("[{}] control comm opened: {}".format(comm, comm_msg)) self.send_status(comm) - # nb: when should we update? def send_status(self, comm): response = { @@ -62,9 +47,9 @@ def send_status(self, comm): comm.send(response) def on_language_server_comm_opened(self, comm, comm_msg): - self.log.error("[{}] language server comm requested: {}".format(comm, comm_msg)) language_server = comm_msg["metadata"]["language_server"] - self._lsp_comms[language_server] = CommHandler( - language_server=language_server, comm=comm, manager=self - ) + handler = CommHandler() + handler.comm = comm + handler.initialize(self) + handler.open(language_server) diff --git a/py_src/jupyter_lsp/lspapp.py b/py_src/jupyter_lsp/lspapp.py index a21f65454..f4daaf372 100644 --- a/py_src/jupyter_lsp/lspapp.py +++ b/py_src/jupyter_lsp/lspapp.py @@ -1,20 +1,55 @@ import sys +from pathlib import Path +from typing import Any -from traitlets import Bool +from traitlets import Bool, Instance, Unicode, Union from traitlets.config import Application class LSPKernelSpecInstallApp(Application): description = """Install the kernelspec""" + prefix = Union( + [Unicode(), Instance(Path)], + default_value=None, + help="Install into given path prefix", + config=True, + allow_none=True, + ) + sys_prefix = Bool( - default_value=True, help="Install into the current environment", config=True + default_value=True, help="Install into the current environment", config=True, + ) + + display_name = Unicode( + default_value=None, help="Custom display name", config=True, allow_none=True + ) + + kernel_name = Unicode( + default_value=None, + help="Custom kernel name (e.g. kernel resource path)", + config=True, + allow_none=True, ) def start(self): from .kernel.install import install - dest = install(prefix=sys.prefix) + kwargs = {} # type: Any + + if self.prefix: + kwargs["prefix"] = self.prefix + elif self.sys_prefix: # pragma: no covers + kwargs["prefix"] = sys.prefix + + if self.display_name: + kwargs["display_name"] = self.display_name + + if self.kernel_name: + kwargs["kernel_name"] = self.kernel_name + + dest = install(**kwargs) + print("installed kernelspec to", dest) @@ -39,5 +74,5 @@ class LSPApp(Application): main = launch_instance = LSPApp.launch_instance -if __name__ == "__main__": +if __name__ == "__main__": # pragma: no cover main() diff --git a/py_src/jupyter_lsp/tests/conftest.py b/py_src/jupyter_lsp/tests/conftest.py index a0da2d030..34a7a2af5 100644 --- a/py_src/jupyter_lsp/tests/conftest.py +++ b/py_src/jupyter_lsp/tests/conftest.py @@ -1,7 +1,7 @@ import json import pathlib import shutil -from typing import Text +from typing import Any, Text from notebook.notebookapp import NotebookApp from pytest import fixture @@ -10,6 +10,10 @@ # local imports from jupyter_lsp import LanguageServerManager from jupyter_lsp.handlers import LanguageServersHandler, LanguageServerWebSocketHandler +from jupyter_lsp.kernel.handlers import CommHandler +from jupyter_lsp.kernel.kernel import LanguageServerKernel +from jupyter_lsp.kernel.manager import CommLanguageServerManager +from jupyter_lsp.types import LanguageServerManagerAPI # these should always be available in a test environment () KNOWN_SERVERS = [ @@ -33,9 +37,13 @@ KNOWN_UNKNOWN_SERVERS = ["foo-language-server"] -@fixture -def manager() -> LanguageServerManager: - return LanguageServerManager() +@fixture(params=[LanguageServerManager, CommLanguageServerManager]) +def manager(request) -> LanguageServerManagerAPI: + kwargs = {} # type: Any + if request.param == CommLanguageServerManager: + kernel = MockKernel() + kwargs.update(parent=kernel) + return request.param(**kwargs) @fixture(params=sorted(KNOWN_SERVERS)) @@ -50,10 +58,16 @@ def known_unknown_server(request): @fixture def handlers(manager): - ws_handler = MockWebsocketHandler() + if isinstance(manager, CommLanguageServerManager): + ws_handler = MockCommHandler() + ws_handler.comm = MockComm() + else: + ws_handler = MockWebsocketHandler() ws_handler.initialize(manager) + handler = MockHandler() handler.initialize(manager) + return handler, ws_handler @@ -80,22 +94,33 @@ def app(): return MockNotebookApp() +@fixture +def mock_comm(): + return MockComm() + + # mocks -class MockWebsocketHandler(LanguageServerWebSocketHandler): +class MockClientMixin: _messages_wrote = None # type: Queue - def __init__(self): - pass - - def initialize(self, manager): - super().initialize(manager) + def initialize(self, manager, *args, **kwargs): + super().initialize(manager, *args, **kwargs) self._messages_wrote = Queue() def write_message(self, message: Text) -> None: - self.log.warning("write_message %s", message) + getattr(self, "log").warning("write_message %s", message) self._messages_wrote.put_nowait(message) +class MockWebsocketHandler(MockClientMixin, LanguageServerWebSocketHandler): + def __init__(self): + pass + + +class MockCommHandler(MockClientMixin, CommHandler): + pass + + class MockHandler(LanguageServersHandler): _payload = None @@ -108,3 +133,15 @@ def finish(self, payload): class MockNotebookApp(NotebookApp): pass + + +class MockKernel(LanguageServerKernel): + pass + + +class MockComm: + def on_msg(self, fn): + self._fn = fn + + def send(self, msg): + self._sent = getattr(self, "_sent", []) + [msg] diff --git a/py_src/jupyter_lsp/tests/test_app.py b/py_src/jupyter_lsp/tests/test_app.py new file mode 100644 index 000000000..39b21d907 --- /dev/null +++ b/py_src/jupyter_lsp/tests/test_app.py @@ -0,0 +1,7 @@ +from jupyter_lsp.lspapp import LSPApp, LSPKernelSpecApp + + +def test_app(): + # nb: probably test install? + apps = LSPApp(), LSPKernelSpecApp() + assert apps diff --git a/py_src/jupyter_lsp/tests/test_kernel.py b/py_src/jupyter_lsp/tests/test_kernel.py new file mode 100644 index 000000000..df17d20d6 --- /dev/null +++ b/py_src/jupyter_lsp/tests/test_kernel.py @@ -0,0 +1,54 @@ +import json + +import pytest + +from jupyter_lsp.kernel.install import DISPLAY_NAME, KERNEL_NAME +from jupyter_lsp.kernel.manager import CommLanguageServerManager +from jupyter_lsp.lspapp import LSPKernelSpecInstallApp + +CUSTOM_NAME = "custom-ilsp-2" + + +@pytest.mark.parametrize( + "kernel_name,display_name,expect_kernel_name,expect_display_name", + [ + [None, None, KERNEL_NAME, DISPLAY_NAME], + [None, "Foo", KERNEL_NAME, "Foo"], + [CUSTOM_NAME, None, CUSTOM_NAME, CUSTOM_NAME], + ], +) +def test_kernel_install( + kernel_name, display_name, expect_kernel_name, expect_display_name, tmp_path +): + app = LSPKernelSpecInstallApp( + prefix=tmp_path, kernel_name=kernel_name, display_name=display_name + ) + app.start() + spec = tmp_path / "share/jupyter/kernels/{}/kernel.json".format(expect_kernel_name) + assert spec.exists() + spec_json = json.loads(spec.read_text()) + LSPKernelSpecInstallApp() + assert spec_json["display_name"] == expect_display_name, spec_json + + +@pytest.mark.asyncio +def test_kernel_manager_control_comm(handlers, mock_comm): + handler, ws_handler = handlers + manager = handler.manager + if not isinstance(manager, CommLanguageServerManager): + return + manager.initialize() + manager.on_control_comm_opened(mock_comm, None) + assert mock_comm._sent + + +@pytest.mark.asyncio +def test_kernel_manager_server_comm(handlers, mock_comm): + handler, ws_handler = handlers + manager = handler.manager + if not isinstance(manager, CommLanguageServerManager): + return + manager.initialize() + manager.on_language_server_comm_opened( + mock_comm, dict(metadata=dict(language_server="pyls")) + ) diff --git a/py_src/jupyter_lsp/tests/test_kernel_install.py b/py_src/jupyter_lsp/tests/test_kernel_install.py deleted file mode 100644 index 50900bc12..000000000 --- a/py_src/jupyter_lsp/tests/test_kernel_install.py +++ /dev/null @@ -1,25 +0,0 @@ -import json - -import pytest - -from jupyter_lsp.kernel.install import DISPLAY_NAME, KERNEL_NAME, install - -CUSTOM_NAME = "custom-ilsp-2" - - -@pytest.mark.parametrize( - "kernel_name,display_name,expect_kernel_name,expect_display_name", - [ - [None, None, KERNEL_NAME, DISPLAY_NAME], - [None, "Foo", KERNEL_NAME, "Foo"], - [CUSTOM_NAME, None, CUSTOM_NAME, CUSTOM_NAME], - ], -) -def test_kernel_install( - kernel_name, display_name, expect_kernel_name, expect_display_name, tmp_path -): - install(prefix=tmp_path, kernel_name=kernel_name, display_name=display_name) - spec = tmp_path / "share/jupyter/kernels/{}/kernel.json".format(expect_kernel_name) - assert spec.exists() - spec_json = json.loads(spec.read_text()) - assert spec_json["display_name"] == expect_display_name, spec_json diff --git a/py_src/jupyter_lsp/types.py b/py_src/jupyter_lsp/types.py index 90c5d8371..771bbf30b 100644 --- a/py_src/jupyter_lsp/types.py +++ b/py_src/jupyter_lsp/types.py @@ -271,10 +271,13 @@ class LangaugeServerClientAPI: manager = None # type: LanguageServerManagerAPI log = None # type: logging.Logger - async def on_message(self, message) -> None: + async def on_message(self, message) -> None: # pragma: no cover raise NotImplementedError() - def write_message(self, message) -> None: + def write_message(self, message) -> None: # pragma: no cover + raise NotImplementedError() + + def open(language_server) -> None: # pragma: no cover raise NotImplementedError() diff --git a/setup.cfg b/setup.cfg index 2e4a4a5f2..4e103d59b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -65,6 +65,7 @@ addopts = --pyargs jupyter_lsp --cov jupyter_lsp --cov-report term-missing:skip-covered + --cov-report html -p no:warnings --flake8 From 255c765ef01b60c85d7df2c4705f8969d54fdf47 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sat, 6 Jun 2020 09:51:51 -0400 Subject: [PATCH 16/82] rename comm connection --- packages/jupyterlab-lsp/src/comm/connection.ts | 6 +++--- packages/jupyterlab-lsp/src/connection_manager.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index e137338d9..58c3792d3 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -9,7 +9,7 @@ import { unregisterServerCapability, } from './server-capability-registration'; -export class CommConnection extends CommLSP implements ILSPConnection { +export class CommLSPConnection extends CommLSP implements ILSPConnection { protected _isConnected = false; protected _isInitialized = false; public serverCapabilities: LSP.ServerCapabilities; @@ -29,7 +29,7 @@ export class CommConnection extends CommLSP implements ILSPConnection { private closingManually = false; - constructor(options: CommConnection.IOptions) { + constructor(options: CommLSPConnection.IOptions) { super(options); this._rootUri = options.rootUri; this.initSignals(); @@ -554,7 +554,7 @@ export class CommConnection extends CommLSP implements ILSPConnection { } } -export namespace CommConnection { +export namespace CommLSPConnection { export interface IOptions extends ICommRPC.IOptions { rootUri: string; } diff --git a/packages/jupyterlab-lsp/src/connection_manager.ts b/packages/jupyterlab-lsp/src/connection_manager.ts index bee4d2d66..264d57ce4 100644 --- a/packages/jupyterlab-lsp/src/connection_manager.ts +++ b/packages/jupyterlab-lsp/src/connection_manager.ts @@ -9,7 +9,7 @@ import { ILanguageServerManager, ILSPConnection, } from './tokens'; -import { CommConnection } from './comm/connection'; +import { CommLSPConnection } from './comm/connection'; export interface IDocumentConnectionData { virtual_document: VirtualDocument; @@ -360,7 +360,7 @@ namespace Private { if (connection == null) { // const socket = new WebSocket(uris.socket); - const connection = new CommConnection({ comm, rootUri: uris.base }); + const connection = new CommLSPConnection({ comm, rootUri: uris.base }); // TODO: remove remaining unbounded users of connection.on // connection.setMaxListeners(999); _connections.set(language_server_id, connection); From 6aca26669a73b08ea804b35b71178aa1e1734816 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sat, 6 Jun 2020 10:04:24 -0400 Subject: [PATCH 17/82] start working on updating unit tests --- .../adapters/codemirror/cm_adapter.spec.ts | 5 +++-- .../src/adapters/codemirror/feature.spec.ts | 5 +++-- .../src/adapters/codemirror/testutils.ts | 21 ++++++++++++------- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/cm_adapter.spec.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/cm_adapter.spec.ts index e47cf937e..29c1a860b 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/cm_adapter.spec.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/cm_adapter.spec.ts @@ -1,6 +1,6 @@ import { expect } from 'chai'; import { CodeMirrorAdapter } from './cm_adapter'; -import { LSPConnection } from '../../connection'; + import { IJupyterLabComponentsManager, StatusMessage, @@ -9,6 +9,7 @@ import { IRootPosition } from '../../positioning'; import * as CodeMirror from 'codemirror'; import { CodeMirrorLSPFeature } from './feature'; import { FileEditorFeatureTestEnvironment } from './testutils'; +import { ILSPConnection } from '../../tokens'; describe('CodeMirrorAdapter', () => { let env: FileEditorFeatureTestEnvironment; @@ -18,7 +19,7 @@ describe('CodeMirrorAdapter', () => { describe('Works with VirtualFileEditor', () => { let dummy_components_manager: IJupyterLabComponentsManager; - let connection: LSPConnection; + let connection: ILSPConnection; it('updates on change', async () => { class UpdateReceivingFeature extends CodeMirrorLSPFeature { diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts index 0a21bfea3..e69221cd3 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts @@ -1,6 +1,6 @@ import { expect } from 'chai'; import { CodeMirrorAdapter } from './cm_adapter'; -import { LSPConnection } from '../../connection'; +// import { LSPConnection } from '../../connection'; import { IJupyterLabComponentsManager, StatusMessage, @@ -22,6 +22,7 @@ import { language_specific_overrides } from '../../magics/defaults'; import { foreign_code_extractors } from '../../extractors/defaults'; import { NotebookModel } from '@jupyterlab/notebook'; import { PageConfig } from '@jupyterlab/coreutils'; +import { ILSPConnection } from '../../tokens'; const js_fib_code = `function fib(n) { return n<2?n:fib(n-1)+fib(n-2); @@ -104,7 +105,7 @@ describe('Feature', () => { return this.apply_edit(workspaceEdit); } } - let connection: LSPConnection; + let connection: ILSPConnection; let dummy_components_manager: IJupyterLabComponentsManager; diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts index edad0e559..9ac4716ab 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts @@ -1,10 +1,10 @@ +import { UUID } from '@lumino/coreutils'; import { CodeMirrorEditor, CodeMirrorEditorFactory, } from '@jupyterlab/codemirror'; import { VirtualEditor } from '../../virtual/editor'; import { CodeMirrorLSPFeature, ILSPFeatureConstructor } from './feature'; -import { LSPConnection } from '../../connection'; import { CodeEditor } from '@jupyterlab/codeeditor'; import { VirtualFileEditor } from '../../virtual/editors/file_editor'; import { FreeTooltip } from '../jupyterlab/components/free_tooltip'; @@ -24,6 +24,9 @@ import { CodeMirrorAdapter } from './cm_adapter'; import { VirtualDocument } from '../../virtual/document'; import { LanguageServerManager } from '../../manager'; import { DocumentConnectionManager } from '../../connection_manager'; +import { ILSPConnection } from '../../tokens'; +import { CommLSPConnection } from '../../comm/connection'; +import { CommHandler } from '@jupyterlab/services/lib/kernel/comm'; interface IFeatureTestEnvironment { host: HTMLElement; @@ -32,13 +35,14 @@ interface IFeatureTestEnvironment { dispose(): void; } +export class MockComm extends CommHandler {} export class MockLanguageServerManager extends LanguageServerManager {} export abstract class FeatureTestEnvironment implements IFeatureTestEnvironment { host: HTMLElement; virtual_editor: VirtualEditor; - private connections: Map; + private connections: Map; protected constructor( public language: () => string, @@ -85,12 +89,13 @@ export abstract class FeatureTestEnvironment feature.is_registered = false; } - public create_dummy_connection() { - return new LSPConnection({ - languageId: this.language(), - serverUri: 'ws://localhost:8080', - rootUri: 'file:///unit-test', - }); + public create_dummy_connection(comm?: any) { + if (comm == null) { + comm = new MockComm('mock-target', UUID.uuid4(), null, () => { + // empty dispose + }); + } + return new CommLSPConnection({ comm, rootUri: 'file:///unit-test' }); } public create_dummy_components(): IJupyterLabComponentsManager { From 54de0951cf4171aba3d77ddda8bdd42e95720fea Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sat, 6 Jun 2020 10:05:57 -0400 Subject: [PATCH 18/82] disable lwsp-ws tests --- packages/lsp-ws-connection/package.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/lsp-ws-connection/package.json b/packages/lsp-ws-connection/package.json index cf2a81840..1592f64a1 100644 --- a/packages/lsp-ws-connection/package.json +++ b/packages/lsp-ws-connection/package.json @@ -10,9 +10,6 @@ ], "types": "lib/index.d.ts", "scripts": { - "test": "karma start", - "test-dev": "karma start --browsers Chrome --singleRun false --timeout 30000 --autoWatch", - "bundle": "npm pack .", "clean": "rimraf lib dist" }, "author": "Wylie Conlon", From 4024a314a3a2120e5b84318eceab69f0a7a2a05d Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sat, 6 Jun 2020 10:07:33 -0400 Subject: [PATCH 19/82] more import cleanup --- .../src/adapters/codemirror/feature.spec.ts | 1 - packages/jupyterlab-lsp/src/connection_manager.ts | 12 ------------ 2 files changed, 13 deletions(-) diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts index e69221cd3..86b774647 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts @@ -1,6 +1,5 @@ import { expect } from 'chai'; import { CodeMirrorAdapter } from './cm_adapter'; -// import { LSPConnection } from '../../connection'; import { IJupyterLabComponentsManager, StatusMessage, diff --git a/packages/jupyterlab-lsp/src/connection_manager.ts b/packages/jupyterlab-lsp/src/connection_manager.ts index 264d57ce4..ef4d01ccc 100644 --- a/packages/jupyterlab-lsp/src/connection_manager.ts +++ b/packages/jupyterlab-lsp/src/connection_manager.ts @@ -346,23 +346,11 @@ namespace Private { uris: DocumentConnectionManager.IURIs, onCreate: (connection: ILSPConnection) => void ): Promise { - // if (_promise == null) { - // // TODO: consider lazy-loading _only_ the modules that _must_ be webpacked - // // with custom shims, e.g. `fs` - // _promise = import( - // /* webpackChunkName: "jupyter-lsp-connection" */ './connection' - // ); - // } - - // const { LSPConnection } = await _promise; const comm = await _language_server_manager.getComm(language_server_id); let connection = _connections.get(language_server_id); if (connection == null) { - // const socket = new WebSocket(uris.socket); const connection = new CommLSPConnection({ comm, rootUri: uris.base }); - // TODO: remove remaining unbounded users of connection.on - // connection.setMaxListeners(999); _connections.set(language_server_id, connection); await connection.connect(null); onCreate(connection); From 9ef459d403fac2a716b3e7b02a52cbdddbc3ca0c Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sat, 6 Jun 2020 10:21:45 -0400 Subject: [PATCH 20/82] remove some more websocket details --- .../src/adapters/codemirror/testutils.ts | 6 ++++-- .../jupyterlab-lsp/src/connection_manager.ts | 16 +--------------- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts index 9ac4716ab..f9453485f 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts @@ -27,6 +27,7 @@ import { DocumentConnectionManager } from '../../connection_manager'; import { ILSPConnection } from '../../tokens'; import { CommLSPConnection } from '../../comm/connection'; import { CommHandler } from '@jupyterlab/services/lib/kernel/comm'; +import { ServiceManager } from '@jupyterlab/services'; interface IFeatureTestEnvironment { host: HTMLElement; @@ -35,6 +36,7 @@ interface IFeatureTestEnvironment { dispose(): void; } +export class MockServiceManager extends ServiceManager {} export class MockComm extends CommHandler {} export class MockLanguageServerManager extends LanguageServerManager {} @@ -89,7 +91,7 @@ export abstract class FeatureTestEnvironment feature.is_registered = false; } - public create_dummy_connection(comm?: any) { + public create_dummy_connection(comm?: CommHandler) { if (comm == null) { comm = new MockComm('mock-target', UUID.uuid4(), null, () => { // empty dispose @@ -143,7 +145,7 @@ export class FileEditorFeatureTestEnvironment extends FeatureTestEnvironment { this.language_server_manager = new MockLanguageServerManager({ // NB: FIX - serviceManager: null, + serviceManager: new MockServiceManager(), }); this.connection_manager = new DocumentConnectionManager({ language_server_manager: this.language_server_manager, diff --git a/packages/jupyterlab-lsp/src/connection_manager.ts b/packages/jupyterlab-lsp/src/connection_manager.ts index ef4d01ccc..4506792b2 100644 --- a/packages/jupyterlab-lsp/src/connection_manager.ts +++ b/packages/jupyterlab-lsp/src/connection_manager.ts @@ -288,7 +288,6 @@ export namespace DocumentConnectionManager { virtual_document: VirtualDocument, language: string ): IURIs { - const wsBase = PageConfig.getBaseUrl().replace(/^http/, 'ws'); const rootUri = PageConfig.getOption('rootUri'); const virtualDocumentsUri = PageConfig.getOption('virtualDocumentsUri'); @@ -296,33 +295,20 @@ export namespace DocumentConnectionManager { ? rootUri : virtualDocumentsUri; - const language_server_id = Private.getLanguageServerManager().getServerId({ - language, - }); - return { base: baseUri, document: URLExt.join(baseUri, virtual_document.uri), - server: URLExt.join('ws://jupyter-lsp', language), - socket: URLExt.join( - wsBase, - ILanguageServerManager.URL_NS, - 'ws', - language_server_id - ), }; } export interface IURIs { base: string; document: string; - server: string; - socket: string; } } /** - * Namespace primarily for language-keyed cache of LSPConnections + * Namespace primarily for language-keyed cache of `ILSPConnection`s */ namespace Private { const _connections: Map = new Map(); From 95a98888b5d4a73ae1f7ad1122bc81b0a1e84651 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sat, 6 Jun 2020 15:34:10 -0400 Subject: [PATCH 21/82] clean up some console junk --- packages/jupyterlab-lsp/src/comm/json-rpc.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/jupyterlab-lsp/src/comm/json-rpc.ts b/packages/jupyterlab-lsp/src/comm/json-rpc.ts index 984baa301..56451650c 100644 --- a/packages/jupyterlab-lsp/src/comm/json-rpc.ts +++ b/packages/jupyterlab-lsp/src/comm/json-rpc.ts @@ -70,7 +70,6 @@ export class CommRPC implements ICommRPC { const msg = { jsonrpc: this._jsonrpc, id, method, params }; - console.warn('sending', this.comm.commId, msg); this.comm.send(msg, null, null, true); if (noWait) { @@ -117,7 +116,6 @@ export class CommRPC implements ICommRPC { * Resolve a previously-requested method, or notify on the appropriate signal */ protected handleMessage(msg: ICommRPC.IIRPCCommMsg) { - console.warn('handle msg', msg); const { result, id, params, method } = msg.content .data as ICommRPC.TRPCData; @@ -156,7 +154,5 @@ export class CommRPC implements ICommRPC { return; } } - - console.warn('unhandled message', method); } } From df25806ae238d1364218c5a43a208f713a0a5127 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sat, 6 Jun 2020 15:35:55 -0400 Subject: [PATCH 22/82] remove more console junk --- packages/jupyterlab-lsp/src/comm/json-rpc.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/jupyterlab-lsp/src/comm/json-rpc.ts b/packages/jupyterlab-lsp/src/comm/json-rpc.ts index 56451650c..604ffb5b5 100644 --- a/packages/jupyterlab-lsp/src/comm/json-rpc.ts +++ b/packages/jupyterlab-lsp/src/comm/json-rpc.ts @@ -39,7 +39,6 @@ export class CommRPC implements ICommRPC { this._comm = comm; if (this._comm) { - console.warn('installing handleMessage', this._comm); this._comm.onMsg = this.handleMessage.bind(this); } this._commChanged.emit(void 0); From d0a84b3dab954838192a13572f2ffa5f9f57d24a Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sat, 6 Jun 2020 15:45:31 -0400 Subject: [PATCH 23/82] pre-defined service manager --- packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts index f9453485f..d9c680bf1 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts @@ -143,9 +143,10 @@ export class FileEditorFeatureTestEnvironment extends FeatureTestEnvironment { model, }); + const serviceManager = new MockServiceManager(); + this.language_server_manager = new MockLanguageServerManager({ - // NB: FIX - serviceManager: new MockServiceManager(), + serviceManager, }); this.connection_manager = new DocumentConnectionManager({ language_server_manager: this.language_server_manager, From cda85ef194b5ad679622326944edbe4f267efefd Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sat, 6 Jun 2020 16:33:04 -0400 Subject: [PATCH 24/82] restore historical notebook-based config, for now --- py_src/jupyter_lsp/kernel/manager.py | 34 ++++++++++++++++++++++++++++ setup.cfg | 3 +++ 2 files changed, 37 insertions(+) diff --git a/py_src/jupyter_lsp/kernel/manager.py b/py_src/jupyter_lsp/kernel/manager.py index 3f36cdb2f..68432fb03 100644 --- a/py_src/jupyter_lsp/kernel/manager.py +++ b/py_src/jupyter_lsp/kernel/manager.py @@ -1,3 +1,9 @@ +import os + +from jupyter_core.paths import jupyter_config_path +from notebook.services.config import ConfigManager +from traitlets import Instance, default + from ..manager import LanguageServerManager from ..schema import SERVERS_RESPONSE from .handlers import CommHandler @@ -7,6 +13,12 @@ class CommLanguageServerManager(LanguageServerManager): CONTROL_COMM_TARGET = "jupyter.lsp.control" LANGUAGE_SERVER_COMM_TARGET = "jupyter.lsp.language_server" + config_manager = Instance(ConfigManager) + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self._load_extra_config() + @property def log(self): return self.parent.log @@ -15,6 +27,28 @@ def log(self): def comm_manager(self): return self.parent.comm_manager + @default("config_manager") + def _default_config_manager(self): + """ load merged config from more jupyter_notebook_config.d files + re-uses notebook loading machinery to look through more locations + """ + manager = ConfigManager(read_config_path=jupyter_config_path() + [os.getcwd()]) + return manager + + def _load_extra_config(self): + """ imitate legacy behavior of being able to load from notebook server config + """ + from_config = ( + self.config_manager.get("jupyter_notebook_config").get( + "LanguageServerManager" + ) + or {} + ) + traits = self.trait_names() + for key, value in from_config.items(): + if key in traits: + setattr(self, key, value) + def initialize(self, *args, **kwargs): super().initialize(*args, **kwargs) self.init_comm_targets() diff --git a/setup.cfg b/setup.cfg index 4e103d59b..dd197273c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -144,3 +144,6 @@ ignore_missing_imports = True [mypy-jupyter_client.*] ignore_missing_imports = True + +[mypy-jupyter_core.*] +ignore_missing_imports = True From 9ed70bb10caec7d77889f17152799600dbfe3e5f Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sat, 6 Jun 2020 16:36:09 -0400 Subject: [PATCH 25/82] tweak coverage for config loading --- py_src/jupyter_lsp/kernel/manager.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/py_src/jupyter_lsp/kernel/manager.py b/py_src/jupyter_lsp/kernel/manager.py index 68432fb03..bfc6144ae 100644 --- a/py_src/jupyter_lsp/kernel/manager.py +++ b/py_src/jupyter_lsp/kernel/manager.py @@ -38,14 +38,11 @@ def _default_config_manager(self): def _load_extra_config(self): """ imitate legacy behavior of being able to load from notebook server config """ - from_config = ( - self.config_manager.get("jupyter_notebook_config").get( - "LanguageServerManager" - ) - or {} + from_config = self.config_manager.get("jupyter_notebook_config").get( + "LanguageServerManager" ) traits = self.trait_names() - for key, value in from_config.items(): + for key, value in (from_config or {}).items(): # pragma: no cover if key in traits: setattr(self, key, value) From 5f04011b6b7a2320e4b8696f245f888aba804dc0 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sat, 6 Jun 2020 21:06:55 -0400 Subject: [PATCH 26/82] add shadow stuff to kernel, more node root --- py_src/jupyter_lsp/kernel/kernel.py | 13 ++++++++++++- py_src/jupyter_lsp/kernel/manager.py | 2 +- py_src/jupyter_lsp/serverextension.py | 5 +++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/py_src/jupyter_lsp/kernel/kernel.py b/py_src/jupyter_lsp/kernel/kernel.py index a7df26c19..8ebfc97aa 100644 --- a/py_src/jupyter_lsp/kernel/kernel.py +++ b/py_src/jupyter_lsp/kernel/kernel.py @@ -2,6 +2,7 @@ """ import json import logging +import os from pathlib import Path from typing import Dict, Text @@ -10,6 +11,8 @@ from ipykernel.kernelapp import IPKernelApp from .._version import __version__ +from ..paths import normalized_uri +from ..virtual_documents_shadow import setup_shadow_filesystem from .manager import CommLanguageServerManager __all__ = ["LanguageServerKernel"] @@ -40,6 +43,10 @@ class LanguageServerKernel(IPythonKernel): "text": "Language Server Protocol", "url": "https://microsoft.github.io/language-server-protocol/", }, + { + "text": "Jupyter LSP Documentation", + "url": "https://jupyterlab-lsp.readthedocs.io", + }, ] language_server_manager = traitlets.Instance(CommLanguageServerManager) @@ -53,9 +60,13 @@ def __init__(self, **kwargs): super().__init__(**kwargs) if self.log is None: self.log = logging.getLogger(__name__) - self.log.error("Initializing Language Server Manager...") + self.log.info("Initializing Language Server Manager...") self.language_server_manager.initialize() + root_uri = normalized_uri(os.getcwd()) + virtual_documents_uri = root_uri + "/.virtual_documents" + setup_shadow_filesystem(virtual_documents_uri=virtual_documents_uri) + def launch(): # pragma: no cover """ The main kernel entrypoint which uses the App singleton diff --git a/py_src/jupyter_lsp/kernel/manager.py b/py_src/jupyter_lsp/kernel/manager.py index bfc6144ae..6860a7ea7 100644 --- a/py_src/jupyter_lsp/kernel/manager.py +++ b/py_src/jupyter_lsp/kernel/manager.py @@ -42,7 +42,7 @@ def _load_extra_config(self): "LanguageServerManager" ) traits = self.trait_names() - for key, value in (from_config or {}).items(): # pragma: no cover + for key, value in (from_config or {}).items(): # pragma: no cover if key in traits: setattr(self, key, value) diff --git a/py_src/jupyter_lsp/serverextension.py b/py_src/jupyter_lsp/serverextension.py index e39afbfb8..ba0db67ce 100644 --- a/py_src/jupyter_lsp/serverextension.py +++ b/py_src/jupyter_lsp/serverextension.py @@ -7,7 +7,8 @@ from .handlers import add_handlers from .manager import LanguageServerManager from .paths import normalized_uri -from .virtual_documents_shadow import setup_shadow_filesystem + +# from .virtual_documents_shadow import setup_shadow_filesystem def load_jupyter_server_extension(nbapp): @@ -45,4 +46,4 @@ def load_jupyter_server_extension(nbapp): ) ) - setup_shadow_filesystem(virtual_documents_uri=virtual_documents_uri) + # setup_shadow_filesystem(virtual_documents_uri=virtual_documents_uri) From 2e3d57564cd40b9c99c47aee755869ae6cd211cf Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 09:27:22 -0400 Subject: [PATCH 27/82] notify messages don't get an id --- packages/jupyterlab-lsp/src/comm/connection.ts | 6 ++++-- packages/jupyterlab-lsp/src/comm/json-rpc.ts | 14 +++++++++----- packages/jupyterlab-lsp/src/connection_manager.ts | 2 +- packages/jupyterlab-lsp/src/manager.ts | 10 ++++++++-- packages/jupyterlab-lsp/src/tokens.ts | 2 +- 5 files changed, 23 insertions(+), 11 deletions(-) diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index 58c3792d3..4c3ce092c 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -230,11 +230,13 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { this.serverCapabilities = capabilities; - this.notify(CommLSP.INITIALIZED, null).catch((err) => console.warn(err)); + await this.notify(CommLSP.INITIALIZED, null).catch((err) => + console.warn(err) + ); this._isInitialized = true; - this.notify(CommLSP.DID_CHANGE_CONFIGURATION, { + await this.notify(CommLSP.DID_CHANGE_CONFIGURATION, { settings: {}, }).catch((err) => console.warn(err)); diff --git a/packages/jupyterlab-lsp/src/comm/json-rpc.ts b/packages/jupyterlab-lsp/src/comm/json-rpc.ts index 604ffb5b5..bc7b9e1cb 100644 --- a/packages/jupyterlab-lsp/src/comm/json-rpc.ts +++ b/packages/jupyterlab-lsp/src/comm/json-rpc.ts @@ -59,16 +59,16 @@ export class CommRPC implements ICommRPC { params: ICommRPC.TRPCParams, options?: ICommRPC.ICommunicateOptions ): Promise { - const id = this.getNextId(); const delegate = new PromiseDelegate(); const noWait = options?.noWait === true; + let msg: any = { jsonrpc: this._jsonrpc, method, params }; + if (!noWait) { - this._responsePromises.set(id, delegate); + msg.id = this.getNextId(); + this._responsePromises.set(msg.id, delegate); } - const msg = { jsonrpc: this._jsonrpc, id, method, params }; - this.comm.send(msg, null, null, true); if (noWait) { @@ -115,9 +115,13 @@ export class CommRPC implements ICommRPC { * Resolve a previously-requested method, or notify on the appropriate signal */ protected handleMessage(msg: ICommRPC.IIRPCCommMsg) { - const { result, id, params, method } = msg.content + const { result, id, params, method, error } = msg.content .data as ICommRPC.TRPCData; + if (error) { + console.warn(error); + } + if (result != null) { const promise = this._responsePromises.get(id); if (promise == null) { diff --git a/packages/jupyterlab-lsp/src/connection_manager.ts b/packages/jupyterlab-lsp/src/connection_manager.ts index 4506792b2..f292a1747 100644 --- a/packages/jupyterlab-lsp/src/connection_manager.ts +++ b/packages/jupyterlab-lsp/src/connection_manager.ts @@ -129,7 +129,7 @@ export class DocumentConnectionManager { language ); - const language_server_id = this.language_server_manager.getServerId({ + const language_server_id = await this.language_server_manager.getServerId({ language, }); diff --git a/packages/jupyterlab-lsp/src/manager.ts b/packages/jupyterlab-lsp/src/manager.ts index 4395f7af2..dd2ab2887 100644 --- a/packages/jupyterlab-lsp/src/manager.ts +++ b/packages/jupyterlab-lsp/src/manager.ts @@ -1,3 +1,4 @@ +import { PromiseDelegate } from '@lumino/coreutils'; import { Signal } from '@lumino/signaling'; import { PageConfig, URLExt } from '@jupyterlab/coreutils'; @@ -31,6 +32,7 @@ export class LanguageServerManager implements ILanguageServerManager { private _baseUrl: string; private _serviceManager: ServiceManager; private _kernelSessionConnection: ISessionConnection; + private _kernelReady = new PromiseDelegate(); constructor(options: ILanguageServerManager.IOptions) { this._baseUrl = options.baseUrl || PageConfig.getBaseUrl(); @@ -63,7 +65,9 @@ export class LanguageServerManager implements ILanguageServerManager { return comm; } - getServerId(options: ILanguageServerManager.IGetServerIdOptions) { + async getServerId(options: ILanguageServerManager.IGetServerIdOptions) { + await this._kernelReady.promise; + // most things speak language for (const [key, session] of this._sessions.entries()) { if (options.language) { @@ -113,12 +117,14 @@ export class LanguageServerManager implements ILanguageServerManager { const { sessions } = msg.content.data as SCHEMA.ServersResponse; this._sessions = new Map(Object.entries(sessions)); this._sessionsChanged.emit(void 0); - console.warn(this._sessions); + this._kernelReady.resolve(void 0); } protected async makeLanguageServerComm( language_server_id: TLanguageServerId ) { + await this._kernelReady.promise; + const comm = this._kernelSessionConnection.kernel.createComm( LANGUAGE_SERVER_COMM_TARGET ); diff --git a/packages/jupyterlab-lsp/src/tokens.ts b/packages/jupyterlab-lsp/src/tokens.ts index 7137612d2..224a61d6a 100644 --- a/packages/jupyterlab-lsp/src/tokens.ts +++ b/packages/jupyterlab-lsp/src/tokens.ts @@ -18,7 +18,7 @@ export interface ILanguageServerManager { sessions: TSessionMap; getServerId( options: ILanguageServerManager.IGetServerIdOptions - ): TLanguageServerId; + ): Promise; getComm(languageServerId: TLanguageServerId): Promise; statusUrl: string; } From a3bad471a6210bb166f9f0773a4e71f8bcbda123 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 09:27:57 -0400 Subject: [PATCH 28/82] handle extra_node_root in atest --- atest/Keywords.robot | 8 +++++++- atest/Variables.robot | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/atest/Keywords.robot b/atest/Keywords.robot index 87f3ca543..f8707ecbe 100644 --- a/atest/Keywords.robot +++ b/atest/Keywords.robot @@ -4,6 +4,7 @@ Library SeleniumLibrary Library OperatingSystem Library Process Library String +Library Collections Library ./ports.py *** Keywords *** @@ -44,7 +45,12 @@ Create Lab Launch Command Create Notebok Server Config [Arguments] ${home} [Documentation] Copies in notebook server config file to disables npm/build checks - Copy File ${FIXTURES}${/}${NBSERVER CONF} ${home}${/}${NBSERVER CONF} + ${json} = Get File ${FIXTURES}${/}${NBSERVER CONF} + ${conf} = Evaluate __import__("json").loads('''${json}''') + ${lsm} = Evaluate dict(extra_node_roots=['''${ROOT}''']) + Set To Dictionary ${conf} LanguageServerManager=${lsm} + ${json} = Evaluate __import__("json").dumps(${conf}) + Create File ${home}${/}${NBSERVER CONF} ${json} Setup Suite For Screenshots [Arguments] ${folder} diff --git a/atest/Variables.robot b/atest/Variables.robot index e3b93a705..fbf777fa0 100644 --- a/atest/Variables.robot +++ b/atest/Variables.robot @@ -1,5 +1,6 @@ *** Variables *** ${FIXTURES} ${CURDIR}${/}fixtures +${ROOT} ${CURDIR}${/}.. ${NBSERVER CONF} jupyter_notebook_config.json ${SPLASH} id:jupyterlab-splash # to help catch hard-coded paths From 951b3fa1af6bfcf00cc477c76910c14416000701 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 13:43:30 -0400 Subject: [PATCH 29/82] fix up shut down kernel completion test --- atest/05_Features/Completion.robot | 2 +- atest/Keywords.robot | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/atest/05_Features/Completion.robot b/atest/05_Features/Completion.robot index 4857cadaa..251bf0144 100644 --- a/atest/05_Features/Completion.robot +++ b/atest/05_Features/Completion.robot @@ -27,7 +27,7 @@ Works With Kernel Running Should Contain ${content} TabError Works When Kernel Is Shut Down - Lab Command Shut Down All Kernels… + Switch Kernel No Kernel Capture Page Screenshot 01-shutting-kernels.png Accept Default Dialog Option Capture Page Screenshot 02-kernels-shut.png diff --git a/atest/Keywords.robot b/atest/Keywords.robot index f8707ecbe..789f69d38 100644 --- a/atest/Keywords.robot +++ b/atest/Keywords.robot @@ -252,3 +252,9 @@ Open Context Menu Over Wait Until Keyword Succeeds 10 x 0.1 s Mouse Over ${sel} Wait Until Keyword Succeeds 10 x 0.1 s Click Element ${sel} Wait Until Keyword Succeeds 10 x 0.1 s Open Context Menu ${sel} + +Switch Kernel + [Arguments] ${kernel name} + Click Element css:.jp-Toolbar-kernelName + Select From List By Label css:.jp-Dialog select ${kernel name} + Click Element css:.jp-mod-accept From 1c8856656db5d81eb77ac800cf476affee417f70 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 14:25:10 -0400 Subject: [PATCH 30/82] remove lsp-ws, bump versions --- CHANGELOG.md | 30 + azure-pipelines.yml | 7 +- docs/Installation.ipynb | 12 +- package.json | 1 - .../jupyterlab-go-to-definition/package.json | 2 +- packages/jupyterlab-lsp/package.json | 4 +- packages/jupyterlab-lsp/src/connection.ts | 138 - packages/jupyterlab-lsp/tsconfig.json | 3 - packages/lsp-ws-connection/LICENSE | 46 - packages/lsp-ws-connection/README.md | 12 - packages/lsp-ws-connection/karma.conf.js | 48 - packages/lsp-ws-connection/package.json | 55 - packages/lsp-ws-connection/src/index.ts | 2 - .../src/server-capability-registration.ts | 51 - .../src/test/connection.test.ts | 501 ---- .../src/test/mock-connection.ts | 77 - .../server-capability-registration.test.ts | 97 - packages/lsp-ws-connection/src/types.ts | 358 --- .../lsp-ws-connection/src/ws-connection.ts | 615 ---- packages/lsp-ws-connection/tsconfig.json | 13 - packages/lsp-ws-connection/webpack.config.js | 34 - packages/metapackage/package.json | 2 +- packages/metapackage/tsconfig.json | 3 - py_src/jupyter_lsp/_version.py | 2 +- yarn.lock | 2510 ++--------------- 25 files changed, 217 insertions(+), 4406 deletions(-) delete mode 100644 packages/jupyterlab-lsp/src/connection.ts delete mode 100644 packages/lsp-ws-connection/LICENSE delete mode 100644 packages/lsp-ws-connection/README.md delete mode 100644 packages/lsp-ws-connection/karma.conf.js delete mode 100644 packages/lsp-ws-connection/package.json delete mode 100644 packages/lsp-ws-connection/src/index.ts delete mode 100644 packages/lsp-ws-connection/src/server-capability-registration.ts delete mode 100644 packages/lsp-ws-connection/src/test/connection.test.ts delete mode 100644 packages/lsp-ws-connection/src/test/mock-connection.ts delete mode 100644 packages/lsp-ws-connection/src/test/server-capability-registration.test.ts delete mode 100644 packages/lsp-ws-connection/src/types.ts delete mode 100644 packages/lsp-ws-connection/src/ws-connection.ts delete mode 100644 packages/lsp-ws-connection/tsconfig.json delete mode 100644 packages/lsp-ws-connection/webpack.config.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 19f834186..02a2e3902 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,35 @@ ## CHANGELOG + +### `@krassowski/jupyterlab-lsp 2.0.0` (unreleased) + +- features + + - replaces use of custom WebSockets and REST API with Jupyter Kernel Comms + - substantially reduced total install size (1.5mb -> ???kb) + +- dependencies + + - removes run-time dependencies + - `krassowski/lsp-ws-connection` + - `event-emitter` + - `vscode-language-server-protocol` and friends + + +### `jupyter-lsp 1.0.0` (unreleased) + +- features + + - replaces the former server extension with a Language Server Kernel + - adds `jupyter lsp` CLI target for + - installing the kernelspec + +### `@krassowski/jupyterlab_go_to_definition 2.0.0` (unreleased) + +- dependencies + + - supports JupyterLab 2.0 + ### `@krassowski/jupyterlab-lsp 1.0.1` (unreleased) - bug fixes diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 188759c92..c3aa5b4c5 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -13,15 +13,14 @@ variables: ATEST_RETRIES: 3 YARN_CACHE_FOLDER: $(Pipeline.Workspace)/.yarn - PY_JLSP_VERSION: 0.8.0 - JS_JLLSP_VERSION: 1.0.0 - JS_JLG2D_VERSION: 1.0.0 + PY_JLSP_VERSION: 1.0.0 + JS_JLLSP_VERSION: 2.0.0 + JS_JLG2D_VERSION: 2.0.0 FIRST_PARTY_LABEXTENSIONS: >- packages/jupyterlab-lsp/krassowski-jupyterlab-lsp-$(JS_JLLSP_VERSION).tgz LINKED_EXTENSIONS: >- - packages/lsp-ws-connection packages/jupyterlab-go-to-definition jobs: diff --git a/docs/Installation.ipynb b/docs/Installation.ipynb index 7cc44e48d..78d911fca 100644 --- a/docs/Installation.ipynb +++ b/docs/Installation.ipynb @@ -58,8 +58,8 @@ "conda create -c conda-forge -n lsp 'python >=3.7,<3.8' 'jupyterlab=1.2' 'nodejs>8' python-language-server\n", "# Also consider: r-languageserver [*]\n", "source activate lsp\n", - "python -m pip install 'jupyter-lsp=0.8.0' --no-deps\n", - "jupyter labextension install '@krassowski/jupyterlab-lsp@1.0.0'\n", + "python -m pip install 'jupyter-lsp=1.0.0' --no-deps\n", + "jupyter labextension install '@krassowski/jupyterlab-lsp@2.0.0'\n", "```\n", "\n", "Then run\n", @@ -98,9 +98,9 @@ " 'jupyterlab=2' \\\n", " 'r-languageserver' \\\n", " && python3 -m pip install --no-cache-dir --no-deps \\\n", - " 'jupyter-lsp=0.8.0' \\\n", + " 'jupyter-lsp=1.0.0' \\\n", " && jupyter labextension install --no-build \\\n", - " '@krassowski/jupyterlab-lsp@1.0.0' \\\n", + " '@krassowski/jupyterlab-lsp@2.0.0' \\\n", " && jupyter lab build --dev-build=False --minimize=True \\\n", " && conda clean --all -f -y \\\n", " && rm -rf \\\n", @@ -208,8 +208,8 @@ "#### Install Jupyter[Lab] LSP\n", "\n", "```bash\n", - "pip install jupyter-lsp=0.8.0\n", - "jupyter labextension install @krassowski/jupyterlab-lsp@1.0.0\n", + "pip install jupyter-lsp=1.0.0\n", + "jupyter labextension install @krassowski/jupyterlab-lsp@2.0.0\n", "```" ] }, diff --git a/package.json b/package.json index e00b642ba..5e3fd4f07 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,6 @@ "build": "jlpm build:schema && jlpm build:meta && jlpm build:ws", "build:schema": "lerna run build:schema --stream", "build:meta": "lerna run build --stream --scope @krassowski/jupyterlab-lsp-metapackage", - "build:ws": "lerna run build --stream --scope lsp-ws-connection", "watch": "lerna run --parallel watch", "bundle": "lerna run --parallel bundle", "clean": "lerna run --parallel clean", diff --git a/packages/jupyterlab-go-to-definition/package.json b/packages/jupyterlab-go-to-definition/package.json index 022e21041..6b719d783 100644 --- a/packages/jupyterlab-go-to-definition/package.json +++ b/packages/jupyterlab-go-to-definition/package.json @@ -1,6 +1,6 @@ { "name": "@krassowski/jupyterlab_go_to_definition", - "version": "1.0.0", + "version": "2.0.0", "description": "Jump to definition of a variable or function in JupyterLab", "keywords": [ "jupyter", diff --git a/packages/jupyterlab-lsp/package.json b/packages/jupyterlab-lsp/package.json index b0e05d7a3..ef505629c 100644 --- a/packages/jupyterlab-lsp/package.json +++ b/packages/jupyterlab-lsp/package.json @@ -1,6 +1,6 @@ { "name": "@krassowski/jupyterlab-lsp", - "version": "1.0.0", + "version": "2.0.0", "description": "Language Server Protocol integration for JupyterLab", "keywords": [ "jupyter", @@ -36,7 +36,7 @@ "test": "jlpm jest --coverage --coverageReporters=cobertura --coverageReporters=html --coverageReporters=text-summary" }, "dependencies": { - "@krassowski/jupyterlab_go_to_definition": "~1.0.0" + "@krassowski/jupyterlab_go_to_definition": "~2.0.0" }, "devDependencies": { "@babel/preset-env": "^7.4.3", diff --git a/packages/jupyterlab-lsp/src/connection.ts b/packages/jupyterlab-lsp/src/connection.ts deleted file mode 100644 index 18cf27307..000000000 --- a/packages/jupyterlab-lsp/src/connection.ts +++ /dev/null @@ -1,138 +0,0 @@ -// Disclaimer/acknowledgement: Fragments are based on LspWsConnection, which is copyright of wylieconlon and contributors and ISC licenced. -// ISC licence is, quote, "functionally equivalent to the simplified BSD and MIT licenses, -// but without language deemed unnecessary following the Berne Convention." (Wikipedia). -// Introduced modifications are BSD licenced, copyright JupyterLab development team. -import * as lsProtocol from 'vscode-languageserver-protocol'; -import { - ILspOptions, - IPosition, - LspWsConnection, - IDocumentInfo, -} from 'lsp-ws-connection'; -import { until_ready } from './utils'; -import { ILSPConnection } from './tokens'; - -interface ILSPOptions extends ILspOptions {} - -export class LSPConnection extends LspWsConnection implements ILSPConnection { - protected documentsToOpen: IDocumentInfo[]; - - constructor(options: ILSPOptions) { - super(options); - this.documentsToOpen = []; - } - - sendOpenWhenReady(documentInfo: IDocumentInfo) { - if (this.isReady) { - this.sendOpen(documentInfo); - } else { - this.documentsToOpen.push(documentInfo); - } - } - - protected onServerInitialized(params: lsProtocol.InitializeResult) { - super.onServerInitialized(params); - while (this.documentsToOpen.length) { - this.sendOpen(this.documentsToOpen.pop()); - } - } - - public sendSelectiveChange( - changeEvent: lsProtocol.TextDocumentContentChangeEvent, - documentInfo: IDocumentInfo - ) { - this._sendChange([changeEvent], documentInfo); - } - - public sendFullTextChange(text: string, documentInfo: IDocumentInfo): void { - this._sendChange([{ text }], documentInfo); - } - - public isRenameSupported() { - return !!( - this.serverCapabilities && this.serverCapabilities.renameProvider - ); - } - - async rename( - location: IPosition, - documentInfo: IDocumentInfo, - newName: string, - emit = true - ): Promise { - if (!this.isReady || !this.isRenameSupported()) { - return; - } - - const params: lsProtocol.RenameParams = { - textDocument: { - uri: documentInfo.uri, - }, - position: { - line: location.line, - character: location.ch, - }, - newName, - }; - - const edit: lsProtocol.WorkspaceEdit = await this.connection.sendRequest( - 'textDocument/rename', - params - ); - - if (emit) { - this.emit('renamed', edit); - } - - return edit; - } - - public async connect(socket: WebSocket): Promise { - await super.connect(socket); - - until_ready(() => { - return this.isConnected; - }, -1) - .then(() => { - this.connection.onClose(() => { - this.isConnected = false; - this.emit('close', this.closing_manually); - }); - }) - .catch(() => { - console.error('Could not connect onClose signal'); - }); - } - - private closing_manually = false; - - public close() { - try { - this.closing_manually = true; - super.close(); - } catch (e) { - this.closing_manually = false; - } - } - - private _sendChange( - changeEvents: lsProtocol.TextDocumentContentChangeEvent[], - documentInfo: IDocumentInfo - ) { - if (!this.isConnected || !this.isInitialized) { - return; - } - const textDocumentChange: lsProtocol.DidChangeTextDocumentParams = { - textDocument: { - uri: documentInfo.uri, - version: documentInfo.version, - } as lsProtocol.VersionedTextDocumentIdentifier, - contentChanges: changeEvents, - }; - this.connection.sendNotification( - 'textDocument/didChange', - textDocumentChange - ); - documentInfo.version++; - } -} diff --git a/packages/jupyterlab-lsp/tsconfig.json b/packages/jupyterlab-lsp/tsconfig.json index ee9918af9..3fe87c543 100644 --- a/packages/jupyterlab-lsp/tsconfig.json +++ b/packages/jupyterlab-lsp/tsconfig.json @@ -10,9 +10,6 @@ "references": [ { "path": "../jupyterlab-go-to-definition" - }, - { - "path": "../lsp-ws-connection" } ] } diff --git a/packages/lsp-ws-connection/LICENSE b/packages/lsp-ws-connection/LICENSE deleted file mode 100644 index e48fae696..000000000 --- a/packages/lsp-ws-connection/LICENSE +++ /dev/null @@ -1,46 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2019, jupyter-lsp contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -Portions of this code derived from: - -ISC License (ISC) -Copyright 2019 William Conlon - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER -RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, -NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE -USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/packages/lsp-ws-connection/README.md b/packages/lsp-ws-connection/README.md deleted file mode 100644 index fbdb358e7..000000000 --- a/packages/lsp-ws-connection/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# lsp-ws-connection - -> This is a fork of [lsp-editor-adapter](https://github.com/wylieconlon/lsp-editor-adapter), with -> a number of modifications made to make it more easily integrated into [jupyterlab-lsp](https://github.com/krassowski/jupyterlab-lsp) - -## Installation - -> TBD - -## Developing - -This library is built and tested as part of the [`jupyterlab-lsp` monorepo](https://github.com/krassowski/jupyterlab-lsp). diff --git a/packages/lsp-ws-connection/karma.conf.js b/packages/lsp-ws-connection/karma.conf.js deleted file mode 100644 index c25a8914b..000000000 --- a/packages/lsp-ws-connection/karma.conf.js +++ /dev/null @@ -1,48 +0,0 @@ -process.env.CHROME_BIN = require('puppeteer').executablePath(); - -module.exports = function (config) { - config.set({ - basePath: '', - - files: [ - // The entry files are processed by webpack - 'lib/test/**/*.test.js', - ], - - browsers: ['ChromeHeadless'], - - mime: { - 'text/x-typescript': ['ts', 'tsx'], - }, - - module: 'commonjs', - - singleRun: true, - autoWatch: false, - colors: true, - - frameworks: ['mocha'], - - reporters: ['mocha', 'junit'], - - preprocessors: { - '**/*!(.d).ts': 'webpack', - '**/*!(.d).js': 'webpack', - }, - - junitReporter: { - outputFile: 'junit.xml', - }, - - webpack: { - mode: 'development', - resolve: { - extensions: ['.tsx', '.ts', '.js'], - }, - target: 'web', - node: { - net: 'mock', - }, - }, - }); -}; diff --git a/packages/lsp-ws-connection/package.json b/packages/lsp-ws-connection/package.json deleted file mode 100644 index 1592f64a1..000000000 --- a/packages/lsp-ws-connection/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "lsp-ws-connection", - "version": "0.4.0", - "description": "Utility for adapting editors to language server protocol", - "main": "dist/index.js", - "module": "dist/index.js", - "files": [ - "dist", - "lib" - ], - "types": "lib/index.d.ts", - "scripts": { - "clean": "rimraf lib dist" - }, - "author": "Wylie Conlon", - "maintainers": [ - "Michał Krassowski" - ], - "license": "ISC", - "keywords": [ - "lsp", - "languageserver" - ], - "homepage": "https://github.com/krassowski/jupyterlab-lsp/tree/master/packages/lsp-ws-connection", - "repository": "github:krassowski/jupyterlab-lsp", - "dependencies": { - "vscode-jsonrpc": "^4.1.0-next", - "vscode-languageclient": "^5.2.1", - "vscode-languageserver-protocol": "^3.14.1", - "vscode-languageserver-types": "^3.14.0", - "vscode-ws-jsonrpc": "0.1.1" - }, - "devDependencies": { - "@types/chai": "^4.1.7", - "@types/mocha": "^5.2.7", - "@types/node": "^12.0.7", - "@types/sinon": "^7.0.12", - "chai": "^4.2.0", - "file-loader": "~3.0.1", - "karma": "^4.1.0", - "karma-chrome-launcher": "^2.2.0", - "karma-mocha": "^1.3.0", - "karma-mocha-reporter": "^2.2.5", - "karma-junit-reporter": "^2.0.1", - "karma-webpack": "^4.0.2", - "mocha": "^6.1.4", - "puppeteer": "^1.17.0", - "rimraf": "^2.6.3", - "sinon": "^7.3.2", - "source-map-loader": "~0.2.1", - "typescript": "~3.9.3", - "webpack": "^4.32.2", - "webpack-cli": "^3.3.0" - } -} diff --git a/packages/lsp-ws-connection/src/index.ts b/packages/lsp-ws-connection/src/index.ts deleted file mode 100644 index 584fdfa0b..000000000 --- a/packages/lsp-ws-connection/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './ws-connection'; -export * from './types'; diff --git a/packages/lsp-ws-connection/src/server-capability-registration.ts b/packages/lsp-ws-connection/src/server-capability-registration.ts deleted file mode 100644 index 3a681a34a..000000000 --- a/packages/lsp-ws-connection/src/server-capability-registration.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { - Registration, - ServerCapabilities, - Unregistration, -} from 'vscode-languageserver-protocol'; - -interface IFlexibleServerCapabilities extends ServerCapabilities { - [key: string]: any; -} - -function registerServerCapability( - serverCapabilities: ServerCapabilities, - registration: Registration -): ServerCapabilities { - const serverCapabilitiesCopy = JSON.parse( - JSON.stringify(serverCapabilities) - ) as IFlexibleServerCapabilities; - const { method, registerOptions } = registration; - const providerName = method.substring(13) + 'Provider'; - - if (providerName) { - if (!registerOptions) { - serverCapabilitiesCopy[providerName] = true; - } else { - serverCapabilitiesCopy[providerName] = JSON.parse( - JSON.stringify(registerOptions) - ); - } - } else { - throw new Error('Could not register server capability.'); - } - - return serverCapabilitiesCopy; -} - -function unregisterServerCapability( - serverCapabilities: ServerCapabilities, - unregistration: Unregistration -): ServerCapabilities { - const serverCapabilitiesCopy = JSON.parse( - JSON.stringify(serverCapabilities) - ) as IFlexibleServerCapabilities; - const { method } = unregistration; - const providerName = method.substring(13) + 'Provider'; - - delete serverCapabilitiesCopy[providerName]; - - return serverCapabilitiesCopy; -} - -export { registerServerCapability, unregisterServerCapability }; diff --git a/packages/lsp-ws-connection/src/test/connection.test.ts b/packages/lsp-ws-connection/src/test/connection.test.ts deleted file mode 100644 index a5f134d34..000000000 --- a/packages/lsp-ws-connection/src/test/connection.test.ts +++ /dev/null @@ -1,501 +0,0 @@ -import { expect } from 'chai'; -import * as sinon from 'sinon'; -import * as lsProtocol from 'vscode-languageserver-protocol'; -import { LspWsConnection } from '..'; - -const serverUri = 'ws://localhost:8080'; - -type Listener = (args: any) => void; - -interface IListeners { - [type: string]: Listener[]; -} - -const mockInfo = { - uri: 'file://' + __dirname, - version: 0, - languageId: 'plaintext', - text: '', -}; - -// There is a library that can be used to mock WebSockets, but the API surface tested here is small -// enough that it is not necessary to use the library. This mock is a simple EventEmitter -class MockSocket implements EventTarget { - set onclose(handler: (ev: CloseEvent) => any) { - if (handler) { - this.listeners.close = [handler]; - } - } - set onerror(handler: (ev: Event) => any) { - if (handler) { - this.listeners.error = [handler]; - } - } - set onmessage(handler: (ev: MessageEvent) => any) { - if (handler) { - this.listeners.message = [handler]; - } - } - set onopen(handler: (ev: Event) => any) { - if (handler) { - this.listeners.open = [handler]; - } - } - public readonly CLOSED: number; - public readonly CLOSING: number; - public readonly CONNECTING: number; - public readonly OPEN: number; - public binaryType: BinaryType; - public readonly bufferedAmount: number; - public readonly extensions: string; - public readonly protocol: string; - public readonly readyState: number; - public readonly url: string; - - public listeners: IListeners = {}; - - /** - * Mocks sending data to the server. The fake implementation needs to respond with some data - */ - public send = sinon.stub(); - public addEventListener = sinon - .mock() - .callsFake((type: keyof WebSocketEventMap, listener: Listener) => { - const listeners: Listener[] = this.listeners[type]; - if (!listeners) { - this.listeners[type] = []; - } - listeners.push(listener); - }); - public removeEventListener = sinon - .mock() - .callsFake((type: keyof WebSocketEventMap, listener: Listener) => { - const index = this.listeners[type].indexOf((l) => l === listener); - if (index > -1) { - this.listeners[type].splice(index, 1); - } - }); - public close = sinon.stub(); - - /** - * Sends a synthetic event to the client code, for example to imitate a server response - */ - public dispatchEvent = (event: Event) => { - const listeners: Listener[] = this.listeners[event.type]; - if (!listeners) { - return false; - } - listeners.forEach((listener) => listener.call(null, event)); - }; - - constructor(url: string, protocols?: string[]) { - // nothing here yet - } -} - -describe('LspWsConnection', () => { - let connection: LspWsConnection; - let mockSocket: MockSocket; - - beforeEach(() => { - connection = new LspWsConnection({ - languageId: 'plaintext', - rootUri: 'file://' + __dirname, - serverUri, - }); - mockSocket = new MockSocket('ws://localhost:8080'); - }); - - afterEach(() => { - sinon.restore(); - }); - - it('initializes the connection in the right order', (done) => { - // 1. It sends initialize and expects a response with capabilities - mockSocket.send.onFirstCall().callsFake((str) => { - const message = JSON.parse(str); - expect(message.method).equal('initialize'); - - // This is an actual response from the html language server - const data = JSON.stringify({ - jsonrpc: '2.0', - id: message.id, - result: { - capabilities: { - textDocumentSync: 1, - hoverProvider: true, - documentHighlightProvider: true, - documentRangeFormattingProvider: false, - documentLinkProvider: { - resolveProvider: false, - }, - documentSymbolProvider: true, - definitionProvider: true, - signatureHelpProvider: { - triggerCharacters: ['('], - }, - typeDefinitionProvider: true, - referencesProvider: true, - colorProvider: {}, - foldingRangeProvider: true, - workspaceSymbolProvider: true, - completionProvider: { - resolveProvider: true, - triggerCharacters: ['.'], - }, - codeActionProvider: true, - renameProvider: true, - executeCommandProvider: { - commands: [], - }, - }, - } as lsProtocol.InitializeResult, - }); - - mockSocket.dispatchEvent(new MessageEvent('message', { data })); - }); - - // 2. After receiving capabilities from the server, it sends more configuration options - mockSocket.send.onSecondCall().callsFake((str) => { - const message = JSON.parse(str); - expect(message.method).equal('initialized'); - - setTimeout(() => { - const mock = mockSocket.send; - expect(mock.callCount).equal(3); - - // 3 is sent after initialization - expect(JSON.parse(mock.getCall(2).args[0]).method).equal( - 'workspace/didChangeConfiguration' - ); - - done(); - }, 0); - }); - - connection.connect(mockSocket).catch((err) => console.warn(err)); - mockSocket.dispatchEvent(new Event('open')); - - // Send the messages - expect(mockSocket.send.callCount).equal(1); - expect(JSON.parse(mockSocket.send.firstCall.args[0]).method).equal( - 'initialize' - ); - }); - - describe('register/unregister capability', () => { - beforeEach(() => { - mockSocket.send.onFirstCall().callsFake((str) => { - const data = JSON.stringify({ - jsonrpc: '2.0', - id: 0, - result: { - capabilities: { - definitionProvider: true, - }, - } as lsProtocol.InitializeResult, - }); - - mockSocket.dispatchEvent(new MessageEvent('message', { data })); - }); - }); - - it('registers a new server capability', (done) => { - mockSocket.send.onSecondCall().callsFake(() => { - expect(connection.isDefinitionSupported()).equal(true); - expect(connection.isImplementationSupported()).equal(false); - - const data = JSON.stringify({ - jsonrpc: '2.0', - id: 1, - method: 'client/registerCapability', - params: { - registrations: [ - { - id: 'id', - method: 'textDocument/implementation', - } as lsProtocol.Registration, - ], - } as lsProtocol.RegistrationParams, - }); - - mockSocket.dispatchEvent(new MessageEvent('message', { data })); - - setTimeout(() => { - expect(connection.isDefinitionSupported()).equal(true); - expect(connection.isImplementationSupported()).equal(true); - done(); - }, 0); - }); - - connection.connect(mockSocket).catch((err) => console.warn(err)); - mockSocket.dispatchEvent(new Event('open')); - }); - - it('unregisters a server capability', (done) => { - mockSocket.send.onSecondCall().callsFake(() => { - expect(connection.isDefinitionSupported()).equal(true); - - const data = JSON.stringify({ - jsonrpc: '2.0', - id: 1, - method: 'client/unregisterCapability', - params: { - unregisterations: [ - { - id: 'id', - method: 'textDocument/definition', - }, - ], - } as lsProtocol.UnregistrationParams, - }); - - mockSocket.dispatchEvent(new MessageEvent('message', { data })); - - setTimeout(() => { - expect(connection.isDefinitionSupported()).equal(false); - done(); - }); - }); - - connection.connect(mockSocket).catch((err) => console.warn(err)); - mockSocket.dispatchEvent(new Event('open')); - }); - }); - - describe('hover', () => { - let hoverResponse: lsProtocol.Hover; - - beforeEach(() => { - // Fake response just includes the hover provider - mockSocket.send.onFirstCall().callsFake((str) => { - const data = JSON.stringify({ - jsonrpc: '2.0', - id: 0, - result: { - capabilities: { - hoverProvider: true, - }, - } as lsProtocol.InitializeResult, - }); - - mockSocket.dispatchEvent(new MessageEvent('message', { data })); - }); - - // 2. After receiving capabilities from the server, we will send a hover - mockSocket.send.onSecondCall().callsFake((str) => { - void connection.getHoverTooltip( - { - line: 1, - ch: 0, - }, - mockInfo - ); - }); - }); - - it('emits a null hover event', (done) => { - // 3. Fake a server response for the hover - mockSocket.send.onThirdCall().callsFake((str) => { - const message = JSON.parse(str); - - const data = JSON.stringify({ - jsonrpc: '2.0', - id: message.id, - result: null, - }); - - mockSocket.dispatchEvent(new MessageEvent('message', { data })); - }); - - connection.connect(mockSocket).catch((err) => console.warn(err)); - mockSocket.dispatchEvent(new Event('open')); - - connection.on('hover', (response) => { - expect(response).to.be.a('null'); - done(); - }); - }); - - it('emits a complete hover event', (done) => { - hoverResponse = { - contents: 'Details of hover', - range: { - start: { - line: 1, - character: 0, - }, - end: { - line: 2, - character: 0, - }, - }, - } as lsProtocol.Hover; - - // 3. Fake a server response for the hover - mockSocket.send.onThirdCall().callsFake((str) => { - const message = JSON.parse(str); - - const data = JSON.stringify({ - jsonrpc: '2.0', - id: message.id, - result: hoverResponse, - }); - - mockSocket.dispatchEvent(new MessageEvent('message', { data })); - }); - - connection.connect(mockSocket).catch((err) => console.warn(err)); - mockSocket.dispatchEvent(new Event('open')); - - connection.on('hover', (response) => { - expect(response).to.deep.equal(hoverResponse); - done(); - }); - }); - }); - - describe('completion', () => { - let completionResponse: lsProtocol.CompletionList; - - beforeEach(() => { - // Fake response just includes the hover provider - mockSocket.send.onFirstCall().callsFake((str) => { - const data = JSON.stringify({ - jsonrpc: '2.0', - id: 0, - result: { - capabilities: { - completionProvider: { - triggerCharacters: ['.'], - resolveProvider: false, - }, - }, - } as lsProtocol.InitializeResult, - }); - - mockSocket.dispatchEvent(new MessageEvent('message', { data })); - }); - - // 2. After receiving capabilities from the server, we will send a completion - mockSocket.send.onSecondCall().callsFake((str) => { - void connection.getCompletion( - { - line: 1, - ch: 8, - }, - { - start: { - line: 1, - ch: 8, - }, - end: { - line: 1, - ch: 9, - }, - text: '.', - }, - mockInfo - ); - }); - }); - - it('emits a null completion event', (done) => { - // 3. Fake a server response for the hover - mockSocket.send.onThirdCall().callsFake((str) => { - const message = JSON.parse(str); - - const data = JSON.stringify({ - jsonrpc: '2.0', - id: message.id, - result: null, - }); - - mockSocket.dispatchEvent(new MessageEvent('message', { data })); - }); - - connection.connect(mockSocket).catch((err) => console.warn(err)); - mockSocket.dispatchEvent(new Event('open')); - - connection.on('completion', (response) => { - expect(response).to.be.a('null'); - done(); - }); - }); - - it('emits a completion event using CompletionList', (done) => { - completionResponse = { - isIncomplete: false, - items: [ - { - label: 'log', - }, - { - label: 'info', - }, - ], - } as lsProtocol.CompletionList; - - // 3. Fake a server response for the hover - mockSocket.send.onThirdCall().callsFake((str) => { - const message = JSON.parse(str); - - const data = JSON.stringify({ - jsonrpc: '2.0', - id: message.id, - result: completionResponse, - }); - - mockSocket.dispatchEvent(new MessageEvent('message', { data })); - }); - - connection.connect(mockSocket).catch((err) => console.warn(err)); - mockSocket.dispatchEvent(new Event('open')); - - connection.on('completion', (response) => { - expect(response).to.deep.equal(completionResponse.items); - done(); - }); - }); - - it('emits a completion event of CompletionItem[]', (done) => { - const completion = [ - { - label: 'log', - }, - { - label: 'info', - }, - ] as lsProtocol.CompletionItem[]; - - // 3. Fake a server response for the hover - mockSocket.send.onThirdCall().callsFake((str) => { - const message = JSON.parse(str); - - const data = JSON.stringify({ - jsonrpc: '2.0', - id: message.id, - result: completion, - }); - - mockSocket.dispatchEvent(new MessageEvent('message', { data })); - }); - - connection.connect(mockSocket).catch((err) => console.warn(err)); - mockSocket.dispatchEvent(new Event('open')); - - connection.on('completion', (response) => { - expect(response).to.deep.equal(completion); - done(); - }); - }); - }); - - it('closes the socket connection and stops sending messages', () => { - connection.connect(mockSocket).catch((err) => console.warn(err)); - connection.close(); - - connection.sendChange(mockInfo); - expect(mockSocket.send.callCount).equal(0); - }); -}); diff --git a/packages/lsp-ws-connection/src/test/mock-connection.ts b/packages/lsp-ws-connection/src/test/mock-connection.ts deleted file mode 100644 index e9998742a..000000000 --- a/packages/lsp-ws-connection/src/test/mock-connection.ts +++ /dev/null @@ -1,77 +0,0 @@ -import * as sinon from 'sinon'; -import { ILspConnection } from '..'; - -interface IListeners { - [key: string]: Array<(arg: any) => void>; -} - -// There is a library that can be used to mock WebSockets, but the API surface tested here is small -// enough that it is not necessary to use the library. This mock is a simple EventEmitter -export class MockConnection implements ILspConnection { - public listeners: IListeners = {}; - - /** - * Sends a synthetic event to the client code, for example to imitate a server response - */ - public dispatchEvent = (event: MessageEvent) => { - const listeners = this.listeners[event.type]; - if (!listeners) { - return false; - } - listeners.forEach((listener) => listener.call(null, event.data)); - }; - - public sendInitialize = sinon.stub(); - public sendChange = sinon.stub(); - public sendOpen = sinon.stub(); - public getHoverTooltip = sinon.stub(); - public getCompletion = sinon.stub(); - public getDetailedCompletion = sinon.stub(); - public getSignatureHelp = sinon.stub(); - public getDocumentHighlights = sinon.stub(); - public getDefinition = sinon.stub(); - public getTypeDefinition = sinon.stub(); - public getImplementation = sinon.stub(); - public getReferences = sinon.stub(); - public getDocumentUri = sinon.stub(); - public isDefinitionSupported = sinon.stub(); - public isTypeDefinitionSupported = sinon.stub(); - public isImplementationSupported = sinon.stub(); - public isReferencesSupported = sinon.stub(); - public close = sinon.stub(); - - public completionCharacters: string[]; - public signatureCharacters: string[]; - - constructor() { - this.completionCharacters = ['.', ',']; - this.signatureCharacters = ['(']; - } - - public on(type: string, listener: (...args: any) => void) { - const listeners = this.listeners[type]; - if (!listeners) { - this.listeners[type] = []; - } - this.listeners[type].push(listener); - } - - public off(type: string, listener: (...args: any) => void) { - const listeners = this.listeners[type]; - if (!listeners) { - return; - } - - const index = listeners.findIndex((l) => l === listener); - if (index > -1) { - this.listeners[type].splice(index); - } - } - - public getLanguageCompletionCharacters() { - return this.completionCharacters; - } - public getLanguageSignatureCharacters() { - return this.signatureCharacters; - } -} diff --git a/packages/lsp-ws-connection/src/test/server-capability-registration.test.ts b/packages/lsp-ws-connection/src/test/server-capability-registration.test.ts deleted file mode 100644 index d16af6a1c..000000000 --- a/packages/lsp-ws-connection/src/test/server-capability-registration.test.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { expect } from 'chai'; -import { - Registration, - ServerCapabilities, - Unregistration, -} from 'vscode-languageserver-protocol'; -import { - registerServerCapability, - unregisterServerCapability, -} from '../server-capability-registration'; - -describe('ServerCapabilities client registration', () => { - const serverCapabilities = { - hoverProvider: true, - completionProvider: { - resolveProvider: true, - triggerCharacters: ['.', ','], - }, - signatureHelpProvider: { - triggerCharacters: ['.', ','], - }, - definitionProvider: true, - typeDefinitionProvider: true, - implementationProvider: true, - referencesProvider: true, - documentHighlightProvider: true, - documentSymbolProvider: true, - workspaceSymbolProvider: true, - codeActionProvider: true, - codeLensProvider: { - resolveProvider: true, - }, - documentFormattingProvider: true, - documentRangeFormattingProvider: true, - documentOnTypeFormattingProvider: { - firstTriggerCharacter: '.', - }, - renameProvider: true, - documentLinkProvider: { - resolveProvider: true, - }, - colorProvider: true, - foldingRangeProvider: true, - declarationProvider: true, - executeCommandProvider: { - commands: ['not', 'real', 'commands'], - }, - }; - - it('registers server capabilities', () => { - Object.keys(serverCapabilities).forEach((capability) => { - const capabilityOptions = (serverCapabilities as any)[capability]; - const registration = { - id: 'id', - method: getMethodFromCapability(capability), - } as Registration; - - if (typeof capabilityOptions !== 'boolean') { - registration.registerOptions = capabilityOptions; - } - - const newServerCapabilities = registerServerCapability( - {} as ServerCapabilities, - registration - ); - - if (typeof capabilityOptions === 'boolean') { - expect((newServerCapabilities as any)[capability]).equal( - capabilityOptions - ); - } else { - expect((newServerCapabilities as any)[capability]).to.deep.equal( - capabilityOptions - ); - } - }); - }); - - it('unregisters server capabilities', () => { - Object.keys(serverCapabilities).forEach((capability) => { - const unregistration = { - id: 'some id', - method: getMethodFromCapability(capability), - } as Unregistration; - const newServerCapabilities = unregisterServerCapability( - serverCapabilities, - unregistration - ); - - expect((newServerCapabilities as any)[capability]).equal(void 0); - }); - }); -}); - -function getMethodFromCapability(capability: string): string { - return `textDocument/${capability.split('Provider')[0]}`; -} diff --git a/packages/lsp-ws-connection/src/types.ts b/packages/lsp-ws-connection/src/types.ts deleted file mode 100644 index 03f5cc17b..000000000 --- a/packages/lsp-ws-connection/src/types.ts +++ /dev/null @@ -1,358 +0,0 @@ -import * as lsProtocol from 'vscode-languageserver-protocol'; - -export interface IPosition { - line: number; - ch: number; -} - -export interface ITokenInfo { - start: IPosition; - end: IPosition; - text: string; -} - -export interface IDocumentInfo { - uri: string; - version: number; - text: string; - languageId: string; -} - -export type AnyLocation = - | lsProtocol.Location - | lsProtocol.Location[] - | lsProtocol.LocationLink[] - | null; - -export type AnyCompletion = - | lsProtocol.CompletionList - | lsProtocol.CompletionItem[]; - -type ConnectionEvent = - | 'completion' - | 'completionResolved' - | 'hover' - | 'diagnostic' - | 'highlight' - | 'signature' - | 'goTo' - | 'error' - | 'logging'; - -export interface ILspConnection { - on( - event: 'completion', - callback: (items: lsProtocol.CompletionItem[]) => void - ): void; - on( - event: 'completionResolved', - callback: (item: lsProtocol.CompletionItem) => void - ): void; - on( - event: 'hover', - callback: (hover: lsProtocol.Hover, documentUri: string) => void - ): void; - on( - event: 'diagnostic', - callback: (diagnostic: lsProtocol.PublishDiagnosticsParams) => void - ): void; - on( - event: 'highlight', - callback: ( - highlights: lsProtocol.DocumentHighlight[], - documentUri: string - ) => void - ): void; - on( - event: 'signature', - callback: (signatures: lsProtocol.SignatureHelp) => void - ): void; - on( - event: 'goTo', - callback: (location: AnyLocation, documentUri: string) => void - ): void; - on( - event: 'rename', - callback: (edit: lsProtocol.WorkspaceEdit | null) => void - ): void; - on(event: 'error', callback: (error: any) => void): void; - on(event: 'logging', callback: (log: any) => void): void; - - off(event: ConnectionEvent, listener: (arg: any) => void): void; - - /** - * Close the connection - */ - close(): void; - - // This should support every method from https://microsoft.github.io/language-server-protocol/specification - /** - * The initialize request tells the server which options the client supports - */ - sendInitialize(): void; - /** - * Inform the server that the document was opened - */ - sendOpen(documentInfo: IDocumentInfo): void; - /** - * Sends the full text of the document to the server - */ - sendChange(documentInfo: IDocumentInfo): void; - /** - * Requests additional information for a particular character - */ - getHoverTooltip(position: IPosition, documentInfo: IDocumentInfo): void; - /** - * Request possible completions from the server - */ - getCompletion( - location: IPosition, - token: ITokenInfo, - documentInfo: IDocumentInfo, - emit?: boolean, - triggerCharacter?: string, - triggerKind?: lsProtocol.CompletionTriggerKind - ): void; - /** - * If the server returns incomplete information for completion items, more information can be requested - */ - getDetailedCompletion(item: lsProtocol.CompletionItem): void; - /** - * Request possible signatures for the current method - */ - getSignatureHelp(position: IPosition, documentInfo: IDocumentInfo): void; - /** - * Request all matching symbols in the document scope - */ - getDocumentHighlights(position: IPosition, documentInfo: IDocumentInfo): void; - /** - * Request a link to the definition of the current symbol. The results will not be displayed - * unless they are within the same file URI - */ - getDefinition(position: IPosition, documentInfo: IDocumentInfo): void; - /** - * Request a link to the type definition of the current symbol. The results will not be displayed - * unless they are within the same file URI - */ - getTypeDefinition(position: IPosition, documentInfo: IDocumentInfo): void; - /** - * Request a link to the implementation of the current symbol. The results will not be displayed - * unless they are within the same file URI - */ - getImplementation(position: IPosition, documentInfo: IDocumentInfo): void; - /** - * Request a link to all references to the current symbol. The results will not be displayed - * unless they are within the same file URI - */ - getReferences(position: IPosition, documentInfo: IDocumentInfo): void; - - // TODO: - // Workspaces: Not in scope - // Text Synchronization: - // willSave - // willSaveWaitUntil - // didSave - // didClose - // Language features: - // getDocumentSymbols - // codeAction - // codeLens - // codeLensResolve - // documentLink - // documentLinkResolve - // documentColor - // colorPresentation - // formatting - // rangeFormatting - // onTypeFormatting - // rename - // prepareRename - // foldingRange - - getLanguageCompletionCharacters(): string[]; - getLanguageSignatureCharacters(): string[]; - - /** - * Does the server support go to definition? - */ - isDefinitionSupported(): boolean; - /** - * Does the server support go to type definition? - */ - isTypeDefinitionSupported(): boolean; - /** - * Does the server support go to implementation? - */ - isImplementationSupported(): boolean; - /** - * Does the server support find all references? - */ - isReferencesSupported(): boolean; -} - -/** - * Configuration map for codeActionsOnSave - */ -export interface ICodeActionsOnSaveOptions { - [kind: string]: boolean; -} - -export interface ITextEditorOptions { - /** - * Enable the suggestion box to pop-up on trigger characters. - * Defaults to true. - */ - suggestOnTriggerCharacters?: boolean; - /** - * Accept suggestions on ENTER. - * Defaults to 'on'. - */ - acceptSuggestionOnEnter?: boolean | 'on' | 'smart' | 'off'; - /** - * Accept suggestions on TAB. - * Defaults to 'on'. - */ - acceptSuggestionOnTab?: boolean | 'on' | 'smart' | 'off'; - /** - * Accept suggestions on provider defined characters. - * Defaults to true. - */ - acceptSuggestionOnCommitCharacter?: boolean; - /** - * Enable selection highlight. - * Defaults to true. - */ - selectionHighlight?: boolean; - /** - * Enable semantic occurrences highlight. - * Defaults to true. - */ - occurrencesHighlight?: boolean; - /** - * Show code lens - * Defaults to true. - */ - codeLens?: boolean; - /** - * Code action kinds to be run on save. - */ - codeActionsOnSave?: ICodeActionsOnSaveOptions; - /** - * Timeout for running code actions on save. - */ - codeActionsOnSaveTimeout?: number; - /** - * Enable code folding - * Defaults to true. - */ - folding?: boolean; - /** - * Selects the folding strategy. 'auto' uses the strategies contributed for the current document, - * 'indentation' uses the indentation based folding strategy. - * Defaults to 'auto'. - */ - foldingStrategy?: 'auto' | 'indentation'; - /** - * Controls whether the fold actions in the gutter stay always visible or hide unless the mouse is over the gutter. - * Defaults to 'mouseover'. - */ - showFoldingControls?: 'always' | 'mouseover'; - /** - * Whether to suggest while typing - */ - suggest?: boolean; - /** - * Debounce (in ms) for suggestions while typing. - * Defaults to 200ms - */ - debounceSuggestionsWhileTyping?: number; - /** - * Enable quick suggestions (shadow suggestions) - * Defaults to true. - */ - quickSuggestions?: - | boolean - | { - other: boolean; - comments: boolean; - strings: boolean; - }; - /** - * Quick suggestions show delay (in ms) - * Defaults to 200 (ms) - */ - quickSuggestionsDelay?: number; - /** - * Parameter hint options. Defaults to true. - */ - enableParameterHints?: boolean; - /** - * Render icons in suggestions box. - * Defaults to true. - */ - iconsInSuggestions?: boolean; - /** - * Enable format on type. - * Defaults to false. - */ - formatOnType?: boolean; - /** - * Enable format on paste. - * Defaults to false. - */ - formatOnPaste?: boolean; -} - -export interface ILspOptions { - serverUri: string; - languageId: string; - rootUri: string; -} - -/** - * An adapter is responsible for connecting a particular text editor with a LSP connection - * and will send messages over the connection and display responses in the editor - */ -export abstract class IEditorAdapter { - constructor( - connection: ILspConnection, - options: ITextEditorOptions, - editor: T - ) { - // no implementation - } - - /** - * Removes the adapter from the editor and closes the connection - */ - public abstract remove(): void; -} - -export function getFilledDefaults( - options: ITextEditorOptions -): ITextEditorOptions { - return Object.assign( - {}, - { - suggestOnTriggerCharacters: true, - acceptSuggestionOnEnter: true, - acceptSuggestionOnTab: true, - acceptSuggestionOnCommitCharacter: true, - selectionHighlight: true, - occurrencesHighlight: true, - codeLens: true, - folding: true, - foldingStrategy: 'auto', - showFoldingControls: 'mouseover', - suggest: true, - debounceSuggestionsWhileTyping: 200, - quickSuggestions: true, - quickSuggestionsDelay: 200, - enableParameterHints: true, - iconsInSuggestions: true, - formatOnType: false, - formatOnPaste: false, - }, - options - ); -} diff --git a/packages/lsp-ws-connection/src/ws-connection.ts b/packages/lsp-ws-connection/src/ws-connection.ts deleted file mode 100644 index 118f99e02..000000000 --- a/packages/lsp-ws-connection/src/ws-connection.ts +++ /dev/null @@ -1,615 +0,0 @@ -import * as events from 'events'; -import { LocationLink } from 'vscode-languageserver-protocol'; -import * as protocol from 'vscode-languageserver-protocol'; -import { ConsoleLogger, listen, MessageConnection } from 'vscode-ws-jsonrpc'; -import { - registerServerCapability, - unregisterServerCapability, -} from './server-capability-registration'; -import { - ILspConnection, - ILspOptions, - IPosition, - ITokenInfo, - IDocumentInfo, - AnyLocation, - AnyCompletion, -} from './types'; - -/** - * Changes as compared to upstream: - * - markdown is preferred over plaintext - * - informative members are public and others are protected, not private - * - onServerInitialized() was extracted; it also emits a message once connected - * - initializeParams() was extracted, and can be modified by subclasses - * - typescript 3.7 was adopted to clean up deep references - */ -export class LspWsConnection extends events.EventEmitter - implements ILspConnection { - public isConnected = false; - public isInitialized = false; - public documentInfo: ILspOptions; - public serverCapabilities: protocol.ServerCapabilities; - protected socket: WebSocket; - protected connection: MessageConnection; - private rootUri: string; - - constructor(options: ILspOptions) { - super(); - this.rootUri = options.rootUri; - } - - get isReady() { - return this.isConnected && this.isInitialized; - } - - /** - * Initialize a connection over a web socket that speaks the LSP protocol - */ - public async connect(socket: WebSocket): Promise { - this.socket = socket; - - listen({ - webSocket: this.socket, - logger: new ConsoleLogger(), - onConnection: (connection: MessageConnection) => { - connection.listen(); - this.isConnected = true; - - this.connection = connection; - - this.connection.onNotification( - 'textDocument/publishDiagnostics', - (params: protocol.PublishDiagnosticsParams) => { - this.emit('diagnostic', params); - } - ); - - this.connection.onNotification( - 'window/showMessage', - (params: protocol.ShowMessageParams) => { - this.emit('logging', params); - } - ); - - this.connection.onRequest( - 'client/registerCapability', - (params: protocol.RegistrationParams) => { - params.registrations.forEach( - (capabilityRegistration: protocol.Registration) => { - this.serverCapabilities = registerServerCapability( - this.serverCapabilities, - capabilityRegistration - ); - } - ); - - this.emit('logging', params); - } - ); - - this.connection.onRequest( - 'client/unregisterCapability', - (params: protocol.UnregistrationParams) => { - params.unregisterations.forEach( - (capabilityUnregistration: protocol.Unregistration) => { - this.serverCapabilities = unregisterServerCapability( - this.serverCapabilities, - capabilityUnregistration - ); - } - ); - - this.emit('logging', params); - } - ); - - this.connection.onRequest( - 'window/showMessageRequest', - (params: protocol.ShowMessageRequestParams) => { - this.emit('logging', params); - } - ); - - this.connection.onError((e) => { - this.emit('error', e); - }); - - this.connection.onClose(() => { - this.isConnected = false; - }); - - this.sendInitialize().catch((err) => console.warn(err)); - }, - }); - } - - public close() { - if (this.connection) { - this.connection.dispose(); - } - this.socket.close(); - } - - /** - * Initialization parameters to be sent to the language server. - * Subclasses can overload this when adding more features. - */ - protected initializeParams(): protocol.InitializeParams { - return { - capabilities: { - textDocument: { - hover: { - dynamicRegistration: true, - contentFormat: ['markdown', 'plaintext'], - }, - synchronization: { - dynamicRegistration: true, - willSave: false, - didSave: true, - willSaveWaitUntil: false, - }, - completion: { - dynamicRegistration: true, - completionItem: { - snippetSupport: false, - commitCharactersSupport: true, - documentationFormat: ['markdown', 'plaintext'], - deprecatedSupport: false, - preselectSupport: false, - }, - contextSupport: false, - }, - signatureHelp: { - dynamicRegistration: true, - signatureInformation: { - documentationFormat: ['markdown', 'plaintext'], - }, - }, - declaration: { - dynamicRegistration: true, - linkSupport: true, - }, - definition: { - dynamicRegistration: true, - linkSupport: true, - }, - typeDefinition: { - dynamicRegistration: true, - linkSupport: true, - }, - implementation: { - dynamicRegistration: true, - linkSupport: true, - }, - } as protocol.ClientCapabilities, - workspace: { - didChangeConfiguration: { - dynamicRegistration: true, - }, - } as protocol.WorkspaceClientCapabilities, - } as protocol.ClientCapabilities, - initializationOptions: null, - processId: null, - rootUri: this.rootUri, - workspaceFolders: null, - }; - } - - public async sendInitialize() { - if (!this.isConnected) { - return; - } - - const message: protocol.InitializeParams = this.initializeParams(); - - this.connection - .sendRequest('initialize', message) - .then( - (result) => { - this.onServerInitialized(result); - }, - (e) => { - console.warn('lsp-ws-connection initialization failure', e); - } - ); - } - - sendOpen(documentInfo: IDocumentInfo) { - const textDocumentMessage: protocol.DidOpenTextDocumentParams = { - textDocument: { - uri: documentInfo.uri, - languageId: documentInfo.languageId, - text: documentInfo.text, - version: documentInfo.version, - } as protocol.TextDocumentItem, - }; - this.connection.sendNotification( - 'textDocument/didOpen', - textDocumentMessage - ); - this.sendChange(documentInfo); - } - - public sendChange(documentInfo: IDocumentInfo) { - if (!this.isReady) { - return; - } - const textDocumentChange: protocol.DidChangeTextDocumentParams = { - textDocument: { - uri: documentInfo.uri, - version: documentInfo.version, - } as protocol.VersionedTextDocumentIdentifier, - contentChanges: [{ text: documentInfo.text }], - }; - this.connection.sendNotification( - 'textDocument/didChange', - textDocumentChange - ); - documentInfo.version++; - } - - public sendSaved(documentInfo: IDocumentInfo) { - if (!this.isReady) { - return; - } - - const textDocumentChange: protocol.DidSaveTextDocumentParams = { - textDocument: { - uri: documentInfo.uri, - version: documentInfo.version, - } as protocol.VersionedTextDocumentIdentifier, - text: documentInfo.text, - }; - this.connection.sendNotification( - 'textDocument/didSave', - textDocumentChange - ); - } - - public async getHoverTooltip( - location: IPosition, - documentInfo: IDocumentInfo, - emit = true - ) { - if (!(this.isReady && this.serverCapabilities?.hoverProvider)) { - return; - } - - const params: protocol.TextDocumentPositionParams = { - textDocument: { - uri: documentInfo.uri, - }, - position: { - line: location.line, - character: location.ch, - }, - }; - - const hover = await this.connection.sendRequest( - 'textDocument/hover', - params - ); - - if (emit) { - this.emit('hover', hover, documentInfo.uri); - } - - return hover; - } - - public async getCompletion( - location: IPosition, - token: ITokenInfo, - documentInfo: IDocumentInfo, - emit = true, - triggerCharacter?: string, - triggerKind?: protocol.CompletionTriggerKind - ) { - if (!(this.isReady && this.serverCapabilities?.completionProvider)) { - return; - } - - const params: protocol.CompletionParams = { - textDocument: { - uri: documentInfo.uri, - }, - position: { - line: location.line, - character: location.ch, - }, - context: { - triggerKind: triggerKind || protocol.CompletionTriggerKind.Invoked, - triggerCharacter, - }, - }; - - const items = await this.connection.sendRequest( - 'textDocument/completion', - params - ); - - const itemList = items && 'items' in items ? items.items : items; - - if (emit) { - this.emit('completion', itemList); - } - return itemList; - } - - public getDetailedCompletion(completionItem: protocol.CompletionItem) { - if (!this.isReady) { - return; - } - this.connection - .sendRequest( - 'completionItem/resolve', - completionItem - ) - .then((result) => { - this.emit('completionResolved', result); - }); - } - - public async getSignatureHelp( - location: IPosition, - documentInfo: IDocumentInfo, - emit = true - ) { - if (!(this.isReady && this.serverCapabilities?.signatureHelpProvider)) { - return; - } - - const code = documentInfo.text; - const lines = code.split('\n'); - const typedCharacter = lines[location.line][location.ch - 1]; - - const triggers = - this.serverCapabilities?.signatureHelpProvider?.triggerCharacters || []; - if (triggers.indexOf(typedCharacter) === -1) { - // Not a signature character - return; - } - - const params: protocol.TextDocumentPositionParams = { - textDocument: { - uri: documentInfo.uri, - }, - position: { - line: location.line, - character: location.ch, - }, - }; - - const help = await this.connection.sendRequest( - 'textDocument/signatureHelp', - params - ); - - if (emit) { - this.emit('signature', help, documentInfo.uri); - } - - return help; - } - - /** - * Request the locations of all matching document symbols - */ - public async getDocumentHighlights( - location: IPosition, - documentInfo: IDocumentInfo, - emit = true - ) { - if (!this.isReady || !this.serverCapabilities?.documentHighlightProvider) { - return; - } - - const highlights = await this.connection.sendRequest< - protocol.DocumentHighlight[] - >('textDocument/documentHighlight', { - textDocument: { - uri: documentInfo.uri, - }, - position: { - line: location.line, - character: location.ch, - }, - } as protocol.TextDocumentPositionParams); - - if (emit) { - this.emit('highlight', highlights, documentInfo.uri); - } - - return highlights; - } - - /** - * Request a link to the definition of the current symbol. The results will not be displayed - * unless they are within the same file URI - */ - public async getDefinition( - location: IPosition, - documentInfo: IDocumentInfo, - emit = true - ) { - if (!(this.isReady && this.isDefinitionSupported())) { - return; - } - - const params: protocol.TextDocumentPositionParams = { - textDocument: { - uri: documentInfo.uri, - }, - position: { - line: location.line, - character: location.ch, - }, - }; - - const targets = await this.connection.sendRequest( - 'textDocument/definition', - params - ); - - if (emit) { - this.emit('goTo', targets, documentInfo.uri); - } - - return targets; - } - - /** - * Request a link to the type definition of the current symbol. The results will not be displayed - * unless they are within the same file URI - */ - public async getTypeDefinition( - location: IPosition, - documentInfo: IDocumentInfo, - emit = true - ) { - if (!this.isReady || !this.isTypeDefinitionSupported()) { - return; - } - - const params: protocol.TextDocumentPositionParams = { - textDocument: { - uri: documentInfo.uri, - }, - position: { - line: location.line, - character: location.ch, - }, - }; - - const locations = await this.connection.sendRequest( - 'textDocument/typeDefinition', - params - ); - - if (emit) { - this.emit('goTo', locations); - } - - return locations; - } - - /** - * Request a link to the implementation of the current symbol. The results will not be displayed - * unless they are within the same file URI - */ - public getImplementation(location: IPosition, documentInfo: IDocumentInfo) { - if (!this.isReady || !this.isImplementationSupported()) { - return; - } - - this.connection - .sendRequest( - 'textDocument/implementation', - { - textDocument: { - uri: documentInfo.uri, - }, - position: { - line: location.line, - character: location.ch, - }, - } as protocol.TextDocumentPositionParams - ) - .then((result) => { - this.emit('goTo', result); - }); - } - - /** - * Request a link to all references to the current symbol. The results will not be displayed - * unless they are within the same file URI - */ - public async getReferences( - location: IPosition, - documentInfo: IDocumentInfo, - emit = false - ) { - if (!this.isReady || !this.isReferencesSupported()) { - return; - } - - const params: protocol.ReferenceParams = { - context: { - includeDeclaration: true, - }, - textDocument: { - uri: documentInfo.uri, - }, - position: { - line: location.line, - character: location.ch, - }, - }; - - const locations = await this.connection.sendRequest( - 'textDocument/references', - params - ); - - if (emit) { - this.emit('goTo', locations, documentInfo.uri); - } - - return locations; - } - - /** - * The characters that trigger completion automatically. - */ - public getLanguageCompletionCharacters(): string[] { - return this.serverCapabilities?.completionProvider?.triggerCharacters || []; - } - - /** - * The characters that trigger signature help automatically. - */ - public getLanguageSignatureCharacters(): string[] { - return ( - this.serverCapabilities?.signatureHelpProvider?.triggerCharacters || [] - ); - } - - /** - * Does the server support go to definition? - */ - public isDefinitionSupported() { - return !!this.serverCapabilities?.definitionProvider; - } - - /** - * Does the server support go to type definition? - */ - public isTypeDefinitionSupported() { - return !!this.serverCapabilities?.typeDefinitionProvider; - } - - /** - * Does the server support go to implementation? - */ - public isImplementationSupported() { - return !!this.serverCapabilities?.implementationProvider; - } - - /** - * Does the server support find all references? - */ - public isReferencesSupported() { - return !!this.serverCapabilities?.referencesProvider; - } - - protected onServerInitialized(params: protocol.InitializeResult) { - this.isInitialized = true; - this.serverCapabilities = params.capabilities; - this.connection.sendNotification('initialized'); - this.connection.sendNotification('workspace/didChangeConfiguration', { - settings: {}, - }); - this.emit('serverInitialized', this.serverCapabilities); - } -} diff --git a/packages/lsp-ws-connection/tsconfig.json b/packages/lsp-ws-connection/tsconfig.json deleted file mode 100644 index f380f9daa..000000000 --- a/packages/lsp-ws-connection/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../tsconfigbase", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib", - "lib": ["es6", "dom", "scripthost"], - "tsBuildInfoFile": "lib/.tsbuildinfo", - "types": ["mocha", "node"], - "target": "es5" - }, - "include": ["src"], - "exclude": ["node_modules"] -} diff --git a/packages/lsp-ws-connection/webpack.config.js b/packages/lsp-ws-connection/webpack.config.js deleted file mode 100644 index bd286f6dc..000000000 --- a/packages/lsp-ws-connection/webpack.config.js +++ /dev/null @@ -1,34 +0,0 @@ -const path = require('path'); - -module.exports = { - mode: 'production', - entry: { - index: './lib/index.js', - }, - devtool: 'sourcemap', - module: { - rules: [ - { - test: /\.js$/, - use: ['source-map-loader'], - enforce: 'pre', - // eslint-disable-next-line no-undef - exclude: /node_modules/, - }, - { test: /\.js.map$/, use: 'file-loader' }, - ], - }, - resolve: { - extensions: ['.js'], - }, - target: 'web', - node: { - net: 'mock', - }, - output: { - filename: '[name].js', - path: path.resolve(__dirname, 'dist'), - library: 'lsp-ws-connection', - libraryTarget: 'umd', - }, -}; diff --git a/packages/metapackage/package.json b/packages/metapackage/package.json index a58deccca..963475a4d 100644 --- a/packages/metapackage/package.json +++ b/packages/metapackage/package.json @@ -1,6 +1,6 @@ { "name": "@krassowski/jupyterlab-lsp-metapackage", - "version": "1.0.0", + "version": "2.0.0", "description": "JupyterLab LSP - Meta Package. All of the packages used by JupyterLab LSP", "homepage": "https://github.com/krassowski/jupyterlab-lsp", "bugs": { diff --git a/packages/metapackage/tsconfig.json b/packages/metapackage/tsconfig.json index 00d59ea3c..c2d50c751 100644 --- a/packages/metapackage/tsconfig.json +++ b/packages/metapackage/tsconfig.json @@ -11,9 +11,6 @@ { "path": "../jupyterlab-lsp" }, - { - "path": "../lsp-ws-connection" - }, { "path": "../jupyterlab-go-to-definition" } diff --git a/py_src/jupyter_lsp/_version.py b/py_src/jupyter_lsp/_version.py index b71d81f14..d25ee5cca 100644 --- a/py_src/jupyter_lsp/_version.py +++ b/py_src/jupyter_lsp/_version.py @@ -1,3 +1,3 @@ """ single source of truth for jupyter_lsp version """ -__version__ = "0.8.0" +__version__ = "1.0.0" diff --git a/yarn.lock b/yarn.lock index a05a15013..c819d99b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1059,31 +1059,31 @@ "@types/yargs" "^13.0.0" "@jupyterlab/application@2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-2.0.3.tgz#a28ee8edf361036c9a8cb529209167847afa169c" - integrity sha512-5OFLj/qL7qV8gwe3QXn1yR7Gqv9pcJ9GMHu2/EwCKIyRZ8wiA/6m7DsFaTrAdsLzA463y0MwtPAVDDmws/P9mw== + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-2.1.2.tgz#b69df3fc89fa586b984e4bbc9112f0cd6e703c96" + integrity sha512-b32BZGAt+LZWdzEN/c6RbmMxpbRxAIPrrl1HvopykWMdxMkFK9Y2g/qptg9Q2Lfo/t9WA/+i4NDOTUXFDB/9oQ== dependencies: "@fortawesome/fontawesome-free" "^5.12.0" - "@jupyterlab/apputils" "^2.0.3" - "@jupyterlab/coreutils" "^4.0.2" - "@jupyterlab/docregistry" "^2.0.3" - "@jupyterlab/rendermime" "^2.0.3" - "@jupyterlab/rendermime-interfaces" "^2.0.1" - "@jupyterlab/services" "^5.0.3" - "@jupyterlab/statedb" "^2.0.1" - "@jupyterlab/ui-components" "^2.0.2" + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/docregistry" "^2.1.2" + "@jupyterlab/rendermime" "^2.1.1" + "@jupyterlab/rendermime-interfaces" "^2.1.0" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/statedb" "^2.1.0" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/application" "^1.8.4" "@lumino/commands" "^1.10.1" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" "@lumino/messaging" "^1.3.3" - "@lumino/polling" "^1.0.4" + "@lumino/polling" "^1.1.1" "@lumino/properties" "^1.1.6" "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/apputils@2", "@jupyterlab/apputils@^2.0.3", "@jupyterlab/apputils@^2.1.1": +"@jupyterlab/apputils@2", "@jupyterlab/apputils@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-2.1.1.tgz#069dc8214261c01c9e2ef58209137430649d4c01" integrity sha512-orGzvW2S1k/FjW42dhygq8XJZbQRBTsNXXKFWsqewSn9sNTd3irKjDEwS3Ilce1w+LsS/t3H03xCnsOYPu8LSQ== @@ -1120,7 +1120,7 @@ "@lumino/disposable" "^1.3.5" "@lumino/signaling" "^1.3.5" -"@jupyterlab/cells@2", "@jupyterlab/cells@^2.0.3", "@jupyterlab/cells@^2.1.2": +"@jupyterlab/cells@2", "@jupyterlab/cells@^2.1.2": version "2.1.2" resolved "https://registry.yarnpkg.com/@jupyterlab/cells/-/cells-2.1.2.tgz#6d913e50cf434aa2eeed554c4337bdf17e6111bf" integrity sha512-Ndi2rq/9+BaZZ3PCJC55BTSesiuZXkCXfkLhoTVMj/ifJ1YVP5CNwyEr0h2YGqNl8R9oKtHFA9CRUei49Qv3DA== @@ -1146,7 +1146,7 @@ "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/codeeditor@2", "@jupyterlab/codeeditor@^2.0.2", "@jupyterlab/codeeditor@^2.1.1": +"@jupyterlab/codeeditor@2", "@jupyterlab/codeeditor@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-2.1.1.tgz#3adb55e2d1a5c8792d064ce5ed16e7738e16a362" integrity sha512-vdAxFHEv76cnAFlmaDQcnrKrtEODodYqZrckg0S/mKS7eR8QZQmnf52d8PjdQabtcEKpVY25pQu2/+UkrLKRig== @@ -1162,7 +1162,7 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/codemirror@2", "@jupyterlab/codemirror@^2.0.3", "@jupyterlab/codemirror@^2.1.1": +"@jupyterlab/codemirror@2", "@jupyterlab/codemirror@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-2.1.1.tgz#156b489438a2d5fd840b9797b464b4c3514cec75" integrity sha512-f4cvsM5d7GI5se6Y/L7aCnYlm/XxrYXnK4ehZeqS3m8haRWyijwJW2BxOi0QJd2F25nv68adIuXVzV5581eTGQ== @@ -1184,15 +1184,15 @@ react "~16.9.0" "@jupyterlab/completer@2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/completer/-/completer-2.0.3.tgz#5960637b446864e3d4dbf685d2e40e7abec1cc17" - integrity sha512-H+FnuOAlpVShAqChLiUdlQ/yXsknGfqKy13KvLalkK/rsmyy8cPBtZu+ZSyYkkYvn+UPpIf3wsxzhldE/lDDLQ== - dependencies: - "@jupyterlab/apputils" "^2.0.3" - "@jupyterlab/codeeditor" "^2.0.2" - "@jupyterlab/coreutils" "^4.0.2" - "@jupyterlab/services" "^5.0.3" - "@jupyterlab/statedb" "^2.0.1" + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/completer/-/completer-2.1.1.tgz#4d4f8b0f91590a23d4496f42477a2eeb1029b2d9" + integrity sha512-XHpeqrPNTbMyBhIHj0nQTyfJSpVe7+CYWrTOJO/33pGkc5qZpfegSgI22G697zNNf6WwVg61aYRN67ItZn3tOg== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/statedb" "^2.1.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1201,7 +1201,7 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/coreutils@4", "@jupyterlab/coreutils@^4.0.2", "@jupyterlab/coreutils@^4.1.0": +"@jupyterlab/coreutils@4", "@jupyterlab/coreutils@^4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-4.1.0.tgz#ac6cee0558b7c15786e0a210ac3b40a86aec8e84" integrity sha512-2lcXHd8ZCUuqoiZYK9Xs4HHX46jkdtsdmfgvgg/3odFXFMdv4Twau7fqr9URgRl5JYszPPpItGJIorAVipVfNQ== @@ -1233,7 +1233,7 @@ "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/docregistry@2", "@jupyterlab/docregistry@^2.0.3", "@jupyterlab/docregistry@^2.1.2": +"@jupyterlab/docregistry@2", "@jupyterlab/docregistry@^2.1.2": version "2.1.2" resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-2.1.2.tgz#62fa7bb2e345ca5005d5781a5481be6213964614" integrity sha512-nUTkijFXmyaro0V4lLb9PudkdwNa/IyzNggW9Y8VJtDX4uCuwYznWspQ6w6HeXTfV2NSLfNvJ4n3gASxUmaCPQ== @@ -1279,28 +1279,28 @@ react "~16.9.0" "@jupyterlab/fileeditor@2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/fileeditor/-/fileeditor-2.0.3.tgz#345226056b7f0a472adafa3ad82dddd7576e1b95" - integrity sha512-dWvnDYWNPwqPt9msq9gWWQhY0IpGMuF8UsvAUv+mWtXqsDJSoZoxDOjkLVsVEM5MWOqBZYDEMqrN3yGScfNyog== - dependencies: - "@jupyterlab/apputils" "^2.0.3" - "@jupyterlab/codeeditor" "^2.0.2" - "@jupyterlab/docregistry" "^2.0.3" - "@jupyterlab/statusbar" "^2.0.3" - "@jupyterlab/ui-components" "^2.0.2" + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupyterlab/fileeditor/-/fileeditor-2.1.2.tgz#f0208493c22b6288c0d7b7fea93b4ad11a66f87d" + integrity sha512-YG7F5X/DqNJyqwSjwa/s8SXuVFzesW4lnTcwhA4M24B1YyUxr6lz2dIS8+FlTFmOqwVWCd1v8jy6IAd9LgDXAw== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/docregistry" "^2.1.2" + "@jupyterlab/statusbar" "^2.1.1" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/coreutils" "^1.4.2" "@lumino/messaging" "^1.3.3" "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/nbformat@^2.0.1", "@jupyterlab/nbformat@^2.1.0": +"@jupyterlab/nbformat@^2.1.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-2.1.0.tgz#cff41b91c647d32c30f1587ff12e6a3ee6d91ba0" integrity sha512-4NybeAvLTpGLZguARl6g4ENGzIPYwUaU+CZpcH2H0vq47oXrzRrZMsiWq5Dufrn0sIhOD9CINHXJ9mxIYzj/JA== dependencies: "@lumino/coreutils" "^1.4.2" -"@jupyterlab/notebook@2", "@jupyterlab/notebook@^2.0.3": +"@jupyterlab/notebook@2", "@jupyterlab/notebook@^2.1.2": version "2.1.2" resolved "https://registry.yarnpkg.com/@jupyterlab/notebook/-/notebook-2.1.2.tgz#b41c9769e3427fb53f5932845fc526b939f1f255" integrity sha512-zJXLlG6+GqZaH1uEcYk3bj7qXj6p/TJwlhezyeZVdS9/KsVfiozmO+2S79O5ZEEXKuzSujdqmjLyR3sJAhr+PA== @@ -1357,7 +1357,7 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/rendermime-interfaces@^2.0.1", "@jupyterlab/rendermime-interfaces@^2.1.0": +"@jupyterlab/rendermime-interfaces@^2.1.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-2.1.0.tgz#936fec0248a70c0e64c8bf292e9719fbc5d3516c" integrity sha512-WZsFan4snRX3UkxMer4dOpsQcV1R3Two8wT4wLM7nrIHuwHxuruiIlzpmsZENaKfF6C5SKP5esi6DSfjs5y90g== @@ -1365,7 +1365,7 @@ "@lumino/coreutils" "^1.4.2" "@lumino/widgets" "^1.11.1" -"@jupyterlab/rendermime@2", "@jupyterlab/rendermime@^2.0.3", "@jupyterlab/rendermime@^2.1.1": +"@jupyterlab/rendermime@2", "@jupyterlab/rendermime@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-2.1.1.tgz#da466027ff18be611aa133a96dfd75fc11045989" integrity sha512-ePzpX8w2DcI/pYy7ew8cgBqUzoAhOvBpy4iMRTntbiUYhLqSipsOg71jW1h8U/fSwyvZMr/3d5keBHeJTP4U/w== @@ -1385,7 +1385,7 @@ lodash.escape "^4.0.1" marked "^0.8.0" -"@jupyterlab/services@5", "@jupyterlab/services@^5.0.3", "@jupyterlab/services@^5.1.0": +"@jupyterlab/services@5", "@jupyterlab/services@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-5.1.0.tgz#891607d87cbe9413219cfe4ceb9905193b85b657" integrity sha512-xhtDvAdgw+sWNSbpkExCYyJbHxlwhiZYqc07+zhOdYrpxO19k/ZmmyNoYCyfvNLcMQ4JWVBoczI714u1QNLj4w== @@ -1416,7 +1416,7 @@ ajv "^6.10.2" json5 "^2.1.1" -"@jupyterlab/statedb@^2.0.1", "@jupyterlab/statedb@^2.1.0": +"@jupyterlab/statedb@^2.1.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-2.1.0.tgz#3b1889417563bb855bb3fd64fb8d2f45f5df7013" integrity sha512-3L0NGJvNeI2KeU6jrY97riEmxcKtHb1WRxbMU9ORIppR5Sb5x3K3qErep7r9qu0lV7XH9Zb95uMukX4bgj2GaA== @@ -1427,7 +1427,7 @@ "@lumino/properties" "^1.1.6" "@lumino/signaling" "^1.3.5" -"@jupyterlab/statusbar@2", "@jupyterlab/statusbar@^2.0.3", "@jupyterlab/statusbar@^2.1.1": +"@jupyterlab/statusbar@2", "@jupyterlab/statusbar@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-2.1.1.tgz#ccf4672d0ca0911e8dd02788aaa8c8cb0e63f1c0" integrity sha512-Q9/7wXy0m2/g+bn6KHUC7s0YQCbjArZ4G+OuCesHJpj0XiU8yuJki7uiRvTfxdrmB6w2/oU+YykLojS1NYgOWA== @@ -1449,19 +1449,19 @@ typestyle "^2.0.4" "@jupyterlab/testutils@2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/testutils/-/testutils-2.0.3.tgz#b9d80413b3d62e634b5ac4e6b7027eead22016fc" - integrity sha512-IB8f/6e0ph/4q368LUbWCIzm72xtXLZ8PDRk0F6+chEaD0XMv+CzDykNZU6VzY2zNN3gu9S6bKcPkMM7jNe2Fw== - dependencies: - "@jupyterlab/apputils" "^2.0.3" - "@jupyterlab/cells" "^2.0.3" - "@jupyterlab/codeeditor" "^2.0.2" - "@jupyterlab/codemirror" "^2.0.3" - "@jupyterlab/docregistry" "^2.0.3" - "@jupyterlab/nbformat" "^2.0.1" - "@jupyterlab/notebook" "^2.0.3" - "@jupyterlab/rendermime" "^2.0.3" - "@jupyterlab/services" "^5.0.3" + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupyterlab/testutils/-/testutils-2.1.2.tgz#d9dcec61a35ecf3c8b95f7bacb9875b76eb011f0" + integrity sha512-vEGJYRnZCGQm/lNaQ0ilYBp88bvJsjK+pzLWCCHP2hcJzftIp91FmeoC5mN2O6RCXcqhLSGNkXCBEKwvnY7E4w== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/cells" "^2.1.2" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/codemirror" "^2.1.1" + "@jupyterlab/docregistry" "^2.1.2" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/notebook" "^2.1.2" + "@jupyterlab/rendermime" "^2.1.1" + "@jupyterlab/services" "^5.1.0" "@lumino/coreutils" "^1.4.2" "@lumino/signaling" "^1.3.5" fs-extra "^8.1.0" @@ -1473,19 +1473,19 @@ simulate-event "~1.4.0" "@jupyterlab/tooltip@2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/tooltip/-/tooltip-2.0.3.tgz#6dc2b6637d3d21a7f4d60770160b9272999e5030" - integrity sha512-8O9Za2nKHni456gaw4Q6rz7m+TVLKEUMCvLyEa7x6aui7SejntLRIIr+As+GOIOI25hpL71dPG6SMN1kPuQ1RQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/tooltip/-/tooltip-2.1.1.tgz#517b58883961143a2388aa93bbfe9a1d6506e420" + integrity sha512-Tzhb/6IbsMErW2hmqD7LWIWsSrsFh45tRtRG5+spMe1RATfkMOek7Xhvc99d2mDLggDct4u6eiJG8VSUetKrFw== dependencies: - "@jupyterlab/apputils" "^2.0.3" - "@jupyterlab/codeeditor" "^2.0.2" - "@jupyterlab/rendermime" "^2.0.3" - "@jupyterlab/services" "^5.0.3" + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/rendermime" "^2.1.1" + "@jupyterlab/services" "^5.1.0" "@lumino/coreutils" "^1.4.2" "@lumino/messaging" "^1.3.3" "@lumino/widgets" "^1.11.1" -"@jupyterlab/ui-components@^2.0.2", "@jupyterlab/ui-components@^2.1.1": +"@jupyterlab/ui-components@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-2.1.1.tgz#ace65290ebe3e913e85e574d5d94f3c9f55d244c" integrity sha512-VZWtJud5XXzSTK6HJebbqg7TkJmvuRk5K+F30u+pgX7PStC4j8OFD7IXCreLWmrvxoVvEXd4GFH2sVng5cgsQA== @@ -1502,12 +1502,12 @@ typestyle "^2.0.4" "@krassowski/jupyterlab-lsp@file:packages/jupyterlab-lsp": - version "1.0.0" + version "2.0.0" dependencies: - "@krassowski/jupyterlab_go_to_definition" "~1.0.0" + "@krassowski/jupyterlab_go_to_definition" "~2.0.0" "@krassowski/jupyterlab_go_to_definition@file:packages/jupyterlab-go-to-definition": - version "1.0.0" + version "2.0.0" "@lerna/add@3.21.0": version "3.21.0" @@ -2267,7 +2267,7 @@ "@lumino/algorithm" "^1.3.0" "@lumino/collections" "^1.3.0" -"@lumino/polling@^1.0.4", "@lumino/polling@^1.1.1": +"@lumino/polling@^1.1.1": version "1.3.0" resolved "https://registry.yarnpkg.com/@lumino/polling/-/polling-1.3.0.tgz#cd401706bc2508508a7f193298da40f9476a49db" integrity sha512-sMg6UYXZGjc02dCXqyvseFGVzskSN0Xc877JJVXb0uTBlDRT0dvGxGzVL2EjYf6glwTnwiMTfW7ZXpxBFeBilg== @@ -2428,41 +2428,12 @@ "@types/node" ">= 8" "@octokit/types@^4.0.1": - version "4.1.6" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-4.1.6.tgz#03d3f277dee73086940578c2518c2ed700ac07a0" - integrity sha512-/gN/VeZirpFb0GIpbDF6SgtfDp9EQ+ymqPf595wjRkEoRgkrCnJGctGAd8MrynStBvYRmMWF1P64qzZFzhW7Vg== + version "4.1.9" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-4.1.9.tgz#a3e1ff1a15637ab830fbab0268c2d7ca824bc969" + integrity sha512-hinM/BA2c1vebN2HSR3JtVdYtrSbmvn/doUBZXXuQuh/9o60hYwitQQAGTpJu+k6pjtjURskDHQxUFvqLvYCeA== dependencies: "@types/node" ">= 8" -"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.4.0", "@sinonjs/commons@^1.7.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.0.tgz#c8d68821a854c555bba172f3b06959a0039b236d" - integrity sha512-wEj54PfsZ5jGSwMX68G8ZXFawcSglQSXqCftWX3ec8MDUzQdHgcKvw97awHbY0efQEL5iKUOAmmVtoYgmrSG4Q== - dependencies: - type-detect "4.0.8" - -"@sinonjs/formatio@^3.2.1": - version "3.2.2" - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c" - integrity sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ== - dependencies: - "@sinonjs/commons" "^1" - "@sinonjs/samsam" "^3.1.0" - -"@sinonjs/samsam@^3.1.0", "@sinonjs/samsam@^3.3.3": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a" - integrity sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ== - dependencies: - "@sinonjs/commons" "^1.3.0" - array-from "^2.1.1" - lodash "^4.17.15" - -"@sinonjs/text-encoding@^0.7.1": - version "0.7.1" - resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" - integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== - "@types/babel__core@^7.1.0": version "7.1.8" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.8.tgz#057f725aca3641f49fc11c7a87a9de5ec588a5d7" @@ -2518,7 +2489,7 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.44.tgz#980cc5a29a3ef3bea6ff1f7d021047d7ea575e21" integrity sha512-iaIVzr+w2ZJ5HkidlZ3EJM8VTZb2MJLCjw3V+505yVts0gRC4UMvjw0d1HPtGqI/HQC/KdsYtayfzl+AXY2R8g== -"@types/events@*", "@types/events@^3.0.0": +"@types/events@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== @@ -2531,11 +2502,10 @@ "@types/node" "*" "@types/glob@*", "@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + version "7.1.2" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.2.tgz#06ca26521353a545d94a0adc74f38a59d232c987" + integrity sha512-VgNIkxK+j7Nz5P7jvUZlRvhuPSmsEfS03b0alKcq5V/STUKAa3Plemsn5mrQUO7am6OErJ4rhGEGJbACclrtRA== dependencies: - "@types/events" "*" "@types/minimatch" "*" "@types/node" "*" @@ -2613,20 +2583,10 @@ dependencies: "@types/node" "*" -"@types/mocha@^5.2.7": - version "5.2.7" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.7.tgz#315d570ccb56c53452ff8638738df60726d5b6ea" - integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ== - "@types/node@*", "@types/node@>= 8": - version "14.0.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.10.tgz#dbfaa170bd9eafccccb6d7060743a761b0844afd" - integrity sha512-Bz23oN/5bi0rniKT24ExLf4cK0JdvN3dH/3k0whYkdN4eI4vS2ZW/2ENNn2uxHCzWcbdHIa/GRuWQytfzCjRYw== - -"@types/node@^12.0.7": - version "12.12.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.43.tgz#b60ce047822e526e7a9252e50844eee79d5386ff" - integrity sha512-KUyZdkGCnVPuXfsKmDUu2XLui65LZIJ2s0M57noy5e+ixUT2oK33ep7zlvgzI8LElcWqbf8AR+o/3GqAPac2zA== + version "14.0.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.11.tgz#61d4886e2424da73b7b25547f59fdcb534c165a3" + integrity sha512-lCvvI24L21ZVeIiyIUHZ5Oflv1hhHQ5E1S25IRlKIXaRkVgmXpJMI3wUJkmym2bTbCe+WoIibQnMVAU3FguaOg== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -2659,11 +2619,6 @@ "@types/glob" "*" "@types/node" "*" -"@types/sinon@^7.0.12": - version "7.5.2" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.5.2.tgz#5e2f1d120f07b9cda07e5dedd4f3bf8888fccdb9" - integrity sha512-T+m89VdXj/eidZyejvmoP9jivXgBDdkOSBVQjU9kF349NEx10QdPNGxHeZUaj1IlJ32/ewdyXJjnJxyxJroYwg== - "@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" @@ -2709,161 +2664,6 @@ dependencies: "@types/yargs-parser" "*" -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - "@zkochan/cmd-shim@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e" @@ -2891,14 +2691,6 @@ abbrev@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-globals@^4.1.0: version "4.3.4" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" @@ -2922,16 +2714,11 @@ acorn@^5.5.3: resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== -acorn@^6.0.1, acorn@^6.0.7, acorn@^6.4.1: +acorn@^6.0.1, acorn@^6.0.7: version "6.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= - agent-base@4, agent-base@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" @@ -2953,17 +2740,7 @@ agentkeepalive@^3.4.1: dependencies: humanize-ms "^1.2.1" -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, ajv-keywords@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== - -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1: +ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1: version "6.12.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== @@ -2978,16 +2755,6 @@ ansi-color@^0.2.1: resolved "https://registry.yarnpkg.com/ansi-color/-/ansi-color-0.2.1.tgz#3e75c037475217544ed763a8db5709fa9ae5bf9a" integrity sha1-PnXAN0dSF1RO12Oo21cJ+prlv5o= -ansi-colors@3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" - integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" @@ -3028,14 +2795,6 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.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.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -3091,11 +2850,6 @@ array-find-index@^1.0.1: resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= -array-from@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" - integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU= - array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" @@ -3123,11 +2877,6 @@ 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.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -3143,15 +2892,6 @@ asap@^2.0.0: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= -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== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" @@ -3164,14 +2904,6 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" @@ -3187,23 +2919,11 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - async-limiter@~1.0.0: 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@^2.5.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== - dependencies: - lodash "^4.17.14" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -3274,11 +2994,6 @@ babel-preset-jest@^24.9.0: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" babel-plugin-jest-hoist "^24.9.0" -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= - bail@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" @@ -3289,21 +3004,6 @@ balanced-match@^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.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" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -3344,28 +3044,6 @@ before-after-hook@^2.0.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== -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" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== - bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" @@ -3373,42 +3051,11 @@ bindings@^1.5.0: 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.3.0, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: +bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: 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.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.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== - -body-parser@^1.16.1: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -3417,7 +3064,7 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: +braces@^2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== @@ -3433,18 +3080,6 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.2, 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@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" @@ -3457,72 +3092,6 @@ browser-resolve@^1.11.3: dependencies: resolve "1.1.7" -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -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= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11" - integrity sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.2" - 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" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - browserslist@^4.12.0, browserslist@^4.8.5: version "4.12.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" @@ -3552,48 +3121,11 @@ btoa-lite@^1.0.0: resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - buffer-from@1.x, buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - 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" - isarray "^1.0.0" - bufrw@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/bufrw/-/bufrw-1.3.0.tgz#28d6cfdaf34300376836310f5c31d57eeb40c8fa" @@ -3609,11 +3141,6 @@ builtin-modules@^1.1.1: resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - builtins@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" @@ -3629,12 +3156,7 @@ byte-size@^5.0.1: resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: +cacache@^12.0.0, cacache@^12.0.3: version "12.0.4" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== @@ -3689,11 +3211,6 @@ caller-path@^2.0.0: 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" @@ -3751,9 +3268,9 @@ camelcase@^6.0.0: integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== caniuse-lite@^1.0.30001043: - version "1.0.30001077" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001077.tgz#5d7da6a120b08d9f4fd94823786ecb454aaa5626" - integrity sha512-AEzsGvjBJL0lby/87W96PyEvwN0GsYvk5LHsglLg9tW37K4BqvAvoSCdWIE13OZQ8afupqZ73+oL/1LkedN8hA== + version "1.0.30001078" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001078.tgz#e1b6e2ae327b6a1ec11f65ec7a0dde1e7093074c" + integrity sha512-sF12qXe9VMm32IEf/+NDvmTpwJaaU7N1igpiH2FdI4DyABJSsOqG3ZAcFvszLkoLoo1y6VJLMYivukUAxaMASw== capture-exit@^2.0.0: version "2.0.0" @@ -3786,7 +3303,7 @@ chai@^4.0.1, chai@^4.2.0: pathval "^1.1.0" type-detect "^4.0.5" -chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.2.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.2.0, chalk@^2.3.0, chalk@^2.3.1, 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== @@ -3820,65 +3337,16 @@ check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= -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" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.0.0, chokidar@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8" - integrity sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ== - 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.1.1, chownr@^1.1.2: 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.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" - ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -3996,11 +3464,6 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -colors@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - columnify@^1.5.4: version "1.5.4" resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" @@ -4016,16 +3479,11 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.12.1, commander@^2.20.0, commander@^2.9.0, commander@~2.20.3: +commander@^2.12.1, commander@^2.9.0, commander@~2.20.3: 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== -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - compare-func@^1.3.1: version "1.3.4" resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.4.tgz#6b07c4c5e8341119baf44578085bda0f4a823516" @@ -4034,32 +3492,17 @@ compare-func@^1.3.1: array-ify "^1.0.0" dot-prop "^3.0.0" -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" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.0, concat-stream@^1.6.2: +concat-stream@^1.5.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -4087,36 +3530,11 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" -connect@^3.6.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" - integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== - dependencies: - debug "2.6.9" - finalhandler "1.1.2" - parseurl "~1.3.3" - utils-merge "1.0.1" - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - 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= -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= - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - conventional-changelog-angular@^5.0.3: version "5.0.10" resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.10.tgz#5cf7b00dd315b6a6a558223c80d5ef24ddb34205" @@ -4207,11 +3625,6 @@ convert-source-map@^1.4.0, convert-source-map@^1.7.0: 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" @@ -4252,37 +3665,6 @@ cosmiconfig@^5.1.0, cosmiconfig@^5.2.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== - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -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== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^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== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - create-react-context@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c" @@ -4291,17 +3673,6 @@ create-react-context@^0.3.0: gud "^1.0.0" warning "^4.0.3" -cross-spawn@6.0.5, 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" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -4311,22 +3682,16 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" +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" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": version "0.3.8" @@ -4357,11 +3722,6 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" -custom-event@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" - integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= - cyclist@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" @@ -4398,31 +3758,26 @@ data-urls@^1.0.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" -date-format@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" - integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== - dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: - 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.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@3.2.6, debug@^3.0.0, debug@^3.1.0, debug@^3.2.6: +debug@^2.2.0, debug@^2.3.3: + 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: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -4534,29 +3889,11 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== -des.js@^1.0.0: - 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" - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -4575,11 +3912,6 @@ dezalgo@^1.0.0: asap "^2.0.0" wrappy "1" -di@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" - integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= - dictionary-en-gb@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/dictionary-en-gb/-/dictionary-en-gb-2.2.1.tgz#8ef21b484b0ce89cdebd60c1b2b65f56df9a475f" @@ -4595,25 +3927,11 @@ diff-sequences@^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, 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" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^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" @@ -4684,16 +4002,6 @@ dom-helpers@^3.4.0: dependencies: "@babel/runtime" "^7.1.2" -dom-serialize@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= - dependencies: - custom-event "~1.0.0" - ent "~2.2.0" - extend "^3.0.0" - void-elements "^2.0.0" - dom-serializer@0: version "0.2.2" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" @@ -4707,11 +4015,6 @@ dom4@^2.1.5: resolved "https://registry.yarnpkg.com/dom4/-/dom4-2.1.5.tgz#f98a94eb67b340f0fa5b42b0ee9c38cda035428e" integrity sha512-gJbnVGq5zaBUY0lUh0LUEVGYrtN75Ks8ZwpwOYvnVFrKy/qzXK4R/1WuLIFExWj/tBxbRAkTzZUGJHXmqsBNjQ== -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - domelementtype@1, domelementtype@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" @@ -4781,49 +4084,16 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - electron-to-chromium@^1.3.413: - version "1.3.459" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.459.tgz#49a43d78f60b5bf42312b636f3af43c695e0c652" - integrity sha512-aN3Z89qEYIwVjzGi9SrcTjjopRZ3STUA6xTufS0fxZy8xOO2iqVw8rYKdT32CHgOKHOYj5KGmz3n6xUKE4QJiQ== - -elliptic@^6.0.0, elliptic@^6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" + version "1.3.464" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.464.tgz#fe13feaa08f6f865d3c89d5d72e54c194f463aa5" + integrity sha512-Oo+0+CN9d2z6FToQW6Hwvi9ez09Y/usKwr0tsDsyg43a871zVJCi1nR0v03djLbRNcaCKjtrnVf2XJhTxEpPCg== 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== -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= - -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== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - encoding@^0.1.11: version "0.1.12" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" @@ -4834,72 +4104,9 @@ encoding@^0.1.11: end-of-stream@^1.0.0, end-of-stream@^1.1.0: 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.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" - integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== - 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.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" - integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== - 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" - -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== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - tapable "^1.0.0" - -enhanced-resolve@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" - integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -ent@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= + once "^1.4.0" entities@^1.1.1: version "1.1.2" @@ -4926,13 +4133,6 @@ err-code@^1.0.0: resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -5029,12 +4229,7 @@ es6-weak-map@^2.0.2: es6-iterator "^2.0.3" es6-symbol "^3.1.1" -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: +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= @@ -5191,24 +4386,11 @@ eventemitter3@^3.1.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== -eventemitter3@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - events@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - exec-sh@^0.3.2: version "0.3.4" resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" @@ -5258,13 +4440,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - expect@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" @@ -5327,16 +4502,6 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@^1.6.6: - version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" - integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== - dependencies: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" - yauzl "^2.10.0" - extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -5398,13 +4563,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: version "3.5.2" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" @@ -5424,14 +4582,6 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" -file-loader@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" - integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== - dependencies: - loader-utils "^1.0.2" - schema-utils "^1.0.0" - 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" @@ -5447,42 +4597,6 @@ 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" - -finalhandler@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^2.1.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@3.0.0, find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -5498,6 +4612,13 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + find-up@^4.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" @@ -5506,16 +4627,6 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -findup-sync@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" @@ -5525,13 +4636,6 @@ flat-cache@^2.0.1: rimraf "2.6.3" write "1.0.3" -flat@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" - integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== - dependencies: - is-buffer "~2.0.3" - flatted@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" @@ -5545,13 +4649,6 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@^1.0.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.11.0.tgz#afa14f08ba12a52963140fe43212658897bc0ecb" - integrity sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA== - dependencies: - debug "^3.0.0" - for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -5596,14 +4693,7 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-access@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" - integrity sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o= - dependencies: - null-check "^1.0.0" - -fs-extra@^7.0.0, fs-extra@^7.0.1: +fs-extra@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== @@ -5651,11 +4741,6 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -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" @@ -5817,7 +4902,7 @@ 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.0.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== @@ -5829,18 +4914,6 @@ glob-to-regexp@^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.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -5853,42 +4926,6 @@ glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -global-modules@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - globals@^11.1.0, globals@^11.7.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -5913,11 +4950,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -5963,18 +4995,6 @@ harmony-reflect@^1.4.6: resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA== -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-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" @@ -6028,28 +5048,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hash-base@^3.0.0: - 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.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" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - hexer@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/hexer/-/hexer-1.5.0.tgz#b86ce808598e8a9d1892c571f3cedd86fc9f0653" @@ -6065,22 +5063,6 @@ highlight.js@^9.13.1: resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.1.tgz#ed21aa001fe6252bb10a3d76d47573c6539fe13c" integrity sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg== -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: version "2.8.8" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" @@ -6115,17 +5097,6 @@ http-cache-semantics@^3.8.1: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - http-proxy-agent@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" @@ -6134,15 +5105,6 @@ http-proxy-agent@^2.1.0: agent-base "4" debug "3.1.0" -http-proxy@^1.13.0: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -6152,12 +5114,7 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -https-proxy-agent@^2.2.1, https-proxy-agent@^2.2.3: +https-proxy-agent@^2.2.3: version "2.2.4" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== @@ -6203,11 +5160,6 @@ identity-obj-proxy@^3.0.0: dependencies: harmony-reflect "^1.4.6" -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" @@ -6246,7 +5198,7 @@ import-fresh@^3.0.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-local@2.0.0, import-local@^2.0.0: +import-local@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== @@ -6276,11 +5228,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -6294,22 +5241,17 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, 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== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.2, ini@^1.3.4, ini@^1.3.5: +ini@^1.3.2, 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== @@ -6347,11 +5289,6 @@ inquirer@^6.2.0, inquirer@^6.2.2: strip-ansi "^5.1.0" through "^2.3.6" -interpret@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" - integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== - interpret@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" @@ -6364,11 +5301,6 @@ invariant@^2.2.2, invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - ip@1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -6416,26 +5348,12 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= -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" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - 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-buffer@^2.0.0, is-buffer@~2.0.3: +is-buffer@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== @@ -6545,7 +5463,7 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.0, 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== @@ -6564,11 +5482,6 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" -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-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" @@ -6646,7 +5559,7 @@ is-whitespace-character@^1.0.0: resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== -is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.0, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== @@ -6661,28 +5574,11 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: +isarray@1.0.0, isarray@~1.0.0: version "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.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" - integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== - dependencies: - buffer-alloc "^1.2.0" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -6756,9 +5652,9 @@ istanbul-reports@^2.2.6: html-escaper "^2.0.0" iterare@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/iterare/-/iterare-1.2.0.tgz#7427f5ed45986e4b73e2fea903579f1117f3dd15" - integrity sha512-RxMV9p/UzdK0Iplnd8mVgRvNdXlsTOiuDrqMRnDi3wIhbT+JP4xDquAX9ay13R3CH72NBzQ91KWe0+C168QAyQ== + version "1.2.1" + resolved "https://registry.yarnpkg.com/iterare/-/iterare-1.2.1.tgz#139c400ff7363690e33abffa33cbba8920f00042" + integrity sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q== jaeger-client@^3.5.3: version "3.18.0" @@ -7175,14 +6071,6 @@ jest@^24.7.1: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -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== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@^3.12.0, js-yaml@^3.12.1, js-yaml@^3.13.0, js-yaml@^3.13.1: version "3.14.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" @@ -7238,7 +6126,7 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== @@ -7305,13 +6193,6 @@ json5@2.x, json5@^2.1.1, json5@^2.1.2: dependencies: minimist "^1.2.5" -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - jsonc-parser@^1.0.0, jsonc-parser@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-1.0.3.tgz#1d53d7160e401a783dbceabaad82473f80e6ad7e" @@ -7344,87 +6225,6 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -just-extend@^4.0.2: - version "4.1.0" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.1.0.tgz#7278a4027d889601640ee0ce0e5a00b992467da4" - integrity sha512-ApcjaOdVTJ7y4r08xI5wIqpvwS48Q0PBG4DJROcEkH1f8MdAiNFyFxz3xoL0LWAVwjrwPYZdVHHxhRHcx/uGLA== - -karma-chrome-launcher@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf" - integrity sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w== - dependencies: - fs-access "^1.0.0" - which "^1.2.1" - -karma-junit-reporter@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/karma-junit-reporter/-/karma-junit-reporter-2.0.1.tgz#d34eef7f0b2fd064e0896954e8851a90cf14c8f3" - integrity sha512-VtcGfE0JE4OE1wn0LK8xxDKaTP7slN8DO3I+4xg6gAi1IoAHAXOJ1V9G/y45Xg6sxdxPOR3THCFtDlAfBo9Afw== - dependencies: - path-is-absolute "^1.0.0" - xmlbuilder "12.0.0" - -karma-mocha-reporter@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz#15120095e8ed819186e47a0b012f3cd741895560" - integrity sha1-FRIAlejtgZGG5HoLAS8810GJVWA= - dependencies: - chalk "^2.1.0" - log-symbols "^2.1.0" - strip-ansi "^4.0.0" - -karma-mocha@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-1.3.0.tgz#eeaac7ffc0e201eb63c467440d2b69c7cf3778bf" - integrity sha1-7qrH/8DiAetjxGdEDStpx883eL8= - dependencies: - minimist "1.2.0" - -karma-webpack@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-4.0.2.tgz#23219bd95bdda853e3073d3874d34447c77bced0" - integrity sha512-970/okAsdUOmiMOCY8sb17A2I8neS25Ad9uhyK3GHgmRSIFJbDcNEFE8dqqUhNe9OHiCC9k3DMrSmtd/0ymP1A== - dependencies: - clone-deep "^4.0.1" - loader-utils "^1.1.0" - neo-async "^2.6.1" - schema-utils "^1.0.0" - source-map "^0.7.3" - webpack-dev-middleware "^3.7.0" - -karma@^4.1.0: - version "4.4.1" - resolved "https://registry.yarnpkg.com/karma/-/karma-4.4.1.tgz#6d9aaab037a31136dc074002620ee11e8c2e32ab" - integrity sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A== - dependencies: - bluebird "^3.3.0" - body-parser "^1.16.1" - braces "^3.0.2" - chokidar "^3.0.0" - colors "^1.1.0" - connect "^3.6.0" - di "^0.0.1" - dom-serialize "^2.2.0" - flatted "^2.0.0" - glob "^7.1.1" - graceful-fs "^4.1.2" - http-proxy "^1.13.0" - isbinaryfile "^3.0.0" - lodash "^4.17.14" - log4js "^4.0.0" - mime "^2.3.1" - minimatch "^3.0.2" - optimist "^0.6.1" - qjobs "^1.1.4" - range-parser "^1.2.0" - rimraf "^2.6.0" - safe-buffer "^5.0.1" - socket.io "2.1.1" - source-map "^0.6.1" - tmp "0.0.33" - useragent "2.3.0" - kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -7454,13 +6254,6 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - left-pad@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" @@ -7547,29 +6340,6 @@ load-json-file@^5.3.0: strip-bom "^3.0.0" type-fest "^0.3.0" -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -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 "^3.0.0" - json5 "^1.0.1" - locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -7683,36 +6453,13 @@ lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -log-symbols@2.2.0, log-symbols@^2.1.0: +log-symbols@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== dependencies: chalk "^2.0.1" -log4js@^4.0.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-4.5.1.tgz#e543625e97d9e6f3e6e7c9fc196dd6ab2cae30b5" - integrity sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw== - dependencies: - date-format "^2.0.0" - debug "^4.1.1" - flatted "^2.0.0" - rfdc "^1.1.4" - streamroller "^1.0.6" - -lolex@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-4.2.0.tgz#ddbd7f6213ca1ea5826901ab1222b65d714b3cd7" - integrity sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg== - -lolex@^5.0.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" - integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== - dependencies: - "@sinonjs/commons" "^1.7.0" - long@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/long/-/long-2.4.0.tgz#9fa180bb1d9500cdc29c4156766a1995e1f4524f" @@ -7733,7 +6480,7 @@ loud-rejection@^1.0.0: currently-unhandled "^0.4.1" signal-exit "^3.0.0" -lru-cache@4.1.x, lru-cache@^4.0.1: +lru-cache@^4.0.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== @@ -7767,7 +6514,7 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" -make-dir@^2.0.0, make-dir@^2.1.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== @@ -7804,13 +6551,6 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -7853,15 +6593,6 @@ marked@^0.8.0: resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.2.tgz#4faad28d26ede351a7a1aaa5fec67915c869e355" integrity sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw== -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - mdast-comment-marker@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-1.1.2.tgz#5ad2e42cfcc41b92a10c1421a98c288d7b447a6d" @@ -7887,20 +6618,6 @@ mdast-util-to-string@^1.0.2: resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527" integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - memoizee@^0.4.14: version "0.4.14" resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57" @@ -7915,22 +6632,6 @@ memoizee@^0.4.14: next-tick "1" timers-ext "^0.1.5" -memory-fs@^0.4.0, 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= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.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" - meow@^3.3.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" @@ -7991,7 +6692,7 @@ merge2@^1.2.3: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: +micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -8010,57 +6711,29 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - 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, mime-types@~2.1.24: +mime-types@^2.1.12, mime-types@~2.1.19: 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.44.0" -mime@^2.0.3, mime@^2.3.1, mime@^2.4.4: - version "2.4.6" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" - integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== - 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: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - min-indent@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -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" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "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.4, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: +minimatch@^3.0.0, 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== @@ -8084,21 +6757,11 @@ minimist-options@^4.0.2: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.0: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -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.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" @@ -8150,49 +6813,13 @@ mkdirp@*: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" - integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== - dependencies: - minimist "^1.2.5" - -mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4: +mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1: 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 "^1.2.5" -mocha@^6.1.4: - version "6.2.3" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.3.tgz#e648432181d8b99393410212664450a4c1e31912" - integrity sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg== - dependencies: - ansi-colors "3.2.3" - browser-stdout "1.3.1" - debug "3.2.6" - diff "3.5.0" - escape-string-regexp "1.0.5" - find-up "3.0.0" - glob "7.1.3" - growl "1.10.5" - he "1.2.0" - js-yaml "3.13.1" - log-symbols "2.2.0" - minimatch "3.0.4" - mkdirp "0.5.4" - ms "2.1.1" - node-environment-flags "1.0.5" - object.assign "4.1.0" - strip-json-comments "2.0.1" - supports-color "6.0.0" - which "1.3.1" - wide-align "1.1.3" - yargs "13.3.2" - yargs-parser "13.1.2" - yargs-unparser "1.6.0" - modify-values@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" @@ -8225,11 +6852,6 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - ms@^2.0.0, ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -8291,12 +6913,7 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -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, neo-async@^2.6.1: +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== @@ -8316,17 +6933,6 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -nise@^1.5.2: - version "1.5.3" - resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.3.tgz#9d2cfe37d44f57317766c6e9408a359c5d3ac1f7" - integrity sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ== - dependencies: - "@sinonjs/formatio" "^3.2.1" - "@sinonjs/text-encoding" "^0.7.1" - just-extend "^4.0.2" - lolex "^5.0.1" - path-to-regexp "^1.7.0" - nlcst-is-literal@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/nlcst-is-literal/-/nlcst-is-literal-1.2.1.tgz#878b68a43b5fd77b85e45b1b1737ae11a25f1be3" @@ -8339,14 +6945,6 @@ nlcst-to-string@^2.0.0: resolved "https://registry.yarnpkg.com/nlcst-to-string/-/nlcst-to-string-2.0.4.tgz#9315dfab80882bbfd86ddf1b706f53622dc400cc" integrity sha512-3x3jwTd6UPG7vi5k4GEzvxJ5rDA7hVUIRNHPblKuMVP9Z3xmlsd9cgLcpAMkc5uPOBna82EeshROFhsPkbnTZg== -node-environment-flags@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.5.tgz#fa930275f5bf5dae188d6192b24b4c8bbac3d76a" - integrity sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ== - dependencies: - object.getownpropertydescriptors "^2.0.3" - semver "^5.7.0" - node-fetch-npm@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" @@ -8383,35 +6981,6 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - node-modules-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" @@ -8458,11 +7027,6 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -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-url@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" @@ -8551,11 +7115,6 @@ nspell@^2.0.0: dependencies: is-buffer "^2.0.0" -null-check@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" - integrity sha1-l33/1xdgErnsMNKjnbXPcqBDnt0= - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -8576,11 +7135,6 @@ object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^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" @@ -8620,7 +7174,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@4.1.0, object.assign@^4.1.0: +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== @@ -8650,13 +7204,6 @@ octokit-pagination-methods@^1.1.0: resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -8688,14 +7235,6 @@ opentracing@^0.14.0, opentracing@^0.14.4: resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.4.tgz#a113408ea740da3a90fde5b3b0011a375c2e4268" integrity sha512-nNnZDkUNExBwEpb7LZaeMeQgvrlO8l4bgY/LvGNZCR0xG/dGWqHqjKrAmR5GUoYo0FIz38kxasvA1aevxWs2CA== -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - optionator@^0.8.1, optionator@^0.8.2: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -8718,25 +7257,11 @@ ora@^1.3.0: cli-spinners "^1.0.1" log-symbols "^2.1.0" -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= -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== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - os-name@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" @@ -8758,11 +7283,6 @@ osenv@^0.1.4, osenv@^0.1.5: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - p-each-series@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" @@ -8775,11 +7295,6 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -8861,11 +7376,6 @@ p-waterfall@^1.0.0: dependencies: p-reduce "^1.0.0" -pako@~1.0.5: - 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.2.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" @@ -8882,18 +7392,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== - dependencies: - asn1.js "^4.0.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" - parse-english@^4.0.0: version "4.1.3" resolved "https://registry.yarnpkg.com/parse-english/-/parse-english-4.1.3.tgz#692ec002e515b4b9b3e9e64ee1224b082667a20b" @@ -8955,11 +7453,6 @@ parse-latin@^4.0.0, parse-latin@^4.1.1: unist-util-modify-children "^1.0.0" unist-util-visit-children "^1.0.0" -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - parse-path@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.1.tgz#0ec769704949778cb3b8eda5e994c32073a1adff" @@ -8983,35 +7476,11 @@ 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" - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" @@ -9059,13 +7528,6 @@ path-posix@~1.0.0: resolved "https://registry.yarnpkg.com/path-posix/-/path-posix-1.0.0.tgz#06b26113f56beab042545a23bfa88003ccac260f" integrity sha1-BrJhE/Vr6rBCVFojv6iAA8ysJg8= -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -9095,32 +7557,11 @@ pathval@^1.1.0: resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= -pbkdf2@^3.0.3: - 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" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - performance-now@^2.1.0: version "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.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.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -9274,12 +7715,12 @@ process@^0.10.0: resolved "https://registry.yarnpkg.com/process/-/process-0.10.1.tgz#842457cc51cfed72dc775afeeafb8c6034372725" integrity sha1-hCRXzFHP7XLcd1r+6vuMYDQ3JyU= -process@^0.11.1, process@^0.11.10: +process@^0.11.1: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= -progress@^2.0.0, progress@^2.0.1: +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== @@ -9338,16 +7779,6 @@ protoduck@^5.0.1: dependencies: genfun "^5.0.0" -proxy-from-env@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" @@ -9358,18 +7789,6 @@ psl@^1.1.28: 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" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" @@ -9395,65 +7814,21 @@ pumpify@^1.3.3: inherits "^2.0.3" pump "^2.0.0" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -puppeteer@^1.17.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.20.0.tgz#e3d267786f74e1d87cf2d15acc59177f471bbe38" - integrity sha512-bt48RDBy2eIwZPrkgbcwHtb51mj2nKvHOPMaSH2IsWiv7lOG9k9zhaRzpDZafrk05ajMc3cu+lSQYYOfH2DkVQ== - dependencies: - debug "^4.1.0" - extract-zip "^1.6.6" - https-proxy-agent "^2.2.1" - mime "^2.0.3" - progress "^2.0.1" - proxy-from-env "^1.0.0" - rimraf "^2.6.1" - ws "^6.1.0" - q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qjobs@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" - integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - 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== -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - querystringify@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" @@ -9474,36 +7849,6 @@ quotation@^1.1.0: resolved "https://registry.yarnpkg.com/quotation/-/quotation-1.1.3.tgz#2a4d11f70105ad398b577883f310469367f53351" integrity sha512-45gUgmX/RtQOQV1kwM06boP49OYXcKCPrYwdmAvs5YqkpiobhNKKwo524JM6Ma0ko3oN9tXNcWs9+ABq3Ry7YA== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.0, range-parser@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - react-dom@~16.9.0: version "16.9.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962" @@ -9661,7 +8006,7 @@ read@1, read@~1.0.1: dependencies: mute-stream "~0.0.4" -"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.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, 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== @@ -9674,7 +8019,7 @@ read@1, read@~1.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.6.0: +"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.1.1: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -9693,22 +8038,6 @@ readdir-scoped-modules@^1.0.0: graceful-fs "^4.1.2" once "^1.3.0" -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - 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" @@ -9755,9 +8084,9 @@ regenerate-unicode-properties@^8.2.0: regenerate "^1.4.0" regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + 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.13.4: version "0.13.5" @@ -10446,14 +8775,6 @@ resolve-cwd@^2.0.0: dependencies: resolve-from "^3.0.0" -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" @@ -10543,11 +8864,6 @@ retry@^0.10.0: resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= -rfdc@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz#ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2" - integrity sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug== - rimraf@2.6.3, rimraf@~2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -10555,21 +8871,13 @@ rimraf@2.6.3, rimraf@~2.6.2: dependencies: glob "^7.1.3" -rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@^2.5.4, rimraf@^2.6.1, 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" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" @@ -10606,7 +8914,7 @@ rxjs@^6.4.0: 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, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, 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== @@ -10672,15 +8980,6 @@ scheduler@^0.15.0: loose-envify "^1.1.0" object-assign "^4.1.1" -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" - semaphore-async-await@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz#857bef5e3644601ca4b9570b87e9df5ca12974fa" @@ -10706,13 +9005,6 @@ semver@^6.0.0, semver@^6.2.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -serialize-javascript@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" - integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== - dependencies: - randombytes "^2.1.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" @@ -10728,24 +9020,6 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - 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" @@ -10791,19 +9065,6 @@ simulate-event@~1.4.0: dependencies: xtend "^4.0.1" -sinon@^7.3.2: - version "7.5.0" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-7.5.0.tgz#e9488ea466070ea908fd44a3d6478fd4923c67ec" - integrity sha512-AoD0oJWerp0/rY9czP/D6hDTTUYGpObhZjMpd7Cl/A6+j0xBE+ayL/ldfggkBXUs0IkvIiM1ljM8+WkOc5k78Q== - dependencies: - "@sinonjs/commons" "^1.4.0" - "@sinonjs/formatio" "^3.2.1" - "@sinonjs/samsam" "^3.3.3" - diff "^3.5.0" - lolex "^4.2.0" - nise "^1.5.2" - supports-color "^5.5.0" - sisteransi@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -10873,52 +9134,6 @@ 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.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" - integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~3.1.0" - engine.io-client "~3.2.0" - has-binary2 "~1.0.2" - 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.2.0" - to-array "0.1.4" - -socket.io-parser@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" - integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== - dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - isarray "2.0.1" - -socket.io@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" - integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== - dependencies: - debug "~3.1.0" - engine.io "~3.2.0" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.1.1" - socket.io-parser "~3.2.0" - socks-proxy-agent@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" @@ -10942,19 +9157,6 @@ sort-keys@^2.0.0: dependencies: is-plain-obj "^1.0.0" -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-loader@~0.2.1: - version "0.2.4" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.4.tgz#c18b0dc6e23bf66f6792437557c569a11e072271" - integrity sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ== - dependencies: - async "^2.5.0" - loader-utils "^1.1.0" - source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" @@ -10966,7 +9168,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.6, source-map-support@~0.5.12: +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== @@ -10989,11 +9191,6 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -11094,11 +9291,6 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - stdin@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/stdin/-/stdin-0.0.1.tgz#d3041981aaec3dfdbc77a1b38d6372e38f5fb71e" @@ -11109,14 +9301,6 @@ stealthy-require@^1.1.1: resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - stream-each@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" @@ -11125,33 +9309,11 @@ stream-each@^1.1.0: end-of-stream "^1.1.0" stream-shift "^1.0.0" -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - stream-shift@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -streamroller@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz#8167d8496ed9f19f05ee4b158d9611321b8cacd9" - integrity sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg== - dependencies: - async "^2.6.2" - date-format "^2.0.0" - debug "^3.2.6" - fs-extra "^7.0.1" - lodash "^4.17.14" - string-length@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" @@ -11230,7 +9392,7 @@ string.prototype.trimstart@^1.0.0: define-properties "^1.1.3" es-abstract "^1.17.5" -string_decoder@^1.0.0, string_decoder@^1.1.1: +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== @@ -11301,7 +9463,7 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@2.0.1, strip-json-comments@^2.0.1: +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= @@ -11315,27 +9477,20 @@ strong-log-transformer@^2.0.0: minimist "^1.2.0" through "^2.3.4" -supports-color@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" - integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -supports-color@6.1.0, supports-color@^6.1.0: +supports-color@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== dependencies: has-flag "^3.0.0" -supports-color@^5.3.0, supports-color@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.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" @@ -11356,11 +9511,6 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" @@ -11391,30 +9541,6 @@ temp-write@^3.4.0: temp-dir "^1.0.0" uuid "^3.0.1" -terser-webpack-plugin@^1.4.3: - version "1.4.4" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f" - integrity sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^3.1.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@^4.1.2: - version "4.7.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.7.0.tgz#15852cf1a08e3256a80428e865a2fa893ffba006" - integrity sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - test-exclude@^5.2.3: version "5.2.3" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" @@ -11483,13 +9609,6 @@ through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -timers-browserify@^2.0.4: - 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" - timers-ext@^0.1.5: version "0.1.7" resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" @@ -11498,7 +9617,7 @@ timers-ext@^0.1.5: es5-ext "~0.10.46" next-tick "1" -tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33: +tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== @@ -11510,16 +9629,6 @@ 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" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -11540,13 +9649,6 @@ 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" @@ -11557,11 +9659,6 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - 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" @@ -11692,11 +9789,6 @@ tsutils@^3.9.1: dependencies: tslib "^1.8.1" -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -11723,7 +9815,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: +type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -11748,14 +9840,6 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-is@~1.6.17: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - type@^1.0.1: version "1.2.0" resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" @@ -11820,9 +9904,9 @@ typescript@~3.0.3: integrity sha512-kk80vLW9iGtjMnIv11qyxLqZm20UklzuR2tL0QAnDIygIUIemcZMxlMWudl9OOt76H3ntVzcTiddQ1/pAAJMYg== typescript@~3.9.3: - version "3.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.3.tgz#d3ac8883a97c26139e42df5e93eeece33d610b8a" - integrity sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ== + version "3.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.5.tgz#586f0dba300cde8be52dd1ac4f7e1009c1b13f36" + integrity sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ== typestyle@^2.0.4: version "2.1.0" @@ -11844,11 +9928,6 @@ uid-number@0.0.6: resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= -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== - umask@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" @@ -12034,11 +10113,6 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -12047,7 +10121,7 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -upath@^1.1.1, upath@^1.2.0: +upath@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== @@ -12077,27 +10151,11 @@ url-parse@~1.4.7: querystringify "^2.1.1" requires-port "^1.0.0" -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -useragent@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" - integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== - dependencies: - lru-cache "4.1.x" - tmp "0.0.x" - 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" @@ -12120,13 +10178,6 @@ util.promisify@^1.0.0: has-symbols "^1.0.1" object.getownpropertydescriptors "^2.1.0" -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - util@^0.10.3: version "0.10.4" resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" @@ -12134,28 +10185,11 @@ util@^0.10.3: dependencies: inherits "2.0.3" -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - uuid@^3.0.1, uuid@^3.2.1, uuid@^3.3.2: 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.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" - integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== - validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -12210,16 +10244,6 @@ vfile@^3.0.0: unist-util-stringify-position "^1.0.0" vfile-message "^1.0.0" -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -void-elements@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" - integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= - vscode-css-languageserver-bin@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/vscode-css-languageserver-bin/-/vscode-css-languageserver-bin-1.4.0.tgz#d9ebf3c4c9df0dcab96abc4abc6f79daf6408508" @@ -12303,24 +10327,11 @@ vscode-jsonrpc@^4.0.0: resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz#a7bf74ef3254d0a0c272fab15c82128e378b3be9" integrity sha512-perEnXQdQOJMTDFNv+UF3h1Y0z4iSiaN9jIlb0OqIYgosPCZGYh/MCUlkFtV2668PL69lRDO32hmvL2yiidUYg== -vscode-jsonrpc@^4.1.0-next: - version "4.1.0-next.3" - resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.1.0-next.3.tgz#05fe742959a2726020d4d0bfbc3d3c97873c7fde" - integrity sha512-Z6oxBiMks2+UADV1QHXVooSakjyhI+eHTnXzDyVvVMmegvSfkXk2w6mPEdSkaNHFBdtWW7n20H1yw2nA3A17mg== - vscode-jsonrpc@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-5.0.1.tgz#9bab9c330d89f43fc8c1e8702b5c36e058a01794" integrity sha512-JvONPptw3GAQGXlVV2utDcHx0BiY34FupW/kI6mZ5x06ER5DdPG/tXWMVHjTNULF5uKPOUUD0SaXg5QaubJL0A== -vscode-languageclient@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-5.2.1.tgz#7cfc83a294c409f58cfa2b910a8cfeaad0397193" - integrity sha512-7jrS/9WnV0ruqPamN1nE7qCxn0phkH5LjSgSp9h6qoJGoeAKzwKz/PF6M+iGA/aklx4GLZg1prddhEPQtuXI1Q== - dependencies: - semver "^5.5.0" - vscode-languageserver-protocol "3.14.1" - vscode-languageserver-protocol-foldingprovider@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol-foldingprovider/-/vscode-languageserver-protocol-foldingprovider-2.0.1.tgz#051d0d9e58d1b79dc4681acd48f21797f5515bfd" @@ -12345,7 +10356,7 @@ vscode-languageserver-protocol@3.5.1: vscode-jsonrpc "3.5.0" vscode-languageserver-types "3.5.0" -vscode-languageserver-protocol@^3.10.3, vscode-languageserver-protocol@^3.14.1, vscode-languageserver-protocol@^3.15.1, vscode-languageserver-protocol@^3.15.3, vscode-languageserver-protocol@^3.7.2: +vscode-languageserver-protocol@^3.10.3, vscode-languageserver-protocol@^3.15.1, vscode-languageserver-protocol@^3.15.3, vscode-languageserver-protocol@^3.7.2: version "3.15.3" resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.3.tgz#3fa9a0702d742cf7883cb6182a6212fcd0a1d8bb" integrity sha512-zrMuwHOAQRhjDSnflWdJG+O2ztMWss8GqUUB8dXLR/FPenwkiBNkMIJJYfSN6sgskvsF0rHAoBowNQfbyZnnvw== @@ -12363,7 +10374,7 @@ vscode-languageserver-types@3.14.0: resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz#d3b5952246d30e5241592b6dde8280e03942e743" integrity sha512-lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A== -vscode-languageserver-types@3.15.1, vscode-languageserver-types@^3.0.3, vscode-languageserver-types@^3.13.0, vscode-languageserver-types@^3.14.0, vscode-languageserver-types@^3.15.1, vscode-languageserver-types@^3.5.0, vscode-languageserver-types@^3.6.1, vscode-languageserver-types@^3.7.2: +vscode-languageserver-types@3.15.1, vscode-languageserver-types@^3.0.3, vscode-languageserver-types@^3.13.0, vscode-languageserver-types@^3.15.1, vscode-languageserver-types@^3.5.0, vscode-languageserver-types@^3.6.1, vscode-languageserver-types@^3.7.2: version "3.15.1" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz#17be71d78d2f6236d414f0001ce1ef4d23e6b6de" integrity sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ== @@ -12434,13 +10445,6 @@ vscode-uri@^2.1.2: resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz#c8d40de93eb57af31f3c715dd650e2ca2c096f1c" integrity sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A== -vscode-ws-jsonrpc@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-0.1.1.tgz#163ff05662635b4fd161ed132e112cec4d83f126" - integrity sha512-1O/FUORbb8dZAvh9AFF6HViLJ0Ja0RbF+sFRnUsoqkuKIRsXDDiiJpwYwT6fmglCLefE5afGPw9NoHvDVN/5yw== - dependencies: - vscode-jsonrpc "^4.1.0-next" - w3c-hr-time@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -12462,24 +10466,6 @@ warning@^4.0.2, warning@^4.0.3: dependencies: loose-envify "^1.0.0" -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.6.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.2.tgz#c02e4d4d49913c3e7e122c3325365af9d331e9aa" - integrity sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.0" - watchpack-chokidar2 "^2.0.0" - wcwidth@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -12497,79 +10483,6 @@ webidl-conversions@^4.0.2: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== -webpack-cli@^3.3.0: - version "3.3.11" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz#3bf21889bf597b5d82c38f215135a411edfdc631" - integrity sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g== - dependencies: - chalk "2.4.2" - cross-spawn "6.0.5" - enhanced-resolve "4.1.0" - findup-sync "3.0.0" - global-modules "2.0.0" - import-local "2.0.0" - interpret "1.2.0" - loader-utils "1.2.3" - supports-color "6.1.0" - v8-compile-cache "2.0.3" - yargs "13.2.4" - -webpack-dev-middleware@^3.7.0: - version "3.7.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" - integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-sources@^1.4.0, webpack-sources@^1.4.1: - 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" - -webpack@^4.32.2: - version "4.43.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" - integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.6.1" - webpack-sources "^1.4.1" - whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" @@ -12605,14 +10518,14 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@1.3.1, which@^1.2.1, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: +which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" -wide-align@1.1.3, wide-align@^1.1.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== @@ -12636,18 +10549,6 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" @@ -12734,27 +10635,11 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" -ws@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - ws@^7.2.0: version "7.3.0" resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd" integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w== -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" - x-is-string@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" @@ -12770,16 +10655,6 @@ xml@^1.0.1: resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU= -xmlbuilder@12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-12.0.0.tgz#e2ed675e06834a089ddfb84db96e2c2b03f78c1a" - integrity sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ== - -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= - xorshift@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/xorshift/-/xorshift-0.2.1.tgz#fcd82267e9351c13f0fb9c73307f25331d29c63a" @@ -12833,7 +10708,7 @@ yargs-parser@10.x: dependencies: camelcase "^4.1.0" -yargs-parser@13.1.2, yargs-parser@^13.1.0, yargs-parser@^13.1.2: +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== @@ -12857,33 +10732,7 @@ yargs-parser@^18.1.3: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-unparser@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" - integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== - dependencies: - flat "^4.1.0" - lodash "^4.17.15" - yargs "^13.3.0" - -yargs@13.2.4: - version "13.2.4" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" - integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.0" - -yargs@13.3.2, yargs@^13.3.0: +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== @@ -12915,16 +10764,3 @@ yargs@^14.2.2: which-module "^2.0.0" y18n "^4.0.0" yargs-parser "^15.0.1" - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= From 695b361b6d874092bcd72329272bae125605a221 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 14:32:25 -0400 Subject: [PATCH 31/82] linting, remove wsbuild from bootstrap --- CHANGELOG.md | 2 -- package.json | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 02a2e3902..c351ccda1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,5 @@ ## CHANGELOG - ### `@krassowski/jupyterlab-lsp 2.0.0` (unreleased) - features @@ -15,7 +14,6 @@ - `event-emitter` - `vscode-language-server-protocol` and friends - ### `jupyter-lsp 1.0.0` (unreleased) - features diff --git a/package.json b/package.json index 5e3fd4f07..6d1e477e4 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "private": true, "scripts": { "bootstrap": "jlpm --no-optional --prefer-offline && lerna bootstrap && jlpm lint && jlpm clean && jlpm build", - "build": "jlpm build:schema && jlpm build:meta && jlpm build:ws", + "build": "jlpm build:schema && jlpm build:meta", "build:schema": "lerna run build:schema --stream", "build:meta": "lerna run build --stream --scope @krassowski/jupyterlab-lsp-metapackage", "watch": "lerna run --parallel watch", From eeeb1d2befad597a285b73ea49acfb5921726267 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 16:00:30 -0400 Subject: [PATCH 32/82] start removing pageconfig --- .../src/adapters/codemirror/feature.spec.ts | 3 --- .../adapters/codemirror/features/jump_to.ts | 2 +- .../codemirror/features/rename.spec.ts | 7 ++---- .../jupyterlab-lsp/src/connection_manager.ts | 7 +++--- packages/jupyterlab-lsp/src/index.ts | 22 +++++++++------- packages/jupyterlab-lsp/src/manager.ts | 25 +++++++++++++------ packages/jupyterlab-lsp/src/tokens.ts | 9 ++++--- packages/jupyterlab-lsp/src/utils.ts | 9 +------ .../jupyterlab-lsp/src/virtual/editor.spec.ts | 12 +++------ py_src/jupyter_lsp/handlers.py | 4 +-- py_src/jupyter_lsp/kernel/kernel.py | 7 ------ py_src/jupyter_lsp/kernel/manager.py | 20 ++++++++++++++- py_src/jupyter_lsp/schema/schema.json | 8 +++++- 13 files changed, 74 insertions(+), 61 deletions(-) diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts index 86b774647..4e1b5e1b3 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts @@ -20,7 +20,6 @@ import * as nbformat from '@jupyterlab/nbformat'; import { language_specific_overrides } from '../../magics/defaults'; import { foreign_code_extractors } from '../../extractors/defaults'; import { NotebookModel } from '@jupyterlab/notebook'; -import { PageConfig } from '@jupyterlab/coreutils'; import { ILSPConnection } from '../../tokens'; const js_fib_code = `function fib(n) { @@ -95,8 +94,6 @@ const js_partial_edits = [ ]; describe('Feature', () => { - PageConfig.setOption('rootUri', 'file://'); - describe('apply_edit()', () => { class EditApplyingFeature extends CodeMirrorLSPFeature { name = 'EditApplyingFeature'; diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts index 449d2316c..ae0e786ac 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts @@ -103,7 +103,7 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { console.log('Jump target (source location):', source_position_ce); // can it be resolved vs our guessed server root? - const contents_path = uri_to_contents_path(uri); + const contents_path = uri_to_contents_path(uri, this.connection.rootUri); if (contents_path) { uri = contents_path; diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts index 7219b27f5..9ecaba838 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts @@ -1,8 +1,7 @@ import { expect } from 'chai'; import { Rename } from './rename'; import { FileEditorFeatureTestEnvironment } from '../testutils'; -import * as lsProtocol from 'vscode-languageserver-protocol'; -import { PageConfig } from '@jupyterlab/coreutils'; +import * as LSP from '../../../comm/lsp-types'; describe('Rename', () => { let env: FileEditorFeatureTestEnvironment; @@ -16,8 +15,6 @@ describe('Rename', () => { beforeEach(() => (feature = env.init_feature(Rename))); afterEach(() => env.dispose_feature(feature)); - PageConfig.setOption('rootUri', 'file://'); - it('renders inspections', async () => { env.ce_editor.model.value.text = 'x = 1\n'; await env.virtual_editor.update_documents(); @@ -32,7 +29,7 @@ describe('Rename', () => { end: { line: 2, character: 0 }, }, newText: 'y = 1\n', - } as lsProtocol.TextEdit, + } as LSP.TextEdit, ], }, }); diff --git a/packages/jupyterlab-lsp/src/connection_manager.ts b/packages/jupyterlab-lsp/src/connection_manager.ts index f292a1747..10a1e4803 100644 --- a/packages/jupyterlab-lsp/src/connection_manager.ts +++ b/packages/jupyterlab-lsp/src/connection_manager.ts @@ -1,7 +1,7 @@ import { VirtualDocument, IForeignContext } from './virtual/document'; import { Signal } from '@lumino/signaling'; -import { PageConfig, URLExt } from '@jupyterlab/coreutils'; +import { URLExt } from '@jupyterlab/coreutils'; import { sleep, until_ready } from './utils'; import { @@ -288,8 +288,9 @@ export namespace DocumentConnectionManager { virtual_document: VirtualDocument, language: string ): IURIs { - const rootUri = PageConfig.getOption('rootUri'); - const virtualDocumentsUri = PageConfig.getOption('virtualDocumentsUri'); + const manager = Private.getLanguageServerManager(); + const rootUri = manager.getRootUri(); + const virtualDocumentsUri = manager.getVirtualDocumentsUri(); const baseUri = virtual_document.has_lsp_supported_file ? rootUri diff --git a/packages/jupyterlab-lsp/src/index.ts b/packages/jupyterlab-lsp/src/index.ts index 7eaa8a8f0..2581684c4 100644 --- a/packages/jupyterlab-lsp/src/index.ts +++ b/packages/jupyterlab-lsp/src/index.ts @@ -127,9 +127,11 @@ const plugin: JupyterFrontEndPlugin = { // connection.close(); }); - const connect_file_editor = ( + const connect_file_editor = async ( widget: IDocumentWidget ) => { + await language_server_manager.kernelReady; + let fileEditor = widget.content; if (fileEditor.editor instanceof CodeMirrorEditor) { @@ -154,9 +156,9 @@ const plugin: JupyterFrontEndPlugin = { } }; - const reconnect = () => { + const reconnect = async () => { disconnect(); - connect_file_editor(widget); + await connect_file_editor(widget); }; widget.disposed.connect(disconnect); @@ -166,8 +168,8 @@ const plugin: JupyterFrontEndPlugin = { } }; - fileEditorTracker.widgetAdded.connect((sender, widget) => { - connect_file_editor(widget); + fileEditorTracker.widgetAdded.connect(async (sender, widget) => { + await connect_file_editor(widget); }); let command_manager = new FileEditorCommandManager( @@ -178,7 +180,9 @@ const plugin: JupyterFrontEndPlugin = { ); command_manager.add(lsp_commands); - const connect_notebook = (widget: NotebookPanel) => { + const connect_notebook = async (widget: NotebookPanel) => { + await language_server_manager.kernelReady; + // NOTE: assuming that the default cells content factory produces CodeMirror editors(!) let jumper = new NotebookJumper(widget, documentManager); let adapter = new NotebookAdapter( @@ -201,9 +205,9 @@ const plugin: JupyterFrontEndPlugin = { } }; - const reconnect = () => { + const reconnect = async () => { disconnect(); - connect_notebook(widget); + await connect_notebook(widget); }; widget.context.pathChanged.connect(reconnect); @@ -213,7 +217,7 @@ const plugin: JupyterFrontEndPlugin = { }; notebookTracker.widgetAdded.connect(async (sender, widget) => { - connect_notebook(widget); + await connect_notebook(widget); }); // position context menu entries after 10th but before 11th default entry diff --git a/packages/jupyterlab-lsp/src/manager.ts b/packages/jupyterlab-lsp/src/manager.ts index dd2ab2887..35d961b82 100644 --- a/packages/jupyterlab-lsp/src/manager.ts +++ b/packages/jupyterlab-lsp/src/manager.ts @@ -1,7 +1,6 @@ import { PromiseDelegate } from '@lumino/coreutils'; import { Signal } from '@lumino/signaling'; -import { PageConfig, URLExt } from '@jupyterlab/coreutils'; import { // ServerConnection, ServiceManager, @@ -29,21 +28,17 @@ export class LanguageServerManager implements ILanguageServerManager { protected _sessions: TSessionMap = new Map(); protected _controlComm: IComm; protected _comms: TCommMap = new Map(); - private _baseUrl: string; private _serviceManager: ServiceManager; private _kernelSessionConnection: ISessionConnection; private _kernelReady = new PromiseDelegate(); + private _rootUri: string; + private _virtualDocumentUri: string; constructor(options: ILanguageServerManager.IOptions) { - this._baseUrl = options.baseUrl || PageConfig.getBaseUrl(); this._serviceManager = options.serviceManager; this.initKernel().catch(console.warn); } - get statusUrl() { - return URLExt.join(this._baseUrl, ILanguageServerManager.URL_NS, 'status'); - } - get sessionsChanged() { return this._sessionsChanged; } @@ -52,6 +47,10 @@ export class LanguageServerManager implements ILanguageServerManager { return this._sessions; } + get kernelReady() { + return this._kernelReady.promise; + } + async getComm(language_server_id: TLanguageServerId): Promise { let comm = this._comms.get(language_server_id); @@ -79,6 +78,14 @@ export class LanguageServerManager implements ILanguageServerManager { return null; } + getRootUri() { + return this._rootUri; + } + + getVirtualDocumentsUri() { + return this._virtualDocumentUri; + } + /** * Register a new kernel */ @@ -114,7 +121,9 @@ export class LanguageServerManager implements ILanguageServerManager { async onControlCommMsg(msg: KernelMessage.ICommMsgMsg) { console.warn('got control message', this._controlComm, msg); - const { sessions } = msg.content.data as SCHEMA.ServersResponse; + const { sessions, uris } = msg.content.data as SCHEMA.ServersResponse; + this._rootUri = uris.root; + this._virtualDocumentUri = uris.virtual_documents; this._sessions = new Map(Object.entries(sessions)); this._sessionsChanged.emit(void 0); this._kernelReady.resolve(void 0); diff --git a/packages/jupyterlab-lsp/src/tokens.ts b/packages/jupyterlab-lsp/src/tokens.ts index 224a61d6a..18579af2d 100644 --- a/packages/jupyterlab-lsp/src/tokens.ts +++ b/packages/jupyterlab-lsp/src/tokens.ts @@ -1,5 +1,5 @@ import { ISignal } from '@lumino/signaling'; -import { ServerConnection, ServiceManager } from '@jupyterlab/services'; +import { ServiceManager } from '@jupyterlab/services'; import * as LSP from './comm/lsp-types'; import * as SCHEMA from './_schema'; @@ -20,14 +20,14 @@ export interface ILanguageServerManager { options: ILanguageServerManager.IGetServerIdOptions ): Promise; getComm(languageServerId: TLanguageServerId): Promise; - statusUrl: string; + getRootUri(): string; + getVirtualDocumentsUri(): string; + kernelReady: Promise; } export namespace ILanguageServerManager { export const URL_NS = 'lsp'; export interface IOptions { - settings?: ServerConnection.ISettings; - baseUrl?: string; serviceManager: ServiceManager; } export interface IGetServerIdOptions { @@ -42,6 +42,7 @@ export interface ILSPConnection { isConnected: boolean; isInitialized: boolean; serverCapabilities: LSP.ServerCapabilities; + rootUri: string; // legacy capabilities api isRenameSupported(): boolean; diff --git a/packages/jupyterlab-lsp/src/utils.ts b/packages/jupyterlab-lsp/src/utils.ts index 990ab7a10..eef5e8e25 100644 --- a/packages/jupyterlab-lsp/src/utils.ts +++ b/packages/jupyterlab-lsp/src/utils.ts @@ -1,5 +1,3 @@ -import { PageConfig } from '@jupyterlab/coreutils'; - const RE_PATH_ANCHOR = /^file:\/\/([^\/]+|\/[A-Z]:)/; export async function sleep(timeout: number) { @@ -88,10 +86,6 @@ export class DefaultMap extends Map { } } -export function server_root_uri() { - return PageConfig.getOption('rootUri'); -} - /** * compare two URIs, discounting: * - drive capitalization @@ -120,8 +114,7 @@ export function normalize_win_path(uri: string) { return uri.replace(RE_PATH_ANCHOR, (it) => it.toLowerCase()); } -export function uri_to_contents_path(child: string, parent?: string) { - parent = parent || server_root_uri(); +export function uri_to_contents_path(child: string, parent: string) { if (parent == null) { return null; } diff --git a/packages/jupyterlab-lsp/src/virtual/editor.spec.ts b/packages/jupyterlab-lsp/src/virtual/editor.spec.ts index cedca9256..a2708b2e1 100644 --- a/packages/jupyterlab-lsp/src/virtual/editor.spec.ts +++ b/packages/jupyterlab-lsp/src/virtual/editor.spec.ts @@ -7,7 +7,6 @@ import { IVirtualPosition, } from '../positioning'; import * as CodeMirror from 'codemirror'; -import { PageConfig } from '@jupyterlab/coreutils'; import { DocumentConnectionManager } from '../connection_manager'; import { MockLanguageServerManager } from '../adapters/codemirror/testutils'; @@ -54,12 +53,6 @@ describe('VirtualEditor', () => { file_extension: 'R', }); - PageConfig.setOption('rootUri', '/home/username/project'); - PageConfig.setOption( - 'virtualDocumentsUri', - '/home/username/project/.virtual_documents' - ); - const LANGSERVER_MANAGER = new MockLanguageServerManager({ serviceManager: null, }); @@ -84,8 +77,9 @@ describe('VirtualEditor', () => { describe('#has_lsp_supported', () => { it('gets passed on to the virtual document & used for connection uri base', () => { - const rootUri = PageConfig.getOption('rootUri'); - const virtualDocumentsUri = PageConfig.getOption('virtualDocumentsUri'); + const rootUri = 'file:///home/username/project'; + const virtualDocumentsUri = + 'file:///home/username/project/.virtual_documents'; expect(rootUri).to.be.not.equal(virtualDocumentsUri); let document = editor.virtual_document; diff --git a/py_src/jupyter_lsp/handlers.py b/py_src/jupyter_lsp/handlers.py index b3e92f487..8c0d4638a 100644 --- a/py_src/jupyter_lsp/handlers.py +++ b/py_src/jupyter_lsp/handlers.py @@ -7,7 +7,7 @@ from notebook.utils import url_path_join as ujoin from .manager import LanguageServerManager -from .schema import SERVERS_RESPONSE +from .schema import SERVERS_RESPONSE, SPEC_VERSION from .types import LangaugeServerClientAPI @@ -55,7 +55,7 @@ def get(self): """ finish with the JSON representations of the sessions """ response = { - "version": 2, + "version": SPEC_VERSION, "sessions": { language_server: session.to_json() for language_server, session in self.manager.sessions.items() diff --git a/py_src/jupyter_lsp/kernel/kernel.py b/py_src/jupyter_lsp/kernel/kernel.py index 8ebfc97aa..d92c898cc 100644 --- a/py_src/jupyter_lsp/kernel/kernel.py +++ b/py_src/jupyter_lsp/kernel/kernel.py @@ -2,7 +2,6 @@ """ import json import logging -import os from pathlib import Path from typing import Dict, Text @@ -11,8 +10,6 @@ from ipykernel.kernelapp import IPKernelApp from .._version import __version__ -from ..paths import normalized_uri -from ..virtual_documents_shadow import setup_shadow_filesystem from .manager import CommLanguageServerManager __all__ = ["LanguageServerKernel"] @@ -63,10 +60,6 @@ def __init__(self, **kwargs): self.log.info("Initializing Language Server Manager...") self.language_server_manager.initialize() - root_uri = normalized_uri(os.getcwd()) - virtual_documents_uri = root_uri + "/.virtual_documents" - setup_shadow_filesystem(virtual_documents_uri=virtual_documents_uri) - def launch(): # pragma: no cover """ The main kernel entrypoint which uses the App singleton diff --git a/py_src/jupyter_lsp/kernel/manager.py b/py_src/jupyter_lsp/kernel/manager.py index 6860a7ea7..8351177da 100644 --- a/py_src/jupyter_lsp/kernel/manager.py +++ b/py_src/jupyter_lsp/kernel/manager.py @@ -2,10 +2,12 @@ from jupyter_core.paths import jupyter_config_path from notebook.services.config import ConfigManager -from traitlets import Instance, default +from traitlets import Instance, Unicode, default from ..manager import LanguageServerManager +from ..paths import normalized_uri from ..schema import SERVERS_RESPONSE +from ..virtual_documents_shadow import setup_shadow_filesystem from .handlers import CommHandler @@ -14,6 +16,8 @@ class CommLanguageServerManager(LanguageServerManager): LANGUAGE_SERVER_COMM_TARGET = "jupyter.lsp.language_server" config_manager = Instance(ConfigManager) + root_uri = Unicode() + virtual_documents_uri = Unicode() def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -27,6 +31,14 @@ def log(self): def comm_manager(self): return self.parent.comm_manager + @default("root_uri") + def _default_root_uri(self): + return normalized_uri(os.getcwd()) + + @default("virtual_documents_uri") + def _default_virtual_docs_uri(self): + return self.root_uri + "/.virtual_documents" + @default("config_manager") def _default_config_manager(self): """ load merged config from more jupyter_notebook_config.d files @@ -47,6 +59,8 @@ def _load_extra_config(self): setattr(self, key, value) def initialize(self, *args, **kwargs): + # this uses the decorator which changes the LanguageServerManager singleton + setup_shadow_filesystem(virtual_documents_uri=self.virtual_documents_uri) super().initialize(*args, **kwargs) self.init_comm_targets() @@ -68,6 +82,10 @@ def send_status(self, comm): language_server: session.to_json() for language_server, session in self.sessions.items() }, + "uris": { + "root": self.root_uri, + "virtual_documents": self.virtual_documents_uri, + }, } errors = list(SERVERS_RESPONSE.iter_errors(response)) diff --git a/py_src/jupyter_lsp/schema/schema.json b/py_src/jupyter_lsp/schema/schema.json index 67fd35b75..561bc817a 100644 --- a/py_src/jupyter_lsp/schema/schema.json +++ b/py_src/jupyter_lsp/schema/schema.json @@ -8,7 +8,7 @@ }, "current-version": { "description": "which version of the spec this implements", - "enum": [2], + "enum": [3], "title": "Spec Schema Version", "type": "number" }, @@ -165,6 +165,12 @@ "sessions": { "$ref": "#/definitions/sessions" }, + "uris": { + "properties": { + "root": { "type": "string", "format": "uri" }, + "virtual_documents": { "type": "string", "format": "uri" } + } + }, "version": { "$ref": "#/definitions/current-version" } From f1a3cc3d3b46062e81c67d1702132fe11b9734a6 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 16:18:08 -0400 Subject: [PATCH 33/82] fix rootUri in tests --- .../src/adapters/codemirror/feature.spec.ts | 3 ++- .../adapters/codemirror/features/rename.spec.ts | 2 +- .../src/adapters/codemirror/testutils.ts | 7 +++++-- packages/jupyterlab-lsp/src/manager.ts | 6 +++--- .../jupyterlab-lsp/src/virtual/editor.spec.ts | 17 ++++++++++++----- 5 files changed, 23 insertions(+), 12 deletions(-) diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts index 4e1b5e1b3..bfe2db0de 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts @@ -139,7 +139,8 @@ describe('Feature', () => { beforeEach(() => { environment = new FileEditorFeatureTestEnvironment(); - connection = environment.create_dummy_connection(); + (environment.language_server_manager as any)._rootUri = 'file://'; + connection = environment.create_dummy_connection(null, 'file://'); feature = init_feature(environment); adapter = init_adapter(environment, feature); diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts index 9ecaba838..005d84c08 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts @@ -22,7 +22,7 @@ describe('Rename', () => { await feature.handleRename({ changes: { - ['file://' + env.path()]: [ + [env.path()]: [ { range: { start: { line: 0, character: 0 }, diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts index d9c680bf1..5e2a2cff9 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts @@ -91,13 +91,16 @@ export abstract class FeatureTestEnvironment feature.is_registered = false; } - public create_dummy_connection(comm?: CommHandler) { + public create_dummy_connection(comm?: CommHandler, rootUri?: string) { if (comm == null) { comm = new MockComm('mock-target', UUID.uuid4(), null, () => { // empty dispose }); } - return new CommLSPConnection({ comm, rootUri: 'file:///unit-test' }); + return new CommLSPConnection({ + comm, + rootUri: rootUri || 'file:///unit-test', + }); } public create_dummy_components(): IJupyterLabComponentsManager { diff --git a/packages/jupyterlab-lsp/src/manager.ts b/packages/jupyterlab-lsp/src/manager.ts index 35d961b82..7f6b3d306 100644 --- a/packages/jupyterlab-lsp/src/manager.ts +++ b/packages/jupyterlab-lsp/src/manager.ts @@ -32,7 +32,7 @@ export class LanguageServerManager implements ILanguageServerManager { private _kernelSessionConnection: ISessionConnection; private _kernelReady = new PromiseDelegate(); private _rootUri: string; - private _virtualDocumentUri: string; + private _virtualDocumentsUri: string; constructor(options: ILanguageServerManager.IOptions) { this._serviceManager = options.serviceManager; @@ -83,7 +83,7 @@ export class LanguageServerManager implements ILanguageServerManager { } getVirtualDocumentsUri() { - return this._virtualDocumentUri; + return this._virtualDocumentsUri; } /** @@ -123,7 +123,7 @@ export class LanguageServerManager implements ILanguageServerManager { const { sessions, uris } = msg.content.data as SCHEMA.ServersResponse; this._rootUri = uris.root; - this._virtualDocumentUri = uris.virtual_documents; + this._virtualDocumentsUri = uris.virtual_documents; this._sessions = new Map(Object.entries(sessions)); this._sessionsChanged.emit(void 0); this._kernelReady.resolve(void 0); diff --git a/packages/jupyterlab-lsp/src/virtual/editor.spec.ts b/packages/jupyterlab-lsp/src/virtual/editor.spec.ts index a2708b2e1..e8ca89035 100644 --- a/packages/jupyterlab-lsp/src/virtual/editor.spec.ts +++ b/packages/jupyterlab-lsp/src/virtual/editor.spec.ts @@ -8,7 +8,10 @@ import { } from '../positioning'; import * as CodeMirror from 'codemirror'; import { DocumentConnectionManager } from '../connection_manager'; -import { MockLanguageServerManager } from '../adapters/codemirror/testutils'; +import { + MockLanguageServerManager, + MockServiceManager, +} from '../adapters/codemirror/testutils'; class VirtualEditorImplementation extends VirtualEditor { private cm_editor: CodeMirror.Editor; @@ -53,8 +56,9 @@ describe('VirtualEditor', () => { file_extension: 'R', }); + const SERVICE_MANAGER = new MockServiceManager(); const LANGSERVER_MANAGER = new MockLanguageServerManager({ - serviceManager: null, + serviceManager: SERVICE_MANAGER, }); const CONNECTION_MANAGER = new DocumentConnectionManager({ language_server_manager: LANGSERVER_MANAGER, @@ -77,13 +81,16 @@ describe('VirtualEditor', () => { describe('#has_lsp_supported', () => { it('gets passed on to the virtual document & used for connection uri base', () => { - const rootUri = 'file:///home/username/project'; - const virtualDocumentsUri = - 'file:///home/username/project/.virtual_documents'; + const rootUri = ((LANGSERVER_MANAGER as any)._rootUri = + 'file:///home/username/project'); + const virtualDocumentsUri = ((LANGSERVER_MANAGER as any)._virtualDocumentsUri = + 'file:///home/username/project/.virtual_documents'); + expect(rootUri).to.be.not.equal(virtualDocumentsUri); let document = editor.virtual_document; let uris = DocumentConnectionManager.solve_uris(document, 'python'); + expect(uris.base.startsWith(virtualDocumentsUri)).to.be.equal(true); let editor_with_plain_file = new VirtualEditorImplementation( From fa59ac49757b5a91127f152026121b355b759410 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 16:41:27 -0400 Subject: [PATCH 34/82] start removing serverextension --- .github/ISSUE_TEMPLATE/bug_report.md | 4 +- .travis.yml | 4 +- CONTRIBUTING.md | 4 +- binder/postBuild | 1 - ci/job.test.yml | 10 +- docs/Extending.ipynb | 53 +---------- docs/Roadmap.ipynb | 3 +- py_src/jupyter_lsp/__init__.py | 1 - .../etc/jupyter-lsp-serverextension.json | 7 -- py_src/jupyter_lsp/handlers.py | 91 ------------------- py_src/jupyter_lsp/kernel/manager.py | 1 + py_src/jupyter_lsp/manager.py | 11 +-- py_src/jupyter_lsp/serverextension.py | 49 ---------- py_src/jupyter_lsp/tests/conftest.py | 8 +- py_src/jupyter_lsp/tests/test_extension.py | 20 ---- py_src/jupyter_lsp/types.py | 7 +- scripts/utest.py | 3 +- setup.py | 7 -- 18 files changed, 31 insertions(+), 253 deletions(-) delete mode 100644 py_src/jupyter_lsp/etc/jupyter-lsp-serverextension.json delete mode 100644 py_src/jupyter_lsp/handlers.py delete mode 100644 py_src/jupyter_lsp/serverextension.py delete mode 100644 py_src/jupyter_lsp/tests/test_extension.py diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 5738fa6f9..5c20bb30f 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -38,9 +38,9 @@ https://jupyterlab.readthedocs.io/en/latest/getting_started/issue.html - Browser and version: - JupyterLab version: -
Required: installed server extensions +
Required: installed Kernel
-Paste the output from running `jupyter serverextension list` from the command line here.
+Paste the output from running `jupyter kernelspec list` from the command line here.
 You may want to sanitize the paths in the output.
 
diff --git a/.travis.yml b/.travis.yml index 379440604..5b009bda1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,6 +42,6 @@ before_script: script: - jlpm test - - python3 -m jupyter serverextension list - - python3 -m jupyter serverextension list | grep jupyter_lsp + - python3 -m jupyter kernelspec list + - python3 -m jupyter kernelspec list | grep jupyter-lsp-kernel - python3 scripts/utest.py diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a985a0004..cf2168658 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -62,10 +62,10 @@ Install `jupyter-lsp` from source in your virtual environment: python -m pip install -e . ``` -Enable the server extension: +Install the Language Server Kernel spec: ```bash -jupyter serverextension enable --sys-prefix --py jupyter_lsp +jupyter lsp kernselspec install --sys-prefix ``` Install `npm` dependencies, build TypeScript packages, and link diff --git a/binder/postBuild b/binder/postBuild index 15179257b..c2a0eff3a 100755 --- a/binder/postBuild +++ b/binder/postBuild @@ -2,7 +2,6 @@ set -eux # do a dev install of the server side python -m pip install -e . --ignore-installed --no-deps -vv -jupyter serverextension enable --sys-prefix --py jupyter_lsp jupyter lsp kernelspec install # should have no extensions diff --git a/ci/job.test.yml b/ci/job.test.yml index 6801842ee..c96089ec3 100644 --- a/ci/job.test.yml +++ b/ci/job.test.yml @@ -84,8 +84,14 @@ jobs: summaryFileLocation: 'packages/${{ js_package }}/coverage/cobertura-coverage.xml' condition: always() - - script: ${{ platform.activate }} jupyterlab-lsp && jupyter serverextension list - displayName: list server extensions + - script: ${{ platform.activate }} jupyterlab-lsp && jupyter kernelspec list + displayName: list kernels + + - script: ${{ platform.activate }} jupyterlab-lsp && jupyter lsp kernelspec install + displayName: install kernel + + - script: ${{ platform.activate }} jupyterlab-lsp && jupyter kernelspec list + displayName: list kernels (again) - script: ${{ platform.activate }} jupyterlab-lsp && python scripts/utest.py --test-run-title="Pytest ${{ platform.name }}${{ python.name }}" displayName: run python tests diff --git a/docs/Extending.ipynb b/docs/Extending.ipynb index 38215f055..d4237fa07 100644 --- a/docs/Extending.ipynb +++ b/docs/Extending.ipynb @@ -61,7 +61,7 @@ "##### Add a Listener with `entry_points`\n", "\n", "Listeners can be added via [entry_points][] by a package installed in the same\n", - "environment as `notebook`:\n", + "environment as `jupyter_lsp`:\n", "\n", "```toml\n", "## setup.cfg\n", @@ -78,55 +78,10 @@ "At present, the entry point names generally have no impact on functionality\n", "aside from logging in the event of an error on import.\n", "\n", - "[entry_points]: https://packaging.python.org/specifications/entry-points/" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### Add a Listener with Jupyter Configuration\n", - "\n", - "Listeners can be added via `traitlets` configuration, e.g.\n", - "\n", - "```yaml\n", - "## jupyter_notebook_config.jsons\n", - "{\n", - " 'LanguageServerManager':\n", - " {\n", - " 'all_listeners': ['some.module.some_function'],\n", - " 'client_listeners': ['some.module.some_other_function'],\n", - " 'server_listeners': ['some.module.yet_another_function'],\n", - " },\n", - "}\n", - "```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### Add a listener with the Python API\n", - "\n", - "`lsp_message_listener` can be used as a decorator, accessed as part of a\n", - "`serverextension`.\n", - "\n", - "This listener receives _all_ messages from the client and server, and prints\n", - "them out.\n", + "> TBD: show an example of a listener implementation, since decorator is hard", + "to use now.", "\n", - "```python\n", - "from jupyter_lsp import lsp_message_listener\n", - "\n", - "def load_jupyter_server_extension(nbapp):\n", - "\n", - " @lsp_message_listener(\"all\")\n", - " async def my_listener(scope, message, language_server, manager):\n", - " print(\"received a {} {} message from {}\".format(\n", - " scope, message[\"method\"], language_server\n", - " ))\n", - "```\n", - "\n", - "`scope` is one of `client`, `server` or `all`, and is required." + "[entry_points]: https://packaging.python.org/specifications/entry-points/" ] }, { diff --git a/docs/Roadmap.ipynb b/docs/Roadmap.ipynb index e3ad702c1..9d28e2713 100644 --- a/docs/Roadmap.ipynb +++ b/docs/Roadmap.ipynb @@ -39,8 +39,7 @@ "- release on `conda`\n", "- [#49](https://github.com/krassowski/jupyterlab-lsp/issues/49) cookiecutter for\n", " pip-installable specs\n", - "- add hook system to allow serverextensions/kernels to modify, inspect and react\n", - " to LSP messages" + "- add hook system to allow listeners to modify to modify LSP messages" ] } ], diff --git a/py_src/jupyter_lsp/__init__.py b/py_src/jupyter_lsp/__init__.py index 50be856ab..7221c7f67 100644 --- a/py_src/jupyter_lsp/__init__.py +++ b/py_src/jupyter_lsp/__init__.py @@ -1,7 +1,6 @@ # flake8: noqa: F401 from ._version import __version__ from .manager import LanguageServerManager, lsp_message_listener -from .serverextension import load_jupyter_server_extension from .specs.utils import NodeModuleSpec, ShellSpec from .types import ( KeyedLanguageServerSpecs, diff --git a/py_src/jupyter_lsp/etc/jupyter-lsp-serverextension.json b/py_src/jupyter_lsp/etc/jupyter-lsp-serverextension.json deleted file mode 100644 index dc490b685..000000000 --- a/py_src/jupyter_lsp/etc/jupyter-lsp-serverextension.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "NotebookApp": { - "nbserver_extensions": { - "jupyter_lsp": true - } - } -} diff --git a/py_src/jupyter_lsp/handlers.py b/py_src/jupyter_lsp/handlers.py deleted file mode 100644 index 8c0d4638a..000000000 --- a/py_src/jupyter_lsp/handlers.py +++ /dev/null @@ -1,91 +0,0 @@ -""" tornado handler for managing and communicating with language servers -""" -from typing import Optional, Text - -from notebook.base.handlers import IPythonHandler -from notebook.base.zmqhandlers import WebSocketHandler, WebSocketMixin -from notebook.utils import url_path_join as ujoin - -from .manager import LanguageServerManager -from .schema import SERVERS_RESPONSE, SPEC_VERSION -from .types import LangaugeServerClientAPI - - -class BaseHandler(IPythonHandler): - manager = None # type: LanguageServerManager - - def initialize(self, manager: LanguageServerManager): - self.manager = manager - - -class LanguageServerWebSocketHandler( - WebSocketMixin, WebSocketHandler, BaseHandler, LangaugeServerClientAPI -): - """ Setup tornado websocket to route to language server sessions - """ - - language_server = None # type: Optional[Text] - - def open(self, language_server): - self.language_server = language_server - self.manager.subscribe(self) - self.log.debug("[{}] Opened a handler".format(self.language_server)) - - async def on_message(self, message): - self.log.debug("[{}] Handling a message".format(self.language_server)) - await self.manager.on_client_message(message, self) - - def on_close(self): - self.manager.unsubscribe(self) - self.log.debug("[{}] Closed a handler".format(self.language_server)) - - -class LanguageServersHandler(BaseHandler): - """ Reports the status of all current servers - - Response should conform to schema in schema/servers.schema.json - """ - - validator = SERVERS_RESPONSE - - def initialize(self, *args, **kwargs): - super().initialize(*args, **kwargs) - - def get(self): - """ finish with the JSON representations of the sessions - """ - response = { - "version": SPEC_VERSION, - "sessions": { - language_server: session.to_json() - for language_server, session in self.manager.sessions.items() - }, - } - - errors = list(self.validator.iter_errors(response)) - - if errors: # pragma: no cover - self.log.warn("{} validation errors: {}", len(errors), errors) - - self.finish(response) - - -def add_handlers(nbapp): - """ Add Language Server routes to the notebook server web application - """ - lsp_url = ujoin(nbapp.base_url, "lsp") - re_langservers = "(?P.*)" - - opts = {"manager": nbapp.language_server_manager} - - nbapp.web_app.add_handlers( - ".*", - [ - (ujoin(lsp_url, "status"), LanguageServersHandler, opts), - ( - ujoin(lsp_url, "ws", re_langservers), - LanguageServerWebSocketHandler, - opts, - ), - ], - ) diff --git a/py_src/jupyter_lsp/kernel/manager.py b/py_src/jupyter_lsp/kernel/manager.py index 8351177da..fe8c3380f 100644 --- a/py_src/jupyter_lsp/kernel/manager.py +++ b/py_src/jupyter_lsp/kernel/manager.py @@ -1,6 +1,7 @@ import os from jupyter_core.paths import jupyter_config_path +# this is the last remaining import of notebook... would be lovely to remove from notebook.services.config import ConfigManager from traitlets import Instance, Unicode, default diff --git a/py_src/jupyter_lsp/manager.py b/py_src/jupyter_lsp/manager.py index e579350bf..30448ddd2 100644 --- a/py_src/jupyter_lsp/manager.py +++ b/py_src/jupyter_lsp/manager.py @@ -4,7 +4,6 @@ from typing import Dict, Text, Tuple import entrypoints -from notebook.transutils import _ from tornado.gen import maybe_future from traitlets import Bool, Dict as Dict_, Instance, List as List_, default @@ -31,13 +30,13 @@ class LanguageServerManager(LanguageServerManagerAPI): language_servers = Schema( validator=LANGUAGE_SERVER_SPEC_MAP, - help=_("a dict of language server specs, keyed by implementation"), + help="a dict of language server specs, keyed by implementation", ).tag( config=True ) # type: KeyedLanguageServerSpecs autodetect = Bool( - True, help=_("try to find known language servers in sys.prefix (and elsewhere)") + True, help="try to find known language servers in sys.prefix (and elsewhere)" ).tag( config=True ) # type: bool @@ -188,7 +187,7 @@ def _autodetect_language_servers(self): spec_finder = ep.load() # type: SpecMaker except Exception as err: # pragma: no cover self.log.warn( - _("Failed to load language server spec finder `{}`: \n{}").format( + "Failed to load language server spec finder `{}`: \n{}".format( ep_name, err ) ) @@ -198,7 +197,7 @@ def _autodetect_language_servers(self): specs = spec_finder(self) except Exception as err: # pragma: no cover self.log.warning( - _( + ( "Failed to fetch commands from language server spec finder" "`{}`:\n{}" ).format(ep.name, err) @@ -211,7 +210,7 @@ def _autodetect_language_servers(self): if errors: # pragma: no cover self.log.warning( - _( + ( "Failed to validate commands from language server spec finder" "`{}`:\n{}" ).format(ep.name, errors) diff --git a/py_src/jupyter_lsp/serverextension.py b/py_src/jupyter_lsp/serverextension.py deleted file mode 100644 index ba0db67ce..000000000 --- a/py_src/jupyter_lsp/serverextension.py +++ /dev/null @@ -1,49 +0,0 @@ -""" add language server support to the running jupyter notebook application -""" -import json - -import traitlets - -from .handlers import add_handlers -from .manager import LanguageServerManager -from .paths import normalized_uri - -# from .virtual_documents_shadow import setup_shadow_filesystem - - -def load_jupyter_server_extension(nbapp): - """ create a LanguageServerManager and add handlers - """ - nbapp.add_traits(language_server_manager=traitlets.Instance(LanguageServerManager)) - manager = nbapp.language_server_manager = LanguageServerManager(parent=nbapp) - manager.initialize() - - contents = nbapp.contents_manager - page_config = nbapp.web_app.settings.setdefault("page_config_data", {}) - - # try to set the rootUri from the contents manager path - if hasattr(contents, "root_dir"): - root_uri = normalized_uri(contents.root_dir) - page_config["rootUri"] = root_uri - nbapp.log.debug("[lsp] rootUri will be %s", root_uri) - - virtual_documents_uri = root_uri + "/.virtual_documents" - page_config["virtualDocumentsUri"] = virtual_documents_uri - nbapp.log.debug("[lsp] virtualDocumentsUri will be %s", virtual_documents_uri) - else: # pragma: no cover - page_config["rootUri"] = "" - page_config["virtualDocumentsUri"] = "" - nbapp.log.warn( - "[lsp] %s did not appear to have a root_dir, could not set rootUri", - contents, - ) - - add_handlers(nbapp) - - nbapp.log.debug( - "[lsp] The following Language Servers will be available: {}".format( - json.dumps(manager.language_servers, indent=2, sort_keys=True) - ) - ) - - # setup_shadow_filesystem(virtual_documents_uri=virtual_documents_uri) diff --git a/py_src/jupyter_lsp/tests/conftest.py b/py_src/jupyter_lsp/tests/conftest.py index 34a7a2af5..59b33a5b9 100644 --- a/py_src/jupyter_lsp/tests/conftest.py +++ b/py_src/jupyter_lsp/tests/conftest.py @@ -3,7 +3,6 @@ import shutil from typing import Any, Text -from notebook.notebookapp import NotebookApp from pytest import fixture from tornado.queues import Queue @@ -37,7 +36,7 @@ KNOWN_UNKNOWN_SERVERS = ["foo-language-server"] -@fixture(params=[LanguageServerManager, CommLanguageServerManager]) +@fixture(params=[CommLanguageServerManager]) def manager(request) -> LanguageServerManagerAPI: kwargs = {} # type: Any if request.param == CommLanguageServerManager: @@ -89,11 +88,6 @@ def jsonrpc_init_msg(): ) -@fixture -def app(): - return MockNotebookApp() - - @fixture def mock_comm(): return MockComm() diff --git a/py_src/jupyter_lsp/tests/test_extension.py b/py_src/jupyter_lsp/tests/test_extension.py deleted file mode 100644 index 3c37a7096..000000000 --- a/py_src/jupyter_lsp/tests/test_extension.py +++ /dev/null @@ -1,20 +0,0 @@ -def test_serverextension_path(app): - import jupyter_lsp - - paths = jupyter_lsp._jupyter_server_extension_paths() - for path in paths: - assert __import__(path["module"]) - - -def test_serverextension(app): - app.initialize( - ["--NotebookApp.nbserver_extensions={'jupyter_lsp.serverextension': True}"] - ) - assert app.language_server_manager - found_lsp = False - for r in app.web_app.default_router.rules: - for rr in r.target.rules: - if "/lsp/" in str(rr.matcher.regex): - found_lsp = True - - assert found_lsp, "apparently didn't install the /lsp/ route" diff --git a/py_src/jupyter_lsp/types.py b/py_src/jupyter_lsp/types.py index 771bbf30b..763cafb02 100644 --- a/py_src/jupyter_lsp/types.py +++ b/py_src/jupyter_lsp/types.py @@ -20,7 +20,6 @@ Text, ) -from notebook.transutils import _ from traitlets import Instance, List as List_, Unicode, default from traitlets.config import LoggingConfigurable @@ -195,14 +194,14 @@ class LanguageServerManagerAPI(LoggingConfigurable, HasListeners): """ Public API that can be used for python-based spec finders and listeners """ - nodejs = Unicode(help=_("path to nodejs executable")).tag(config=True) + nodejs = Unicode(help=("path to nodejs executable")).tag(config=True) - node_roots = List_([], help=_("absolute paths in which to seek node_modules")).tag( + node_roots = List_([], help=("absolute paths in which to seek node_modules")).tag( config=True ) extra_node_roots = List_( - [], help=_("additional absolute paths to seek node_modules first") + [], help=("additional absolute paths to seek node_modules first") ).tag(config=True) def find_node_module(self, *path_frag): diff --git a/scripts/utest.py b/scripts/utest.py index f9b542d29..f2eb6caea 100644 --- a/scripts/utest.py +++ b/scripts/utest.py @@ -9,7 +9,8 @@ PY = "".join(map(str, sys.version_info[:2])) OS_PY_ARGS = { - # notebook and ipykernel releases do not yet support python 3.8 on windows + # e.g. for a while, notebook and ipykernel releases did not yet support + # python 3.8 on windows # ("Windows", "38"): ["-k", "not serverextension"] } diff --git a/setup.py b/setup.py index df624f09a..a2b5c0bae 100644 --- a/setup.py +++ b/setup.py @@ -10,11 +10,4 @@ (Path(__file__).parent / "py_src" / "jupyter_lsp" / "_version.py").read_text(), )[0], setup_requires=["pytest-runner"] if "test" in sys.argv else [], - # py35 apparently doesn't support putting these in setup.cfg - data_files=[ - ( - "etc/jupyter/jupyter_notebook_config.d", - ["py_src/jupyter_lsp/etc/jupyter-lsp-serverextension.json"], - ) - ], ) From 4930daa744ccbe0ed551d13a31c1d709149a799b Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 16:59:15 -0400 Subject: [PATCH 35/82] more notebook removal --- py_src/jupyter_lsp/kernel/manager.py | 12 ++-- py_src/jupyter_lsp/tests/conftest.py | 34 ++--------- py_src/jupyter_lsp/tests/test_kernel.py | 10 ++-- py_src/jupyter_lsp/tests/test_listener.py | 16 +++--- py_src/jupyter_lsp/tests/test_session.py | 69 +++++++++++------------ py_src/jupyter_lsp/types.py | 5 +- 6 files changed, 61 insertions(+), 85 deletions(-) diff --git a/py_src/jupyter_lsp/kernel/manager.py b/py_src/jupyter_lsp/kernel/manager.py index fe8c3380f..7ceecf854 100644 --- a/py_src/jupyter_lsp/kernel/manager.py +++ b/py_src/jupyter_lsp/kernel/manager.py @@ -1,13 +1,14 @@ import os from jupyter_core.paths import jupyter_config_path + # this is the last remaining import of notebook... would be lovely to remove from notebook.services.config import ConfigManager from traitlets import Instance, Unicode, default from ..manager import LanguageServerManager from ..paths import normalized_uri -from ..schema import SERVERS_RESPONSE +from ..schema import SERVERS_RESPONSE, SPEC_VERSION from ..virtual_documents_shadow import setup_shadow_filesystem from .handlers import CommHandler @@ -76,9 +77,9 @@ def init_comm_targets(self): def on_control_comm_opened(self, comm, comm_msg): self.send_status(comm) - def send_status(self, comm): + def get_status_response(): response = { - "version": 2, + "version": SPEC_VERSION, "sessions": { language_server: session.to_json() for language_server, session in self.sessions.items() @@ -94,7 +95,10 @@ def send_status(self, comm): if errors: # pragma: no cover self.log.warn("{} validation errors: {}", len(errors), errors) - comm.send(response) + return response + + def send_status(self, comm): + comm.send(self.get_status_response()) def on_language_server_comm_opened(self, comm, comm_msg): language_server = comm_msg["metadata"]["language_server"] diff --git a/py_src/jupyter_lsp/tests/conftest.py b/py_src/jupyter_lsp/tests/conftest.py index 59b33a5b9..b2bf58b67 100644 --- a/py_src/jupyter_lsp/tests/conftest.py +++ b/py_src/jupyter_lsp/tests/conftest.py @@ -8,7 +8,6 @@ # local imports from jupyter_lsp import LanguageServerManager -from jupyter_lsp.handlers import LanguageServersHandler, LanguageServerWebSocketHandler from jupyter_lsp.kernel.handlers import CommHandler from jupyter_lsp.kernel.kernel import LanguageServerKernel from jupyter_lsp.kernel.manager import CommLanguageServerManager @@ -56,18 +55,12 @@ def known_unknown_server(request): @fixture -def handlers(manager): - if isinstance(manager, CommLanguageServerManager): - ws_handler = MockCommHandler() - ws_handler.comm = MockComm() - else: - ws_handler = MockWebsocketHandler() - ws_handler.initialize(manager) - - handler = MockHandler() +def lsp_handler(manager): + handler = MockCommHandler() + handler.comm = MockComm() handler.initialize(manager) - return handler, ws_handler + return handler @fixture @@ -106,29 +99,10 @@ def write_message(self, message: Text) -> None: self._messages_wrote.put_nowait(message) -class MockWebsocketHandler(MockClientMixin, LanguageServerWebSocketHandler): - def __init__(self): - pass - - class MockCommHandler(MockClientMixin, CommHandler): pass -class MockHandler(LanguageServersHandler): - _payload = None - - def __init__(self): - pass - - def finish(self, payload): - self._payload = payload - - -class MockNotebookApp(NotebookApp): - pass - - class MockKernel(LanguageServerKernel): pass diff --git a/py_src/jupyter_lsp/tests/test_kernel.py b/py_src/jupyter_lsp/tests/test_kernel.py index df17d20d6..d7a62f3ff 100644 --- a/py_src/jupyter_lsp/tests/test_kernel.py +++ b/py_src/jupyter_lsp/tests/test_kernel.py @@ -32,9 +32,8 @@ def test_kernel_install( @pytest.mark.asyncio -def test_kernel_manager_control_comm(handlers, mock_comm): - handler, ws_handler = handlers - manager = handler.manager +def test_kernel_manager_control_comm(lsp_handler, mock_comm): + manager = lsp_handler.manager if not isinstance(manager, CommLanguageServerManager): return manager.initialize() @@ -43,9 +42,8 @@ def test_kernel_manager_control_comm(handlers, mock_comm): @pytest.mark.asyncio -def test_kernel_manager_server_comm(handlers, mock_comm): - handler, ws_handler = handlers - manager = handler.manager +def test_kernel_manager_server_comm(lsp_handler, mock_comm): + manager = lsp_handler.manager if not isinstance(manager, CommLanguageServerManager): return manager.initialize() diff --git a/py_src/jupyter_lsp/tests/test_listener.py b/py_src/jupyter_lsp/tests/test_listener.py index 84bce9341..aab3a6972 100644 --- a/py_src/jupyter_lsp/tests/test_listener.py +++ b/py_src/jupyter_lsp/tests/test_listener.py @@ -10,20 +10,18 @@ @pytest.mark.parametrize("bad_string", ["not-a-function", "jupyter_lsp.__version__"]) @pytest.mark.asyncio -async def test_listener_bad_traitlets(bad_string, handlers): - handler, ws_handler = handlers - manager = handler.manager +async def test_listener_bad_traitlets(bad_string, lsp_handler): + manager = lsp_handler.manager with pytest.raises(traitlets.TraitError): manager.all_listeners = [bad_string] @pytest.mark.asyncio -async def test_listeners(known_server, handlers, jsonrpc_init_msg): +async def test_listeners(known_server, lsp_handler, jsonrpc_init_msg): """ will some listeners listen? """ - handler, ws_handler = handlers - manager = handler.manager + manager = lsp_handler.manager manager.all_listeners = ["jupyter_lsp.tests.listener.dummy_listener"] @@ -80,9 +78,9 @@ async def all_listener( assert len(manager._listeners["client"]) == 2 assert len(manager._listeners["all"]) == 2 - ws_handler.open(known_server) + lsp_handler.open(known_server) - await ws_handler.on_message(jsonrpc_init_msg) + await lsp_handler.on_message(jsonrpc_init_msg) results = await asyncio.wait_for( asyncio.gather( @@ -96,7 +94,7 @@ async def all_listener( ) assert all([isinstance(res, dict) for res in results]) - ws_handler.on_close() + lsp_handler.on_close() handler_listened.task_done() server_listened.task_done() diff --git a/py_src/jupyter_lsp/tests/test_session.py b/py_src/jupyter_lsp/tests/test_session.py index 56d889899..f09204099 100644 --- a/py_src/jupyter_lsp/tests/test_session.py +++ b/py_src/jupyter_lsp/tests/test_session.py @@ -5,45 +5,29 @@ from ..schema import SERVERS_RESPONSE -def assert_status_set(handler, expected_statuses, language_server=None): - handler.get() - payload = handler._payload - - errors = list(SERVERS_RESPONSE.iter_errors(payload)) - assert not errors - - statuses = { - session["status"] - for session_server, session in payload["sessions"].items() - if language_server is None or language_server == session_server - } - assert statuses == expected_statuses, payload - - @pytest.mark.asyncio -async def test_start_known(known_server, handlers, jsonrpc_init_msg): +async def test_start_known(known_server, lsp_handler, jsonrpc_init_msg): """ will a process start for a known server if a handler starts? """ - handler, ws_handler = handlers - manager = handler.manager + manager = lsp_handler.manager manager.initialize() assert_status_set(handler, {"not_started"}) - ws_handler.open(known_server) - session = manager.sessions[ws_handler.language_server] + lsp_handler.open(known_server) + session = manager.sessions[lsp_handler.language_server] assert session.process is not None assert_status_set(handler, {"started"}, known_server) - await ws_handler.on_message(jsonrpc_init_msg) + await lsp_handler.on_message(jsonrpc_init_msg) try: - await asyncio.wait_for(ws_handler._messages_wrote.get(), 20) - ws_handler._messages_wrote.task_done() + await asyncio.wait_for(lsp_handler._messages_wrote.get(), 20) + lsp_handler._messages_wrote.task_done() finally: - ws_handler.on_close() + lsp_handler.on_close() assert not session.handlers assert not session.process @@ -53,22 +37,37 @@ async def test_start_known(known_server, handlers, jsonrpc_init_msg): @pytest.mark.asyncio -async def test_start_unknown(known_unknown_server, handlers, jsonrpc_init_msg): +async def test_start_unknown(known_unknown_server, lsp_handler, jsonrpc_init_msg): """ will a process not start for an unknown server if a handler starts? """ - handler, ws_handler = handlers - manager = handler.manager + manager = lsp_handler.manager manager.initialize() - assert_status_set(handler, {"not_started"}) + assert_status_set(manager, {"not_started"}) - ws_handler.open(known_unknown_server) + lsp_handler.open(known_unknown_server) - assert_status_set(handler, {"not_started"}) + assert_status_set(manager, {"not_started"}) - await ws_handler.on_message(jsonrpc_init_msg) - assert_status_set(handler, {"not_started"}) - ws_handler.on_close() + await lsp_handler.on_message(jsonrpc_init_msg) + assert_status_set(manager, {"not_started"}) + lsp_handler.on_close() - assert not manager.sessions.get(ws_handler.language_server) - assert_status_set(handler, {"not_started"}) + assert not manager.sessions.get(lsp_handler.language_server) + assert_status_set(manager, {"not_started"}) + + +# utilities +def assert_status_set(manager, expected_statuses, language_server=None): + handler.get() + payload = handler._payload + + errors = list(SERVERS_RESPONSE.iter_errors(payload)) + assert not errors + + statuses = { + session["status"] + for session_server, session in payload["sessions"].items() + if language_server is None or language_server == session_server + } + assert statuses == expected_statuses, payload diff --git a/py_src/jupyter_lsp/types.py b/py_src/jupyter_lsp/types.py index 763cafb02..f3ccae6df 100644 --- a/py_src/jupyter_lsp/types.py +++ b/py_src/jupyter_lsp/types.py @@ -204,6 +204,9 @@ class LanguageServerManagerAPI(LoggingConfigurable, HasListeners): [], help=("additional absolute paths to seek node_modules first") ).tag(config=True) + def get_status_response(self): + raise NotImplementedError() + def find_node_module(self, *path_frag): """ look through the node_module roots to find the given node module """ @@ -236,7 +239,7 @@ def _default_nodejs(self): def _default_node_roots(self): """ get the "usual suspects" for where `node_modules` may be found - - where this was launch (usually the same as NotebookApp.notebook_dir) + - where the parent was launched - the JupyterLab staging folder (if available) - wherever conda puts it - wherever some other conventions put it From ec039c0f504a5d772ba4ac6236a0f62ec27d543a Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 17:03:16 -0400 Subject: [PATCH 36/82] more clean up of tests --- docs/Extending.ipynb | 7 +++---- py_src/jupyter_lsp/kernel/manager.py | 2 +- py_src/jupyter_lsp/tests/conftest.py | 1 - py_src/jupyter_lsp/tests/test_session.py | 8 ++++---- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/docs/Extending.ipynb b/docs/Extending.ipynb index d4237fa07..c4a8b610a 100644 --- a/docs/Extending.ipynb +++ b/docs/Extending.ipynb @@ -78,10 +78,9 @@ "At present, the entry point names generally have no impact on functionality\n", "aside from logging in the event of an error on import.\n", "\n", - "> TBD: show an example of a listener implementation, since decorator is hard", - "to use now.", - "\n", - "[entry_points]: https://packaging.python.org/specifications/entry-points/" + "> TBD: show an example of a listener implementation, since decorator is hardto\n", + "> use now. [entry_points]:\n", + "> https://packaging.python.org/specifications/entry-points/" ] }, { diff --git a/py_src/jupyter_lsp/kernel/manager.py b/py_src/jupyter_lsp/kernel/manager.py index 7ceecf854..823fa7464 100644 --- a/py_src/jupyter_lsp/kernel/manager.py +++ b/py_src/jupyter_lsp/kernel/manager.py @@ -77,7 +77,7 @@ def init_comm_targets(self): def on_control_comm_opened(self, comm, comm_msg): self.send_status(comm) - def get_status_response(): + def get_status_response(self): response = { "version": SPEC_VERSION, "sessions": { diff --git a/py_src/jupyter_lsp/tests/conftest.py b/py_src/jupyter_lsp/tests/conftest.py index b2bf58b67..ece0b0649 100644 --- a/py_src/jupyter_lsp/tests/conftest.py +++ b/py_src/jupyter_lsp/tests/conftest.py @@ -7,7 +7,6 @@ from tornado.queues import Queue # local imports -from jupyter_lsp import LanguageServerManager from jupyter_lsp.kernel.handlers import CommHandler from jupyter_lsp.kernel.kernel import LanguageServerKernel from jupyter_lsp.kernel.manager import CommLanguageServerManager diff --git a/py_src/jupyter_lsp/tests/test_session.py b/py_src/jupyter_lsp/tests/test_session.py index f09204099..c31d9e5a1 100644 --- a/py_src/jupyter_lsp/tests/test_session.py +++ b/py_src/jupyter_lsp/tests/test_session.py @@ -13,13 +13,13 @@ async def test_start_known(known_server, lsp_handler, jsonrpc_init_msg): manager.initialize() - assert_status_set(handler, {"not_started"}) + assert_status_set(manager, {"not_started"}) lsp_handler.open(known_server) session = manager.sessions[lsp_handler.language_server] assert session.process is not None - assert_status_set(handler, {"started"}, known_server) + assert_status_set(manager, {"started"}, known_server) await lsp_handler.on_message(jsonrpc_init_msg) @@ -32,8 +32,8 @@ async def test_start_known(known_server, lsp_handler, jsonrpc_init_msg): assert not session.handlers assert not session.process - assert_status_set(handler, {"stopped"}, known_server) - assert_status_set(handler, {"stopped", "not_started"}) + assert_status_set(manager, {"stopped"}, known_server) + assert_status_set(manager, {"stopped", "not_started"}) @pytest.mark.asyncio From 2c1378af1ba3755703f052a9bca6af633d3a4543 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 17:04:50 -0400 Subject: [PATCH 37/82] fix bad logging exception --- py_src/jupyter_lsp/stdio.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/py_src/jupyter_lsp/stdio.py b/py_src/jupyter_lsp/stdio.py index a31226685..73945618c 100644 --- a/py_src/jupyter_lsp/stdio.py +++ b/py_src/jupyter_lsp/stdio.py @@ -160,7 +160,7 @@ async def write(self) -> None: response = "Content-Length: {}\r\n\r\n{}".format(len(body), message) await convert_yielded(self._write_one(response.encode("utf-8"))) except Exception: # pragma: no cover - self.log.exception("s couldn't write message: %s", self, response) + self.log.exception("%s couldn't write message: %s", self, response) finally: self.queue.task_done() From 40f5fa5c014efc7eadbfb0da0c6e7a4316e9efd8 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 17:06:57 -0400 Subject: [PATCH 38/82] get status directly from manager --- py_src/jupyter_lsp/tests/test_session.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/py_src/jupyter_lsp/tests/test_session.py b/py_src/jupyter_lsp/tests/test_session.py index c31d9e5a1..533df444d 100644 --- a/py_src/jupyter_lsp/tests/test_session.py +++ b/py_src/jupyter_lsp/tests/test_session.py @@ -59,8 +59,7 @@ async def test_start_unknown(known_unknown_server, lsp_handler, jsonrpc_init_msg # utilities def assert_status_set(manager, expected_statuses, language_server=None): - handler.get() - payload = handler._payload + payload = manager.get_status_response() errors = list(SERVERS_RESPONSE.iter_errors(payload)) assert not errors From c20cf76c02ca0d783c51359f84736e2675365b3a Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 17:09:29 -0400 Subject: [PATCH 39/82] remove checks around manager --- py_src/jupyter_lsp/__init__.py | 4 ---- py_src/jupyter_lsp/tests/test_kernel.py | 5 ----- 2 files changed, 9 deletions(-) diff --git a/py_src/jupyter_lsp/__init__.py b/py_src/jupyter_lsp/__init__.py index 7221c7f67..188ebdb88 100644 --- a/py_src/jupyter_lsp/__init__.py +++ b/py_src/jupyter_lsp/__init__.py @@ -7,7 +7,3 @@ LanguageServerManagerAPI, LanguageServerSpec, ) - - -def _jupyter_server_extension_paths(): - return [{"module": "jupyter_lsp"}] diff --git a/py_src/jupyter_lsp/tests/test_kernel.py b/py_src/jupyter_lsp/tests/test_kernel.py index d7a62f3ff..717ae8eaf 100644 --- a/py_src/jupyter_lsp/tests/test_kernel.py +++ b/py_src/jupyter_lsp/tests/test_kernel.py @@ -3,7 +3,6 @@ import pytest from jupyter_lsp.kernel.install import DISPLAY_NAME, KERNEL_NAME -from jupyter_lsp.kernel.manager import CommLanguageServerManager from jupyter_lsp.lspapp import LSPKernelSpecInstallApp CUSTOM_NAME = "custom-ilsp-2" @@ -34,8 +33,6 @@ def test_kernel_install( @pytest.mark.asyncio def test_kernel_manager_control_comm(lsp_handler, mock_comm): manager = lsp_handler.manager - if not isinstance(manager, CommLanguageServerManager): - return manager.initialize() manager.on_control_comm_opened(mock_comm, None) assert mock_comm._sent @@ -44,8 +41,6 @@ def test_kernel_manager_control_comm(lsp_handler, mock_comm): @pytest.mark.asyncio def test_kernel_manager_server_comm(lsp_handler, mock_comm): manager = lsp_handler.manager - if not isinstance(manager, CommLanguageServerManager): - return manager.initialize() manager.on_language_server_comm_opened( mock_comm, dict(metadata=dict(language_server="pyls")) From d56f316191d9aeb19b6fb11f5e352c8adc624e8e Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 17:11:07 -0400 Subject: [PATCH 40/82] no cover non-implementation --- py_src/jupyter_lsp/types.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/py_src/jupyter_lsp/types.py b/py_src/jupyter_lsp/types.py index f3ccae6df..3d93a03d0 100644 --- a/py_src/jupyter_lsp/types.py +++ b/py_src/jupyter_lsp/types.py @@ -204,7 +204,7 @@ class LanguageServerManagerAPI(LoggingConfigurable, HasListeners): [], help=("additional absolute paths to seek node_modules first") ).tag(config=True) - def get_status_response(self): + def get_status_response(self): # pragma: no cover raise NotImplementedError() def find_node_module(self, *path_frag): From de3ae95f45c9a84a735a4a9b305269a4de2c88e3 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 17:12:24 -0400 Subject: [PATCH 41/82] actually test the kernelspec install cli --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5b009bda1..864ad3c73 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,6 +42,7 @@ before_script: script: - jlpm test + - python3 scripts/utest.py - python3 -m jupyter kernelspec list + - python3 -m jupyter lsp kernelspec install - python3 -m jupyter kernelspec list | grep jupyter-lsp-kernel - - python3 scripts/utest.py From b5e471553e5df62dc1122b04402074bbf0ebcb8b Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 17:13:04 -0400 Subject: [PATCH 42/82] linting --- py_src/jupyter_lsp/types.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/py_src/jupyter_lsp/types.py b/py_src/jupyter_lsp/types.py index 3d93a03d0..09862cefa 100644 --- a/py_src/jupyter_lsp/types.py +++ b/py_src/jupyter_lsp/types.py @@ -204,7 +204,7 @@ class LanguageServerManagerAPI(LoggingConfigurable, HasListeners): [], help=("additional absolute paths to seek node_modules first") ).tag(config=True) - def get_status_response(self): # pragma: no cover + def get_status_response(self): # pragma: no cover raise NotImplementedError() def find_node_module(self, *path_frag): From c6c3bbaa8a953b693228579fdc5056cc31078555 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 17:22:50 -0400 Subject: [PATCH 43/82] remove page config test for uri --- atest/00_Smoke.robot | 4 ---- 1 file changed, 4 deletions(-) diff --git a/atest/00_Smoke.robot b/atest/00_Smoke.robot index aba8c844b..dc2c9623f 100644 --- a/atest/00_Smoke.robot +++ b/atest/00_Smoke.robot @@ -6,10 +6,6 @@ Resource Keywords.robot Lab Version Capture Page Screenshot 00-smoke.png -Root URI - [Documentation] the rootUri should be set in the page config - Should Not Be Empty ${PAGE CONFIG["rootUri"]} - Build Skipped [Documentation] Pre-flight the page config Should Be Equal ${PAGE CONFIG["buildCheck"]} ${False} From 26f06b17f36a943cfd3fe66b0f6365b455fe4ce2 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 17:29:57 -0400 Subject: [PATCH 44/82] update the arch docs --- docs/dot/as-is/backend.dot | 50 ++++++++++++++++--------------------- docs/dot/as-is/frontend.dot | 19 +++++++------- 2 files changed, 31 insertions(+), 38 deletions(-) diff --git a/docs/dot/as-is/backend.dot b/docs/dot/as-is/backend.dot index f17530a71..346c1f4f6 100644 --- a/docs/dot/as-is/backend.dot +++ b/docs/dot/as-is/backend.dot @@ -10,32 +10,27 @@ graph backend { label=Browser Clients } - - subgraph cluster_notebook { label="Jupyter Server" - subgraph cluster_lsp { label="LSP ServerExtension" - Manager[label="The\nLanguage\nServer\nManager"] - Handlers - WebSockets - SpecFinders - subgraph cluster_lsp { label="Per Language Server" - Spec - Session - subgraph cluster_read_thread { label="Reader Thread" - Reader - } - subgraph cluster_write_thread { label="Writer Thread" - Writer - } - subgraph cluster_ls_process { label="Subprocess" - LanguageServer[label="Language\nServer"] - } + + subgraph cluster_kernel { label="The Language Server Kernel" + Manager[label="The\nLanguage\nServer\nManager"] + Handlers + ControlComm + SpecFinders + subgraph cluster_lsp { label="Per Language Server" + LanguageServerComm + Spec + Session + subgraph cluster_read_thread { label="Reader Thread" + Reader + } + subgraph cluster_write_thread { label="Writer Thread" + Writer + } + subgraph cluster_ls_process { label="Subprocess" + LanguageServer[label="Language\nServer"] } - Listeners - RestAPI[label="The REST API"] - } - subgraph cluster_lab_ext { label="JupyterLab ServerExtension" - PageConfig[label="The Page Config"] } + Listeners } subgraph cluster_files { label="Files" @@ -50,11 +45,10 @@ graph backend { } } } - - Clients -- {RestAPI PageConfig} -- Manager - Clients -- WebSockets -- Handlers -- Manager + + Clients -- {ControlComm LanguageServerComm} -- Manager Session -- {Reader Writer} -- LanguageServer - {Manager Traitlets EntryPoints} -- SpecFinders + {Manager Traitlets EntryPoints} -- {SpecFinders Listeners} Manager -- {Spec Session} Spec -- Session Session -- Listeners -- VirtualFiles diff --git a/docs/dot/as-is/frontend.dot b/docs/dot/as-is/frontend.dot index 4c48f711f..9a5fd5d60 100644 --- a/docs/dot/as-is/frontend.dot +++ b/docs/dot/as-is/frontend.dot @@ -12,8 +12,7 @@ graph backend { Mouse[label="The Mouse"] } subgraph cluster_server { label="Server" - RestAPI[label="The REST API"] - WebSocketHandlers + LanguageServerKernel[label="The Language Server Kernel"] } subgraph cluster_lab { label="JupyterLab" subgraph cluster_singletons { label="Singletons" @@ -22,13 +21,13 @@ graph backend { DiagnosticPanel ConnectionManager LanguageServerManager + ControlComm } WidgetTrackers - + subgraph cluster_lang {label="Per Language" Connection - MessageConnection - WebSocket + LanguageServerComm } subgraph cluster_doc { label="Per Document" Widget @@ -51,17 +50,17 @@ graph backend { } } } - + {Connection CodeMirrors VirtualDocument VirtualEditor} -- Feature[lhead=cluster_features]; Diagnostics -- DiagnosticPanel - Connection -- ConnectionManager -- LanguageServerManager -- RestAPI + Connection -- ConnectionManager -- LanguageServerManager -- ControlComm -- LanguageServerKernel CodeMirrors -- CodeMirrorAdapters -- WidgetAdapter WidgetAdapter -- VirtualEditor -- VirtualDocument - WidgetTrackers -- {Plugin -- Widget} + WidgetTrackers -- {Plugin -- Widget} StatusBarItem -- Connection Widget -- WidgetAdapter -- Plugin -- StatusBarItem -- LanguageServerManager Widget -- CodeMirrors Plugin -- {ConnectionManager LanguageServerManager} - Connection -- MessageConnection -- WebSocket -- WebSocketHandlers + Connection -- LanguageServerComm -- LanguageServerKernel {Keyboard Mouse} -- CodeMirrors -} \ No newline at end of file +} From 9c53820c2eee93aefd18a9015347a1e632296df0 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 21:14:30 -0400 Subject: [PATCH 45/82] turn down timeouts and retries to get something to finish on windows --- atest/Keywords.robot | 5 +++-- azure-pipelines.yml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/atest/Keywords.robot b/atest/Keywords.robot index 789f69d38..24a2008e7 100644 --- a/atest/Keywords.robot +++ b/atest/Keywords.robot @@ -47,7 +47,8 @@ Create Notebok Server Config [Documentation] Copies in notebook server config file to disables npm/build checks ${json} = Get File ${FIXTURES}${/}${NBSERVER CONF} ${conf} = Evaluate __import__("json").loads('''${json}''') - ${lsm} = Evaluate dict(extra_node_roots=['''${ROOT}''']) + ${norm root} = Normalize Path ${ROOT} + ${lsm} = Evaluate dict(extra_node_roots=['''${norm root}''']) Set To Dictionary ${conf} LanguageServerManager=${lsm} ${json} = Evaluate __import__("json").dumps(${conf}) Create File ${home}${/}${NBSERVER CONF} ${json} @@ -245,7 +246,7 @@ Place Cursor In Cell Editor At Execute JavaScript return document.querySelector('.jp-Cell:nth-child(${cell_nr}) .CodeMirror').CodeMirror.setCursor({line: ${line} - 1, ch: ${character}}) Wait Until Fully Initialized - Wait Until Element Contains ${STATUSBAR} Fully initialized timeout=60s + Wait Until Element Contains ${STATUSBAR} Fully initialized timeout=30s Open Context Menu Over [Arguments] ${sel} diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c3aa5b4c5..89598f984 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -10,7 +10,7 @@ pr: variables: PYTHONUNBUFFERED: 1 - ATEST_RETRIES: 3 + ATEST_RETRIES: 1 YARN_CACHE_FOLDER: $(Pipeline.Workspace)/.yarn PY_JLSP_VERSION: 1.0.0 From d64273c16a57778b2766c1a4f4c1ae0ccae9726c Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 21:40:15 -0400 Subject: [PATCH 46/82] back off of Path traitlet for py35 --- py_src/jupyter_lsp/lspapp.py | 6 ++---- py_src/jupyter_lsp/tests/test_kernel.py | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/py_src/jupyter_lsp/lspapp.py b/py_src/jupyter_lsp/lspapp.py index f4daaf372..d991900ca 100644 --- a/py_src/jupyter_lsp/lspapp.py +++ b/py_src/jupyter_lsp/lspapp.py @@ -1,16 +1,14 @@ import sys -from pathlib import Path from typing import Any -from traitlets import Bool, Instance, Unicode, Union +from traitlets import Bool, Unicode from traitlets.config import Application class LSPKernelSpecInstallApp(Application): description = """Install the kernelspec""" - prefix = Union( - [Unicode(), Instance(Path)], + prefix = Unicode( default_value=None, help="Install into given path prefix", config=True, diff --git a/py_src/jupyter_lsp/tests/test_kernel.py b/py_src/jupyter_lsp/tests/test_kernel.py index 717ae8eaf..3a165ba5e 100644 --- a/py_src/jupyter_lsp/tests/test_kernel.py +++ b/py_src/jupyter_lsp/tests/test_kernel.py @@ -20,7 +20,7 @@ def test_kernel_install( kernel_name, display_name, expect_kernel_name, expect_display_name, tmp_path ): app = LSPKernelSpecInstallApp( - prefix=tmp_path, kernel_name=kernel_name, display_name=display_name + prefix=str(tmp_path), kernel_name=kernel_name, display_name=display_name ) app.start() spec = tmp_path / "share/jupyter/kernels/{}/kernel.json".format(expect_kernel_name) From 9e5ad75305b13c13528134c12a42f2bb46b175ea Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 22:26:40 -0400 Subject: [PATCH 47/82] some more work on windows paths in robot --- atest/Keywords.robot | 14 ++----------- atest/Variables.robot | 1 - atest/config.py | 22 +++++++++++++++++++++ atest/fixtures/jupyter_notebook_config.json | 10 ---------- 4 files changed, 24 insertions(+), 23 deletions(-) create mode 100644 atest/config.py delete mode 100644 atest/fixtures/jupyter_notebook_config.json diff --git a/atest/Keywords.robot b/atest/Keywords.robot index 24a2008e7..5cc60c429 100644 --- a/atest/Keywords.robot +++ b/atest/Keywords.robot @@ -6,6 +6,7 @@ Library Process Library String Library Collections Library ./ports.py +Library ./config.py *** Keywords *** Setup Server and Browser @@ -19,7 +20,7 @@ Setup Server and Browser ${home} = Set Variable ${OUTPUT DIR}${/}home ${root} = Normalize Path ${OUTPUT DIR}${/}..${/}..${/}.. Create Directory ${home} - Create Notebok Server Config ${home} + Initialize Server Config ${home} ${root} Initialize User Settings ${cmd} = Create Lab Launch Command ${root} Set Screenshot Directory ${OUTPUT DIR}${/}screenshots @@ -42,17 +43,6 @@ Create Lab Launch Command ${cmd} = Set Variable jupyter-lab ${app args} ${path args} ${ext args} [Return] ${cmd} -Create Notebok Server Config - [Arguments] ${home} - [Documentation] Copies in notebook server config file to disables npm/build checks - ${json} = Get File ${FIXTURES}${/}${NBSERVER CONF} - ${conf} = Evaluate __import__("json").loads('''${json}''') - ${norm root} = Normalize Path ${ROOT} - ${lsm} = Evaluate dict(extra_node_roots=['''${norm root}''']) - Set To Dictionary ${conf} LanguageServerManager=${lsm} - ${json} = Evaluate __import__("json").dumps(${conf}) - Create File ${home}${/}${NBSERVER CONF} ${json} - Setup Suite For Screenshots [Arguments] ${folder} Set Screenshot Directory ${OUTPUT DIR}${/}screenshots${/}${folder} diff --git a/atest/Variables.robot b/atest/Variables.robot index fbf777fa0..8ec7b6aff 100644 --- a/atest/Variables.robot +++ b/atest/Variables.robot @@ -1,7 +1,6 @@ *** Variables *** ${FIXTURES} ${CURDIR}${/}fixtures ${ROOT} ${CURDIR}${/}.. -${NBSERVER CONF} jupyter_notebook_config.json ${SPLASH} id:jupyterlab-splash # to help catch hard-coded paths ${BASE} /@est/ diff --git a/atest/config.py b/atest/config.py new file mode 100644 index 000000000..9d6676754 --- /dev/null +++ b/atest/config.py @@ -0,0 +1,22 @@ +""" handle jupyter config +""" +import json +from pathlib import Path + +NO_BUILD = { + "LabApp": { + "tornado_settings": { + "page_config_data": {"buildCheck": False, "buildAvailable": False} + } + } +} + + +def initialize_server_config(home, root): + """ make a notebook server config file + """ + config = dict(LanguageServerManager=dict(extra_node_roots=[root]), **NO_BUILD) + + (Path(home) / "jupyter_notebook_config.json").write_text( + json.dumps(config, indent=2, sort_keys=True) + ) diff --git a/atest/fixtures/jupyter_notebook_config.json b/atest/fixtures/jupyter_notebook_config.json deleted file mode 100644 index fef418cd8..000000000 --- a/atest/fixtures/jupyter_notebook_config.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "LabApp": { - "tornado_settings": { - "page_config_data": { - "buildCheck": false, - "buildAvailable": false - } - } - } -} From b426d2480ffba5db735c482b89ae48f08a475ce0 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 23:07:09 -0400 Subject: [PATCH 48/82] path quoting for windows --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 6d1e477e4..b5b72b307 100644 --- a/package.json +++ b/package.json @@ -43,11 +43,11 @@ "lab:link": "lerna run lab:link", "lint:check": "jlpm prettier:check && jlpm tslint:check", "lint": "jlpm prettier && jlpm tslint", - "prettier:check": "prettier --check '**/*{.ts,.tsx,.js,.jsx,.css,.json,.md,.yml}'", + "prettier:check": "prettier --check \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md,.yml}\"", "test": "lerna run --stream --concurrency=1 test", - "prettier": "prettier --write '**/*{.ts,.tsx,.js,.jsx,.css,.json,.md,.yml}'", - "tslint": "tslint --fix -c ./packages/tslint.json --project ./packages/tsconfigbase.json 'packages/**/*{.ts,.tsx}'", - "tslint:check": "tslint -c ./packages/tslint.json --project ./packages/tsconfigbase.json 'packages/**/*{.ts,.tsx}'" + "prettier": "prettier --write \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md,.yml}\"", + "tslint": "tslint --fix -c ./packages/tslint.json --project ./packages/tsconfigbase.json \"packages/**/*{.ts,.tsx}\"", + "tslint:check": "tslint -c ./packages/tslint.json --project ./packages/tsconfigbase.json \"packages/**/*{.ts,.tsx}\"" }, "workspaces": { "packages": [ From 638d345d0bb2a4af8fd78504d62b28a97da2d54b Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 7 Jun 2020 23:28:38 -0400 Subject: [PATCH 49/82] try libarchive on a hunch --- azure-pipelines.yml | 2 +- ci/env-test.yml.in | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 89598f984..c3aa5b4c5 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -10,7 +10,7 @@ pr: variables: PYTHONUNBUFFERED: 1 - ATEST_RETRIES: 1 + ATEST_RETRIES: 3 YARN_CACHE_FOLDER: $(Pipeline.Workspace)/.yarn PY_JLSP_VERSION: 1.0.0 diff --git a/ci/env-test.yml.in b/ci/env-test.yml.in index 938a1dbc0..7109eaca5 100644 --- a/ci/env-test.yml.in +++ b/ci/env-test.yml.in @@ -10,6 +10,7 @@ dependencies: - jupyterlab {lab} # build dependencies - nodejs {nodejs} + - python-libarchive-c # for python language server (and development) - flake8 >=3.5 - python-language-server From 3572ea9477d2521ccae64fbfffbb29ca805bd705 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Mon, 8 Jun 2020 21:50:21 -0400 Subject: [PATCH 50/82] one more atest retry --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c3aa5b4c5..cd15390b0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -10,7 +10,7 @@ pr: variables: PYTHONUNBUFFERED: 1 - ATEST_RETRIES: 3 + ATEST_RETRIES: 4 YARN_CACHE_FOLDER: $(Pipeline.Workspace)/.yarn PY_JLSP_VERSION: 1.0.0 From c4af2cc92e4e37fd3b93a0af4e0445fcdf92eba9 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Mon, 8 Jun 2020 23:41:46 -0400 Subject: [PATCH 51/82] reuse control and language server comms --- packages/jupyterlab-lsp/src/comm/json-rpc.ts | 8 ++- packages/jupyterlab-lsp/src/manager.ts | 60 ++++++++++++++------ py_src/jupyter_lsp/kernel/manager.py | 7 ++- py_src/jupyter_lsp/schema/schema.json | 11 ++-- py_src/jupyter_lsp/session.py | 2 +- 5 files changed, 62 insertions(+), 26 deletions(-) diff --git a/packages/jupyterlab-lsp/src/comm/json-rpc.ts b/packages/jupyterlab-lsp/src/comm/json-rpc.ts index bc7b9e1cb..f44b081e7 100644 --- a/packages/jupyterlab-lsp/src/comm/json-rpc.ts +++ b/packages/jupyterlab-lsp/src/comm/json-rpc.ts @@ -125,7 +125,13 @@ export class CommRPC implements ICommRPC { if (result != null) { const promise = this._responsePromises.get(id); if (promise == null) { - console.warn('unexpected comm response', result, id, params); + console.warn( + 'unexpected comm response', + result, + id, + params, + this.comm.commId + ); return; } promise.resolve(result); diff --git a/packages/jupyterlab-lsp/src/manager.ts b/packages/jupyterlab-lsp/src/manager.ts index 7f6b3d306..86411d5a0 100644 --- a/packages/jupyterlab-lsp/src/manager.ts +++ b/packages/jupyterlab-lsp/src/manager.ts @@ -51,6 +51,10 @@ export class LanguageServerManager implements ILanguageServerManager { return this._kernelReady.promise; } + protected get kernel() { + return this._kernelSessionConnection.kernel; + } + async getComm(language_server_id: TLanguageServerId): Promise { let comm = this._comms.get(language_server_id); @@ -59,7 +63,7 @@ export class LanguageServerManager implements ILanguageServerManager { } // nb: check sessions first? - comm = await this.makeLanguageServerComm(language_server_id); + comm = await this.getLanguageServerComm(language_server_id); this._comms.set(language_server_id, comm); return comm; } @@ -101,26 +105,43 @@ export class LanguageServerManager implements ILanguageServerManager { return; } - this._controlComm = await this.makeControlComm(); + this._controlComm = await this.getControlComm(); } - protected async makeControlComm() { - const comm = this._kernelSessionConnection.kernel.createComm( - CONTROL_COMM_TARGET + /** + * Get (or create) the control comm + */ + protected async getControlComm() { + const commInfo = await this.kernel.requestCommInfo({ + target_name: CONTROL_COMM_TARGET, + }); + + let commId: string; + + if (commInfo.content.status === 'ok') { + const commIds = Object.keys(commInfo.content.comms); + commId = commIds.length ? commIds[0] : null; + } + + const comm = this.kernel.createComm( + CONTROL_COMM_TARGET, + ...(commId == null ? [] : [commId]) ); comm.onMsg = this.onControlCommMsg.bind(this); - // nb: do something here? negotiate schema version? - comm.open({}); - console.warn('control comm opened', comm); + if (commId == null) { + // nb: do something here? negotiate schema version? + comm.open({}); + } else { + comm.send({}); + } + // nb: should we await something? return comm; } - async onControlCommMsg(msg: KernelMessage.ICommMsgMsg) { - console.warn('got control message', this._controlComm, msg); - + protected async onControlCommMsg(msg: KernelMessage.ICommMsgMsg) { const { sessions, uris } = msg.content.data as SCHEMA.ServersResponse; this._rootUri = uris.root; this._virtualDocumentsUri = uris.virtual_documents; @@ -129,13 +150,15 @@ export class LanguageServerManager implements ILanguageServerManager { this._kernelReady.resolve(void 0); } - protected async makeLanguageServerComm( - language_server_id: TLanguageServerId - ) { + protected async getLanguageServerComm(language_server_id: TLanguageServerId) { await this._kernelReady.promise; - const comm = this._kernelSessionConnection.kernel.createComm( - LANGUAGE_SERVER_COMM_TARGET + const session = this._sessions.get(language_server_id); + let commId = session.comm_ids?.length ? session.comm_ids[0] : null; + + const comm = this.kernel.createComm( + LANGUAGE_SERVER_COMM_TARGET, + ...(commId == null ? [] : [commId]) ); this._comms.set(language_server_id, comm); @@ -144,9 +167,10 @@ export class LanguageServerManager implements ILanguageServerManager { console.warn('unitialized comm', comm, msg.content.data); }; - comm.open({}, { language_server: language_server_id }); + if (commId == null) { + comm.open({}, { language_server: language_server_id }); + } - console.warn('opened comm for', language_server_id); return comm; } diff --git a/py_src/jupyter_lsp/kernel/manager.py b/py_src/jupyter_lsp/kernel/manager.py index 823fa7464..426186940 100644 --- a/py_src/jupyter_lsp/kernel/manager.py +++ b/py_src/jupyter_lsp/kernel/manager.py @@ -75,7 +75,12 @@ def init_comm_targets(self): ) def on_control_comm_opened(self, comm, comm_msg): - self.send_status(comm) + def on_msg(comm_msg): + # nb: other message types, a la stop from #255 + self.send_status(comm) + + comm.on_msg(on_msg) + on_msg(comm_msg) def get_status_response(self): response = { diff --git a/py_src/jupyter_lsp/schema/schema.json b/py_src/jupyter_lsp/schema/schema.json index 561bc817a..6481a782b 100644 --- a/py_src/jupyter_lsp/schema/schema.json +++ b/py_src/jupyter_lsp/schema/schema.json @@ -194,11 +194,12 @@ "additionalProperties": false, "description": "a language server session", "properties": { - "handler_count": { - "description": "the count of currently-connected WebSocket handlers", - "minValue": 0, - "title": "handler count", - "type": "integer" + "comm_ids": { + "description": "the currently-connected comms", + "items": { + "type": "string" + }, + "title": "comm ids" }, "last_handler_message_at": { "$ref": "#/definitions/nullable-date-time", diff --git a/py_src/jupyter_lsp/session.py b/py_src/jupyter_lsp/session.py index 630d4cfd8..a496cf003 100644 --- a/py_src/jupyter_lsp/session.py +++ b/py_src/jupyter_lsp/session.py @@ -67,7 +67,7 @@ def __repr__(self): # pragma: no cover def to_json(self): return dict( - handler_count=len(self.handlers), + comm_ids=[handler.comm.comm_id for handler in self.handlers], status=self.status.value, last_server_message_at=self.last_server_message_at.isoformat() if self.last_server_message_at From 101c31b658e333e456bb6e40fe2cfcd281b1c616 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Mon, 8 Jun 2020 23:51:01 -0400 Subject: [PATCH 52/82] fix up required fields in schema --- py_src/jupyter_lsp/schema/schema.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/py_src/jupyter_lsp/schema/schema.json b/py_src/jupyter_lsp/schema/schema.json index 6481a782b..23e457d15 100644 --- a/py_src/jupyter_lsp/schema/schema.json +++ b/py_src/jupyter_lsp/schema/schema.json @@ -203,7 +203,7 @@ }, "last_handler_message_at": { "$ref": "#/definitions/nullable-date-time", - "description": "date-time of last seen message from a WebSocket handler" + "description": "date-time of last seen message from a handler" }, "last_server_message_at": { "$ref": "#/definitions/nullable-date-time", @@ -219,7 +219,7 @@ } }, "required": [ - "handler_count", + "comm_ids", "status", "last_server_message_at", "last_handler_message_at", From f5562ff5d9123d6e3409fe87e5938c630ce07ac9 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Mon, 8 Jun 2020 23:52:40 -0400 Subject: [PATCH 53/82] remove optional chain from comm_ids --- packages/jupyterlab-lsp/src/manager.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/jupyterlab-lsp/src/manager.ts b/packages/jupyterlab-lsp/src/manager.ts index 86411d5a0..66c813861 100644 --- a/packages/jupyterlab-lsp/src/manager.ts +++ b/packages/jupyterlab-lsp/src/manager.ts @@ -154,7 +154,7 @@ export class LanguageServerManager implements ILanguageServerManager { await this._kernelReady.promise; const session = this._sessions.get(language_server_id); - let commId = session.comm_ids?.length ? session.comm_ids[0] : null; + let commId = session.comm_ids.length ? session.comm_ids[0] : null; const comm = this.kernel.createComm( LANGUAGE_SERVER_COMM_TARGET, From c47a45f572c19f76b0feab5b8c89533773be243e Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Tue, 9 Jun 2020 08:49:13 -0400 Subject: [PATCH 54/82] finish up dealing with comm_id --- binder/postBuild | 1 - py_src/jupyter_lsp/tests/conftest.py | 4 ++++ py_src/jupyter_lsp/tests/test_session.py | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/binder/postBuild b/binder/postBuild index c2a0eff3a..7e4062fe3 100755 --- a/binder/postBuild +++ b/binder/postBuild @@ -12,7 +12,6 @@ jlpm bootstrap # link all pieces to lab (no build) jlpm lab:link -jupyter labextension install --no-build jupyterlab-kernelspy # list extensions before build jupyter labextension list diff --git a/py_src/jupyter_lsp/tests/conftest.py b/py_src/jupyter_lsp/tests/conftest.py index ece0b0649..450bf3879 100644 --- a/py_src/jupyter_lsp/tests/conftest.py +++ b/py_src/jupyter_lsp/tests/conftest.py @@ -1,6 +1,7 @@ import json import pathlib import shutil +import uuid from typing import Any, Text from pytest import fixture @@ -107,6 +108,9 @@ class MockKernel(LanguageServerKernel): class MockComm: + def __init__(self): + self.comm_id = str(uuid.uuid4()) + def on_msg(self, fn): self._fn = fn diff --git a/py_src/jupyter_lsp/tests/test_session.py b/py_src/jupyter_lsp/tests/test_session.py index 533df444d..5f317c961 100644 --- a/py_src/jupyter_lsp/tests/test_session.py +++ b/py_src/jupyter_lsp/tests/test_session.py @@ -62,7 +62,7 @@ def assert_status_set(manager, expected_statuses, language_server=None): payload = manager.get_status_response() errors = list(SERVERS_RESPONSE.iter_errors(payload)) - assert not errors + assert not errors, [err.path for err in errors] statuses = { session["status"] From ac36b4107dc0260c5c917958c83b11c22d2e846f Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Tue, 9 Jun 2020 20:03:24 -0400 Subject: [PATCH 55/82] set atest retries back to 3 (original value) --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index cd15390b0..c3aa5b4c5 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -10,7 +10,7 @@ pr: variables: PYTHONUNBUFFERED: 1 - ATEST_RETRIES: 4 + ATEST_RETRIES: 3 YARN_CACHE_FOLDER: $(Pipeline.Workspace)/.yarn PY_JLSP_VERSION: 1.0.0 From d86b92ecf7c110aa16cad318a94ba82b3b2742b4 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Wed, 10 Jun 2020 20:16:16 -0400 Subject: [PATCH 56/82] consolidate lsp types/constants --- .../src/adapters/codemirror/feature.ts | 2 +- .../codemirror/features/diagnostics.ts | 2 +- .../features/diagnostics_listing.tsx | 2 +- .../codemirror/features/highlights.ts | 2 +- .../src/adapters/codemirror/features/hover.ts | 2 +- .../adapters/codemirror/features/jump_to.ts | 9 +- .../codemirror/features/rename.spec.ts | 2 +- .../adapters/codemirror/features/rename.ts | 2 +- .../adapters/codemirror/features/signature.ts | 2 +- .../jupyterlab/components/completion.ts | 2 +- .../src/adapters/jupyterlab/jl_adapter.ts | 2 +- .../jupyterlab-lsp/src/comm/connection.ts | 51 +++-- .../jupyterlab-lsp/src/comm/lsp-constants.ts | 21 -- packages/jupyterlab-lsp/src/comm/lsp-types.ts | 89 -------- packages/jupyterlab-lsp/src/comm/lsp.ts | 128 ++--------- .../comm/server-capability-registration.ts | 6 +- packages/jupyterlab-lsp/src/converter.ts | 2 +- packages/jupyterlab-lsp/src/lsp.ts | 199 +++++++++++++++++- packages/jupyterlab-lsp/src/tokens.ts | 7 +- 19 files changed, 252 insertions(+), 280 deletions(-) delete mode 100644 packages/jupyterlab-lsp/src/comm/lsp-constants.ts delete mode 100644 packages/jupyterlab-lsp/src/comm/lsp-types.ts diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.ts index 3752c600d..7dd9ed586 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.ts @@ -13,7 +13,7 @@ import { /// // this appears to break when @types/node is around // import { Listener } from 'events'; -import * as LSP from '../../comm/lsp-types'; +import * as LSP from '../../lsp'; import { PositionConverter } from '../../converter'; import * as CodeMirror from 'codemirror'; diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.ts index 69ddb830c..11a60bdfd 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.ts @@ -1,5 +1,5 @@ import * as CodeMirror from 'codemirror'; -import * as LSP from '../../../comm/lsp-types'; +import * as LSP from '../../../lsp'; import { Menu } from '@lumino/widgets'; import { PositionConverter } from '../../../converter'; diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics_listing.tsx b/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics_listing.tsx index 8123d7609..e9b30159b 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics_listing.tsx +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics_listing.tsx @@ -1,7 +1,7 @@ import React, { ReactElement } from 'react'; import { VDomModel, VDomRenderer } from '@jupyterlab/apputils'; import { caretDownIcon, caretUpIcon, LabIcon } from '@jupyterlab/ui-components'; -import * as LSP from '../../../comm/lsp-types'; +import * as LSP from '../../../lsp'; import * as CodeMirror from 'codemirror'; import { IEditorPosition } from '../../../positioning'; diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts index f2686e7e2..9a74c927c 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts @@ -1,5 +1,5 @@ import * as CodeMirror from 'codemirror'; -import * as LSP from '../../../comm/lsp-types'; +import * as LSP from '../../../lsp'; import { documentHighlightKindNames } from '../../../lsp'; import { VirtualDocument } from '../../../virtual/document'; diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/hover.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/hover.ts index 28022de5a..e051dd9db 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/hover.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/hover.ts @@ -4,7 +4,7 @@ import { is_equal, IVirtualPosition, } from '../../../positioning'; -import * as LSP from '../../../comm/lsp-types'; +import * as LSP from '../../../lsp'; import * as CodeMirror from 'codemirror'; import { CodeMirrorLSPFeature, IEditorRange } from '../feature'; diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts index ae0e786ac..03bbd633c 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts @@ -1,8 +1,9 @@ -import { CodeMirrorLSPFeature, IFeatureCommand } from '../feature'; import { PositionConverter } from '../../../converter'; import { IVirtualPosition } from '../../../positioning'; import { uri_to_contents_path, uris_equal } from '../../../utils'; -import { CommLSP } from '../../../comm/lsp'; +import * as LSP from '../../../lsp'; + +import { CodeMirrorLSPFeature, IFeatureCommand } from '../feature'; export class JumpToDefinition extends CodeMirrorLSPFeature { name = 'JumpToDefinition'; @@ -29,7 +30,7 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { return this.jupyterlab_components.jumper; } - get_uri_and_range(location_or_locations: CommLSP.TAnyLocation) { + get_uri_and_range(location_or_locations: LSP.TAnyLocation) { if (location_or_locations == null) { console.log('No jump targets found'); return; @@ -64,7 +65,7 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { } async handle_jump( - location_or_locations: CommLSP.TAnyLocation, + location_or_locations: LSP.TAnyLocation, document_uri: string ) { const target_info = this.get_uri_and_range(location_or_locations); diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts index 005d84c08..f467afe3f 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts @@ -1,7 +1,7 @@ import { expect } from 'chai'; import { Rename } from './rename'; import { FileEditorFeatureTestEnvironment } from '../testutils'; -import * as LSP from '../../../comm/lsp-types'; +import * as LSP from '../../../lsp'; describe('Rename', () => { let env: FileEditorFeatureTestEnvironment; diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts index 6378f9ce0..99a1fb3f9 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts @@ -1,4 +1,4 @@ -import * as LSP from '../../../comm/lsp-types'; +import * as LSP from '../../../lsp'; import { CodeMirrorLSPFeature, diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/signature.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/signature.ts index 98a9a67d2..82f14abe1 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/signature.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/signature.ts @@ -1,4 +1,4 @@ -import * as LSP from '../../../comm/lsp-types'; +import * as LSP from '../../../lsp'; import { IRootPosition } from '../../../positioning'; import * as CodeMirror from 'codemirror'; diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts index ca7d67fd6..f065ec25c 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts @@ -8,7 +8,7 @@ import { import { CodeEditor } from '@jupyterlab/codeeditor'; import { ReadonlyJSONObject } from '@lumino/coreutils'; import { completionItemKindNames, CompletionTriggerKind } from '../../../lsp'; -import * as LSP from '../../../comm/lsp-types'; +import * as LSP from '../../../lsp'; import { PositionConverter } from '../../../converter'; import { VirtualDocument } from '../../../virtual/document'; import { VirtualEditor } from '../../../virtual/editor'; diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/jl_adapter.ts b/packages/jupyterlab-lsp/src/adapters/jupyterlab/jl_adapter.ts index d47103593..5aeab4b98 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/jl_adapter.ts +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/jl_adapter.ts @@ -7,7 +7,7 @@ import { CodeEditor } from '@jupyterlab/codeeditor'; import { IRenderMimeRegistry } from '@jupyterlab/rendermime'; import { DocumentRegistry, IDocumentWidget } from '@jupyterlab/docregistry'; -import * as LSP from '../../comm/lsp-types'; +import * as LSP from '../../lsp'; import { FreeTooltip } from './components/free_tooltip'; import { Widget } from '@lumino/widgets'; import { VirtualEditor } from '../../virtual/editor'; diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index 4c3ce092c..9289e9f2a 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -1,9 +1,10 @@ -import * as LSP from './lsp-types'; +import { Signal } from '@lumino/signaling'; +import * as LSP from '../lsp'; import { ILSPConnection } from '../tokens'; -import { CommLSP } from './lsp'; + import { ICommRPC } from '.'; -import { Signal } from '@lumino/signaling'; +import { CommLSP } from './lsp'; import { registerServerCapability, unregisterServerCapability, @@ -91,13 +92,13 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { protected initHandlers() { // logging - this.onNotification(CommLSP.SHOW_MESSAGE, { + this.onNotification(LSP.SHOW_MESSAGE, { onMsg: async (params) => { this._signals.get(ILSPConnection.LegacyEvents.ON_LOGGING).emit(params); }, }); - this.onRequest(CommLSP.SHOW_MESSAGE_REQUEST, { + this.onRequest(LSP.SHOW_MESSAGE_REQUEST, { onMsg: async (params) => { this._signals.get(ILSPConnection.LegacyEvents.ON_LOGGING).emit(params); // nb: this seems important @@ -106,7 +107,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { }); // diagnostics - this.onNotification(CommLSP.PUBLISH_DIAGNOSTICS, { + this.onNotification(LSP.PUBLISH_DIAGNOSTICS, { onMsg: async (params) => { this._signals .get(ILSPConnection.LegacyEvents.ON_DIAGNOSTIC) @@ -115,7 +116,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { }); // capabilities - this.onRequest(CommLSP.REGISTER_CAPABILITY, { + this.onRequest(LSP.REGISTER_CAPABILITY, { onMsg: async (params) => { for (const registration of params.registrations) { this.serverCapabilities = registerServerCapability( @@ -126,7 +127,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { }, }); - this.onRequest(CommLSP.UNREGISTER_CAPABILITY, { + this.onRequest(LSP.UNREGISTER_CAPABILITY, { onMsg: async (params) => { for (const registration of params.unregisterations) { this.serverCapabilities = unregisterServerCapability( @@ -222,7 +223,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { } const initialized = await this.request( - CommLSP.INITIALIZE, + LSP.INITIALIZE, this.initializeParams() ); @@ -230,13 +231,11 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { this.serverCapabilities = capabilities; - await this.notify(CommLSP.INITIALIZED, null).catch((err) => - console.warn(err) - ); + await this.notify(LSP.INITIALIZED, null).catch((err) => console.warn(err)); this._isInitialized = true; - await this.notify(CommLSP.DID_CHANGE_CONFIGURATION, { + await this.notify(LSP.DID_CHANGE_CONFIGURATION, { settings: {}, }).catch((err) => console.warn(err)); @@ -252,7 +251,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { // capabilities isRenameSupported() { // nb: populate capabilities - // return this.capabilities.has(CommLSP.Capabilities.SERVER_RENAME_PROVIDER); + // return this.capabilities.has(LSP.Capabilities.SERVER_RENAME_PROVIDER); return !!this.serverCapabilities?.renameProvider; } @@ -299,7 +298,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { } sendOpen(documentInfo: ILSPConnection.IDocumentInfo) { - this.notify(CommLSP.DID_OPEN, { + this.notify(LSP.DID_OPEN, { textDocument: { uri: documentInfo.uri, languageId: documentInfo.languageId, @@ -314,7 +313,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { if (!this.isReady) { return; } - this.notify(CommLSP.DID_CHANGE, { + this.notify(LSP.DID_CHANGE, { textDocument: { uri: documentInfo.uri, version: documentInfo.version, @@ -347,7 +346,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { if (!this.isReady || !this.isRenameSupported()) { return; } - return await this.request(CommLSP.RENAME, { + return await this.request(LSP.RENAME, { textDocument: { uri: documentInfo.uri, }, @@ -368,7 +367,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return; } - return await this.request(CommLSP.DOCUMENT_HIGHLIGHT, { + return await this.request(LSP.DOCUMENT_HIGHLIGHT, { textDocument: { uri: documentInfo.uri, }, @@ -387,7 +386,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { if (!this.isReady && !this.isHoverSupported()) { return; } - return await this.request(CommLSP.HOVER, { + return await this.request(LSP.HOVER, { textDocument: { uri: documentInfo.uri, }, @@ -417,7 +416,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return; } - return await this.request(CommLSP.SIGNATURE_HELP, { + return await this.request(LSP.SIGNATURE_HELP, { textDocument: { uri: documentInfo.uri, }, @@ -440,7 +439,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return; } - const items = await this.request(CommLSP.COMPLETION, { + const items = await this.request(LSP.COMPLETION, { textDocument: { uri: documentInfo.uri, }, @@ -469,7 +468,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return; } - return this.request(CommLSP.REFERENCES, { + return this.request(LSP.REFERENCES, { context: { includeDeclaration: true, }, @@ -488,7 +487,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return; } - this.notify(CommLSP.DID_SAVE, { + this.notify(LSP.DID_SAVE, { textDocument: { uri: documentInfo.uri, version: documentInfo.version, @@ -506,7 +505,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return; } - return await this.request(CommLSP.TYPE_DEFINITION, { + return await this.request(LSP.TYPE_DEFINITION, { textDocument: { uri: documentInfo.uri, }, @@ -526,7 +525,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return; } - return this.request(CommLSP.DEFINITION, { + return this.request(LSP.DEFINITION, { textDocument: { uri: documentInfo.uri, }, @@ -545,7 +544,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { if (!this.isReady) { return; } - this.notify(CommLSP.DID_CHANGE, { + this.notify(LSP.DID_CHANGE, { textDocument: { uri: documentInfo.uri, version: documentInfo.version, diff --git a/packages/jupyterlab-lsp/src/comm/lsp-constants.ts b/packages/jupyterlab-lsp/src/comm/lsp-constants.ts deleted file mode 100644 index e34bb112b..000000000 --- a/packages/jupyterlab-lsp/src/comm/lsp-constants.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** reproduced here to avoid imports */ -export namespace CompletionTriggerKind { - /** - * Completion was triggered by typing an identifier (24x7 code - * complete), manual invocation (e.g Ctrl+Space) or via API. - */ - export const Invoked: 1 = 1; - - /** - * Completion was triggered by a trigger character specified by - * the `triggerCharacters` properties of the `CompletionRegistrationOptions`. - */ - export const TriggerCharacter: 2 = 2; - - /** - * Completion was re-triggered as the current completion list is incomplete. - */ - export const TriggerForIncompleteCompletions: 3 = 3; -} - -export type CompletionTriggerKind = 1 | 2 | 3; diff --git a/packages/jupyterlab-lsp/src/comm/lsp-types.ts b/packages/jupyterlab-lsp/src/comm/lsp-types.ts deleted file mode 100644 index 0fc1a9f32..000000000 --- a/packages/jupyterlab-lsp/src/comm/lsp-types.ts +++ /dev/null @@ -1,89 +0,0 @@ -import type { - CompletionList, - CompletionItem, - Location, - LocationLink, - PublishDiagnosticsParams, - ShowMessageParams, - RegistrationParams, - UnregistrationParams, - MessageActionItem, - ShowMessageRequestParams, - InitializeParams, - InitializedParams, - DidOpenTextDocumentParams, - DidChangeTextDocumentParams, - DidSaveTextDocumentParams, - DidChangeConfigurationParams, - CompletionParams, - TextDocumentPositionParams, - ReferenceParams, - RenameParams, - DocumentSymbolParams, - DocumentHighlight, - Hover, - InitializeResult, - SignatureHelp, - WorkspaceEdit, - DocumentSymbol, - ServerCapabilities, - ClientCapabilities, - WorkspaceClientCapabilities, - TextDocumentContentChangeEvent, - Position, - TextDocumentEdit, - TextEdit, - Range, - Diagnostic, - MarkupContent, - MarkedString, - SignatureInformation, - Registration, - Unregistration, -} from 'vscode-languageserver-protocol'; - -export type { - CompletionList, - CompletionItem, - Location, - LocationLink, - PublishDiagnosticsParams, - ShowMessageParams, - RegistrationParams, - UnregistrationParams, - MessageActionItem, - ShowMessageRequestParams, - InitializeParams, - InitializedParams, - DidOpenTextDocumentParams, - DidChangeTextDocumentParams, - DidSaveTextDocumentParams, - DidChangeConfigurationParams, - CompletionParams, - TextDocumentPositionParams, - ReferenceParams, - RenameParams, - DocumentSymbolParams, - DocumentHighlight, - Hover, - InitializeResult, - SignatureHelp, - WorkspaceEdit, - DocumentSymbol, - ServerCapabilities, - ClientCapabilities, - WorkspaceClientCapabilities, - TextDocumentContentChangeEvent, - Position, - TextDocumentEdit, - TextEdit, - Range, - Diagnostic, - MarkupContent, - MarkedString, - SignatureInformation, - Registration, - Unregistration, -}; - -export * from './lsp-constants'; diff --git a/packages/jupyterlab-lsp/src/comm/lsp.ts b/packages/jupyterlab-lsp/src/comm/lsp.ts index 7c566f515..ca608727a 100644 --- a/packages/jupyterlab-lsp/src/comm/lsp.ts +++ b/packages/jupyterlab-lsp/src/comm/lsp.ts @@ -1,4 +1,4 @@ -import * as LSP from './lsp-types'; +import * as LSP from '../lsp'; import { ICommRPC } from '.'; import { CommRPC } from './json-rpc'; @@ -9,15 +9,15 @@ import { CommRPC } from './json-rpc'; */ export class CommLSP extends CommRPC { // TODO: figure out a more robust way to do this - // capabilities: CommLSP.TCapabilityMap = new Map(); + // capabilities: LSP.TCapabilityMap = new Map(); /** * Request immediate method execution on the Language Server, not waiting for * a response. */ async notify< - T extends keyof CommLSP.IClientNotifyParams, - U extends CommLSP.IClientNotifyParams[T] + T extends keyof LSP.IClientNotifyParams, + U extends LSP.IClientNotifyParams[T] >(method: T, params: U): Promise { await this.communicate(method, params as any, ICommRPC.NO_WAIT); return null; @@ -28,9 +28,9 @@ export class CommLSP extends CommRPC { * some time in the future. */ async request< - T extends keyof CommLSP.IClientRequestParams, - U extends CommLSP.IClientRequestParams[T], - V extends CommLSP.IClientResult[T] + T extends keyof LSP.IClientRequestParams, + U extends LSP.IClientRequestParams[T], + V extends LSP.IClientResult[T] >(method: T, params: U): Promise { // NB: not sure why this has to be so any-ful inside here, but it works outside return (await this.communicate(method, params as any)) as any; @@ -40,8 +40,8 @@ export class CommLSP extends CommRPC { * Handle a notification from the server. */ onNotification< - T extends keyof CommLSP.IServerNotifyParams, - U extends CommLSP.IServerNotifyParams[T], + T extends keyof LSP.IServerNotifyParams, + U extends LSP.IServerNotifyParams[T], V extends ICommRPC.IMethodHandler >(method: T, handler: V): V | null { return this.addHandler(method, handler) as V; @@ -51,115 +51,11 @@ export class CommLSP extends CommRPC { * Handle request from the server. The handler should return a promise of a result. */ onRequest< - T extends keyof CommLSP.IServerRequestParams, - U extends CommLSP.IServerRequestParams[T], - V extends CommLSP.IServerResult[T], + T extends keyof LSP.IServerRequestParams, + U extends LSP.IServerRequestParams[T], + V extends LSP.IServerResult[T], W extends ICommRPC.IMethodHandler >(method: T, handler: W): W | null { return this.addHandler(method, handler) as W; } } - -/** - * A namespace for Comm-based LSP - * - */ -export namespace CommLSP { - /** - * Magic strings are reproduced here because a non-typing import of - * `vscode-languageserver-protocol` is ridiculously expensive - * - * This seems to be LSP 3.15 - */ - - // TODO: break up by server/request/notification - export const COMPLETION = 'textDocument/completion'; - export const COMPLETION_ITEM_RESOLVE = 'completionItem/resolve'; - export const DEFINITION = 'textDocument/definition'; - export const DOCUMENT_HIGHLIGHT = 'textDocument/documentHighlight'; - export const HOVER = 'textDocument/hover'; - export const IMPLEMENTATION = 'textDocument/implementation'; - export const INITIALIZE = 'initialize'; - export const INITIALIZED = 'initialized'; - export const PUBLISH_DIAGNOSTICS = 'textDocument/publishDiagnostics'; - export const REFERENCES = 'textDocument/references'; - export const SHOW_MESSAGE = 'window/showMessage'; - export const SHOW_MESSAGE_REQUEST = 'window/showMessageRequest'; - export const SIGNATURE_HELP = 'textDocument/signatureHelp'; - export const TYPE_DEFINITION = 'textDocument/typeDefinition'; - export const RENAME = 'textDocument/rename'; - export const DOCUMENT_SYMBOL = 'textDocument/documentSymbol'; - - /** Server requests */ - export const REGISTER_CAPABILITY = 'client/registerCapability'; - export const UNREGISTER_CAPABILITY = 'client/unregisterCapability'; - - /** Client notifications */ - export const DID_OPEN = 'textDocument/didOpen'; - export const DID_CHANGE = 'textDocument/didChange'; - export const DID_SAVE = 'textDocument/didSave'; - export const DID_CHANGE_CONFIGURATION = 'workspace/didChangeConfiguration'; - - export type TAnyCompletion = LSP.CompletionList | LSP.CompletionItem[] | null; - - export type TAnyLocation = - | LSP.Location - | LSP.Location[] - | LSP.LocationLink[] - | null; - - export interface IServerNotifyParams { - [PUBLISH_DIAGNOSTICS]: LSP.PublishDiagnosticsParams; - [SHOW_MESSAGE]: LSP.ShowMessageParams; - } - - export interface IServerRequestParams { - [REGISTER_CAPABILITY]: LSP.RegistrationParams; - [UNREGISTER_CAPABILITY]: LSP.UnregistrationParams; - [SHOW_MESSAGE_REQUEST]: LSP.ShowMessageRequestParams; - } - - export interface IServerResult { - [REGISTER_CAPABILITY]: void; - [UNREGISTER_CAPABILITY]: void; - [SHOW_MESSAGE_REQUEST]: LSP.MessageActionItem | null; - } - - export interface IClientNotifyParams { - [INITIALIZED]: LSP.InitializedParams; - [DID_OPEN]: LSP.DidOpenTextDocumentParams; - [DID_CHANGE]: LSP.DidChangeTextDocumentParams; - [DID_SAVE]: LSP.DidSaveTextDocumentParams; - [DID_CHANGE_CONFIGURATION]: LSP.DidChangeConfigurationParams; - } - - export interface IClientRequestParams { - [COMPLETION_ITEM_RESOLVE]: LSP.CompletionItem; - [COMPLETION]: LSP.CompletionParams; - [DEFINITION]: LSP.TextDocumentPositionParams; - [DOCUMENT_HIGHLIGHT]: LSP.TextDocumentPositionParams; - [HOVER]: LSP.TextDocumentPositionParams; - [IMPLEMENTATION]: LSP.TextDocumentPositionParams; - [INITIALIZE]: LSP.InitializeParams; - [REFERENCES]: LSP.ReferenceParams; - [SIGNATURE_HELP]: LSP.TextDocumentPositionParams; - [TYPE_DEFINITION]: LSP.TextDocumentPositionParams; - [RENAME]: LSP.RenameParams; - [DOCUMENT_SYMBOL]: LSP.DocumentSymbolParams; - } - - export interface IClientResult { - [COMPLETION_ITEM_RESOLVE]: LSP.CompletionItem; - [COMPLETION]: TAnyCompletion; - [DEFINITION]: TAnyLocation; - [DOCUMENT_HIGHLIGHT]: LSP.DocumentHighlight[]; - [HOVER]: LSP.Hover; - [IMPLEMENTATION]: TAnyLocation; - [INITIALIZE]: LSP.InitializeResult; - [REFERENCES]: LSP.Location[]; - [SIGNATURE_HELP]: LSP.SignatureHelp; - [TYPE_DEFINITION]: TAnyLocation; - [RENAME]: LSP.WorkspaceEdit; - [DOCUMENT_SYMBOL]: LSP.DocumentSymbol[]; - } -} diff --git a/packages/jupyterlab-lsp/src/comm/server-capability-registration.ts b/packages/jupyterlab-lsp/src/comm/server-capability-registration.ts index 2bc5778d6..9d096d3bd 100644 --- a/packages/jupyterlab-lsp/src/comm/server-capability-registration.ts +++ b/packages/jupyterlab-lsp/src/comm/server-capability-registration.ts @@ -1,8 +1,4 @@ -import { - Registration, - ServerCapabilities, - Unregistration, -} from '../comm/lsp-types'; +import { Registration, ServerCapabilities, Unregistration } from '../lsp'; interface IFlexibleServerCapabilities extends ServerCapabilities { [key: string]: any; diff --git a/packages/jupyterlab-lsp/src/converter.ts b/packages/jupyterlab-lsp/src/converter.ts index 6ec29ee64..feafb52aa 100644 --- a/packages/jupyterlab-lsp/src/converter.ts +++ b/packages/jupyterlab-lsp/src/converter.ts @@ -1,4 +1,4 @@ -import * as LSP from './comm/lsp-types'; +import * as LSP from './lsp'; import { CodeEditor } from '@jupyterlab/codeeditor'; import * as CodeMirror from 'codemirror'; diff --git a/packages/jupyterlab-lsp/src/lsp.ts b/packages/jupyterlab-lsp/src/lsp.ts index 2661919fa..8861c414b 100644 --- a/packages/jupyterlab-lsp/src/lsp.ts +++ b/packages/jupyterlab-lsp/src/lsp.ts @@ -1,3 +1,100 @@ +/** + * TODO: automate this extraction + * + * Why not simply import vscode-languageserver-protocol? + * + * Because this triggers some strange webpack issue as an additional package + * would need to be included at runtime. + */ + +import type { + CompletionList, + CompletionItem, + Location, + LocationLink, + PublishDiagnosticsParams, + ShowMessageParams, + RegistrationParams, + UnregistrationParams, + MessageActionItem, + ShowMessageRequestParams, + InitializeParams, + InitializedParams, + DidOpenTextDocumentParams, + DidChangeTextDocumentParams, + DidSaveTextDocumentParams, + DidChangeConfigurationParams, + CompletionParams, + TextDocumentPositionParams, + ReferenceParams, + RenameParams, + DocumentSymbolParams, + DocumentHighlight, + Hover, + InitializeResult, + SignatureHelp, + WorkspaceEdit, + DocumentSymbol, + ServerCapabilities, + ClientCapabilities, + WorkspaceClientCapabilities, + TextDocumentContentChangeEvent, + Position, + TextDocumentEdit, + TextEdit, + Range, + Diagnostic, + MarkupContent, + MarkedString, + SignatureInformation, + Registration, + Unregistration, +} from 'vscode-languageserver-protocol'; + +export type { + CompletionList, + CompletionItem, + Location, + LocationLink, + PublishDiagnosticsParams, + ShowMessageParams, + RegistrationParams, + UnregistrationParams, + MessageActionItem, + ShowMessageRequestParams, + InitializeParams, + InitializedParams, + DidOpenTextDocumentParams, + DidChangeTextDocumentParams, + DidSaveTextDocumentParams, + DidChangeConfigurationParams, + CompletionParams, + TextDocumentPositionParams, + ReferenceParams, + RenameParams, + DocumentSymbolParams, + DocumentHighlight, + Hover, + InitializeResult, + SignatureHelp, + WorkspaceEdit, + DocumentSymbol, + ServerCapabilities, + ClientCapabilities, + WorkspaceClientCapabilities, + TextDocumentContentChangeEvent, + Position, + TextDocumentEdit, + TextEdit, + Range, + Diagnostic, + MarkupContent, + MarkedString, + SignatureInformation, + Registration, + Unregistration, +}; + namespace DiagnosticSeverity { export const Error = 1; export const Warning = 2; @@ -50,12 +147,9 @@ export function inverse_namespace(namespace: object): Record { /** * Why programmatic solution rather than hard-coding the namespace the other way around? + * * Because the namespaces are copy-paste from the LSP specification, and it will be easier * to maintain this way in the future. - * - * Why not simply import from lsProtocol? - * Because this triggers some strange webpack issue as an additional package would need to be included. - * Interestingly, the same thing happens when using CompletionTriggerKind.Invoked from lsProtocol. */ export const diagnosticSeverityNames = inverse_namespace(DiagnosticSeverity); export const completionItemKindNames = inverse_namespace(CompletionItemKind); @@ -69,3 +163,100 @@ export namespace CompletionTriggerKind { export const TriggerForIncompleteCompletions = 3; } export type CompletionTriggerKind = 1 | 2 | 3; + +/** + * Magic strings are reproduced here because a non-typing import of + * `vscode-languageserver-protocol` is ridiculously expensive + * + * This seems to be LSP 3.15 + */ + +/** Server notifications */ +export const PUBLISH_DIAGNOSTICS = 'textDocument/publishDiagnostics'; +export const SHOW_MESSAGE = 'window/showMessage'; + +/** Server requests */ +export const REGISTER_CAPABILITY = 'client/registerCapability'; +export const SHOW_MESSAGE_REQUEST = 'window/showMessageRequest'; +export const UNREGISTER_CAPABILITY = 'client/unregisterCapability'; + +/** Client notifications */ +export const DID_CHANGE = 'textDocument/didChange'; +export const DID_CHANGE_CONFIGURATION = 'workspace/didChangeConfiguration'; +export const DID_OPEN = 'textDocument/didOpen'; +export const DID_SAVE = 'textDocument/didSave'; +export const INITIALIZED = 'initialized'; + +/** Client requests */ +export const COMPLETION = 'textDocument/completion'; +export const COMPLETION_ITEM_RESOLVE = 'completionItem/resolve'; +export const DEFINITION = 'textDocument/definition'; +export const DOCUMENT_HIGHLIGHT = 'textDocument/documentHighlight'; +export const DOCUMENT_SYMBOL = 'textDocument/documentSymbol'; +export const HOVER = 'textDocument/hover'; +export const IMPLEMENTATION = 'textDocument/implementation'; +export const INITIALIZE = 'initialize'; +export const REFERENCES = 'textDocument/references'; +export const RENAME = 'textDocument/rename'; +export const SIGNATURE_HELP = 'textDocument/signatureHelp'; +export const TYPE_DEFINITION = 'textDocument/typeDefinition'; + +/** compound types for some responses */ +export type TAnyCompletion = CompletionList | CompletionItem[] | null; + +export type TAnyLocation = Location | Location[] | LocationLink[] | null; + +export interface IServerNotifyParams { + [PUBLISH_DIAGNOSTICS]: PublishDiagnosticsParams; + [SHOW_MESSAGE]: ShowMessageParams; +} + +export interface IServerRequestParams { + [REGISTER_CAPABILITY]: RegistrationParams; + [SHOW_MESSAGE_REQUEST]: ShowMessageRequestParams; + [UNREGISTER_CAPABILITY]: UnregistrationParams; +} + +export interface IServerResult { + [REGISTER_CAPABILITY]: void; + [SHOW_MESSAGE_REQUEST]: MessageActionItem | null; + [UNREGISTER_CAPABILITY]: void; +} + +export interface IClientNotifyParams { + [DID_CHANGE_CONFIGURATION]: DidChangeConfigurationParams; + [DID_CHANGE]: DidChangeTextDocumentParams; + [DID_OPEN]: DidOpenTextDocumentParams; + [DID_SAVE]: DidSaveTextDocumentParams; + [INITIALIZED]: InitializedParams; +} + +export interface IClientRequestParams { + [COMPLETION_ITEM_RESOLVE]: CompletionItem; + [COMPLETION]: CompletionParams; + [DEFINITION]: TextDocumentPositionParams; + [DOCUMENT_HIGHLIGHT]: TextDocumentPositionParams; + [DOCUMENT_SYMBOL]: DocumentSymbolParams; + [HOVER]: TextDocumentPositionParams; + [IMPLEMENTATION]: TextDocumentPositionParams; + [INITIALIZE]: InitializeParams; + [REFERENCES]: ReferenceParams; + [RENAME]: RenameParams; + [SIGNATURE_HELP]: TextDocumentPositionParams; + [TYPE_DEFINITION]: TextDocumentPositionParams; +} + +export interface IClientResult { + [COMPLETION_ITEM_RESOLVE]: CompletionItem; + [COMPLETION]: TAnyCompletion; + [DEFINITION]: TAnyLocation; + [DOCUMENT_HIGHLIGHT]: DocumentHighlight[]; + [DOCUMENT_SYMBOL]: DocumentSymbol[]; + [HOVER]: Hover; + [IMPLEMENTATION]: TAnyLocation; + [INITIALIZE]: InitializeResult; + [REFERENCES]: Location[]; + [RENAME]: WorkspaceEdit; + [SIGNATURE_HELP]: SignatureHelp; + [TYPE_DEFINITION]: TAnyLocation; +} diff --git a/packages/jupyterlab-lsp/src/tokens.ts b/packages/jupyterlab-lsp/src/tokens.ts index 18579af2d..69901225d 100644 --- a/packages/jupyterlab-lsp/src/tokens.ts +++ b/packages/jupyterlab-lsp/src/tokens.ts @@ -1,9 +1,8 @@ import { ISignal } from '@lumino/signaling'; import { ServiceManager } from '@jupyterlab/services'; -import * as LSP from './comm/lsp-types'; +import * as LSP from './lsp'; import * as SCHEMA from './_schema'; -import { CommLSP } from './comm/lsp'; import { IComm } from '@jupyterlab/services/lib/kernel/kernel'; export type TLanguageServerId = string; @@ -125,12 +124,12 @@ export interface ILSPConnection { location: ILSPConnection.IPosition, documentInfo: ILSPConnection.IDocumentInfo, emit?: false - ): Promise; + ): Promise; getDefinition( location: ILSPConnection.IPosition, documentInfo: ILSPConnection.IDocumentInfo, emit?: false - ): Promise; + ): Promise; } export namespace ILSPConnection { From 764ee28e699e2d5c54e26ec7bb8e1a7256300d71 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Wed, 10 Jun 2020 20:33:29 -0400 Subject: [PATCH 57/82] move methods to namespace --- .../jupyterlab-lsp/src/comm/connection.ts | 40 +++--- packages/jupyterlab-lsp/src/lsp.ts | 128 +++++++++--------- 2 files changed, 85 insertions(+), 83 deletions(-) diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index 9289e9f2a..34f64875f 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -92,13 +92,13 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { protected initHandlers() { // logging - this.onNotification(LSP.SHOW_MESSAGE, { + this.onNotification(LSP.Method.SHOW_MESSAGE, { onMsg: async (params) => { this._signals.get(ILSPConnection.LegacyEvents.ON_LOGGING).emit(params); }, }); - this.onRequest(LSP.SHOW_MESSAGE_REQUEST, { + this.onRequest(LSP.Method.SHOW_MESSAGE_REQUEST, { onMsg: async (params) => { this._signals.get(ILSPConnection.LegacyEvents.ON_LOGGING).emit(params); // nb: this seems important @@ -107,7 +107,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { }); // diagnostics - this.onNotification(LSP.PUBLISH_DIAGNOSTICS, { + this.onNotification(LSP.Method.PUBLISH_DIAGNOSTICS, { onMsg: async (params) => { this._signals .get(ILSPConnection.LegacyEvents.ON_DIAGNOSTIC) @@ -116,7 +116,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { }); // capabilities - this.onRequest(LSP.REGISTER_CAPABILITY, { + this.onRequest(LSP.Method.REGISTER_CAPABILITY, { onMsg: async (params) => { for (const registration of params.registrations) { this.serverCapabilities = registerServerCapability( @@ -127,7 +127,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { }, }); - this.onRequest(LSP.UNREGISTER_CAPABILITY, { + this.onRequest(LSP.Method.UNREGISTER_CAPABILITY, { onMsg: async (params) => { for (const registration of params.unregisterations) { this.serverCapabilities = unregisterServerCapability( @@ -223,7 +223,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { } const initialized = await this.request( - LSP.INITIALIZE, + LSP.Method.INITIALIZE, this.initializeParams() ); @@ -231,11 +231,11 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { this.serverCapabilities = capabilities; - await this.notify(LSP.INITIALIZED, null).catch((err) => console.warn(err)); + await this.notify(LSP.Method.INITIALIZED, null).catch((err) => console.warn(err)); this._isInitialized = true; - await this.notify(LSP.DID_CHANGE_CONFIGURATION, { + await this.notify(LSP.Method.DID_CHANGE_CONFIGURATION, { settings: {}, }).catch((err) => console.warn(err)); @@ -298,7 +298,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { } sendOpen(documentInfo: ILSPConnection.IDocumentInfo) { - this.notify(LSP.DID_OPEN, { + this.notify(LSP.Method.DID_OPEN, { textDocument: { uri: documentInfo.uri, languageId: documentInfo.languageId, @@ -313,7 +313,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { if (!this.isReady) { return; } - this.notify(LSP.DID_CHANGE, { + this.notify(LSP.Method.DID_CHANGE, { textDocument: { uri: documentInfo.uri, version: documentInfo.version, @@ -346,7 +346,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { if (!this.isReady || !this.isRenameSupported()) { return; } - return await this.request(LSP.RENAME, { + return await this.request(LSP.Method.RENAME, { textDocument: { uri: documentInfo.uri, }, @@ -367,7 +367,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return; } - return await this.request(LSP.DOCUMENT_HIGHLIGHT, { + return await this.request(LSP.Method.DOCUMENT_HIGHLIGHT, { textDocument: { uri: documentInfo.uri, }, @@ -386,7 +386,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { if (!this.isReady && !this.isHoverSupported()) { return; } - return await this.request(LSP.HOVER, { + return await this.request(LSP.Method.HOVER, { textDocument: { uri: documentInfo.uri, }, @@ -416,7 +416,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return; } - return await this.request(LSP.SIGNATURE_HELP, { + return await this.request(LSP.Method.SIGNATURE_HELP, { textDocument: { uri: documentInfo.uri, }, @@ -439,7 +439,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return; } - const items = await this.request(LSP.COMPLETION, { + const items = await this.request(LSP.Method.COMPLETION, { textDocument: { uri: documentInfo.uri, }, @@ -468,7 +468,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return; } - return this.request(LSP.REFERENCES, { + return this.request(LSP.Method.REFERENCES, { context: { includeDeclaration: true, }, @@ -487,7 +487,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return; } - this.notify(LSP.DID_SAVE, { + this.notify(LSP.Method.DID_SAVE, { textDocument: { uri: documentInfo.uri, version: documentInfo.version, @@ -505,7 +505,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return; } - return await this.request(LSP.TYPE_DEFINITION, { + return await this.request(LSP.Method.TYPE_DEFINITION, { textDocument: { uri: documentInfo.uri, }, @@ -525,7 +525,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return; } - return this.request(LSP.DEFINITION, { + return this.request(LSP.Method.DEFINITION, { textDocument: { uri: documentInfo.uri, }, @@ -544,7 +544,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { if (!this.isReady) { return; } - this.notify(LSP.DID_CHANGE, { + this.notify(LSP.Method.DID_CHANGE, { textDocument: { uri: documentInfo.uri, version: documentInfo.version, diff --git a/packages/jupyterlab-lsp/src/lsp.ts b/packages/jupyterlab-lsp/src/lsp.ts index 8861c414b..d7846fede 100644 --- a/packages/jupyterlab-lsp/src/lsp.ts +++ b/packages/jupyterlab-lsp/src/lsp.ts @@ -171,35 +171,37 @@ export type CompletionTriggerKind = 1 | 2 | 3; * This seems to be LSP 3.15 */ -/** Server notifications */ -export const PUBLISH_DIAGNOSTICS = 'textDocument/publishDiagnostics'; -export const SHOW_MESSAGE = 'window/showMessage'; +export namespace Method { + /** Server notifications */ + export const PUBLISH_DIAGNOSTICS = 'textDocument/publishDiagnostics'; + export const SHOW_MESSAGE = 'window/showMessage'; -/** Server requests */ -export const REGISTER_CAPABILITY = 'client/registerCapability'; -export const SHOW_MESSAGE_REQUEST = 'window/showMessageRequest'; -export const UNREGISTER_CAPABILITY = 'client/unregisterCapability'; + /** Server requests */ + export const REGISTER_CAPABILITY = 'client/registerCapability'; + export const SHOW_MESSAGE_REQUEST = 'window/showMessageRequest'; + export const UNREGISTER_CAPABILITY = 'client/unregisterCapability'; -/** Client notifications */ -export const DID_CHANGE = 'textDocument/didChange'; -export const DID_CHANGE_CONFIGURATION = 'workspace/didChangeConfiguration'; -export const DID_OPEN = 'textDocument/didOpen'; -export const DID_SAVE = 'textDocument/didSave'; -export const INITIALIZED = 'initialized'; + /** Client notifications */ + export const DID_CHANGE = 'textDocument/didChange'; + export const DID_CHANGE_CONFIGURATION = 'workspace/didChangeConfiguration'; + export const DID_OPEN = 'textDocument/didOpen'; + export const DID_SAVE = 'textDocument/didSave'; + export const INITIALIZED = 'initialized'; -/** Client requests */ -export const COMPLETION = 'textDocument/completion'; -export const COMPLETION_ITEM_RESOLVE = 'completionItem/resolve'; -export const DEFINITION = 'textDocument/definition'; -export const DOCUMENT_HIGHLIGHT = 'textDocument/documentHighlight'; -export const DOCUMENT_SYMBOL = 'textDocument/documentSymbol'; -export const HOVER = 'textDocument/hover'; -export const IMPLEMENTATION = 'textDocument/implementation'; -export const INITIALIZE = 'initialize'; -export const REFERENCES = 'textDocument/references'; -export const RENAME = 'textDocument/rename'; -export const SIGNATURE_HELP = 'textDocument/signatureHelp'; -export const TYPE_DEFINITION = 'textDocument/typeDefinition'; + /** Client requests */ + export const COMPLETION = 'textDocument/completion'; + export const COMPLETION_ITEM_RESOLVE = 'completionItem/resolve'; + export const DEFINITION = 'textDocument/definition'; + export const DOCUMENT_HIGHLIGHT = 'textDocument/documentHighlight'; + export const DOCUMENT_SYMBOL = 'textDocument/documentSymbol'; + export const HOVER = 'textDocument/hover'; + export const IMPLEMENTATION = 'textDocument/implementation'; + export const INITIALIZE = 'initialize'; + export const REFERENCES = 'textDocument/references'; + export const RENAME = 'textDocument/rename'; + export const SIGNATURE_HELP = 'textDocument/signatureHelp'; + export const TYPE_DEFINITION = 'textDocument/typeDefinition'; +} /** compound types for some responses */ export type TAnyCompletion = CompletionList | CompletionItem[] | null; @@ -207,56 +209,56 @@ export type TAnyCompletion = CompletionList | CompletionItem[] | null; export type TAnyLocation = Location | Location[] | LocationLink[] | null; export interface IServerNotifyParams { - [PUBLISH_DIAGNOSTICS]: PublishDiagnosticsParams; - [SHOW_MESSAGE]: ShowMessageParams; + [Method.PUBLISH_DIAGNOSTICS]: PublishDiagnosticsParams; + [Method.SHOW_MESSAGE]: ShowMessageParams; } export interface IServerRequestParams { - [REGISTER_CAPABILITY]: RegistrationParams; - [SHOW_MESSAGE_REQUEST]: ShowMessageRequestParams; - [UNREGISTER_CAPABILITY]: UnregistrationParams; + [Method.REGISTER_CAPABILITY]: RegistrationParams; + [Method.SHOW_MESSAGE_REQUEST]: ShowMessageRequestParams; + [Method.UNREGISTER_CAPABILITY]: UnregistrationParams; } export interface IServerResult { - [REGISTER_CAPABILITY]: void; - [SHOW_MESSAGE_REQUEST]: MessageActionItem | null; - [UNREGISTER_CAPABILITY]: void; + [Method.REGISTER_CAPABILITY]: void; + [Method.SHOW_MESSAGE_REQUEST]: MessageActionItem | null; + [Method.UNREGISTER_CAPABILITY]: void; } export interface IClientNotifyParams { - [DID_CHANGE_CONFIGURATION]: DidChangeConfigurationParams; - [DID_CHANGE]: DidChangeTextDocumentParams; - [DID_OPEN]: DidOpenTextDocumentParams; - [DID_SAVE]: DidSaveTextDocumentParams; - [INITIALIZED]: InitializedParams; + [Method.DID_CHANGE_CONFIGURATION]: DidChangeConfigurationParams; + [Method.DID_CHANGE]: DidChangeTextDocumentParams; + [Method.DID_OPEN]: DidOpenTextDocumentParams; + [Method.DID_SAVE]: DidSaveTextDocumentParams; + [Method.INITIALIZED]: InitializedParams; } export interface IClientRequestParams { - [COMPLETION_ITEM_RESOLVE]: CompletionItem; - [COMPLETION]: CompletionParams; - [DEFINITION]: TextDocumentPositionParams; - [DOCUMENT_HIGHLIGHT]: TextDocumentPositionParams; - [DOCUMENT_SYMBOL]: DocumentSymbolParams; - [HOVER]: TextDocumentPositionParams; - [IMPLEMENTATION]: TextDocumentPositionParams; - [INITIALIZE]: InitializeParams; - [REFERENCES]: ReferenceParams; - [RENAME]: RenameParams; - [SIGNATURE_HELP]: TextDocumentPositionParams; - [TYPE_DEFINITION]: TextDocumentPositionParams; + [Method.COMPLETION_ITEM_RESOLVE]: CompletionItem; + [Method.COMPLETION]: CompletionParams; + [Method.DEFINITION]: TextDocumentPositionParams; + [Method.DOCUMENT_HIGHLIGHT]: TextDocumentPositionParams; + [Method.DOCUMENT_SYMBOL]: DocumentSymbolParams; + [Method.HOVER]: TextDocumentPositionParams; + [Method.IMPLEMENTATION]: TextDocumentPositionParams; + [Method.INITIALIZE]: InitializeParams; + [Method.REFERENCES]: ReferenceParams; + [Method.RENAME]: RenameParams; + [Method.SIGNATURE_HELP]: TextDocumentPositionParams; + [Method.TYPE_DEFINITION]: TextDocumentPositionParams; } export interface IClientResult { - [COMPLETION_ITEM_RESOLVE]: CompletionItem; - [COMPLETION]: TAnyCompletion; - [DEFINITION]: TAnyLocation; - [DOCUMENT_HIGHLIGHT]: DocumentHighlight[]; - [DOCUMENT_SYMBOL]: DocumentSymbol[]; - [HOVER]: Hover; - [IMPLEMENTATION]: TAnyLocation; - [INITIALIZE]: InitializeResult; - [REFERENCES]: Location[]; - [RENAME]: WorkspaceEdit; - [SIGNATURE_HELP]: SignatureHelp; - [TYPE_DEFINITION]: TAnyLocation; + [Method.COMPLETION_ITEM_RESOLVE]: CompletionItem; + [Method.COMPLETION]: TAnyCompletion; + [Method.DEFINITION]: TAnyLocation; + [Method.DOCUMENT_HIGHLIGHT]: DocumentHighlight[]; + [Method.DOCUMENT_SYMBOL]: DocumentSymbol[]; + [Method.HOVER]: Hover; + [Method.IMPLEMENTATION]: TAnyLocation; + [Method.INITIALIZE]: InitializeResult; + [Method.REFERENCES]: Location[]; + [Method.RENAME]: WorkspaceEdit; + [Method.SIGNATURE_HELP]: SignatureHelp; + [Method.TYPE_DEFINITION]: TAnyLocation; } From 17dae8ee21ab59e6f7868e800166982edb02f498 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Wed, 10 Jun 2020 20:36:21 -0400 Subject: [PATCH 58/82] linting --- packages/jupyterlab-lsp/src/comm/connection.ts | 4 +++- packages/jupyterlab-lsp/src/lsp.ts | 5 +---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index 34f64875f..79d9e9637 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -231,7 +231,9 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { this.serverCapabilities = capabilities; - await this.notify(LSP.Method.INITIALIZED, null).catch((err) => console.warn(err)); + await this.notify(LSP.Method.INITIALIZED, null).catch((err) => + console.warn(err) + ); this._isInitialized = true; diff --git a/packages/jupyterlab-lsp/src/lsp.ts b/packages/jupyterlab-lsp/src/lsp.ts index d7846fede..ebb076d27 100644 --- a/packages/jupyterlab-lsp/src/lsp.ts +++ b/packages/jupyterlab-lsp/src/lsp.ts @@ -165,12 +165,9 @@ export namespace CompletionTriggerKind { export type CompletionTriggerKind = 1 | 2 | 3; /** - * Magic strings are reproduced here because a non-typing import of + * Method strings are reproduced here because a non-typing import of * `vscode-languageserver-protocol` is ridiculously expensive - * - * This seems to be LSP 3.15 */ - export namespace Method { /** Server notifications */ export const PUBLISH_DIAGNOSTICS = 'textDocument/publishDiagnostics'; From fe8a5720ac1bb3fe3251f76e29b47a69eb31501c Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Wed, 10 Jun 2020 20:38:41 -0400 Subject: [PATCH 59/82] remove websocket from connect --- packages/jupyterlab-lsp/src/comm/connection.ts | 2 +- packages/jupyterlab-lsp/src/connection_manager.ts | 2 +- packages/jupyterlab-lsp/src/tokens.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index 79d9e9637..fd806f989 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -139,7 +139,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { }); } - async connect(socket?: WebSocket): Promise { + async connect(): Promise { this.comm.onClose = () => { this._isConnected = false; this._signals diff --git a/packages/jupyterlab-lsp/src/connection_manager.ts b/packages/jupyterlab-lsp/src/connection_manager.ts index 10a1e4803..84cbde482 100644 --- a/packages/jupyterlab-lsp/src/connection_manager.ts +++ b/packages/jupyterlab-lsp/src/connection_manager.ts @@ -339,7 +339,7 @@ namespace Private { if (connection == null) { const connection = new CommLSPConnection({ comm, rootUri: uris.base }); _connections.set(language_server_id, connection); - await connection.connect(null); + await connection.connect(); onCreate(connection); } diff --git a/packages/jupyterlab-lsp/src/tokens.ts b/packages/jupyterlab-lsp/src/tokens.ts index 69901225d..8add0bad7 100644 --- a/packages/jupyterlab-lsp/src/tokens.ts +++ b/packages/jupyterlab-lsp/src/tokens.ts @@ -50,7 +50,7 @@ export interface ILSPConnection { isDefinitionSupported(): boolean; // legacy connection API - connect(socket: WebSocket): Promise; + connect(): Promise; close(): void; // legacy event api From 8019b1a462ed74a859bf577cf299a26d0e32f776 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Wed, 10 Jun 2020 21:29:27 -0400 Subject: [PATCH 60/82] clean up capabilities --- .../codemirror/features/highlights.ts | 6 ++- .../adapters/codemirror/features/jump_to.ts | 3 +- .../adapters/codemirror/features/rename.ts | 2 +- .../jupyterlab-lsp/src/comm/connection.ts | 44 ++++--------------- packages/jupyterlab-lsp/src/lsp.ts | 28 ++++++++++++ packages/jupyterlab-lsp/src/tokens.ts | 8 ++-- 6 files changed, 47 insertions(+), 44 deletions(-) diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts index 9a74c927c..97f7055c7 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts @@ -15,14 +15,16 @@ export class Highlights extends CodeMirrorLSPFeature { id: 'highlight-references', execute: ({ connection, virtual_position, document }) => connection.getReferences(virtual_position, document.document_info), - is_enabled: ({ connection }) => connection.isReferencesSupported(), + is_enabled: ({ connection }) => + connection.provides(LSP.Provider.REFERENCES), label: 'Highlight references', }, { id: 'highlight-type-definition', execute: ({ connection, virtual_position, document }) => connection.getTypeDefinition(virtual_position, document.document_info), - is_enabled: ({ connection }) => connection.isTypeDefinitionSupported(), + is_enabled: ({ connection }) => + connection.provides(LSP.Provider.TYPE_DEFINITION), label: 'Highlight type definition', }, ]; diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts index 03bbd633c..c4315a9d2 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts @@ -21,7 +21,8 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { ); await jump_feature.handle_jump(targets, document.document_info.uri); }, - is_enabled: ({ connection }) => connection.isDefinitionSupported(), + is_enabled: ({ connection }) => + connection.provides(LSP.Provider.DEFINITION), label: 'Jump to definition', }, ]; diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts index 99a1fb3f9..4fffb237c 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts @@ -57,7 +57,7 @@ export class Rename extends CodeMirrorLSPFeature { handle_failure(error); } }, - is_enabled: ({ connection }) => connection.isRenameSupported(), + is_enabled: ({ connection }) => connection.provides(LSP.Provider.RENAME), label: 'Rename symbol', }, ]; diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index fd806f989..39c732344 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -251,34 +251,8 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { } // capabilities - isRenameSupported() { - // nb: populate capabilities - // return this.capabilities.has(LSP.Capabilities.SERVER_RENAME_PROVIDER); - return !!this.serverCapabilities?.renameProvider; - } - - isReferencesSupported() { - return !!this.serverCapabilities?.referencesProvider; - } - - isTypeDefinitionSupported() { - return !!this.serverCapabilities?.typeDefinitionProvider; - } - - isDefinitionSupported() { - return !!this.serverCapabilities?.definitionProvider; - } - - isHoverSupported() { - return !!this.serverCapabilities?.hoverProvider; - } - - isSignatureHelpSupported() { - return !!this.serverCapabilities?.signatureHelpProvider; - } - - isCompletionSupported() { - return !!this.serverCapabilities?.completionProvider; + provides(provider: keyof LSP.ServerCapabilities): boolean { + return !!(this.serverCapabilities && this.serverCapabilities[provider]); } getLanguageCompletionCharacters() { @@ -345,7 +319,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { newName: string, emit?: false ): Promise { - if (!this.isReady || !this.isRenameSupported()) { + if (!this.isReady || !this.provides(LSP.Provider.RENAME)) { return; } return await this.request(LSP.Method.RENAME, { @@ -385,7 +359,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { documentInfo: ILSPConnection.IDocumentInfo, emit?: false ) { - if (!this.isReady && !this.isHoverSupported()) { + if (!this.isReady && !this.provides(LSP.Provider.HOVER)) { return; } return await this.request(LSP.Method.HOVER, { @@ -404,7 +378,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { documentInfo: ILSPConnection.IDocumentInfo, emit?: false ): Promise { - if (!(this.isReady && this.isSignatureHelpSupported())) { + if (!(this.isReady && this.provides(LSP.Provider.SIGNATURE_HELP))) { return; } @@ -437,7 +411,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { triggerCharacter?: string, triggerKind?: LSP.CompletionTriggerKind ) { - if (!(this.isReady && this.isCompletionSupported())) { + if (!(this.isReady && this.provides(LSP.Provider.COMPLETION))) { return; } @@ -466,7 +440,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { documentInfo: ILSPConnection.IDocumentInfo, emit?: false ) { - if (!this.isReady || !this.isReferencesSupported()) { + if (!this.isReady || !this.provides(LSP.Provider.REFERENCES)) { return; } @@ -503,7 +477,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { documentInfo: ILSPConnection.IDocumentInfo, emit?: false ) { - if (!this.isReady || !this.isTypeDefinitionSupported()) { + if (!this.isReady || !this.provides(LSP.Provider.TYPE_DEFINITION)) { return; } @@ -523,7 +497,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { documentInfo: ILSPConnection.IDocumentInfo, emit?: false ) { - if (!(this.isReady && this.isDefinitionSupported())) { + if (!(this.isReady && this.provides(LSP.Provider.DEFINITION))) { return; } diff --git a/packages/jupyterlab-lsp/src/lsp.ts b/packages/jupyterlab-lsp/src/lsp.ts index ebb076d27..7248eec49 100644 --- a/packages/jupyterlab-lsp/src/lsp.ts +++ b/packages/jupyterlab-lsp/src/lsp.ts @@ -200,6 +200,34 @@ export namespace Method { export const TYPE_DEFINITION = 'textDocument/typeDefinition'; } +/* keys of ServerCapabilities as constants */ +export const Provider: { [key: string]: keyof ServerCapabilities } = { + TEXT_DOCUMENT_SYNC: 'textDocumentSync', + COMPLETION: 'completionProvider', + HOVER: 'hoverProvider', + SIGNATURE_HELP: 'signatureHelpProvider', + DECLARATION: 'declarationProvider', + DEFINITION: 'definitionProvider', + TYPE_DEFINITION: 'typeDefinitionProvider', + IMPLEMENTATION: 'implementationProvider', + REFERENCES: 'referencesProvider', + DOCUMENT_HIGHLIGHT: 'documentHighlightProvider', + DOCUMENT_SYMBOL: 'documentSymbolProvider', + CODE_ACTION: 'codeActionProvider', + CODE_LENS: 'codeLensProvider', + DOCUMENT_LINK: 'documentLinkProvider', + COLOR: 'colorProvider', + DOCUMENT_FORMATTING: 'documentFormattingProvider', + DOCUMENT_RANGE_FORMATTING: 'documentRangeFormattingProvider', + DOCUMENT_ON_TYPE_FORMATTING: 'documentOnTypeFormattingProvider', + RENAME: 'renameProvider', + FOLDING_RANGE: 'foldingRangeProvider', + EXECUTE_COMMAND: 'executeCommandProvider', + SELECTION_RANGE: 'selectionRangeProvider', + WORKSPACE_SYMBOL: 'workspaceSymbolProvider', + WORKSPACE: 'workspace', +}; + /** compound types for some responses */ export type TAnyCompletion = CompletionList | CompletionItem[] | null; diff --git a/packages/jupyterlab-lsp/src/tokens.ts b/packages/jupyterlab-lsp/src/tokens.ts index 8add0bad7..3bed8cd46 100644 --- a/packages/jupyterlab-lsp/src/tokens.ts +++ b/packages/jupyterlab-lsp/src/tokens.ts @@ -43,11 +43,8 @@ export interface ILSPConnection { serverCapabilities: LSP.ServerCapabilities; rootUri: string; - // legacy capabilities api - isRenameSupported(): boolean; - isReferencesSupported(): boolean; - isTypeDefinitionSupported(): boolean; - isDefinitionSupported(): boolean; + /** Does the language server support a given provider? */ + provides(provider: keyof LSP.ServerCapabilities): boolean; // legacy connection API connect(): Promise; @@ -72,6 +69,7 @@ export interface ILSPConnection { listener: V ): void; + /* legacy method api */ sendOpenWhenReady(documentInfo: ILSPConnection.IDocumentInfo): void; sendOpen(documentInfo: ILSPConnection.IDocumentInfo): void; sendChange(documentInfo: ILSPConnection.IDocumentInfo): void; From db6f5361fd250d9be700514e1d67d4a96344e0ee Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Wed, 10 Jun 2020 21:34:01 -0400 Subject: [PATCH 61/82] remove legacy emit argument for connection methods --- .../codemirror/features/highlights.ts | 3 +-- .../src/adapters/codemirror/features/hover.ts | 3 +-- .../adapters/codemirror/features/jump_to.ts | 3 +-- .../adapters/codemirror/features/rename.ts | 3 +-- .../adapters/codemirror/features/signature.ts | 6 +---- .../jupyterlab/components/completion.ts | 1 - .../jupyterlab-lsp/src/comm/connection.ts | 22 ++++++------------- packages/jupyterlab-lsp/src/tokens.ts | 22 ++++++------------- 8 files changed, 19 insertions(+), 44 deletions(-) diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts index 97f7055c7..d4fdcd2eb 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts @@ -108,8 +108,7 @@ export class Highlights extends CodeMirrorLSPFeature { ); const highlights = await this.connection.getDocumentHighlights( virtual_position, - this.virtual_document.document_info, - false + this.virtual_document.document_info ); if (!this.virtual_document.isDisposed) { this.handleHighlight( diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/hover.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/hover.ts index e051dd9db..bfaf51406 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/hover.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/hover.ts @@ -56,8 +56,7 @@ export class Hover extends CodeMirrorLSPFeature { on_hover = async () => { const hover = await this.connection.getHoverTooltip( this.virtual_position, - this.virtual_document.document_info, - false + this.virtual_document.document_info ); return hover; }; diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts index c4315a9d2..7dace3766 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts @@ -16,8 +16,7 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { ) as JumpToDefinition; const targets = await connection.getDefinition( virtual_position, - document.document_info, - false + document.document_info ); await jump_feature.handle_jump(targets, document.document_info.uri); }, diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts index 4fffb237c..bcabb6b14 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts @@ -49,8 +49,7 @@ export class Rename extends CodeMirrorLSPFeature { const edit = await connection.rename( virtual_position, document.document_info, - dialog_value.value, - false + dialog_value.value ); await rename_feature.handleRename(edit); } catch (error) { diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/signature.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/signature.ts index 82f14abe1..e24a64e0b 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/signature.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/signature.ts @@ -138,11 +138,7 @@ export class Signature extends CodeMirrorLSPFeature { ); this.connection - .getSignatureHelp( - virtual_position, - this.virtual_document.document_info, - false - ) + .getSignatureHelp(virtual_position, this.virtual_document.document_info) .then((help) => this.handleSignature(help)) .catch(console.warn); } diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts index f065ec25c..e5d13e5fb 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts @@ -216,7 +216,6 @@ export class LSPConnector extends DataConnector< text: token.value, }, document.document_info, - false, typed_character, this.trigger_kind )) || []) as LSP.CompletionItem[]; diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index 39c732344..9b192d8fd 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -316,8 +316,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { async rename( location: ILSPConnection.IPosition, documentInfo: ILSPConnection.IDocumentInfo, - newName: string, - emit?: false + newName: string ): Promise { if (!this.isReady || !this.provides(LSP.Provider.RENAME)) { return; @@ -336,8 +335,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { async getDocumentHighlights( location: ILSPConnection.IPosition, - documentInfo: ILSPConnection.IDocumentInfo, - emit?: false + documentInfo: ILSPConnection.IDocumentInfo ) { if (!this.isReady) { return; @@ -356,8 +354,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { async getHoverTooltip( location: ILSPConnection.IPosition, - documentInfo: ILSPConnection.IDocumentInfo, - emit?: false + documentInfo: ILSPConnection.IDocumentInfo ) { if (!this.isReady && !this.provides(LSP.Provider.HOVER)) { return; @@ -375,8 +372,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { async getSignatureHelp( location: ILSPConnection.IPosition, - documentInfo: ILSPConnection.IDocumentInfo, - emit?: false + documentInfo: ILSPConnection.IDocumentInfo ): Promise { if (!(this.isReady && this.provides(LSP.Provider.SIGNATURE_HELP))) { return; @@ -407,7 +403,6 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { location: ILSPConnection.IPosition, token: ILSPConnection.ITokenInfo, documentInfo: ILSPConnection.IDocumentInfo, - emit: false, triggerCharacter?: string, triggerKind?: LSP.CompletionTriggerKind ) { @@ -437,8 +432,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { public async getReferences( location: ILSPConnection.IPosition, - documentInfo: ILSPConnection.IDocumentInfo, - emit?: false + documentInfo: ILSPConnection.IDocumentInfo ) { if (!this.isReady || !this.provides(LSP.Provider.REFERENCES)) { return; @@ -474,8 +468,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { async getTypeDefinition( location: ILSPConnection.IPosition, - documentInfo: ILSPConnection.IDocumentInfo, - emit?: false + documentInfo: ILSPConnection.IDocumentInfo ) { if (!this.isReady || !this.provides(LSP.Provider.TYPE_DEFINITION)) { return; @@ -494,8 +487,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { public async getDefinition( location: ILSPConnection.IPosition, - documentInfo: ILSPConnection.IDocumentInfo, - emit?: false + documentInfo: ILSPConnection.IDocumentInfo ) { if (!(this.isReady && this.provides(LSP.Provider.DEFINITION))) { return; diff --git a/packages/jupyterlab-lsp/src/tokens.ts b/packages/jupyterlab-lsp/src/tokens.ts index 3bed8cd46..9be5fd1f8 100644 --- a/packages/jupyterlab-lsp/src/tokens.ts +++ b/packages/jupyterlab-lsp/src/tokens.ts @@ -85,48 +85,40 @@ export interface ILSPConnection { rename( location: ILSPConnection.IPosition, documentInfo: ILSPConnection.IDocumentInfo, - newName: string, - emit: false + newName: string ): Promise; getLanguageCompletionCharacters(): string[]; getLanguageSignatureCharacters(): string[]; getDocumentHighlights( location: ILSPConnection.IPosition, - documentInfo: ILSPConnection.IDocumentInfo, - emit: false + documentInfo: ILSPConnection.IDocumentInfo ): Promise; getHoverTooltip( location: ILSPConnection.IPosition, - documentInfo: ILSPConnection.IDocumentInfo, - emit: false + documentInfo: ILSPConnection.IDocumentInfo ): Promise; getSignatureHelp( location: ILSPConnection.IPosition, - documentInfo: ILSPConnection.IDocumentInfo, - emit: false + documentInfo: ILSPConnection.IDocumentInfo ): Promise; getCompletion( location: ILSPConnection.IPosition, token: ILSPConnection.ITokenInfo, documentInfo: ILSPConnection.IDocumentInfo, - emit: false, triggerCharacter?: string, triggerKind?: LSP.CompletionTriggerKind ): Promise; getReferences( location: ILSPConnection.IPosition, - documentInfo: ILSPConnection.IDocumentInfo, - emit?: false + documentInfo: ILSPConnection.IDocumentInfo ): Promise; getTypeDefinition( location: ILSPConnection.IPosition, - documentInfo: ILSPConnection.IDocumentInfo, - emit?: false + documentInfo: ILSPConnection.IDocumentInfo ): Promise; getDefinition( location: ILSPConnection.IPosition, - documentInfo: ILSPConnection.IDocumentInfo, - emit?: false + documentInfo: ILSPConnection.IDocumentInfo ): Promise; } From 81d98e8361c7751aad8dddbda956e3a52e54e54a Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Thu, 11 Jun 2020 22:10:42 -0400 Subject: [PATCH 62/82] request new comms when kernel dies --- .../jupyterlab-lsp/src/comm/connection.ts | 19 ++++++++------- packages/jupyterlab-lsp/src/comm/index.ts | 4 +++- packages/jupyterlab-lsp/src/comm/json-rpc.ts | 24 ++++++++++++++++++- .../jupyterlab-lsp/src/connection_manager.ts | 8 ++++++- packages/jupyterlab-lsp/src/index.ts | 4 ++-- packages/jupyterlab-lsp/src/manager.ts | 24 +++++++++++++------ packages/jupyterlab-lsp/src/tokens.ts | 3 +-- 7 files changed, 64 insertions(+), 22 deletions(-) diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index 9b192d8fd..12cf005c2 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -252,7 +252,10 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { // capabilities provides(provider: keyof LSP.ServerCapabilities): boolean { - return !!(this.serverCapabilities && this.serverCapabilities[provider]); + return ( + this.isReady && + !!(this.serverCapabilities && this.serverCapabilities[provider]) + ); } getLanguageCompletionCharacters() { @@ -318,7 +321,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { documentInfo: ILSPConnection.IDocumentInfo, newName: string ): Promise { - if (!this.isReady || !this.provides(LSP.Provider.RENAME)) { + if (this.provides(LSP.Provider.RENAME)) { return; } return await this.request(LSP.Method.RENAME, { @@ -356,7 +359,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { location: ILSPConnection.IPosition, documentInfo: ILSPConnection.IDocumentInfo ) { - if (!this.isReady && !this.provides(LSP.Provider.HOVER)) { + if (!this.provides(LSP.Provider.HOVER)) { return; } return await this.request(LSP.Method.HOVER, { @@ -374,7 +377,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { location: ILSPConnection.IPosition, documentInfo: ILSPConnection.IDocumentInfo ): Promise { - if (!(this.isReady && this.provides(LSP.Provider.SIGNATURE_HELP))) { + if (!this.provides(LSP.Provider.SIGNATURE_HELP)) { return; } @@ -406,7 +409,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { triggerCharacter?: string, triggerKind?: LSP.CompletionTriggerKind ) { - if (!(this.isReady && this.provides(LSP.Provider.COMPLETION))) { + if (!this.provides(LSP.Provider.COMPLETION)) { return; } @@ -434,7 +437,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { location: ILSPConnection.IPosition, documentInfo: ILSPConnection.IDocumentInfo ) { - if (!this.isReady || !this.provides(LSP.Provider.REFERENCES)) { + if (!this.provides(LSP.Provider.REFERENCES)) { return; } @@ -470,7 +473,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { location: ILSPConnection.IPosition, documentInfo: ILSPConnection.IDocumentInfo ) { - if (!this.isReady || !this.provides(LSP.Provider.TYPE_DEFINITION)) { + if (!this.provides(LSP.Provider.TYPE_DEFINITION)) { return; } @@ -489,7 +492,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { location: ILSPConnection.IPosition, documentInfo: ILSPConnection.IDocumentInfo ) { - if (!(this.isReady && this.provides(LSP.Provider.DEFINITION))) { + if (!this.provides(LSP.Provider.DEFINITION)) { return; } diff --git a/packages/jupyterlab-lsp/src/comm/index.ts b/packages/jupyterlab-lsp/src/comm/index.ts index 9c1b38b51..85f5bf133 100644 --- a/packages/jupyterlab-lsp/src/comm/index.ts +++ b/packages/jupyterlab-lsp/src/comm/index.ts @@ -4,7 +4,9 @@ import { ICommMsgMsg } from '@jupyterlab/services/lib/kernel/messages'; import { JSONObject, PromiseDelegate, JSONValue } from '@lumino/coreutils'; export interface ICommRPC { - comm: IComm; + comm: ICommRPC.IRPCComm; + commDisposed: ISignal; + communicate( method: string, request: ICommRPC.TRPCParams, diff --git a/packages/jupyterlab-lsp/src/comm/json-rpc.ts b/packages/jupyterlab-lsp/src/comm/json-rpc.ts index f44b081e7..e9232cac1 100644 --- a/packages/jupyterlab-lsp/src/comm/json-rpc.ts +++ b/packages/jupyterlab-lsp/src/comm/json-rpc.ts @@ -15,9 +15,12 @@ export class CommRPC implements ICommRPC { protected _nextId = 0; protected _jsonrpc: string; protected _handlers: ICommRPC.TMethodHandlers = new Map(); + protected _commDisposed: Signal; + protected _commRequested: PromiseDelegate; constructor(options: ICommRPC.IOptions) { this._commChanged = new Signal(this); + this._commDisposed = new Signal(this); this._jsonrpc = options.jsonrpc || DEFAULT_JSONRPC; if (options.handlers) { for (const [method, handler] of options.handlers.entries()) { @@ -42,15 +45,25 @@ export class CommRPC implements ICommRPC { this._comm.onMsg = this.handleMessage.bind(this); } this._commChanged.emit(void 0); + if (this._commRequested != null) { + this._commRequested.resolve(void 0); + } } /** - * A signal for when the underlying comm changes + * Signals when the underlying comm changes */ get commChanged() { return this._commChanged; } + /** + * Signals when the underlying comm is found to be disposed + */ + get commDisposed() { + return this._commDisposed; + } + /** * Send an RPC message that expects a response at some time in the future */ @@ -69,6 +82,15 @@ export class CommRPC implements ICommRPC { this._responsePromises.set(msg.id, delegate); } + if (this.comm.isDisposed) { + if (this._commRequested == null) { + this._commRequested = new PromiseDelegate(); + this._commDisposed.emit(void 0); + } + await this._commRequested.promise; + this._commRequested = null; + } + this.comm.send(msg, null, null, true); if (noWait) { diff --git a/packages/jupyterlab-lsp/src/connection_manager.ts b/packages/jupyterlab-lsp/src/connection_manager.ts index 84cbde482..a75a44634 100644 --- a/packages/jupyterlab-lsp/src/connection_manager.ts +++ b/packages/jupyterlab-lsp/src/connection_manager.ts @@ -333,11 +333,17 @@ namespace Private { uris: DocumentConnectionManager.IURIs, onCreate: (connection: ILSPConnection) => void ): Promise { - const comm = await _language_server_manager.getComm(language_server_id); let connection = _connections.get(language_server_id); if (connection == null) { + const comm = await _language_server_manager.getComm(language_server_id); const connection = new CommLSPConnection({ comm, rootUri: uris.base }); + connection.commDisposed.connect(async (connection: CommLSPConnection) => { + connection.comm = await _language_server_manager.getComm( + language_server_id + ); + await connection.connect(); + }); _connections.set(language_server_id, connection); await connection.connect(); onCreate(connection); diff --git a/packages/jupyterlab-lsp/src/index.ts b/packages/jupyterlab-lsp/src/index.ts index 2581684c4..cca5fc88f 100644 --- a/packages/jupyterlab-lsp/src/index.ts +++ b/packages/jupyterlab-lsp/src/index.ts @@ -130,7 +130,7 @@ const plugin: JupyterFrontEndPlugin = { const connect_file_editor = async ( widget: IDocumentWidget ) => { - await language_server_manager.kernelReady; + await language_server_manager.ready; let fileEditor = widget.content; @@ -181,7 +181,7 @@ const plugin: JupyterFrontEndPlugin = { command_manager.add(lsp_commands); const connect_notebook = async (widget: NotebookPanel) => { - await language_server_manager.kernelReady; + await language_server_manager.ready; // NOTE: assuming that the default cells content factory produces CodeMirror editors(!) let jumper = new NotebookJumper(widget, documentManager); diff --git a/packages/jupyterlab-lsp/src/manager.ts b/packages/jupyterlab-lsp/src/manager.ts index 66c813861..a360d9ae9 100644 --- a/packages/jupyterlab-lsp/src/manager.ts +++ b/packages/jupyterlab-lsp/src/manager.ts @@ -36,7 +36,7 @@ export class LanguageServerManager implements ILanguageServerManager { constructor(options: ILanguageServerManager.IOptions) { this._serviceManager = options.serviceManager; - this.initKernel().catch(console.warn); + this.initKernel().catch(console.error); } get sessionsChanged() { @@ -47,17 +47,26 @@ export class LanguageServerManager implements ILanguageServerManager { return this._sessions; } - get kernelReady() { + get ready() { return this._kernelReady.promise; } - protected get kernel() { + protected async ensureKernel() { + if (this._kernelSessionConnection.kernel == null) { + await this.initKernel(); + await this._kernelReady.promise; + } return this._kernelSessionConnection.kernel; } async getComm(language_server_id: TLanguageServerId): Promise { let comm = this._comms.get(language_server_id); + if (comm?.isDisposed) { + this._comms.delete(language_server_id); + comm = null; + } + if (comm != null) { return comm; } @@ -112,7 +121,8 @@ export class LanguageServerManager implements ILanguageServerManager { * Get (or create) the control comm */ protected async getControlComm() { - const commInfo = await this.kernel.requestCommInfo({ + const kernel = await this.ensureKernel(); + const commInfo = await kernel.requestCommInfo({ target_name: CONTROL_COMM_TARGET, }); @@ -123,7 +133,7 @@ export class LanguageServerManager implements ILanguageServerManager { commId = commIds.length ? commIds[0] : null; } - const comm = this.kernel.createComm( + const comm = kernel.createComm( CONTROL_COMM_TARGET, ...(commId == null ? [] : [commId]) ); @@ -151,12 +161,12 @@ export class LanguageServerManager implements ILanguageServerManager { } protected async getLanguageServerComm(language_server_id: TLanguageServerId) { - await this._kernelReady.promise; + const kernel = await this.ensureKernel(); const session = this._sessions.get(language_server_id); let commId = session.comm_ids.length ? session.comm_ids[0] : null; - const comm = this.kernel.createComm( + const comm = kernel.createComm( LANGUAGE_SERVER_COMM_TARGET, ...(commId == null ? [] : [commId]) ); diff --git a/packages/jupyterlab-lsp/src/tokens.ts b/packages/jupyterlab-lsp/src/tokens.ts index 9be5fd1f8..f8efe46aa 100644 --- a/packages/jupyterlab-lsp/src/tokens.ts +++ b/packages/jupyterlab-lsp/src/tokens.ts @@ -10,7 +10,7 @@ export type TLanguageId = string; export type TSessionMap = Map; -export type TCommMap = Map; +export type TCommMap = Map; export interface ILanguageServerManager { sessionsChanged: ISignal; @@ -21,7 +21,6 @@ export interface ILanguageServerManager { getComm(languageServerId: TLanguageServerId): Promise; getRootUri(): string; getVirtualDocumentsUri(): string; - kernelReady: Promise; } export namespace ILanguageServerManager { From 6752182690f5e26c1135b68a2fe18faeae66b785 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Thu, 11 Jun 2020 22:28:23 -0400 Subject: [PATCH 63/82] fix rename provider check --- packages/jupyterlab-lsp/src/comm/connection.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index 12cf005c2..4e7605406 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -321,7 +321,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { documentInfo: ILSPConnection.IDocumentInfo, newName: string ): Promise { - if (this.provides(LSP.Provider.RENAME)) { + if (!this.provides(LSP.Provider.RENAME)) { return; } return await this.request(LSP.Method.RENAME, { From 7e985396655c3a42a3adbd6a221f60ea6fc2ae87 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Mon, 15 Jun 2020 00:08:45 -0400 Subject: [PATCH 64/82] linting --- .../jupyterlab-lsp/src/connection_manager.ts | 15 +- packages/jupyterlab-lsp/src/index.ts | 2 +- .../lsp-ws-connection/src/ws-connection.ts | 629 ------------------ 3 files changed, 6 insertions(+), 640 deletions(-) delete mode 100644 packages/lsp-ws-connection/src/ws-connection.ts diff --git a/packages/jupyterlab-lsp/src/connection_manager.ts b/packages/jupyterlab-lsp/src/connection_manager.ts index e9a3e4ac1..e55c28f21 100644 --- a/packages/jupyterlab-lsp/src/connection_manager.ts +++ b/packages/jupyterlab-lsp/src/connection_manager.ts @@ -2,20 +2,16 @@ import { VirtualDocument, IForeignContext } from './virtual/document'; import { Signal } from '@lumino/signaling'; import { URLExt } from '@jupyterlab/coreutils'; -import { sleep, until_ready } from './utils'; - -import { - ILSPConnection, -} from './tokens'; -import { CommLSPConnection } from './comm/connection'; -import { expandDottedPaths } from './utils'; +import { sleep, until_ready, expandDottedPaths } from './utils'; import { TLanguageServerId, ILanguageServerManager, + ILSPConnection, + TLanguageServerConfigurations, ILanguageServerConfiguration, - TLanguageServerConfigurations } from './tokens'; +import { CommLSPConnection } from './comm/connection'; export interface IDocumentConnectionData { virtual_document: VirtualDocument; @@ -170,13 +166,12 @@ export class DocumentConnectionManager { ); const serverSettings: ILanguageServerConfiguration = { - settings: parsedSettings + settings: parsedSettings, }; Private.updateServerConfiguration(language_server_id, serverSettings); } } - /** * Fired the first time a connection is opened. These _should_ be the only * invocation of `.on` (once remaining LSPFeature.connection_handlers are made diff --git a/packages/jupyterlab-lsp/src/index.ts b/packages/jupyterlab-lsp/src/index.ts index 8876990f8..7315614a8 100644 --- a/packages/jupyterlab-lsp/src/index.ts +++ b/packages/jupyterlab-lsp/src/index.ts @@ -251,7 +251,7 @@ const plugin: JupyterFrontEndPlugin = { settingRegistry .load(plugin.id) - .then(settings => { + .then((settings) => { // Store the initial server settings, to be sent asynchronously // when the servers are initialized. connection_manager.initial_configurations = (settings.composite diff --git a/packages/lsp-ws-connection/src/ws-connection.ts b/packages/lsp-ws-connection/src/ws-connection.ts deleted file mode 100644 index 12b581536..000000000 --- a/packages/lsp-ws-connection/src/ws-connection.ts +++ /dev/null @@ -1,629 +0,0 @@ -import * as events from 'events'; -import { LocationLink } from 'vscode-languageserver-protocol'; -import * as protocol from 'vscode-languageserver-protocol'; -import { ConsoleLogger, listen, MessageConnection } from 'vscode-ws-jsonrpc'; -import { - registerServerCapability, - unregisterServerCapability -} from './server-capability-registration'; -import { - ILspConnection, - ILspOptions, - IPosition, - ITokenInfo, - IDocumentInfo, - AnyLocation, - AnyCompletion -} from './types'; - -/** - * Changes as compared to upstream: - * - markdown is preferred over plaintext - * - informative members are public and others are protected, not private - * - onServerInitialized() was extracted; it also emits a message once connected - * - initializeParams() was extracted, and can be modified by subclasses - * - typescript 3.7 was adopted to clean up deep references - */ -export class LspWsConnection extends events.EventEmitter - implements ILspConnection { - public isConnected = false; - public isInitialized = false; - public documentInfo: ILspOptions; - public serverCapabilities: protocol.ServerCapabilities; - protected socket: WebSocket; - protected connection: MessageConnection; - private rootUri: string; - - constructor(options: ILspOptions) { - super(); - this.rootUri = options.rootUri; - } - - get isReady() { - return this.isConnected && this.isInitialized; - } - - /** - * Initialize a connection over a web socket that speaks the LSP protocol - */ - public connect(socket: WebSocket): this { - this.socket = socket; - - listen({ - webSocket: this.socket, - logger: new ConsoleLogger(), - onConnection: (connection: MessageConnection) => { - connection.listen(); - this.isConnected = true; - - this.connection = connection; - this.sendInitialize(); - - this.connection.onNotification( - 'textDocument/publishDiagnostics', - (params: protocol.PublishDiagnosticsParams) => { - this.emit('diagnostic', params); - } - ); - - this.connection.onNotification( - 'window/showMessage', - (params: protocol.ShowMessageParams) => { - this.emit('logging', params); - } - ); - - this.connection.onRequest( - 'client/registerCapability', - (params: protocol.RegistrationParams) => { - params.registrations.forEach( - (capabilityRegistration: protocol.Registration) => { - this.serverCapabilities = registerServerCapability( - this.serverCapabilities, - capabilityRegistration - ); - } - ); - - this.emit('logging', params); - } - ); - - this.connection.onRequest( - 'client/unregisterCapability', - (params: protocol.UnregistrationParams) => { - params.unregisterations.forEach( - (capabilityUnregistration: protocol.Unregistration) => { - this.serverCapabilities = unregisterServerCapability( - this.serverCapabilities, - capabilityUnregistration - ); - } - ); - - this.emit('logging', params); - } - ); - - this.connection.onRequest( - 'window/showMessageRequest', - (params: protocol.ShowMessageRequestParams) => { - this.emit('logging', params); - } - ); - - this.connection.onError(e => { - this.emit('error', e); - }); - - this.connection.onClose(() => { - this.isConnected = false; - }); - } - }); - - return this; - } - - public close() { - if (this.connection) { - this.connection.dispose(); - } - this.socket.close(); - } - - /** - * Initialization parameters to be sent to the language server. - * Subclasses can overload this when adding more features. - */ - protected initializeParams(): protocol.InitializeParams { - return { - capabilities: { - textDocument: { - hover: { - dynamicRegistration: true, - contentFormat: ['markdown', 'plaintext'] - }, - synchronization: { - dynamicRegistration: true, - willSave: false, - didSave: true, - willSaveWaitUntil: false - }, - completion: { - dynamicRegistration: true, - completionItem: { - snippetSupport: false, - commitCharactersSupport: true, - documentationFormat: ['markdown', 'plaintext'], - deprecatedSupport: false, - preselectSupport: false - }, - contextSupport: false - }, - signatureHelp: { - dynamicRegistration: true, - signatureInformation: { - documentationFormat: ['markdown', 'plaintext'] - } - }, - declaration: { - dynamicRegistration: true, - linkSupport: true - }, - definition: { - dynamicRegistration: true, - linkSupport: true - }, - typeDefinition: { - dynamicRegistration: true, - linkSupport: true - }, - implementation: { - dynamicRegistration: true, - linkSupport: true - } - } as protocol.ClientCapabilities, - workspace: { - didChangeConfiguration: { - dynamicRegistration: true - } - } as protocol.WorkspaceClientCapabilities - } as protocol.ClientCapabilities, - initializationOptions: null, - processId: null, - rootUri: this.rootUri, - workspaceFolders: null - }; - } - - public sendInitialize() { - if (!this.isConnected) { - return; - } - - const message: protocol.InitializeParams = this.initializeParams(); - - this.connection - .sendRequest('initialize', message) - .then( - params => { - this.onServerInitialized(params); - }, - e => { - console.warn('lsp-ws-connection initialization failure', e); - } - ); - } - - sendOpen(documentInfo: IDocumentInfo) { - const textDocumentMessage: protocol.DidOpenTextDocumentParams = { - textDocument: { - uri: documentInfo.uri, - languageId: documentInfo.languageId, - text: documentInfo.text, - version: documentInfo.version - } as protocol.TextDocumentItem - }; - this.connection.sendNotification( - 'textDocument/didOpen', - textDocumentMessage - ); - this.sendChange(documentInfo); - } - - public sendChange(documentInfo: IDocumentInfo) { - if (!this.isReady) { - return; - } - const textDocumentChange: protocol.DidChangeTextDocumentParams = { - textDocument: { - uri: documentInfo.uri, - version: documentInfo.version - } as protocol.VersionedTextDocumentIdentifier, - contentChanges: [{ text: documentInfo.text }] - }; - this.connection.sendNotification( - 'textDocument/didChange', - textDocumentChange - ); - documentInfo.version++; - } - - public sendSaved(documentInfo: IDocumentInfo) { - if (!this.isReady) { - return; - } - - const textDocumentChange: protocol.DidSaveTextDocumentParams = { - textDocument: { - uri: documentInfo.uri, - version: documentInfo.version - } as protocol.VersionedTextDocumentIdentifier, - text: documentInfo.text - }; - this.connection.sendNotification( - 'textDocument/didSave', - textDocumentChange - ); - } - - public sendConfigurationChange( - settings: protocol.DidChangeConfigurationParams - ) { - if (!this.isReady) { - return; - } - - this.connection.sendNotification( - 'workspace/didChangeConfiguration', - settings - ); - } - - public async getHoverTooltip( - location: IPosition, - documentInfo: IDocumentInfo, - emit = true - ) { - if (!(this.isReady && this.serverCapabilities?.hoverProvider)) { - return; - } - - const params: protocol.TextDocumentPositionParams = { - textDocument: { - uri: documentInfo.uri - }, - position: { - line: location.line, - character: location.ch - } - }; - - const hover = await this.connection.sendRequest( - 'textDocument/hover', - params - ); - - if (emit) { - this.emit('hover', hover, documentInfo.uri); - } - - return hover; - } - - public async getCompletion( - location: IPosition, - token: ITokenInfo, - documentInfo: IDocumentInfo, - emit = true, - triggerCharacter?: string, - triggerKind?: protocol.CompletionTriggerKind - ) { - if (!(this.isReady && this.serverCapabilities?.completionProvider)) { - return; - } - - const params: protocol.CompletionParams = { - textDocument: { - uri: documentInfo.uri - }, - position: { - line: location.line, - character: location.ch - }, - context: { - triggerKind: triggerKind || protocol.CompletionTriggerKind.Invoked, - triggerCharacter - } - }; - - const items = await this.connection.sendRequest( - 'textDocument/completion', - params - ); - - const itemList = items && 'items' in items ? items.items : items; - - if (emit) { - this.emit('completion', itemList); - } - return itemList; - } - - public getDetailedCompletion(completionItem: protocol.CompletionItem) { - if (!this.isReady) { - return; - } - this.connection - .sendRequest( - 'completionItem/resolve', - completionItem - ) - .then(result => { - this.emit('completionResolved', result); - }); - } - - public async getSignatureHelp( - location: IPosition, - documentInfo: IDocumentInfo, - emit = true - ) { - if (!(this.isReady && this.serverCapabilities?.signatureHelpProvider)) { - return; - } - - const code = documentInfo.text; - const lines = code.split('\n'); - const typedCharacter = lines[location.line][location.ch - 1]; - - const triggers = - this.serverCapabilities?.signatureHelpProvider?.triggerCharacters || []; - if (triggers.indexOf(typedCharacter) === -1) { - // Not a signature character - return; - } - - const params: protocol.TextDocumentPositionParams = { - textDocument: { - uri: documentInfo.uri - }, - position: { - line: location.line, - character: location.ch - } - }; - - const help = await this.connection.sendRequest( - 'textDocument/signatureHelp', - params - ); - - if (emit) { - this.emit('signature', help, documentInfo.uri); - } - - return help; - } - - /** - * Request the locations of all matching document symbols - */ - public async getDocumentHighlights( - location: IPosition, - documentInfo: IDocumentInfo, - emit = true - ) { - if (!this.isReady || !this.serverCapabilities?.documentHighlightProvider) { - return; - } - - const highlights = await this.connection.sendRequest< - protocol.DocumentHighlight[] - >('textDocument/documentHighlight', { - textDocument: { - uri: documentInfo.uri - }, - position: { - line: location.line, - character: location.ch - } - } as protocol.TextDocumentPositionParams); - - if (emit) { - this.emit('highlight', highlights, documentInfo.uri); - } - - return highlights; - } - - /** - * Request a link to the definition of the current symbol. The results will not be displayed - * unless they are within the same file URI - */ - public async getDefinition( - location: IPosition, - documentInfo: IDocumentInfo, - emit = true - ) { - if (!(this.isReady && this.isDefinitionSupported())) { - return; - } - - const params: protocol.TextDocumentPositionParams = { - textDocument: { - uri: documentInfo.uri - }, - position: { - line: location.line, - character: location.ch - } - }; - - const targets = await this.connection.sendRequest( - 'textDocument/definition', - params - ); - - if (emit) { - this.emit('goTo', targets, documentInfo.uri); - } - - return targets; - } - - /** - * Request a link to the type definition of the current symbol. The results will not be displayed - * unless they are within the same file URI - */ - public async getTypeDefinition( - location: IPosition, - documentInfo: IDocumentInfo, - emit = true - ) { - if (!this.isReady || !this.isTypeDefinitionSupported()) { - return; - } - - const params: protocol.TextDocumentPositionParams = { - textDocument: { - uri: documentInfo.uri - }, - position: { - line: location.line, - character: location.ch - } - }; - - const locations = await this.connection.sendRequest( - 'textDocument/typeDefinition', - params - ); - - if (emit) { - this.emit('goTo', locations); - } - - return locations; - } - - /** - * Request a link to the implementation of the current symbol. The results will not be displayed - * unless they are within the same file URI - */ - public getImplementation(location: IPosition, documentInfo: IDocumentInfo) { - if (!this.isReady || !this.isImplementationSupported()) { - return; - } - - this.connection - .sendRequest( - 'textDocument/implementation', - { - textDocument: { - uri: documentInfo.uri - }, - position: { - line: location.line, - character: location.ch - } - } as protocol.TextDocumentPositionParams - ) - .then(result => { - this.emit('goTo', result); - }); - } - - /** - * Request a link to all references to the current symbol. The results will not be displayed - * unless they are within the same file URI - */ - public async getReferences( - location: IPosition, - documentInfo: IDocumentInfo, - emit = false - ) { - if (!this.isReady || !this.isReferencesSupported()) { - return; - } - - const params: protocol.ReferenceParams = { - context: { - includeDeclaration: true - }, - textDocument: { - uri: documentInfo.uri - }, - position: { - line: location.line, - character: location.ch - } - }; - - const locations = await this.connection.sendRequest( - 'textDocument/references', - params - ); - - if (emit) { - this.emit('goTo', locations, documentInfo.uri); - } - - return locations; - } - - /** - * The characters that trigger completion automatically. - */ - public getLanguageCompletionCharacters(): string[] { - return this.serverCapabilities?.completionProvider?.triggerCharacters || []; - } - - /** - * The characters that trigger signature help automatically. - */ - public getLanguageSignatureCharacters(): string[] { - return ( - this.serverCapabilities?.signatureHelpProvider?.triggerCharacters || [] - ); - } - - /** - * Does the server support go to definition? - */ - public isDefinitionSupported() { - return !!this.serverCapabilities?.definitionProvider; - } - - /** - * Does the server support go to type definition? - */ - public isTypeDefinitionSupported() { - return !!this.serverCapabilities?.typeDefinitionProvider; - } - - /** - * Does the server support go to implementation? - */ - public isImplementationSupported() { - return !!this.serverCapabilities?.implementationProvider; - } - - /** - * Does the server support find all references? - */ - public isReferencesSupported() { - return !!this.serverCapabilities?.referencesProvider; - } - - protected onServerInitialized(params: protocol.InitializeResult) { - this.isInitialized = true; - this.serverCapabilities = params.capabilities; - this.connection.sendNotification('initialized'); - this.connection.sendNotification('workspace/didChangeConfiguration', { - settings: {} - }); - this.emit('serverInitialized', this.serverCapabilities); - } -} From ae96891f8b62b1a2f517556eaed8176ea8146f1d Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Mon, 15 Jun 2020 00:12:54 -0400 Subject: [PATCH 65/82] warn on cong notify error --- packages/jupyterlab-lsp/src/comm/connection.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index 1aba1595a..34ab06e52 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -273,7 +273,9 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return; } - this.notify(LSP.Method.DID_CHANGE_CONFIGURATION, settings); + this.notify(LSP.Method.DID_CHANGE_CONFIGURATION, settings).catch((err) => + console.warn(err) + ); } sendOpenWhenReady(documentInfo: ILSPConnection.IDocumentInfo) { From 5249d11473fcfe7d41aabd246bdb601ffe3a7f8a Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Mon, 15 Jun 2020 00:30:56 -0400 Subject: [PATCH 66/82] linting --- docs/Architecture.ipynb | 3 +-- packages/jupyterlab-lsp/src/tokens.ts | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/Architecture.ipynb b/docs/Architecture.ipynb index 8ea058f85..a5ac6a778 100644 --- a/docs/Architecture.ipynb +++ b/docs/Architecture.ipynb @@ -22,7 +22,6 @@ "import IPython\n", "\n", "\n", - "\n", "@IPython.core.magic.register_line_cell_magic\n", "def dot(line, cell=None):\n", " src = graphviz.Source(pathlib.Path(line).read_text() if line else cell)._repr_svg_()\n", @@ -171,4 +170,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} diff --git a/packages/jupyterlab-lsp/src/tokens.ts b/packages/jupyterlab-lsp/src/tokens.ts index 4cd80166e..91606d48a 100644 --- a/packages/jupyterlab-lsp/src/tokens.ts +++ b/packages/jupyterlab-lsp/src/tokens.ts @@ -110,8 +110,8 @@ export interface ILSPConnection { documentInfo: ILSPConnection.IDocumentInfo ): void; sendSaved(documentInfo: ILSPConnection.IDocumentInfo): void; - sendConfigurationChange(settings: LSP.DidChangeConfigurationParams): void; + rename( location: ILSPConnection.IPosition, documentInfo: ILSPConnection.IDocumentInfo, From 336870e8a12c0a21f54b91c8b6694abdf72a02ba Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Mon, 15 Jun 2020 09:17:35 -0400 Subject: [PATCH 67/82] start unifying comm targets --- .../jupyterlab-lsp/src/comm/connection.ts | 6 ++- packages/jupyterlab-lsp/src/manager.ts | 37 +++++++------------ py_src/jupyter_lsp/kernel/handlers.py | 13 +++++-- py_src/jupyter_lsp/kernel/manager.py | 31 +++++----------- 4 files changed, 38 insertions(+), 49 deletions(-) diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index 34ab06e52..0869d3859 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -218,6 +218,8 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { } async initialize(): Promise { + this._isInitialized = false; + if (!this.isConnected) { return; } @@ -235,8 +237,6 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { console.warn(err) ); - this._isInitialized = true; - await this.notify(LSP.Method.DID_CHANGE_CONFIGURATION, { settings: {}, }).catch((err) => console.warn(err)); @@ -245,6 +245,8 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { this.sendOpen(this.documentsToOpen.pop()); } + this._isInitialized = true; + this._signals .get(ILSPConnection.LegacyEvents.ON_INITIALIZED) .emit(this.serverCapabilities); diff --git a/packages/jupyterlab-lsp/src/manager.ts b/packages/jupyterlab-lsp/src/manager.ts index a360d9ae9..da65398d3 100644 --- a/packages/jupyterlab-lsp/src/manager.ts +++ b/packages/jupyterlab-lsp/src/manager.ts @@ -17,8 +17,7 @@ import * as SCHEMA from './_schema'; import { ISessionConnection } from '@jupyterlab/services/lib/session/session'; import { IComm } from '@jupyterlab/services/lib/kernel/kernel'; -const CONTROL_COMM_TARGET = 'jupyter.lsp.control'; -const LANGUAGE_SERVER_COMM_TARGET = 'jupyter.lsp.language_server'; +const COMM_TARGET = 'jupyter.lsp'; export class LanguageServerManager implements ILanguageServerManager { protected _sessionsChanged: Signal = new Signal< @@ -118,41 +117,33 @@ export class LanguageServerManager implements ILanguageServerManager { } /** - * Get (or create) the control comm + * Get (or create) an existing comm to use as the control comm, or create one + * with no language server */ protected async getControlComm() { const kernel = await this.ensureKernel(); const commInfo = await kernel.requestCommInfo({ - target_name: CONTROL_COMM_TARGET, + target_name: COMM_TARGET, }); - let commId: string; - - if (commInfo.content.status === 'ok') { - const commIds = Object.keys(commInfo.content.comms); - commId = commIds.length ? commIds[0] : null; + if (commInfo.content.status !== 'ok') { + return; } - const comm = kernel.createComm( - CONTROL_COMM_TARGET, - ...(commId == null ? [] : [commId]) - ); + const commIds = Object.keys(commInfo.content.comms); + const commId = commIds.length ? commIds[0] : null; + // not _neccessarily_ the language server comm, but we can use it anyway + // and it wil be re-connected later + const comm = kernel.createComm(COMM_TARGET, ...(commId ? [commId] : [])); comm.onMsg = this.onControlCommMsg.bind(this); + comm.open({}); - if (commId == null) { - // nb: do something here? negotiate schema version? - comm.open({}); - } else { - comm.send({}); - } - - // nb: should we await something? return comm; } protected async onControlCommMsg(msg: KernelMessage.ICommMsgMsg) { - const { sessions, uris } = msg.content.data as SCHEMA.ServersResponse; + const { sessions, uris } = msg.metadata as SCHEMA.ServersResponse; this._rootUri = uris.root; this._virtualDocumentsUri = uris.virtual_documents; this._sessions = new Map(Object.entries(sessions)); @@ -167,7 +158,7 @@ export class LanguageServerManager implements ILanguageServerManager { let commId = session.comm_ids.length ? session.comm_ids[0] : null; const comm = kernel.createComm( - LANGUAGE_SERVER_COMM_TARGET, + COMM_TARGET, ...(commId == null ? [] : [commId]) ); diff --git a/py_src/jupyter_lsp/kernel/handlers.py b/py_src/jupyter_lsp/kernel/handlers.py index 2cc939b3e..a4181129d 100644 --- a/py_src/jupyter_lsp/kernel/handlers.py +++ b/py_src/jupyter_lsp/kernel/handlers.py @@ -7,7 +7,9 @@ class CommHandler(LangaugeServerClientAPI): - """ Jupyter Kernel Comm-based transport that imitates the tornado websocket handler + """ Jupyter Kernel Comm-based transport + + The interface is mostly derived from the tornado.websocket.WebSocketHandler """ comm = None # type: Comm @@ -15,6 +17,7 @@ class CommHandler(LangaugeServerClientAPI): def initialize(self, manager): self.manager = manager self.comm.on_msg(self.on_message_sync) + self.comm.send(data={}, metadata=self.manager.get_status_response()) def open(self, language_server): self.language_server = language_server @@ -37,9 +40,13 @@ def on_message_sync(self, message): # pragma: no cover async def on_message(self, message): self.log.debug("[{}] Got a message".format(self.language_server)) - # nb: deal with legacy json for now message_data = message - if isinstance(message, dict): # pragma: no cover + + if isinstance(message, dict): + if not message["content"]["data"]: + + return + message_data = json.dumps(message["content"]["data"]) await self.manager.on_client_message(message_data, self) diff --git a/py_src/jupyter_lsp/kernel/manager.py b/py_src/jupyter_lsp/kernel/manager.py index 426186940..e1d42c19b 100644 --- a/py_src/jupyter_lsp/kernel/manager.py +++ b/py_src/jupyter_lsp/kernel/manager.py @@ -14,8 +14,7 @@ class CommLanguageServerManager(LanguageServerManager): - CONTROL_COMM_TARGET = "jupyter.lsp.control" - LANGUAGE_SERVER_COMM_TARGET = "jupyter.lsp.language_server" + COMM_TARGET = "jupyter.lsp" config_manager = Instance(ConfigManager) root_uri = Unicode() @@ -61,26 +60,14 @@ def _load_extra_config(self): setattr(self, key, value) def initialize(self, *args, **kwargs): - # this uses the decorator which changes the LanguageServerManager singleton setup_shadow_filesystem(virtual_documents_uri=self.virtual_documents_uri) super().initialize(*args, **kwargs) self.init_comm_targets() def init_comm_targets(self): self.comm_manager.register_target( - self.CONTROL_COMM_TARGET, self.on_control_comm_opened + self.COMM_TARGET, self.on_language_server_comm_opened ) - self.comm_manager.register_target( - self.LANGUAGE_SERVER_COMM_TARGET, self.on_language_server_comm_opened - ) - - def on_control_comm_opened(self, comm, comm_msg): - def on_msg(comm_msg): - # nb: other message types, a la stop from #255 - self.send_status(comm) - - comm.on_msg(on_msg) - on_msg(comm_msg) def get_status_response(self): response = { @@ -102,13 +89,15 @@ def get_status_response(self): return response - def send_status(self, comm): - comm.send(self.get_status_response()) - def on_language_server_comm_opened(self, comm, comm_msg): - language_server = comm_msg["metadata"]["language_server"] - + """ Handle a new comm from the client, optionally launch a handler + """ handler = CommHandler() handler.comm = comm handler.initialize(self) - handler.open(language_server) + + language_server = comm_msg["metadata"].get("language_server") + + # this is a pre-baked connection + if language_server: + handler.open(language_server) From 2626d8656968da5a6b42ddc44f8f0ce775df41a4 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Mon, 15 Jun 2020 09:34:10 -0400 Subject: [PATCH 68/82] fix utest --- py_src/jupyter_lsp/kernel/handlers.py | 9 ++++++--- py_src/jupyter_lsp/tests/conftest.py | 4 ++-- py_src/jupyter_lsp/tests/test_kernel.py | 8 -------- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/py_src/jupyter_lsp/kernel/handlers.py b/py_src/jupyter_lsp/kernel/handlers.py index a4181129d..bcc3fc122 100644 --- a/py_src/jupyter_lsp/kernel/handlers.py +++ b/py_src/jupyter_lsp/kernel/handlers.py @@ -42,9 +42,12 @@ async def on_message(self, message): message_data = message - if isinstance(message, dict): - if not message["content"]["data"]: - + if isinstance(message, dict): # pragma: no cover + data = message["content"]["data"] + metadata = message["content"]["metadata"] + if not data and metadata: + self.log.debug("[{}] Sent metadata".format(self.language_server)) + self.comm.send(data={}, metadata=self.manager.get_status_response()) return message_data = json.dumps(message["content"]["data"]) diff --git a/py_src/jupyter_lsp/tests/conftest.py b/py_src/jupyter_lsp/tests/conftest.py index 450bf3879..8c6cbe888 100644 --- a/py_src/jupyter_lsp/tests/conftest.py +++ b/py_src/jupyter_lsp/tests/conftest.py @@ -114,5 +114,5 @@ def __init__(self): def on_msg(self, fn): self._fn = fn - def send(self, msg): - self._sent = getattr(self, "_sent", []) + [msg] + def send(self, data=None, metadata=None): + self._sent = getattr(self, "_sent", []) + [dict(data=data, metadata=metadata)] diff --git a/py_src/jupyter_lsp/tests/test_kernel.py b/py_src/jupyter_lsp/tests/test_kernel.py index 3a165ba5e..6b0e43131 100644 --- a/py_src/jupyter_lsp/tests/test_kernel.py +++ b/py_src/jupyter_lsp/tests/test_kernel.py @@ -30,14 +30,6 @@ def test_kernel_install( assert spec_json["display_name"] == expect_display_name, spec_json -@pytest.mark.asyncio -def test_kernel_manager_control_comm(lsp_handler, mock_comm): - manager = lsp_handler.manager - manager.initialize() - manager.on_control_comm_opened(mock_comm, None) - assert mock_comm._sent - - @pytest.mark.asyncio def test_kernel_manager_server_comm(lsp_handler, mock_comm): manager = lsp_handler.manager From ce71f097ad3c155d8137f251676fef3bd0f31aff Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Mon, 15 Jun 2020 09:42:09 -0400 Subject: [PATCH 69/82] handle some potentially malformed messages --- py_src/jupyter_lsp/kernel/handlers.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/py_src/jupyter_lsp/kernel/handlers.py b/py_src/jupyter_lsp/kernel/handlers.py index bcc3fc122..434c88131 100644 --- a/py_src/jupyter_lsp/kernel/handlers.py +++ b/py_src/jupyter_lsp/kernel/handlers.py @@ -40,19 +40,19 @@ def on_message_sync(self, message): # pragma: no cover async def on_message(self, message): self.log.debug("[{}] Got a message".format(self.language_server)) - message_data = message + message_str = message if isinstance(message, dict): # pragma: no cover - data = message["content"]["data"] - metadata = message["content"]["metadata"] + data = message.get("content", {}).get("data") + metadata = message.get("metadata") if not data and metadata: - self.log.debug("[{}] Sent metadata".format(self.language_server)) + self.log.debug("[{}] Sending status".format(self.language_server)) self.comm.send(data={}, metadata=self.manager.get_status_response()) return - message_data = json.dumps(message["content"]["data"]) + message_str = json.dumps(data) - await self.manager.on_client_message(message_data, self) + await self.manager.on_client_message(message_str, self) self.log.debug("[{}] Finished handling message".format(self.language_server)) def write_message(self, message: str): # pragma: no cover From 2508cc7b1d20447cab98dbb4b851df5a9ee0c426 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Tue, 16 Jun 2020 14:46:30 -0400 Subject: [PATCH 70/82] linting --- .../jest.config.js | 6 +- .../src/editors/codemirror/extension.ts | 4 +- .../jupyterlab-go-to-definition/src/index.ts | 42 +- .../src/jumpers/fileeditor.ts | 4 +- .../src/jumpers/jumper.ts | 26 +- .../src/jumpers/notebook.ts | 6 +- .../src/languages/analyzer.ts | 4 +- .../src/languages/python.spec.ts | 6 +- .../src/languages/python.ts | 4 +- .../src/languages/r.spec.ts | 4 +- .../src/languages/r.ts | 2 +- .../src/notebook_private.ts | 2 +- .../src/testutils.ts | 2 +- packages/jupyterlab-lsp/jest.config.js | 6 +- .../adapters/codemirror/cm_adapter.spec.ts | 2 +- .../src/adapters/codemirror/feature.spec.ts | 78 +- .../src/adapters/codemirror/feature.ts | 30 +- .../codemirror/features/diagnostics.spec.ts | 68 +- .../codemirror/features/diagnostics.ts | 36 +- .../features/diagnostics_listing.tsx | 46 +- .../codemirror/features/highlights.ts | 6 +- .../src/adapters/codemirror/features/hover.ts | 12 +- .../adapters/codemirror/features/jump_to.ts | 16 +- .../codemirror/features/rename.spec.ts | 10 +- .../adapters/codemirror/features/rename.ts | 16 +- .../adapters/codemirror/features/signature.ts | 6 +- .../src/adapters/codemirror/testutils.ts | 28 +- .../jupyterlab/components/completion.ts | 26 +- .../jupyterlab/components/free_tooltip.ts | 2 +- .../jupyterlab/components/statusbar.tsx | 31 +- .../src/adapters/jupyterlab/file_editor.ts | 4 +- .../src/adapters/jupyterlab/jl_adapter.ts | 16 +- .../src/adapters/jupyterlab/notebook.ts | 4 +- .../jupyterlab-lsp/src/comm/connection.ts | 138 +- packages/jupyterlab-lsp/src/comm/json-rpc.ts | 6 +- .../src/command_manager.spec.ts | 8 +- .../jupyterlab-lsp/src/command_manager.ts | 10 +- .../jupyterlab-lsp/src/connection_manager.ts | 20 +- .../src/extractors/defaults.spec.ts | 2 +- .../jupyterlab-lsp/src/extractors/defaults.ts | 30 +- .../src/extractors/regexp.spec.ts | 10 +- .../jupyterlab-lsp/src/extractors/regexp.ts | 4 +- packages/jupyterlab-lsp/src/index.ts | 20 +- packages/jupyterlab-lsp/src/lsp.ts | 6 +- .../jupyterlab-lsp/src/magics/defaults.ts | 30 +- packages/jupyterlab-lsp/src/magics/maps.ts | 6 +- packages/jupyterlab-lsp/src/magics/rpy2.ts | 6 +- packages/jupyterlab-lsp/src/manager.ts | 14 +- packages/jupyterlab-lsp/src/utils.ts | 4 +- .../jupyterlab-lsp/src/virtual/console.ts | 2 +- .../src/virtual/document.spec.ts | 22 +- .../jupyterlab-lsp/src/virtual/document.ts | 44 +- .../jupyterlab-lsp/src/virtual/editor.spec.ts | 10 +- packages/jupyterlab-lsp/src/virtual/editor.ts | 8 +- .../src/virtual/editors/file_editor.ts | 4 +- .../src/virtual/editors/notebook.ts | 14 +- yarn.lock | 2829 +++-------------- 57 files changed, 868 insertions(+), 2934 deletions(-) diff --git a/packages/jupyterlab-go-to-definition/jest.config.js b/packages/jupyterlab-go-to-definition/jest.config.js index 38e6a33a9..e49b79125 100644 --- a/packages/jupyterlab-go-to-definition/jest.config.js +++ b/packages/jupyterlab-go-to-definition/jest.config.js @@ -6,7 +6,7 @@ const reuseFromUpstream = [ 'moduleNameMapper', 'reporters', 'setupFiles', - 'setupFilesAfterEnv', + 'setupFilesAfterEnv' ]; let local = { @@ -15,9 +15,9 @@ let local = { transform: { '\\.(ts|tsx)?$': 'ts-jest', '\\.(js|jsx)?$': './transform.js', - '\\.svg$': 'jest-raw-loader', + '\\.svg$': 'jest-raw-loader' }, - transformIgnorePatterns: ['/node_modules/(?!(@jupyterlab/.*)/)'], + transformIgnorePatterns: ['/node_modules/(?!(@jupyterlab/.*)/)'] }; for (const option of reuseFromUpstream) { diff --git a/packages/jupyterlab-go-to-definition/src/editors/codemirror/extension.ts b/packages/jupyterlab-go-to-definition/src/editors/codemirror/extension.ts index c1441095a..a85bac149 100644 --- a/packages/jupyterlab-go-to-definition/src/editors/codemirror/extension.ts +++ b/packages/jupyterlab-go-to-definition/src/editors/codemirror/extension.ts @@ -81,7 +81,7 @@ export class CodeMirrorExtension extends CodeMirrorTokensProvider this.jumper.jump_to_definition({ token: token, mouseEvent: event, - origin: target, + origin: target }); } event.preventDefault(); @@ -148,7 +148,7 @@ export class CodeMirrorExtension extends CodeMirrorTokensProvider token = { value: lookupName, offset: 0, // dummy offset - type: lookupType, + type: lookupType }; } diff --git a/packages/jupyterlab-go-to-definition/src/index.ts b/packages/jupyterlab-go-to-definition/src/index.ts index 83b493651..aec7f4c07 100644 --- a/packages/jupyterlab-go-to-definition/src/index.ts +++ b/packages/jupyterlab-go-to-definition/src/index.ts @@ -1,6 +1,6 @@ import { JupyterFrontEnd, - JupyterFrontEndPlugin, + JupyterFrontEndPlugin } from '@jupyterlab/application'; import { ICommandPalette } from '@jupyterlab/apputils'; import { INotebookTracker } from '@jupyterlab/notebook'; @@ -25,7 +25,7 @@ const plugin: JupyterFrontEndPlugin = { INotebookTracker, ISettingRegistry, ICommandPalette, - IDocumentManager, + IDocumentManager ], activate: ( app: JupyterFrontEnd, @@ -61,7 +61,7 @@ const plugin: JupyterFrontEndPlugin = { // more reasonable thing would be to create a PR with .onAddCell setTimeout(() => { // now (notebook.widgets.length is likely > 1) - notebook.widgets.every((cell) => { + notebook.widgets.every(cell => { let codemirror_editor = cell.editor as CodeMirrorEditor; let extension = new CodeMirrorExtension(codemirror_editor, jumper); @@ -86,7 +86,7 @@ const plugin: JupyterFrontEndPlugin = { function updateOptions(settings: ISettingRegistry.ISettings): void { let options = settings.composite; - Object.keys(options).forEach((key) => { + Object.keys(options).forEach(key => { if (key === 'modifier') { let modifier = options[key] as KeyModifier; CodeMirrorExtension.modifierKey = modifier; @@ -96,7 +96,7 @@ const plugin: JupyterFrontEndPlugin = { settingRegistry .load(plugin.id) - .then((settings) => { + .then(settings => { updateOptions(settings); settings.changed.connect(() => { updateOptions(settings); @@ -111,25 +111,25 @@ const plugin: JupyterFrontEndPlugin = { jumpNotebook: 'go-to-definition:notebook', jumpFileEditor: 'go-to-definition:file-editor', jumpBackNotebook: 'go-to-definition:notebook-back', - jumpBackFileEditor: 'go-to-definition:file-editor-back', + jumpBackFileEditor: 'go-to-definition:file-editor-back' }; // Add the command to the palette. palette.addItem({ command: cmdIds.jumpNotebook, - category: 'Notebook Cell Operations', + category: 'Notebook Cell Operations' }); palette.addItem({ command: cmdIds.jumpBackNotebook, - category: 'Notebook Cell Operations', + category: 'Notebook Cell Operations' }); palette.addItem({ command: cmdIds.jumpFileEditor, - category: 'Text Editor', + category: 'Text Editor' }); palette.addItem({ command: cmdIds.jumpBackFileEditor, - category: 'Text Editor', + category: 'Text Editor' }); function isEnabled(tracker: any) { @@ -156,7 +156,7 @@ const plugin: JupyterFrontEndPlugin = { notebook.activeCellIndex ); }, - isEnabled: isEnabled(notebookTracker), + isEnabled: isEnabled(notebookTracker) }); app.commands.addCommand(cmdIds.jumpBackNotebook, { @@ -167,7 +167,7 @@ const plugin: JupyterFrontEndPlugin = { let jumper = new NotebookJumper(notebook_widget, documentManager); jumper.jump_back(); }, - isEnabled: isEnabled(notebookTracker), + isEnabled: isEnabled(notebookTracker) }); app.commands.addCommand(cmdIds.jumpFileEditor, { @@ -184,7 +184,7 @@ const plugin: JupyterFrontEndPlugin = { jumper.jump_to_definition({ token, origin: null }); }, - isEnabled: isEnabled(fileEditorTracker), + isEnabled: isEnabled(fileEditorTracker) }); app.commands.addCommand(cmdIds.jumpBackFileEditor, { @@ -195,35 +195,35 @@ const plugin: JupyterFrontEndPlugin = { let jumper = new FileEditorJumper(fileEditorWidget, documentManager); jumper.jump_back(); }, - isEnabled: isEnabled(fileEditorTracker), + isEnabled: isEnabled(fileEditorTracker) }); const bindings = [ { selector: '.jp-Notebook.jp-mod-editMode', keys: ['Ctrl Alt B'], - command: cmdIds.jumpNotebook, + command: cmdIds.jumpNotebook }, { selector: '.jp-Notebook', keys: ['Alt O'], - command: cmdIds.jumpBackNotebook, + command: cmdIds.jumpBackNotebook }, { selector: '.jp-FileEditor', keys: ['Ctrl Alt B'], - command: cmdIds.jumpFileEditor, + command: cmdIds.jumpFileEditor }, { selector: '.jp-FileEditor', keys: ['Alt O'], - command: cmdIds.jumpBackFileEditor, - }, + command: cmdIds.jumpBackFileEditor + } ]; - bindings.map((binding) => app.commands.addKeyBinding(binding)); + bindings.map(binding => app.commands.addKeyBinding(binding)); }, - autoStart: true, + autoStart: true }; /** diff --git a/packages/jupyterlab-go-to-definition/src/jumpers/fileeditor.ts b/packages/jupyterlab-go-to-definition/src/jumpers/fileeditor.ts index 5ee5baf1c..3a3ba282c 100644 --- a/packages/jupyterlab-go-to-definition/src/jumpers/fileeditor.ts +++ b/packages/jupyterlab-go-to-definition/src/jumpers/fileeditor.ts @@ -107,9 +107,9 @@ export class FileEditorJumper extends CodeJumper { return { token: { offset: this.getOffset(position), - value: '', + value: '' }, - index: 0, + index: 0 }; } } diff --git a/packages/jupyterlab-go-to-definition/src/jumpers/jumper.ts b/packages/jupyterlab-go-to-definition/src/jumpers/jumper.ts index 9e4d1b698..f7ab0f78c 100644 --- a/packages/jupyterlab-go-to-definition/src/jumpers/jumper.ts +++ b/packages/jupyterlab-go-to-definition/src/jumpers/jumper.ts @@ -39,7 +39,7 @@ const cell_magic_lang_to_tokenizer: any = { js: 'javascript', svg: 'application/xml', html: 'text/html', - latex: 'text/x-stex', + latex: 'text/x-stex' // not working as for now: // 'ruby': 'text/x-ruby', // require additional logic/scripting: @@ -55,7 +55,7 @@ const movement_keys = [ 'Home', 'End', 'PageUp', - 'PageDown', + 'PageDown' ]; const modifiers = ['Alt', 'AltGraph', 'Control', 'Shift']; @@ -73,7 +73,7 @@ const system_keys = [ 'F10', 'F11', 'F12', - 'ContextMenu', + 'ContextMenu' ]; export abstract class CodeJumper { @@ -140,7 +140,7 @@ export abstract class CodeJumper { let filtered = in_earlier_cell ? definitions // all are in an earlier cell : definitions.filter( - (otherToken) => otherToken.offset < originToken.offset + otherToken => otherToken.offset < originToken.offset ); // all are in same cell // but ignore ones that are part of the same assignment expression, @@ -149,7 +149,7 @@ export abstract class CodeJumper { // >>> a = a + 1 // clicking on the last 'a' should jump to the first line, // and not to beginning of the second line. - filtered = filtered.filter((otherToken) => { + filtered = filtered.filter(otherToken => { // If otherToken is in previous cell, we don't need to worry. if (i < stopIndex) { return true; @@ -173,7 +173,7 @@ export abstract class CodeJumper { } return { token: definitionToken, - cellIndex: definitionIndex, + cellIndex: definitionIndex }; } @@ -238,12 +238,12 @@ export abstract class CodeJumper { 'do you really wish to edit it?', buttons: [ Dialog.cancelButton({ label: 'Cancel' }), - Dialog.warnButton({ label: 'Edit anyway' }), - ], + Dialog.warnButton({ label: 'Edit anyway' }) + ] }); dialog_promise - .then((result) => { + .then(result => { if (result.button.accept) { disposable.dispose(); } @@ -285,7 +285,7 @@ export abstract class CodeJumper { editor_index: input_number, line: line_number, column: column, - uri: path, + uri: path }, is_symlink ); @@ -335,7 +335,7 @@ export abstract class CodeJumper { let potential_paths = cell_of_origin_analyzer.guessReferencePath(context); if (this.cwd) { let prefixed_with_cwd = potential_paths.map( - (path) => this.cwd + '/' + path + path => this.cwd + '/' + path ); potential_paths = prefixed_with_cwd.concat(potential_paths); } @@ -346,7 +346,7 @@ export abstract class CodeJumper { this.queryKernel( code, this.kernel, - (msg) => this.handle_path_from_kernel(msg, potential_paths) // TODO: extract fallback? + msg => this.handle_path_from_kernel(msg, potential_paths) // TODO: extract fallback? ); } else { // TODO: extract fallback? @@ -392,7 +392,7 @@ export abstract class CodeJumper { let code = cell_of_origin_analyzer.definitionLocationQuery(context); if (cell_of_origin_analyzer.supportsKernel && this.kernel && code) { - this.queryKernel(code, this.kernel, (msg) => + this.queryKernel(code, this.kernel, msg => this.handle_kernel_inspect(msg, fallback) ); } else { diff --git a/packages/jupyterlab-go-to-definition/src/jumpers/notebook.ts b/packages/jupyterlab-go-to-definition/src/jumpers/notebook.ts index 7bea3a7dd..bbe5714f1 100644 --- a/packages/jupyterlab-go-to-definition/src/jumpers/notebook.ts +++ b/packages/jupyterlab-go-to-definition/src/jumpers/notebook.ts @@ -35,7 +35,7 @@ export class NotebookJumper extends CodeJumper { } get editors() { - return this.notebook.widgets.map((cell) => cell.editor); + return this.notebook.widgets.map(cell => cell.editor); } get language() { @@ -173,9 +173,9 @@ export class NotebookJumper extends CodeJumper { return { token: { offset: this.getOffset(position, cell_index), - value: '', + value: '' }, - index: cell_index, + index: cell_index }; } } diff --git a/packages/jupyterlab-go-to-definition/src/languages/analyzer.ts b/packages/jupyterlab-go-to-definition/src/languages/analyzer.ts index c6fe7b9fb..8e221dc72 100644 --- a/packages/jupyterlab-go-to-definition/src/languages/analyzer.ts +++ b/packages/jupyterlab-go-to-definition/src/languages/analyzer.ts @@ -114,7 +114,7 @@ export abstract class LanguageAnalyzer { _get_token_index(token: CodeEditor.IToken) { this._maybe_setup_tokens(); return this.tokens.findIndex( - (t) => + t => t.value === token.value && t.offset === token.offset && t.type === token.type @@ -211,7 +211,7 @@ export abstract class LanguageAnalyzer { let terminatingTokens = this._selectTerminatingTokens(tokensBetween); let terminatorsAfterAssignment = terminatingTokens.filter( - (token) => token.offset > firstAssignment.offset + token => token.offset > firstAssignment.offset ); if (!terminatorsAfterAssignment.length) { diff --git a/packages/jupyterlab-go-to-definition/src/languages/python.spec.ts b/packages/jupyterlab-go-to-definition/src/languages/python.spec.ts index bbea4c90a..e509a9660 100644 --- a/packages/jupyterlab-go-to-definition/src/languages/python.spec.ts +++ b/packages/jupyterlab-go-to-definition/src/languages/python.spec.ts @@ -145,7 +145,7 @@ describe('PythonAnalyzer', () => { 'x, (y, z) = a, [b, c]', 'x, (y, z) = a, (b, c)', '(x, y), z = (a, b), c', - '(x, y), z = [a, b], c', + '(x, y), z = [a, b], c' ]; for (let testCase of cases) { @@ -223,7 +223,7 @@ describe('PythonAnalyzer', () => { expect(queryWithSelectedToken(analyzer.guessReferencePath, 'y')).to.eql([ 'y.py', - 'y/__init__.py', + 'y/__init__.py' ]); }); @@ -278,7 +278,7 @@ describe('PythonAnalyzer', () => { expect(queryWithSelectedToken(analyzer.guessReferencePath, 'a')).to.eql([ 'a.py', - 'a/__init__.py', + 'a/__init__.py' ]); expect( diff --git a/packages/jupyterlab-go-to-definition/src/languages/python.ts b/packages/jupyterlab-go-to-definition/src/languages/python.ts index fc82f804a..0aee2019f 100644 --- a/packages/jupyterlab-go-to-definition/src/languages/python.ts +++ b/packages/jupyterlab-go-to-definition/src/languages/python.ts @@ -101,7 +101,7 @@ export class PythonAnalyzer extends LanguageWithOptionalSemicolons { this.isForLoopOrComprehension, this.isTupleUnpacking, this.isStoreMagic, - this.isRMagicOutput, + this.isRMagicOutput ]; // Matching standalone variable assignment: @@ -124,7 +124,7 @@ export class PythonAnalyzer extends LanguageWithOptionalSemicolons { return { is_switch: is_switch, - switch: is_switch ? candidate : null, + switch: is_switch ? candidate : null }; } diff --git a/packages/jupyterlab-go-to-definition/src/languages/r.spec.ts b/packages/jupyterlab-go-to-definition/src/languages/r.spec.ts index f1e607053..98f34bcab 100644 --- a/packages/jupyterlab-go-to-definition/src/languages/r.spec.ts +++ b/packages/jupyterlab-go-to-definition/src/languages/r.spec.ts @@ -22,7 +22,7 @@ describe('RAnalyzer', () => { ) { let tokens = tokensProvider.getTokens(); let matchedTokens = tokens.filter( - (token) => token.value === tokenName && token.type === tokenType + token => token.value === tokenName && token.type === tokenType ); let token = matchedTokens[tokenOccurrence - 1]; let tokenId = tokens.indexOf(token); @@ -108,7 +108,7 @@ describe('RAnalyzer', () => { .true; expect(analyzer.guessReferencePath(tokenNeighbourhood('.from'))).to.eql([ - 'other_resources.R', + 'other_resources.R' ]); }); }); diff --git a/packages/jupyterlab-go-to-definition/src/languages/r.ts b/packages/jupyterlab-go-to-definition/src/languages/r.ts index f2a289398..da3222e00 100644 --- a/packages/jupyterlab-go-to-definition/src/languages/r.ts +++ b/packages/jupyterlab-go-to-definition/src/languages/r.ts @@ -5,7 +5,7 @@ export class RAnalyzer extends LanguageWithOptionalSemicolons { definitionRules = [ this.isStandaloneAssignment, this.isImport, - this.isForLoop, + this.isForLoop ]; isAssignment(token: CodeEditor.IToken): boolean { diff --git a/packages/jupyterlab-go-to-definition/src/notebook_private.ts b/packages/jupyterlab-go-to-definition/src/notebook_private.ts index 4f24ce483..a924ae1ef 100644 --- a/packages/jupyterlab-go-to-definition/src/notebook_private.ts +++ b/packages/jupyterlab-go-to-definition/src/notebook_private.ts @@ -37,7 +37,7 @@ function _findCell(notebook: Notebook, node: HTMLElement): number { if (node.classList.contains(NB_CELL_CLASS)) { let i = ArrayExt.findFirstIndex( notebook.widgets, - (widget) => widget.node === node + widget => widget.node === node ); if (i !== -1) { return i; diff --git a/packages/jupyterlab-go-to-definition/src/testutils.ts b/packages/jupyterlab-go-to-definition/src/testutils.ts index a80fb745f..9ff5e98b5 100644 --- a/packages/jupyterlab-go-to-definition/src/testutils.ts +++ b/packages/jupyterlab-go-to-definition/src/testutils.ts @@ -9,7 +9,7 @@ export function matchToken( tokenType = 'variable' ): CodeEditor.IToken { let matchedTokens = tokens.filter( - (token) => token.value === tokenName && token.type === tokenType + token => token.value === tokenName && token.type === tokenType ); return matchedTokens[tokenOccurrence - 1]; } diff --git a/packages/jupyterlab-lsp/jest.config.js b/packages/jupyterlab-lsp/jest.config.js index 70f0eb525..63b50d5ac 100644 --- a/packages/jupyterlab-lsp/jest.config.js +++ b/packages/jupyterlab-lsp/jest.config.js @@ -7,7 +7,7 @@ const reuseFromUpstream = [ 'reporters', 'setupFiles', 'setupFilesAfterEnv', - 'testPathIgnorePatterns', + 'testPathIgnorePatterns' ]; let local = { @@ -16,9 +16,9 @@ let local = { transform: { '\\.(ts|tsx)?$': 'ts-jest', '\\.(js|jsx)?$': './transform.js', - '\\.svg$': 'jest-raw-loader', + '\\.svg$': 'jest-raw-loader' }, - transformIgnorePatterns: ['/node_modules/(?!(@jupyterlab/.*)/)'], + transformIgnorePatterns: ['/node_modules/(?!(@jupyterlab/.*)/)'] }; for (const option of reuseFromUpstream) { diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/cm_adapter.spec.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/cm_adapter.spec.ts index 29c1a860b..811f272db 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/cm_adapter.spec.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/cm_adapter.spec.ts @@ -3,7 +3,7 @@ import { CodeMirrorAdapter } from './cm_adapter'; import { IJupyterLabComponentsManager, - StatusMessage, + StatusMessage } from '../jupyterlab/jl_adapter'; import { IRootPosition } from '../../positioning'; import * as CodeMirror from 'codemirror'; diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts index bfe2db0de..7f9b5feea 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.spec.ts @@ -2,7 +2,7 @@ import { expect } from 'chai'; import { CodeMirrorAdapter } from './cm_adapter'; import { IJupyterLabComponentsManager, - StatusMessage, + StatusMessage } from '../jupyterlab/jl_adapter'; import { CodeMirrorLSPFeature } from './feature'; import { @@ -13,7 +13,7 @@ import { NotebookFeatureTestEnvironment, python_notebook_metadata, showAllCells, - synchronize_content, + synchronize_content } from './testutils'; import * as lsProtocol from 'vscode-languageserver-protocol'; import * as nbformat from '@jupyterlab/nbformat'; @@ -43,54 +43,54 @@ const js_partial_edits = [ range: { start: { line: 0, - character: 9, + character: 9 }, end: { line: 0, - character: 12, - }, + character: 12 + } }, - newText: 'fib2', + newText: 'fib2' }, { range: { start: { line: 1, - character: 15, + character: 15 }, end: { line: 1, - character: 18, - }, + character: 18 + } }, - newText: 'fib2', + newText: 'fib2' }, { range: { start: { line: 1, - character: 24, + character: 24 }, end: { line: 1, - character: 27, - }, + character: 27 + } }, - newText: 'fib2', + newText: 'fib2' }, { range: { start: { line: 4, - character: 0, + character: 0 }, end: { line: 4, - character: 3, - }, + character: 3 + } }, - newText: 'fib2', - }, + newText: 'fib2' + } ]; describe('Feature', () => { @@ -162,12 +162,12 @@ describe('Feature', () => { { range: { start: { line: 0, character: 0 }, - end: { line: 1, character: 0 }, + end: { line: 1, character: 0 } }, - newText: 'changed bar', - } as lsProtocol.TextEdit, - ], - }, + newText: 'changed bar' + } as lsProtocol.TextEdit + ] + } }); let raw_value = environment.ce_editor.doc.getValue(); expect(raw_value).to.be.equal('changed bar'); @@ -182,7 +182,7 @@ describe('Feature', () => { await adapter.updateAfterChange(); let result = await feature.do_apply_edit({ - changes: { ['file://' + environment.path()]: js_partial_edits }, + changes: { ['file://' + environment.path()]: js_partial_edits } }); let raw_value = environment.ce_editor.doc.getValue(); expect(raw_value).to.be.equal(js_fib2_code); @@ -229,9 +229,9 @@ describe('Feature', () => { let test_notebook = { cells: [ code_cell(['def a_function():\n', ' pass']), - code_cell(['x = a_function()']), + code_cell(['x = a_function()']) ], - metadata: python_notebook_metadata, + metadata: python_notebook_metadata } as nbformat.INotebookContent; let notebook = environment.notebook; @@ -255,12 +255,12 @@ describe('Feature', () => { { range: { start: { line: 0, character: 0 }, - end: { line: 5, character: 0 }, + end: { line: 5, character: 0 } }, - newText: new_virtual_source, - } as lsProtocol.TextEdit, - ], - }, + newText: new_virtual_source + } as lsProtocol.TextEdit + ] + } }); await synchronizeContent(); @@ -285,9 +285,9 @@ describe('Feature', () => { let test_notebook = { cells: [ code_cell(['x = %ls\n', 'print(x)']), - code_cell(['%%python\n', 'y = x\n', 'print(x)']), + code_cell(['%%python\n', 'y = x\n', 'print(x)']) ], - metadata: python_notebook_metadata, + metadata: python_notebook_metadata } as nbformat.INotebookContent; let notebook = environment.notebook; @@ -323,12 +323,12 @@ print(x)""") { range: { start: { line: 0, character: 0 }, - end: { line: 6, character: 10 }, + end: { line: 6, character: 10 } }, - newText: new_virtual_source, - } as lsProtocol.TextEdit, - ], - }, + newText: new_virtual_source + } as lsProtocol.TextEdit + ] + } }); await synchronizeContent(); expect(main_document.value).to.be.equal(new_virtual_source); diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.ts index b28361acc..c22c11139 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/feature.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/feature.ts @@ -4,11 +4,11 @@ import { IEditorPosition, IRootPosition, IVirtualPosition, - offset_at_position, + offset_at_position } from '../../positioning'; import { IJupyterLabComponentsManager, - StatusMessage, + StatusMessage } from '../jupyterlab/jl_adapter'; /// // this appears to break when @types/node is around @@ -23,7 +23,7 @@ import { ILSPConnection } from '../../tokens'; export enum CommandEntryPoint { CellContextMenu, - FileEditorContextMenu, + FileEditorContextMenu } function toDocumentChanges(changes: { @@ -33,7 +33,7 @@ function toDocumentChanges(changes: { for (let uri of Object.keys(changes)) { documentChanges.push({ textDocument: { uri }, - edits: changes[uri], + edits: changes[uri] } as LSP.TextDocumentEdit); } return documentChanges; @@ -215,7 +215,7 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { return { start: this.virtual_document.transform_virtual_to_editor(start), end: this.virtual_document.transform_virtual_to_editor(end), - editor: cm_editor, + editor: cm_editor }; } @@ -223,7 +223,7 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { return this.virtual_editor.coordsChar( { left: event.clientX, - top: event.clientY, + top: event.clientY }, 'window' ) as IRootPosition; @@ -292,7 +292,7 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { // Specs: documentChanges are preferred over changes let changes = workspaceEdit.documentChanges ? workspaceEdit.documentChanges.map( - (change) => change as LSP.TextDocumentEdit + change => change as LSP.TextDocumentEdit ) : toDocumentChanges(workspaceEdit.changes); let applied_changes = null; @@ -378,10 +378,10 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { start: { line: 0, character: 0 }, end: { line: lines.length - 1, - character: lines[lines.length - 1].length, - }, + character: lines[lines.length - 1].length + } }, - newText: new_text, + newText: new_text }; console.assert(this.is_whole_document_edit(edit)); } else { @@ -394,7 +394,7 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { appliedChanges: applied_changes, modifiedCells: edited_cells, wasGranular: !is_whole_document_edit, - errors: errors, + errors: errors }; } @@ -449,7 +449,7 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { { line: 0, ch: 0 }, { line: fragment_end.line - fragment_start.line + 1, - ch: 0, + ch: 0 } ); @@ -490,7 +490,7 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { line++; let editor = document.get_editor_at_virtual_line({ line: line, - ch: 0, + ch: 0 } as IVirtualPosition); if (editor === last_editor) { @@ -509,11 +509,11 @@ export abstract class CodeMirrorLSPFeature implements ILSPFeature { recently_replaced = true; fragment_start = { line: line, - ch: 0, + ch: 0 }; fragment_end = { line: line, - ch: 0, + ch: 0 }; last_editor = editor; } diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.spec.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.spec.ts index 9738a6579..67949b65b 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.spec.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.spec.ts @@ -3,14 +3,14 @@ import { TextMarker } from 'codemirror'; import { Diagnostics, diagnostics_panel, - message_without_code, + message_without_code } from './diagnostics'; import { code_cell, FileEditorFeatureTestEnvironment, NotebookFeatureTestEnvironment, set_notebook_content, - showAllCells, + showAllCells } from '../testutils'; import { CodeMirrorEditor } from '@jupyterlab/codemirror'; import { is_equal } from '../../../positioning'; @@ -53,11 +53,11 @@ describe('Diagnostics', () => { { range: { start: { line: 0, character: 1 }, - end: { line: 0, character: 4 }, + end: { line: 0, character: 4 } }, - message: 'Undefined symbol', - }, - ], + message: 'Undefined symbol' + } + ] }); let marks = env.ce_editor.editor.getDoc().getAllMarks(); @@ -86,7 +86,7 @@ describe('Diagnostics', () => { it('renders inspections across cells', async () => { set_notebook_content(env.notebook, [ code_cell(['x =1\n', 'test']), - code_cell([' ']), + code_cell([' ']) ]); showAllCells(env.notebook); await env.virtual_editor.update_documents(); @@ -101,55 +101,55 @@ describe('Diagnostics', () => { source: 'pyflakes', range: { start: { line: 1, character: 0 }, - end: { line: 1, character: 5 }, + end: { line: 1, character: 5 } }, message: "undefined name 'test'", - severity: 1, + severity: 1 }, { source: 'pycodestyle', range: { start: { line: 0, character: 3 }, - end: { line: 0, character: 5 }, + end: { line: 0, character: 5 } }, message: 'E225 missing whitespace around operator', code: 'E225', - severity: 2, + severity: 2 }, { source: 'pycodestyle', range: { start: { line: 4, character: 0 }, - end: { line: 4, character: 5 }, + end: { line: 4, character: 5 } }, message: 'W391 blank line at end of file', code: 'W391', - severity: 2, + severity: 2 }, { source: 'pycodestyle', range: { start: { line: 4, character: 0 }, - end: { line: 4, character: 5 }, + end: { line: 4, character: 5 } }, message: 'W293 blank line contains whitespace', code: 'W293', - severity: 2, + severity: 2 }, { source: 'mypy', range: { start: { line: 1, character: 0 }, - end: { line: 1, character: 4 }, + end: { line: 1, character: 4 } }, message: "Name 'test' is not defined", - severity: 1, - }, - ], + severity: 1 + } + ] }); let cm_editors = env.virtual_editor.notebook.widgets.map( - (cell) => (cell.editor as CodeMirrorEditor).editor + cell => (cell.editor as CodeMirrorEditor).editor ); let marks_cell_1 = cm_editors[0].getDoc().getAllMarks(); // test from mypy, test from pyflakes, whitespace around operator from pycodestyle @@ -180,7 +180,7 @@ describe('Diagnostics', () => { it('Works in foreign documents', async () => { set_notebook_content(env.notebook, [ code_cell(['valid = 0\n', 'code = 1', '# here']), - code_cell(['%%python\n', 'y = 1\n', 'x']), + code_cell(['%%python\n', 'y = 1\n', 'x']) ]); showAllCells(env.notebook); await env.virtual_editor.update_documents(); @@ -202,18 +202,18 @@ describe('Diagnostics', () => { source: 'pyflakes', range: { start: { line: 1, character: 0 }, - end: { line: 1, character: 2 }, + end: { line: 1, character: 2 } }, message: "undefined name 'x'", - severity: 1, - }, - ], + severity: 1 + } + ] } as lsProtocol.PublishDiagnosticsParams; // test guards against wrongly propagated responses: feature.handleDiagnostic(response); let cm_editors = env.virtual_editor.notebook.widgets.map( - (cell) => (cell.editor as CodeMirrorEditor).editor + cell => (cell.editor as CodeMirrorEditor).editor ); let marks_cell_1 = cm_editors[0].getDoc().getAllMarks(); @@ -247,12 +247,12 @@ describe('Diagnostics', () => { source: 'pyflakes', range: { start: { line: 5, character: 0 }, - end: { line: 5, character: 52 }, + end: { line: 5, character: 52 } }, message: "undefined name 'get_ipython'", - severity: 1, - }, - ], + severity: 1 + } + ] }); expect(marks_cell_1.length).to.equal(0); @@ -266,11 +266,11 @@ describe('message_without_code', () => { source: 'pycodestyle', range: { start: { line: 4, character: 0 }, - end: { line: 4, character: 5 }, + end: { line: 4, character: 5 } }, message: 'W293 blank line contains whitespace', code: 'W293', - severity: 2, + severity: 2 }); expect(message).to.be.equal('blank line contains whitespace'); }); @@ -280,13 +280,13 @@ describe('message_without_code', () => { source: 'pyflakes', range: { start: { line: 1, character: 0 }, - end: { line: 1, character: 2 }, + end: { line: 1, character: 2 } }, // a message starting from "undefined" is particularly tricky as // a lazy implementation can have a coercion of undefined "code" // to a string "undefined" which would wrongly chop off "undefined" from message message: "undefined name 'x'", - severity: 1, + severity: 1 }); expect(message).to.be.equal("undefined name 'x'"); }); diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.ts index 11a60bdfd..3a822322d 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics.ts @@ -13,7 +13,7 @@ import { DiagnosticsDatabase, DiagnosticsListing, IEditorDiagnostic, - diagnosticsIcon, + diagnosticsIcon } from './diagnostics_listing'; import { VirtualDocument } from '../../../virtual/document'; import { VirtualEditor } from '../../../virtual/editor'; @@ -93,28 +93,28 @@ export class Diagnostics extends CodeMirrorLSPFeature { if (!diagnostics_panel.is_registered) { let columns_menu = new Menu({ commands: app.commands }); app.commands.addCommand(CMD_COLUMN_VISIBILITY, { - execute: (args) => { + execute: args => { let column = get_column(args['name'] as string); column.is_visible = !column.is_visible; panel_widget.update(); }, - label: (args) => args['name'] as string, - isToggled: (args) => { + label: args => args['name'] as string, + isToggled: args => { let column = get_column(args['name'] as string); return column.is_visible; - }, + } }); columns_menu.title.label = 'Panel columns'; for (let column of panel_widget.content.columns) { columns_menu.addItem({ command: CMD_COLUMN_VISIBILITY, - args: { name: column.name }, + args: { name: column.name } }); } app.contextMenu.addItem({ selector: '.' + DIAGNOSTICS_LISTING_CLASS + ' th', submenu: columns_menu, - type: 'submenu', + type: 'submenu' }); diagnostics_panel.is_registered = true; } @@ -122,15 +122,15 @@ export class Diagnostics extends CodeMirrorLSPFeature { if (!panel_widget.isAttached) { app.shell.add(panel_widget, 'main', { ref: adapter.widget_id, - mode: 'split-bottom', + mode: 'split-bottom' }); } app.shell.activateById(panel_widget.id); }, is_enabled: () => true, label: 'Show diagnostics panel', - rank: 10, - }, + rank: 10 + } ]; register(): void { @@ -297,7 +297,7 @@ export class Diagnostics extends CodeMirrorLSPFeature { } let highest_severity_code = diagnostics - .map((diagnostic) => diagnostic.severity || default_severity) + .map(diagnostic => diagnostic.severity || default_severity) .sort()[0]; const severity = diagnosticSeverityNames[highest_severity_code]; @@ -317,7 +317,7 @@ export class Diagnostics extends CodeMirrorLSPFeature { let range_in_editor = { start: start_in_editor, - end: end_in_editor, + end: end_in_editor }; // what a pity there is no hash in the standard library... // we could use this: https://stackoverflow.com/a/7616484 though it may not be worth it: @@ -328,25 +328,25 @@ export class Diagnostics extends CodeMirrorLSPFeature { // obviously, the hash would prevent recovery of info from the key. let diagnostic_hash = JSON.stringify({ // diagnostics without ranges - diagnostics: diagnostics.map((diagnostic) => [ + diagnostics: diagnostics.map(diagnostic => [ diagnostic.severity, diagnostic.message, diagnostic.code, diagnostic.source, - diagnostic.relatedInformation, + diagnostic.relatedInformation ]), // the apparent marker position will change in the notebook with every line change for each marker // after the (inserted/removed) line - but such markers should not be invalidated, // i.e. the invalidation should be performed in the cell space, not in the notebook coordinate space, // thus we transform the coordinates and keep the cell id in the hash range: range_in_editor, - editor: this.unique_editor_ids.get(cm_editor), + editor: this.unique_editor_ids.get(cm_editor) }); for (let diagnostic of diagnostics) { diagnostics_list.push({ diagnostic, editor: cm_editor, - range: range_in_editor, + range: range_in_editor }); } @@ -355,9 +355,9 @@ export class Diagnostics extends CodeMirrorLSPFeature { if (!this.marked_diagnostics.has(diagnostic_hash)) { let options: CodeMirror.TextMarkerOptions = { title: diagnostics - .map((d) => d.message + (d.source ? ' (' + d.source + ')' : '')) + .map(d => d.message + (d.source ? ' (' + d.source + ')' : '')) .join('\n'), - className: 'cm-lsp-diagnostic cm-lsp-diagnostic-' + severity, + className: 'cm-lsp-diagnostic cm-lsp-diagnostic-' + severity }; let marker; try { diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics_listing.tsx b/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics_listing.tsx index e9b30159b..31cd02ec1 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics_listing.tsx +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/diagnostics_listing.tsx @@ -18,7 +18,7 @@ import diagnosticsSvg from '../../../../style/icons/diagnostics.svg'; export const diagnosticsIcon = new LabIcon({ name: 'lsp:diagnostics', - svgstr: diagnosticsSvg, + svgstr: diagnosticsSvg }); /** @@ -60,7 +60,7 @@ function DocumentLocator(props: { let { document, editor } = props; let ancestry = document.ancestry; let target_cell: Cell = null; - let breadcrumbs: any = ancestry.map((document) => { + let breadcrumbs: any = ancestry.map(document => { if (!document.parent) { let path = document.path; if ( @@ -201,45 +201,45 @@ export class DiagnosticsListing extends VDomRenderer { ), sort: (a, b) => a.document.id_path.localeCompare(b.document.id_path), - is_available: (context) => context.db.size > 1, + is_available: context => context.db.size > 1 }), new Column({ name: 'Message', - render_cell: (row) => { + render_cell: row => { let message = message_without_code(row.data.diagnostic); return {message}; }, sort: (a, b) => - a.data.diagnostic.message.localeCompare(b.data.diagnostic.message), + a.data.diagnostic.message.localeCompare(b.data.diagnostic.message) }), new Column({ name: 'Code', - render_cell: (row) => {row.data.diagnostic.code}, + render_cell: row => {row.data.diagnostic.code}, sort: (a, b) => (a.data.diagnostic.code + '').localeCompare( b.data.diagnostic.source + '' - ), + ) }), new Column({ name: 'Severity', // TODO: use default diagnostic severity - render_cell: (row) => ( + render_cell: row => ( {diagnosticSeverityNames[row.data.diagnostic.severity || 1]} ), sort: (a, b) => - a.data.diagnostic.severity > b.data.diagnostic.severity ? 1 : -1, + a.data.diagnostic.severity > b.data.diagnostic.severity ? 1 : -1 }), new Column({ name: 'Source', - render_cell: (row) => {row.data.diagnostic.source}, + render_cell: row => {row.data.diagnostic.source}, sort: (a, b) => - a.data.diagnostic.source.localeCompare(b.data.diagnostic.source), + a.data.diagnostic.source.localeCompare(b.data.diagnostic.source) }), new Column({ name: 'Cell', - render_cell: (row) => {row.cell_number}, + render_cell: row => {row.cell_number}, sort: (a, b) => a.cell_number > b.cell_number ? 1 @@ -248,11 +248,11 @@ export class DiagnosticsListing extends VDomRenderer { : a.data.range.start.ch > b.data.range.start.ch ? 1 : -1, - is_available: (context) => context.editor.has_cells, + is_available: context => context.editor.has_cells }), new Column({ name: 'Line:Ch', - render_cell: (row) => ( + render_cell: row => ( {row.data.range.start.line}:{row.data.range.start.ch} @@ -262,8 +262,8 @@ export class DiagnosticsListing extends VDomRenderer { ? 1 : a.data.range.start.ch > b.data.range.start.ch ? 1 - : -1, - }), + : -1 + }) ]; sort(key: string) { @@ -302,7 +302,7 @@ export class DiagnosticsListing extends VDomRenderer { key: virtual_document.uri + ',' + i, document: virtual_document, cell_number: cell_number, - editor: editor, + editor: editor } as IDiagnosticsRow; }); } @@ -310,24 +310,24 @@ export class DiagnosticsListing extends VDomRenderer { let flattened: IDiagnosticsRow[] = [].concat.apply([], by_document); let sorted_column = this.columns.filter( - (column) => column.name === this.sort_key + column => column.name === this.sort_key )[0]; let sorter = sorted_column.sort.bind(sorted_column); let sorted = flattened.sort((a, b) => sorter(a, b) * this.sort_direction); let context: IListingContext = { db: diagnostics_db, - editor: editor, + editor: editor }; let columns_to_display = this.columns.filter( - (column) => column.is_available(context) && column.is_visible + column => column.is_available(context) && column.is_visible ); - let elements = sorted.map((row) => { + let elements = sorted.map(row => { let cm_editor = row.data.editor; - let cells = columns_to_display.map((column) => + let cells = columns_to_display.map(column => column.render_cell(row, context) ); @@ -345,7 +345,7 @@ export class DiagnosticsListing extends VDomRenderer { ); }); - let columns_headers = columns_to_display.map((column) => + let columns_headers = columns_to_display.map(column => column.render_header(this) ); diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts index d4fdcd2eb..07dc0c9a9 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/highlights.ts @@ -17,7 +17,7 @@ export class Highlights extends CodeMirrorLSPFeature { connection.getReferences(virtual_position, document.document_info), is_enabled: ({ connection }) => connection.provides(LSP.Provider.REFERENCES), - label: 'Highlight references', + label: 'Highlight references' }, { id: 'highlight-type-definition', @@ -25,8 +25,8 @@ export class Highlights extends CodeMirrorLSPFeature { connection.getTypeDefinition(virtual_position, document.document_info), is_enabled: ({ connection }) => connection.provides(LSP.Provider.TYPE_DEFINITION), - label: 'Highlight type definition', - }, + label: 'Highlight type definition' + } ]; register(): void { diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/hover.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/hover.ts index bfaf51406..df66da7cd 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/hover.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/hover.ts @@ -2,7 +2,7 @@ import { getModifierState } from '../../../utils'; import { IRootPosition, is_equal, - IVirtualPosition, + IVirtualPosition } from '../../../positioning'; import * as LSP from '../../../lsp'; @@ -85,12 +85,12 @@ export class Hover extends CodeMirrorLSPFeature { // coerce to MarkedString object return { kind: 'plaintext', - value: content, + value: content }; } else { return { kind: 'markdown', - value: '```' + content.language + '\n' + content.value + '```', + value: '```' + content.language + '\n' + content.value + '```' }; } } @@ -225,17 +225,17 @@ export class Hover extends CodeMirrorLSPFeature { let start_in_root = { line: character.line, - ch: token.start, + ch: token.start } as IRootPosition; let end_in_root = { line: character.line, - ch: token.end, + ch: token.end } as IRootPosition; return { start: this.virtual_editor.root_position_to_editor(start_in_root), end: this.virtual_editor.root_position_to_editor(end_in_root), - editor: cm_editor, + editor: cm_editor }; } } diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts index 7dace3766..6c104f10e 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/jump_to.ts @@ -22,8 +22,8 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { }, is_enabled: ({ connection }) => connection.provides(LSP.Provider.DEFINITION), - label: 'Jump to definition', - }, + label: 'Jump to definition' + } ]; get jumper() { @@ -54,12 +54,12 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { if ('targetUri' in location_or_link) { return { uri: decodeURI(location_or_link.targetUri), - range: location_or_link.targetRange, + range: location_or_link.targetRange }; } else if ('uri' in location_or_link) { return { uri: decodeURI(location_or_link.uri), - range: location_or_link.range, + range: location_or_link.range }; } } @@ -92,9 +92,9 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { this.jumper.jump({ token: { offset: this.jumper.getOffset(editor_position_ce, editor_index), - value: '', + value: '' }, - index: editor_index, + index: editor_index }); } else { // otherwise there is no virtual document and we expect the returned position to be source position: @@ -115,7 +115,7 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { let jump_data = { editor_index: 0, line: source_position_ce.line, - column: source_position_ce.column, + column: source_position_ce.column }; // assume that we got a relative path to a file within the project @@ -124,7 +124,7 @@ export class JumpToDefinition extends CodeMirrorLSPFeature { try { await this.jumper.document_manager.services.contents.get(uri, { - content: false, + content: false }); this.jumper.global_jump({ uri, ...jump_data }, false); return; diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts index f467afe3f..fb5f7e9f1 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.spec.ts @@ -26,12 +26,12 @@ describe('Rename', () => { { range: { start: { line: 0, character: 0 }, - end: { line: 2, character: 0 }, + end: { line: 2, character: 0 } }, - newText: 'y = 1\n', - } as LSP.TextEdit, - ], - }, + newText: 'y = 1\n' + } as LSP.TextEdit + ] + } }); await env.virtual_editor.update_documents(); diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts index bcabb6b14..6e3b89c96 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/rename.ts @@ -3,7 +3,7 @@ import * as LSP from '../../../lsp'; import { CodeMirrorLSPFeature, IEditOutcome, - IFeatureCommand, + IFeatureCommand } from '../feature'; import { InputDialog } from '@jupyterlab/apputils'; import { Diagnostics } from './diagnostics'; @@ -20,7 +20,7 @@ export class Rename extends CodeMirrorLSPFeature { connection, virtual_position, document, - features, + features }) => { let old_value = document.getTokenAt(virtual_position).string; const rename_feature = features.get('Rename') as Rename; @@ -42,7 +42,7 @@ export class Rename extends CodeMirrorLSPFeature { const dialog_value = await InputDialog.getText({ title: 'Rename to', text: old_value, - okLabel: 'Rename', + okLabel: 'Rename' }); try { @@ -57,8 +57,8 @@ export class Rename extends CodeMirrorLSPFeature { } }, is_enabled: ({ connection }) => connection.provides(LSP.Provider.RENAME), - label: 'Rename symbol', - }, + label: 'Rename symbol' + } ]; async handleRename(workspaceEdit: LSP.WorkspaceEdit) { @@ -120,7 +120,7 @@ function ux_workaround_for_rope_limitation( let dire_python_errors = ( diagnostics_feature.diagnostics_db.all || [] ).filter( - (diagnostic) => + diagnostic => diagnostic.diagnostic.message.includes('invalid syntax') || diagnostic.diagnostic.message.includes('SyntaxError') || diagnostic.diagnostic.message.includes('IndentationError') @@ -132,7 +132,7 @@ function ux_workaround_for_rope_limitation( let dire_errors = [ ...new Set( - dire_python_errors.map((diagnostic) => { + dire_python_errors.map(diagnostic => { let message = diagnostic.diagnostic.message; let start = diagnostic.range.start; if (editor.has_cells) { @@ -147,7 +147,7 @@ function ux_workaround_for_rope_limitation( return `${message} at line ${start.line}`; } }) - ), + ) ].join(', '); return `Syntax error(s) prevent rename: ${dire_errors}`; } diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/features/signature.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/features/signature.ts index e24a64e0b..172a3a470 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/features/signature.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/features/signature.ts @@ -15,14 +15,14 @@ export class Signature extends CodeMirrorLSPFeature { ): LSP.MarkupContent { let signatures = new Array(); - response.signatures.forEach((item) => { + response.signatures.forEach(item => { let markdown = this.markdown_from_signature(item, language); signatures.push(markdown); }); return { kind: 'markdown', - value: signatures.join('\n\n'), + value: signatures.join('\n\n') }; } @@ -139,7 +139,7 @@ export class Signature extends CodeMirrorLSPFeature { this.connection .getSignatureHelp(virtual_position, this.virtual_document.document_info) - .then((help) => this.handleSignature(help)) + .then(help => this.handleSignature(help)) .catch(console.warn); } } diff --git a/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts b/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts index 5e2a2cff9..8f3ab5063 100644 --- a/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts +++ b/packages/jupyterlab-lsp/src/adapters/codemirror/testutils.ts @@ -1,7 +1,7 @@ import { UUID } from '@lumino/coreutils'; import { CodeMirrorEditor, - CodeMirrorEditorFactory, + CodeMirrorEditorFactory } from '@jupyterlab/codemirror'; import { VirtualEditor } from '../../virtual/editor'; import { CodeMirrorLSPFeature, ILSPFeatureConstructor } from './feature'; @@ -10,7 +10,7 @@ import { VirtualFileEditor } from '../../virtual/editors/file_editor'; import { FreeTooltip } from '../jupyterlab/components/free_tooltip'; import { IJupyterLabComponentsManager, - StatusMessage, + StatusMessage } from '../jupyterlab/jl_adapter'; import { VirtualEditorForNotebook } from '../../virtual/editors/notebook'; import { Notebook, NotebookModel } from '@jupyterlab/notebook'; @@ -99,7 +99,7 @@ export abstract class FeatureTestEnvironment } return new CommLSPConnection({ comm, - rootUri: rootUri || 'file:///unit-test', + rootUri: rootUri || 'file:///unit-test' }); } @@ -118,7 +118,7 @@ export abstract class FeatureTestEnvironment isDisposed: false, dispose: () => { // nothing yet - }, + } }; } @@ -143,16 +143,16 @@ export class FileEditorFeatureTestEnvironment extends FeatureTestEnvironment { this.ce_editor = factoryService.newDocumentEditor({ host: this.host, - model, + model }); const serviceManager = new MockServiceManager(); this.language_server_manager = new MockLanguageServerManager({ - serviceManager, + serviceManager }); this.connection_manager = new DocumentConnectionManager({ - language_server_manager: this.language_server_manager, + language_server_manager: this.language_server_manager }); this.init(); @@ -213,7 +213,7 @@ export function code_cell( source: source, metadata: metadata, execution_count: null, - outputs: [], + outputs: [] } as nbformat.ICodeCell; } @@ -224,7 +224,7 @@ export function set_notebook_content( ) { let test_notebook = { cells: cells, - metadata: metadata, + metadata: metadata } as nbformat.INotebookContent; notebook.model = new NotebookModel(); @@ -235,21 +235,21 @@ export const python_notebook_metadata = { kernelspec: { display_name: 'Python [default]', language: 'python', - name: 'python3', + name: 'python3' }, language_info: { codemirror_mode: { name: 'ipython', - version: 3, + version: 3 }, file_extension: '.py', mimetype: 'text/x-python', name: 'python', nbconvert_exporter: 'python', pygments_lexer: 'ipython3', - version: '3.5.2', + version: '3.5.2' }, - orig_nbformat: 4.1, + orig_nbformat: 4.1 } as nbformat.INotebookMetadata; export function showAllCells(notebook: Notebook) { @@ -266,7 +266,7 @@ export function getCellsJSON(notebook: Notebook) { for (let i = 0; i < notebook.model.cells.length; i++) { cells.push(notebook.model.cells.get(i)); } - return cells.map((cell) => cell.toJSON()); + return cells.map(cell => cell.toJSON()); } export async function synchronize_content( diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts index e5d13e5fb..84b64c858 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/completion.ts @@ -3,7 +3,7 @@ import { CompletionHandler, ContextConnector, KernelConnector, - CompletionConnector, + CompletionConnector } from '@jupyterlab/completer'; import { CodeEditor } from '@jupyterlab/codeeditor'; import { ReadonlyJSONObject } from '@lumino/coreutils'; @@ -16,7 +16,7 @@ import { CodeMirrorEditor } from '@jupyterlab/codemirror'; import { IEditorPosition, IRootPosition, - IVirtualPosition, + IVirtualPosition } from '../../../positioning'; import { Session } from '@jupyterlab/services'; import { ILSPConnection } from '../../../tokens'; @@ -164,7 +164,7 @@ export class LSPConnector extends DataConnector< virtual_cursor, document, position_in_token - ), + ) ]).then(([kernel, lsp]) => this.merge_replies(kernel, lsp, this._editor) ); @@ -179,7 +179,7 @@ export class LSPConnector extends DataConnector< virtual_cursor, document, position_in_token - ).catch((e) => { + ).catch(e => { console.warn('LSP: hint failed', e); return this.fallback_connector.fetch(request); }); @@ -213,7 +213,7 @@ export class LSPConnector extends DataConnector< { start, end, - text: token.value, + text: token.value }, document.document_info, typed_character, @@ -254,7 +254,7 @@ export class LSPConnector extends DataConnector< matches.push(text); types.push({ text: text, - type: match.kind ? completionItemKindNames[match.kind] : '', + type: match.kind ? completionItemKindNames[match.kind] : '' }); } @@ -272,8 +272,8 @@ export class LSPConnector extends DataConnector< end: token.offset + prefix.length, matches: matches, metadata: { - _jupyter_types_experimental: types, - }, + _jupyter_types_experimental: types + } }; } @@ -301,7 +301,7 @@ export class LSPConnector extends DataConnector< // Cache all the lsp matches in a memo. const memo = new Set(matches); const memo_types = new Map( - types.map((v) => [v.text, v.type]) + types.map(v => [v.text, v.type]) ); let prefix = ''; @@ -331,7 +331,7 @@ export class LSPConnector extends DataConnector< let kernel_types = kernel.metadata._jupyter_types_experimental as Array< IItemType >; - kernel_types.forEach((itemType) => { + kernel_types.forEach(itemType => { let text = remove_prefix(itemType.text); if (!memo_types.has(text)) { memo_types.set(text, itemType.type); @@ -343,7 +343,7 @@ export class LSPConnector extends DataConnector< } // Add each context match that is not in the memo to the result. - kernel.matches.forEach((match) => { + kernel.matches.forEach(match => { match = remove_prefix(match); if (!memo.has(match) && !priority_matches.has(match)) { matches.push(match); @@ -361,8 +361,8 @@ export class LSPConnector extends DataConnector< ...lsp, matches: final_matches, metadata: { - _jupyter_types_experimental: merged_types, - }, + _jupyter_types_experimental: merged_types + } }; } diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/free_tooltip.ts b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/free_tooltip.ts index ed29d4dd1..82927e2a3 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/free_tooltip.ts +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/free_tooltip.ts @@ -79,7 +79,7 @@ export class FreeTooltip extends Tooltip { node: this.node, offset: { horizontal: -1 * paddingLeft }, privilege: 'below', - style: style, + style: style }); } } diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/statusbar.tsx b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/statusbar.tsx index 3fddc3abf..ba9e0e6b3 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/statusbar.tsx +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/components/statusbar.tsx @@ -14,14 +14,14 @@ import { interactiveItem, Popup, showPopup, - TextItem, + TextItem } from '@jupyterlab/statusbar'; import { LabIcon, refreshIcon, runningIcon, - stopIcon, + stopIcon } from '@jupyterlab/ui-components'; import { JupyterLabWidgetAdapter } from '../jl_adapter'; import { collect_documents, VirtualDocument } from '../../../virtual/document'; @@ -71,8 +71,8 @@ class CollapsibleList extends React.Component< } handleClick = () => { - this.setState((state) => ({ - isCollapsed: !state.isCollapsed, + this.setState(state => ({ + isCollapsed: !state.isCollapsed })); }; @@ -111,7 +111,7 @@ class LSPPopup extends VDomRenderer { let key = -1; for (let [ session, - documents_by_language, + documents_by_language ] of this.model.documents_by_server.entries()) { key += 1; let documents_html = new Array(); @@ -272,7 +272,7 @@ export class LSPStatus extends VDomRenderer { this._popup = showPopup({ body: new LSPPopup(this.model), anchor: this, - align: 'left', + align: 'left' }); }; } @@ -290,7 +290,7 @@ export interface IStatus { function collect_languages(virtual_document: VirtualDocument): Set { let documents = collect_documents(virtual_document); return new Set( - [...documents].map((document) => document.language.toLocaleLowerCase()) + [...documents].map(document => document.language.toLocaleLowerCase()) ); } @@ -301,14 +301,14 @@ const iconByStatus: StatusIcon = { waiting: refreshIcon, initialized: runningIcon, initializing: refreshIcon, - connecting: refreshIcon, + connecting: refreshIcon }; const shortMessageByStatus: StatusMap = { waiting: 'Waiting...', initialized: 'Fully initialized', initializing: 'Partially initialized', - connecting: 'Connecting...', + connecting: 'Connecting...' }; export namespace LSPStatus { @@ -358,7 +358,7 @@ export namespace LSPStatus { for (let document of documents.values()) { let language = document.language.toLocaleLowerCase(); let servers = this.available_servers.filter( - (server) => server.spec.languages.indexOf(language) !== -1 + server => server.spec.languages.indexOf(language) !== -1 ); if (servers.length > 1) { console.warn('More than one server per language for' + language); @@ -386,7 +386,7 @@ export namespace LSPStatus { get servers_available_not_in_use(): Array { return this.available_servers.filter( - (server) => !this.is_server_running(server) + server => !this.is_server_running(server) ); } @@ -402,8 +402,7 @@ export namespace LSPStatus { get missing_languages(): Array { // TODO: false negative for r vs R? return [...this.detected_languages].filter( - (language) => - !this.supported_languages.has(language.toLocaleLowerCase()) + language => !this.supported_languages.has(language.toLocaleLowerCase()) ); } @@ -452,7 +451,7 @@ export namespace LSPStatus { connected_documents, initialized_documents, detected_documents: new Set([...detected_documents.values()]), - status, + status }; } @@ -496,7 +495,7 @@ export namespace LSPStatus { msg = `Fully connected, but ${uninitialized.size}/${ status.detected_documents.size } virtual document${plural} stuck uninitialized: ${[...uninitialized] - .map((document) => document.id_path) + .map(document => document.id_path) .join(', ')}`; } else { const unconnected = new Set(status.detected_documents); @@ -509,7 +508,7 @@ export namespace LSPStatus { } virtual document${plural} connected (${ status.open_connections.length } connections; waiting for: ${[...unconnected] - .map((document) => document.id_path) + .map(document => document.id_path) .join(', ')})`; } return msg; diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/file_editor.ts b/packages/jupyterlab-lsp/src/adapters/jupyterlab/file_editor.ts index 56c6a9a10..771d06ce3 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/file_editor.ts +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/file_editor.ts @@ -84,12 +84,12 @@ export class FileEditorAdapter extends JupyterLabWidgetAdapter { this.current_completion_connector = new LSPConnector({ editor: this.editor.editor, connections: this.connection_manager.connections, - virtual_editor: this.virtual_editor, + virtual_editor: this.virtual_editor }); this.completion_manager.register({ connector: this.current_completion_connector, editor: this.editor.editor, - parent: this.widget, + parent: this.widget }); } diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/jl_adapter.ts b/packages/jupyterlab-lsp/src/adapters/jupyterlab/jl_adapter.ts index 4dd56f723..ed8f58bdc 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/jl_adapter.ts +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/jl_adapter.ts @@ -29,7 +29,7 @@ import { JSONObject } from '@lumino/coreutils'; import { DocumentConnectionManager, IDocumentConnectionData, - ISocketConnectionOptions, + ISocketConnectionOptions } from '../../connection_manager'; import { Rename } from '../codemirror/features/rename'; @@ -40,7 +40,7 @@ export const lsp_features: Array = [ Hover, Signature, JumpToDefinition, - Rename, + Rename ]; export interface IJupyterLabComponentsManager { @@ -95,7 +95,7 @@ const mime_type_language_map: JSONObject = { 'text/x-rsrc': 'r', 'text/x-r-source': 'r', // currently there are no LSP servers for IPython we are aware of - 'text/x-ipython': 'python', + 'text/x-ipython': 'python' }; /** @@ -434,7 +434,7 @@ export abstract class JupyterLabWidgetAdapter let options: ISocketConnectionOptions = { virtual_document, language, - document_path: this.document_path, + document_path: this.document_path }; let connection = await this.connection_manager.connect(options); @@ -443,7 +443,7 @@ export abstract class JupyterLabWidgetAdapter return { connection, - virtual_document, + virtual_document }; } @@ -521,7 +521,7 @@ export abstract class JupyterLabWidgetAdapter return this.virtual_editor.coordsChar( { left: left, - top: top, + top: top }, 'window' ) as IRootPosition; @@ -540,7 +540,7 @@ export abstract class JupyterLabWidgetAdapter features: this.get_features(document), editor: this.virtual_editor, app: this.app, - adapter: this, + adapter: this }; } @@ -565,7 +565,7 @@ export abstract class JupyterLabWidgetAdapter editor: this.find_ce_editor(cm_editor), rendermime: this.rendermime_registry, position: PositionConverter.cm_to_ce(position), - moveToLineEnd: false, + moveToLineEnd: false }); Widget.attach(tooltip, document.body); this._tooltip = tooltip; diff --git a/packages/jupyterlab-lsp/src/adapters/jupyterlab/notebook.ts b/packages/jupyterlab-lsp/src/adapters/jupyterlab/notebook.ts index 97ce83dd2..ac77c0a56 100644 --- a/packages/jupyterlab-lsp/src/adapters/jupyterlab/notebook.ts +++ b/packages/jupyterlab-lsp/src/adapters/jupyterlab/notebook.ts @@ -172,7 +172,7 @@ export class NotebookAdapter extends JupyterLabWidgetAdapter { editor: cell.editor, connections: this.connection_manager.connections, virtual_editor: this.virtual_editor, - session: this.widget.sessionContext.session, + session: this.widget.sessionContext.session }); } @@ -188,7 +188,7 @@ export class NotebookAdapter extends JupyterLabWidgetAdapter { const handler = this.completion_manager.register({ connector: this.current_completion_connector, editor: cell.editor, - parent: this.widget, + parent: this.widget }); this.current_completion_handler = handler; this.widget.content.activeCellChanged.connect(this.on_completions, this); diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index 0869d3859..dbbb84a03 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -7,7 +7,7 @@ import { ICommRPC } from '.'; import { CommLSP } from './lsp'; import { registerServerCapability, - unregisterServerCapability, + unregisterServerCapability } from './server-capability-registration'; export class CommLSPConnection extends CommLSP implements ILSPConnection { @@ -86,56 +86,56 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { [ILSPConnection.LegacyEvents.ON_CLOSE, new Signal(this)], [ILSPConnection.LegacyEvents.ON_DIAGNOSTIC, new Signal(this)], [ILSPConnection.LegacyEvents.ON_LOGGING, new Signal(this)], - [ILSPConnection.LegacyEvents.ON_INITIALIZED, new Signal(this)], + [ILSPConnection.LegacyEvents.ON_INITIALIZED, new Signal(this)] ]); } protected initHandlers() { // logging this.onNotification(LSP.Method.SHOW_MESSAGE, { - onMsg: async (params) => { + onMsg: async params => { this._signals.get(ILSPConnection.LegacyEvents.ON_LOGGING).emit(params); - }, + } }); this.onRequest(LSP.Method.SHOW_MESSAGE_REQUEST, { - onMsg: async (params) => { + onMsg: async params => { this._signals.get(ILSPConnection.LegacyEvents.ON_LOGGING).emit(params); // nb: this seems important return null; - }, + } }); // diagnostics this.onNotification(LSP.Method.PUBLISH_DIAGNOSTICS, { - onMsg: async (params) => { + onMsg: async params => { this._signals .get(ILSPConnection.LegacyEvents.ON_DIAGNOSTIC) .emit(params); - }, + } }); // capabilities this.onRequest(LSP.Method.REGISTER_CAPABILITY, { - onMsg: async (params) => { + onMsg: async params => { for (const registration of params.registrations) { this.serverCapabilities = registerServerCapability( this.serverCapabilities, registration ); } - }, + } }); this.onRequest(LSP.Method.UNREGISTER_CAPABILITY, { - onMsg: async (params) => { + onMsg: async params => { for (const registration of params.unregisterations) { this.serverCapabilities = unregisterServerCapability( this.serverCapabilities, registration ); } - }, + } }); } @@ -162,13 +162,13 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { textDocument: { hover: { dynamicRegistration: true, - contentFormat: ['markdown', 'plaintext'], + contentFormat: ['markdown', 'plaintext'] }, synchronization: { dynamicRegistration: true, willSave: false, didSave: true, - willSaveWaitUntil: false, + willSaveWaitUntil: false }, completion: { dynamicRegistration: true, @@ -177,43 +177,43 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { commitCharactersSupport: true, documentationFormat: ['markdown', 'plaintext'], deprecatedSupport: false, - preselectSupport: false, + preselectSupport: false }, - contextSupport: false, + contextSupport: false }, signatureHelp: { dynamicRegistration: true, signatureInformation: { - documentationFormat: ['markdown', 'plaintext'], - }, + documentationFormat: ['markdown', 'plaintext'] + } }, declaration: { dynamicRegistration: true, - linkSupport: true, + linkSupport: true }, definition: { dynamicRegistration: true, - linkSupport: true, + linkSupport: true }, typeDefinition: { dynamicRegistration: true, - linkSupport: true, + linkSupport: true }, implementation: { dynamicRegistration: true, - linkSupport: true, - }, + linkSupport: true + } } as LSP.ClientCapabilities, workspace: { didChangeConfiguration: { - dynamicRegistration: true, - }, - } as LSP.WorkspaceClientCapabilities, + dynamicRegistration: true + } + } as LSP.WorkspaceClientCapabilities } as LSP.ClientCapabilities, initializationOptions: null, processId: null, rootUri: this._rootUri, - workspaceFolders: null, + workspaceFolders: null }; } @@ -233,13 +233,13 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { this.serverCapabilities = capabilities; - await this.notify(LSP.Method.INITIALIZED, null).catch((err) => + await this.notify(LSP.Method.INITIALIZED, null).catch(err => console.warn(err) ); await this.notify(LSP.Method.DID_CHANGE_CONFIGURATION, { - settings: {}, - }).catch((err) => console.warn(err)); + settings: {} + }).catch(err => console.warn(err)); while (this.documentsToOpen.length) { this.sendOpen(this.documentsToOpen.pop()); @@ -275,7 +275,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return; } - this.notify(LSP.Method.DID_CHANGE_CONFIGURATION, settings).catch((err) => + this.notify(LSP.Method.DID_CHANGE_CONFIGURATION, settings).catch(err => console.warn(err) ); } @@ -294,9 +294,9 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { uri: documentInfo.uri, languageId: documentInfo.languageId, text: documentInfo.text, - version: documentInfo.version, - }, - }).catch((err) => console.warn(err)); + version: documentInfo.version + } + }).catch(err => console.warn(err)); this.sendChange(documentInfo); } @@ -307,10 +307,10 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { this.notify(LSP.Method.DID_CHANGE, { textDocument: { uri: documentInfo.uri, - version: documentInfo.version, + version: documentInfo.version }, - contentChanges: [{ text: documentInfo.text }], - }).catch((err) => console.warn(err)); + contentChanges: [{ text: documentInfo.text }] + }).catch(err => console.warn(err)); documentInfo.version++; } @@ -338,13 +338,13 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { } return await this.request(LSP.Method.RENAME, { textDocument: { - uri: documentInfo.uri, + uri: documentInfo.uri }, position: { line: location.line, - character: location.ch, + character: location.ch }, - newName, + newName }); } @@ -358,12 +358,12 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return await this.request(LSP.Method.DOCUMENT_HIGHLIGHT, { textDocument: { - uri: documentInfo.uri, + uri: documentInfo.uri }, position: { line: location.line, - character: location.ch, - }, + character: location.ch + } }); } @@ -376,12 +376,12 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { } return await this.request(LSP.Method.HOVER, { textDocument: { - uri: documentInfo.uri, + uri: documentInfo.uri }, position: { line: location.line, - character: location.ch, - }, + character: location.ch + } }); } @@ -405,12 +405,12 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return await this.request(LSP.Method.SIGNATURE_HELP, { textDocument: { - uri: documentInfo.uri, + uri: documentInfo.uri }, position: { line: location.line, - character: location.ch, - }, + character: location.ch + } }); } @@ -427,16 +427,16 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { const items = await this.request(LSP.Method.COMPLETION, { textDocument: { - uri: documentInfo.uri, + uri: documentInfo.uri }, position: { line: location.line, - character: location.ch, + character: location.ch }, context: { triggerKind: triggerKind || LSP.CompletionTriggerKind.Invoked, - triggerCharacter, - }, + triggerCharacter + } }); if (Array.isArray(items)) { @@ -455,15 +455,15 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return this.request(LSP.Method.REFERENCES, { context: { - includeDeclaration: true, + includeDeclaration: true }, textDocument: { - uri: documentInfo.uri, + uri: documentInfo.uri }, position: { line: location.line, - character: location.ch, - }, + character: location.ch + } }); } @@ -475,10 +475,10 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { this.notify(LSP.Method.DID_SAVE, { textDocument: { uri: documentInfo.uri, - version: documentInfo.version, + version: documentInfo.version }, - text: documentInfo.text, - }).catch((err) => console.warn(err)); + text: documentInfo.text + }).catch(err => console.warn(err)); } async getTypeDefinition( @@ -491,12 +491,12 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return await this.request(LSP.Method.TYPE_DEFINITION, { textDocument: { - uri: documentInfo.uri, + uri: documentInfo.uri }, position: { line: location.line, - character: location.ch, - }, + character: location.ch + } }); } @@ -510,12 +510,12 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { return this.request(LSP.Method.DEFINITION, { textDocument: { - uri: documentInfo.uri, + uri: documentInfo.uri }, position: { line: location.line, - character: location.ch, - }, + character: location.ch + } }); } @@ -530,10 +530,10 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { this.notify(LSP.Method.DID_CHANGE, { textDocument: { uri: documentInfo.uri, - version: documentInfo.version, + version: documentInfo.version }, - contentChanges: changeEvents, - }).catch((err) => console.warn(err)); + contentChanges: changeEvents + }).catch(err => console.warn(err)); documentInfo.version++; } } diff --git a/packages/jupyterlab-lsp/src/comm/json-rpc.ts b/packages/jupyterlab-lsp/src/comm/json-rpc.ts index e9232cac1..7ad0ffcdb 100644 --- a/packages/jupyterlab-lsp/src/comm/json-rpc.ts +++ b/packages/jupyterlab-lsp/src/comm/json-rpc.ts @@ -166,17 +166,17 @@ export class CommRPC implements ICommRPC { if (handler != null) { handler .onMsg(params) - .then((result) => { + .then(result => { if (result != null) { this.comm.send({ jsonrpc: this._jsonrpc, id, result }); } }) - .catch((error) => { + .catch(error => { if (error?.rpcError) { this.comm.send({ jsonrpc: this._jsonrpc, id, - error: error.rpcError, + error: error.rpcError }); } else { throw error; diff --git a/packages/jupyterlab-lsp/src/command_manager.spec.ts b/packages/jupyterlab-lsp/src/command_manager.spec.ts index 0f1bbfcea..2c7d40777 100644 --- a/packages/jupyterlab-lsp/src/command_manager.spec.ts +++ b/packages/jupyterlab-lsp/src/command_manager.spec.ts @@ -2,7 +2,7 @@ import { expect } from 'chai'; import { ContextCommandManager, ICommandContext } from './command_manager'; import { CommandEntryPoint, - IFeatureCommand, + IFeatureCommand } from './adapters/codemirror/feature'; import { JupyterLabWidgetAdapter } from './adapters/jupyterlab/jl_adapter'; @@ -33,7 +33,7 @@ describe('ContextMenuCommandManager', () => { is_enabled: () => { return true; }, - label: 'Command', + label: 'Command' } as IFeatureCommand; describe('#get_rank()', () => { @@ -58,14 +58,14 @@ describe('ContextMenuCommandManager', () => { let rank = manager.get_rank({ ...base_command, rank: 1, - is_rank_relative: false, + is_rank_relative: false }); expect(rank).to.equal(1); rank = manager.get_rank({ ...base_command, rank: 1, - is_rank_relative: true, + is_rank_relative: true }); expect(rank).to.equal(1 / 5); }); diff --git a/packages/jupyterlab-lsp/src/command_manager.ts b/packages/jupyterlab-lsp/src/command_manager.ts index 2c57705b9..c1f368f9b 100644 --- a/packages/jupyterlab-lsp/src/command_manager.ts +++ b/packages/jupyterlab-lsp/src/command_manager.ts @@ -4,7 +4,7 @@ import { JupyterLabWidgetAdapter } from './adapters/jupyterlab/jl_adapter'; import { CommandEntryPoint, IFeatureCommand, - ILSPFeature, + ILSPFeature } from './adapters/codemirror/feature'; import { IEditorTracker } from '@jupyterlab/fileeditor'; import { FileEditorAdapter } from './adapters/jupyterlab/file_editor'; @@ -15,7 +15,7 @@ import { ILSPConnection } from './tokens'; import { IEditorPosition, IRootPosition, - IVirtualPosition, + IVirtualPosition } from './positioning'; import { VirtualEditor } from './virtual/editor'; import { PositionConverter } from './converter'; @@ -56,7 +56,7 @@ abstract class LSPCommandManager { execute: () => this.execute(cmd), isEnabled: () => this.is_enabled(cmd), isVisible: () => this.is_visible(cmd), - label: cmd.label, + label: cmd.label }); if (this.should_attach(cmd)) { @@ -103,7 +103,7 @@ export abstract class ContextCommandManager extends LSPCommandManager { this.app.contextMenu.addItem({ selector: this.selector, command: this.create_id(command), - rank: this.get_rank(command), + rank: this.get_rank(command) }); } @@ -111,7 +111,7 @@ export abstract class ContextCommandManager extends LSPCommandManager { this.app.contextMenu.addItem({ type: 'separator', selector: this.selector, - rank: this.rank_group + position_in_group, + rank: this.rank_group + position_in_group }); } diff --git a/packages/jupyterlab-lsp/src/connection_manager.ts b/packages/jupyterlab-lsp/src/connection_manager.ts index e55c28f21..8eca6642a 100644 --- a/packages/jupyterlab-lsp/src/connection_manager.ts +++ b/packages/jupyterlab-lsp/src/connection_manager.ts @@ -9,7 +9,7 @@ import { ILanguageServerManager, ILSPConnection, TLanguageServerConfigurations, - ILanguageServerConfiguration, + ILanguageServerConfiguration } from './tokens'; import { CommLSPConnection } from './comm/connection'; @@ -133,7 +133,7 @@ export class DocumentConnectionManager { ); const language_server_id = await this.language_server_manager.getServerId({ - language, + language }); // lazily load 1) the underlying library (1.5mb) and/or 2) a live WebSocket- @@ -166,7 +166,7 @@ export class DocumentConnectionManager { ); const serverSettings: ILanguageServerConfiguration = { - settings: parsedSettings, + settings: parsedSettings }; Private.updateServerConfiguration(language_server_id, serverSettings); @@ -202,8 +202,8 @@ export class DocumentConnectionManager { // } // }); - connection.on('serverInitialized', (capabilities) => { - this.forEachDocumentOfConnection(connection, (virtual_document) => { + connection.on('serverInitialized', capabilities => { + this.forEachDocumentOfConnection(connection, virtual_document => { // TODO: is this still neccessary, e.g. for status bar to update responsively? this.initialized.emit({ connection, virtual_document }); }); @@ -212,12 +212,12 @@ export class DocumentConnectionManager { this.updateServerConfigurations(this.initial_configurations); }); - connection.on('close', (closed_manually) => { + connection.on('close', closed_manually => { if (!closed_manually) { console.warn('LSP: Connection unexpectedly disconnected'); } else { console.warn('LSP: Connection closed'); - this.forEachDocumentOfConnection(connection, (virtual_document) => { + this.forEachDocumentOfConnection(connection, virtual_document => { this.closed.emit({ connection, virtual_document }); }); } @@ -230,7 +230,7 @@ export class DocumentConnectionManager { ) { for (const [ virtual_document_id_path, - a_connection, + a_connection ] of this.connections.entries()) { if (connection !== a_connection) { continue; @@ -262,7 +262,7 @@ export class DocumentConnectionManager { .then(() => { success = true; }) - .catch((e) => { + .catch(e => { console.warn(e); }); @@ -323,7 +323,7 @@ export namespace DocumentConnectionManager { return { base: baseUri, - document: URLExt.join(baseUri, virtual_document.uri), + document: URLExt.join(baseUri, virtual_document.uri) }; } diff --git a/packages/jupyterlab-lsp/src/extractors/defaults.spec.ts b/packages/jupyterlab-lsp/src/extractors/defaults.spec.ts index 49490987c..638ce3c40 100644 --- a/packages/jupyterlab-lsp/src/extractors/defaults.spec.ts +++ b/packages/jupyterlab-lsp/src/extractors/defaults.spec.ts @@ -13,7 +13,7 @@ describe('Default extractors', () => { function extract(code: string) { return document.extract_foreign_code(code, null, { line: 0, - column: 0, + column: 0 }); } diff --git a/packages/jupyterlab-lsp/src/extractors/defaults.ts b/packages/jupyterlab-lsp/src/extractors/defaults.ts index 81b70f9a5..b6832c02b 100644 --- a/packages/jupyterlab-lsp/src/extractors/defaults.ts +++ b/packages/jupyterlab-lsp/src/extractors/defaults.ts @@ -3,7 +3,7 @@ import { RegExpForeignCodeExtractor } from './regexp'; import { extract_r_args, rpy2_args_pattern, - RPY2_MAX_ARGS, + RPY2_MAX_ARGS } from '../magics/rpy2'; function rpy2_code_extractor(match: string, ...args: string[]) { @@ -20,7 +20,7 @@ function rpy2_code_extractor(match: string, ...args: string[]) { function rpy2_args(match: string, ...args: string[]) { let r = extract_r_args(args, -3); // define dummy input variables using empty data frames - let inputs = r.inputs.map((i) => i + ' <- data.frame();').join(' '); + let inputs = r.inputs.map(i => i + ' <- data.frame();').join(' '); let code = rpy2_code_extractor(match, ...args); if (inputs !== '' && code) { inputs += ' '; @@ -41,7 +41,7 @@ export let foreign_code_extractors: IForeignCodeExtractorsRegistry = { extract_to_foreign: rpy2_code_extractor, extract_arguments: rpy2_args, is_standalone: false, - file_extension: 'R', + file_extension: 'R' }), new RegExpForeignCodeExtractor({ language: 'r', @@ -49,7 +49,7 @@ export let foreign_code_extractors: IForeignCodeExtractorsRegistry = { extract_to_foreign: rpy2_code_extractor, extract_arguments: rpy2_args, is_standalone: false, - file_extension: 'R', + file_extension: 'R' }), // // Standalone IPython magics @@ -60,35 +60,35 @@ export let foreign_code_extractors: IForeignCodeExtractorsRegistry = { pattern: '^%%(python|python2|python3|pypy)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: true, - file_extension: 'py', + file_extension: 'py' }), new RegExpForeignCodeExtractor({ language: 'perl', pattern: '^%%(perl)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: true, - file_extension: 'pl', + file_extension: 'pl' }), new RegExpForeignCodeExtractor({ language: 'ruby', pattern: '^%%(ruby)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: true, - file_extension: 'rb', + file_extension: 'rb' }), new RegExpForeignCodeExtractor({ language: 'sh', pattern: '^%%(sh|bash)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: true, - file_extension: 'sh', + file_extension: 'sh' }), new RegExpForeignCodeExtractor({ language: 'html', pattern: '^%%(html --isolated)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: true, - file_extension: 'html', + file_extension: 'html' }), // // IPython magics producing continuous documents (non-standalone): @@ -98,28 +98,28 @@ export let foreign_code_extractors: IForeignCodeExtractorsRegistry = { pattern: '^%%(js|javascript)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: false, - file_extension: 'js', + file_extension: 'js' }), new RegExpForeignCodeExtractor({ language: 'html', pattern: '^%%(html)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: false, - file_extension: 'html', + file_extension: 'html' }), new RegExpForeignCodeExtractor({ language: 'latex', pattern: '^%%(latex)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: false, - file_extension: 'latex', + file_extension: 'latex' }), new RegExpForeignCodeExtractor({ language: 'markdown', pattern: '^%%(markdown)( .*?)?\n([^]*)', extract_to_foreign: '$3', is_standalone: false, - file_extension: 'md', - }), - ], + file_extension: 'md' + }) + ] }; diff --git a/packages/jupyterlab-lsp/src/extractors/regexp.spec.ts b/packages/jupyterlab-lsp/src/extractors/regexp.spec.ts index 82f8ae8de..6111433c7 100644 --- a/packages/jupyterlab-lsp/src/extractors/regexp.spec.ts +++ b/packages/jupyterlab-lsp/src/extractors/regexp.spec.ts @@ -30,7 +30,7 @@ describe('RegExpForeignCodeExtractor', () => { extract_to_foreign: '$2', keep_in_host: true, is_standalone: false, - file_extension: 'R', + file_extension: 'R' }); let r_line_extractor = new RegExpForeignCodeExtractor({ @@ -39,7 +39,7 @@ describe('RegExpForeignCodeExtractor', () => { extract_to_foreign: '$2', keep_in_host: true, is_standalone: false, - file_extension: 'R', + file_extension: 'R' }); describe('#has_foreign_code()', () => { @@ -84,7 +84,7 @@ describe('RegExpForeignCodeExtractor', () => { extract_to_foreign: '<$1$2>$3', keep_in_host: false, is_standalone: false, - file_extension: 'R', + file_extension: 'R' }); let results = html_extractor.extract_foreign_code(HTML_IN_PYTHON); @@ -121,7 +121,7 @@ describe('RegExpForeignCodeExtractor', () => { extract_to_foreign: '$2', keep_in_host: false, is_standalone: false, - file_extension: 'R', + file_extension: 'R' }); let results = extractor.extract_foreign_code(R_CELL_MAGIC_EXISTS); expect(results.length).to.equal(1); @@ -139,7 +139,7 @@ describe('RegExpForeignCodeExtractor', () => { extract_to_foreign: '$2', keep_in_host: false, is_standalone: false, - file_extension: 'R', + file_extension: 'R' }); let results = r_line_extractor.extract_foreign_code(R_LINE_MAGICS); diff --git a/packages/jupyterlab-lsp/src/extractors/regexp.ts b/packages/jupyterlab-lsp/src/extractors/regexp.ts index 6308e7f9c..385499112 100644 --- a/packages/jupyterlab-lsp/src/extractors/regexp.ts +++ b/packages/jupyterlab-lsp/src/extractors/regexp.ts @@ -87,7 +87,7 @@ export class RegExpForeignCodeExtractor implements IForeignCodeExtractor { host_code: host_code_fragment, foreign_code: prefix + foreign_code_fragment, range: { start, end }, - virtual_shift: position_shift, + virtual_shift: position_shift }); started_from = this.global_expression.lastIndex; @@ -100,7 +100,7 @@ export class RegExpForeignCodeExtractor implements IForeignCodeExtractor { host_code: final_host_code_fragment, foreign_code: null, range: null, - virtual_shift: null, + virtual_shift: null }); } diff --git a/packages/jupyterlab-lsp/src/index.ts b/packages/jupyterlab-lsp/src/index.ts index 7315614a8..baeb90950 100644 --- a/packages/jupyterlab-lsp/src/index.ts +++ b/packages/jupyterlab-lsp/src/index.ts @@ -1,7 +1,7 @@ import { ILabShell, JupyterFrontEnd, - JupyterFrontEndPlugin, + JupyterFrontEndPlugin } from '@jupyterlab/application'; import { ICommandPalette } from '@jupyterlab/apputils'; import { INotebookTracker, NotebookPanel } from '@jupyterlab/notebook'; @@ -30,20 +30,20 @@ import { file_editor_adapters, FileEditorCommandManager, notebook_adapters, - NotebookCommandManager, + NotebookCommandManager } from './command_manager'; import IPaths = JupyterFrontEnd.IPaths; import { IStatusBar } from '@jupyterlab/statusbar'; import { LSPStatus } from './adapters/jupyterlab/components/statusbar'; import { IDocumentWidget, - DocumentRegistry, + DocumentRegistry } from '@jupyterlab/docregistry/lib/registry'; import { DocumentConnectionManager } from './connection_manager'; import { TLanguageServerConfigurations } from './tokens'; const lsp_commands: Array = [].concat( - ...lsp_features.map((feature) => feature.commands) + ...lsp_features.map(feature => feature.commands) ); /** @@ -61,7 +61,7 @@ const plugin: JupyterFrontEndPlugin = { IRenderMimeRegistry, IPaths, ILabShell, - IStatusBar, + IStatusBar ], activate: ( app: JupyterFrontEnd, @@ -77,10 +77,10 @@ const plugin: JupyterFrontEndPlugin = { status_bar: IStatusBar ) => { const language_server_manager = new LanguageServerManager({ - serviceManager: app.serviceManager, + serviceManager: app.serviceManager }); const connection_manager = new DocumentConnectionManager({ - language_server_manager, + language_server_manager }); const status_bar_item = new LSPStatus(); @@ -116,7 +116,7 @@ const plugin: JupyterFrontEndPlugin = { labShell.currentWidget && (fileEditorTracker.currentWidget || notebookTracker.currentWidget) && (labShell.currentWidget === fileEditorTracker.currentWidget || - labShell.currentWidget === notebookTracker.currentWidget), + labShell.currentWidget === notebookTracker.currentWidget) } ); @@ -251,7 +251,7 @@ const plugin: JupyterFrontEndPlugin = { settingRegistry .load(plugin.id) - .then((settings) => { + .then(settings => { // Store the initial server settings, to be sent asynchronously // when the servers are initialized. connection_manager.initial_configurations = (settings.composite @@ -263,7 +263,7 @@ const plugin: JupyterFrontEndPlugin = { console.error(reason.message); }); }, - autoStart: true, + autoStart: true }; /** diff --git a/packages/jupyterlab-lsp/src/lsp.ts b/packages/jupyterlab-lsp/src/lsp.ts index 498726698..cd0b732b0 100644 --- a/packages/jupyterlab-lsp/src/lsp.ts +++ b/packages/jupyterlab-lsp/src/lsp.ts @@ -48,7 +48,7 @@ import type { MarkedString, SignatureInformation, Registration, - Unregistration, + Unregistration } from 'vscode-languageserver-protocol'; export type { @@ -92,7 +92,7 @@ export type { MarkedString, SignatureInformation, Registration, - Unregistration, + Unregistration }; namespace DiagnosticSeverity { @@ -226,7 +226,7 @@ export const Provider: { [key: string]: keyof ServerCapabilities } = { EXECUTE_COMMAND: 'executeCommandProvider', SELECTION_RANGE: 'selectionRangeProvider', WORKSPACE_SYMBOL: 'workspaceSymbolProvider', - WORKSPACE: 'workspace', + WORKSPACE: 'workspace' }; /** compound types for some responses */ diff --git a/packages/jupyterlab-lsp/src/magics/defaults.ts b/packages/jupyterlab-lsp/src/magics/defaults.ts index 0f0216f4b..b239f429b 100644 --- a/packages/jupyterlab-lsp/src/magics/defaults.ts +++ b/packages/jupyterlab-lsp/src/magics/defaults.ts @@ -4,7 +4,7 @@ import { rpy2_args_pattern, RPY2_MAX_ARGS, rpy2_reverse_pattern, - rpy2_reverse_replacement, + rpy2_reverse_replacement } from './rpy2'; function escape(x: string) { @@ -43,8 +43,8 @@ export const language_specific_overrides: IOverridesRegistry = { replacement: 'get_ipython().getoutput("$1$2")$3', reverse: { pattern: 'get_ipython\\(\\).getoutput\\("(.*?)"\\)(\n)?', - replacement: '!$1$2', - }, + replacement: '!$1$2' + } }, { // support up to 10 arguments @@ -58,8 +58,8 @@ export const language_specific_overrides: IOverridesRegistry = { replacement: (match, ...args) => { let r = rpy2_reverse_replacement(match, ...args); return '%R' + r.input + r.output + r.other + r.contents; - }, - }, + } + } }, { pattern: '%(\\S+)(.*)(\n)?', @@ -74,9 +74,9 @@ export const language_specific_overrides: IOverridesRegistry = { replacement: (match, name, args) => { args = unescape(args); return `%${name}${args}`; - }, - }, - }, + } + } + } ], // if a match for expresion in the key is found at the beginning of a cell, the entire cell is replaced with the value cell_magics: [ @@ -93,8 +93,8 @@ export const language_specific_overrides: IOverridesRegistry = { replacement: (match, ...args) => { let r = rpy2_reverse_replacement(match, ...args); return '%%R' + r.input + r.output + r.other + '\n' + r.contents; - }, - }, + } + } }, { pattern: '^%%(\\S+)(.*\n)([\\s\\S]*)', @@ -114,9 +114,9 @@ export const language_specific_overrides: IOverridesRegistry = { content = content.replace(/\\"\\"\\"/g, '"""'); line = unescape(line); return `%%${name}${line}\n${content}`; - }, - }, - }, - ], - }, + } + } + } + ] + } }; diff --git a/packages/jupyterlab-lsp/src/magics/maps.ts b/packages/jupyterlab-lsp/src/magics/maps.ts index 2834bbba5..59adb3843 100644 --- a/packages/jupyterlab-lsp/src/magics/maps.ts +++ b/packages/jupyterlab-lsp/src/magics/maps.ts @@ -2,7 +2,7 @@ import { IMagicOverride, IMagicOverrideRule, replacer } from './overrides'; abstract class MagicsMap extends Map { protected constructor(magic_overrides: IMagicOverrideRule[]) { - super(magic_overrides.map((m) => [new RegExp(m.pattern), m.replacement])); + super(magic_overrides.map(m => [new RegExp(m.pattern), m.replacement])); } abstract override_for(code: string): string | null; @@ -29,7 +29,7 @@ abstract class ReversibleMagicsMap extends MagicsMap { } get reverse(): MagicsMap { - return this.type(this.overrides.map((override) => override.reverse)); + return this.type(this.overrides.map(override => override.reverse)); } } @@ -67,7 +67,7 @@ export class LineMagicsMap extends ReversibleMagicsMap { } return { lines: substituted_lines, - skip_inspect: skip_inspect, + skip_inspect: skip_inspect }; } diff --git a/packages/jupyterlab-lsp/src/magics/rpy2.ts b/packages/jupyterlab-lsp/src/magics/rpy2.ts index b76a1284e..b187f78e8 100644 --- a/packages/jupyterlab-lsp/src/magics/rpy2.ts +++ b/packages/jupyterlab-lsp/src/magics/rpy2.ts @@ -21,7 +21,7 @@ export function extract_r_args(args: string[], content_position: number) { inputs: inputs, outputs: outputs, rest: args[args.length + content_position], - others: others, + others: others }; } @@ -42,7 +42,7 @@ export function parse_r_args(args: string[], content_position: number) { content: rest, others: others.join(' '), inputs: input_variables, - outputs: output_variables, + outputs: output_variables }; } @@ -92,7 +92,7 @@ export function rpy2_reverse_replacement(match: string, ...args: string[]) { input: input_variables, output: output_variables, other: other_args, - contents: contents, + contents: contents }; } diff --git a/packages/jupyterlab-lsp/src/manager.ts b/packages/jupyterlab-lsp/src/manager.ts index da65398d3..aaff2fef5 100644 --- a/packages/jupyterlab-lsp/src/manager.ts +++ b/packages/jupyterlab-lsp/src/manager.ts @@ -4,14 +4,14 @@ import { Signal } from '@lumino/signaling'; import { // ServerConnection, ServiceManager, - KernelMessage, + KernelMessage } from '@jupyterlab/services'; import { ILanguageServerManager, TSessionMap, TCommMap, - TLanguageServerId, + TLanguageServerId } from './tokens'; import * as SCHEMA from './_schema'; import { ISessionConnection } from '@jupyterlab/services/lib/session/session'; @@ -103,7 +103,7 @@ export class LanguageServerManager implements ILanguageServerManager { */ protected async _handleKernelChanged({ oldValue, - newValue, + newValue }: ISessionConnection.IKernelChangedArgs): Promise { if (this._controlComm) { this._controlComm = null; @@ -123,7 +123,7 @@ export class LanguageServerManager implements ILanguageServerManager { protected async getControlComm() { const kernel = await this.ensureKernel(); const commInfo = await kernel.requestCommInfo({ - target_name: COMM_TARGET, + target_name: COMM_TARGET }); if (commInfo.content.status !== 'ok') { @@ -164,7 +164,7 @@ export class LanguageServerManager implements ILanguageServerManager { this._comms.set(language_server_id, comm); - comm.onMsg = (msg) => { + comm.onMsg = msg => { console.warn('unitialized comm', comm, msg.content.data); }; @@ -187,7 +187,7 @@ export class LanguageServerManager implements ILanguageServerManager { path: '/', type: '', name: 'language-server', - kernel: { name: 'jupyter-lsp-kernel' }, + kernel: { name: 'jupyter-lsp-kernel' } } )); @@ -200,7 +200,7 @@ export class LanguageServerManager implements ILanguageServerManager { await this._handleKernelChanged({ name: 'kernel', oldValue: null, - newValue: kernel, + newValue: kernel }); } } diff --git a/packages/jupyterlab-lsp/src/utils.ts b/packages/jupyterlab-lsp/src/utils.ts index 52e6f0286..c40329cba 100644 --- a/packages/jupyterlab-lsp/src/utils.ts +++ b/packages/jupyterlab-lsp/src/utils.ts @@ -4,7 +4,7 @@ import { ReadonlyJSONObject, ReadonlyJSONValue } from '@lumino/coreutils'; const RE_PATH_ANCHOR = /^file:\/\/([^\/]+|\/[A-Z]:)/; export async function sleep(timeout: number) { - return new Promise((resolve) => { + return new Promise(resolve => { setTimeout(() => { resolve(); }, timeout); @@ -114,7 +114,7 @@ export function is_win_path(uri: string) { * lowercase the drive component of a URI */ export function normalize_win_path(uri: string) { - return uri.replace(RE_PATH_ANCHOR, (it) => it.toLowerCase()); + return uri.replace(RE_PATH_ANCHOR, it => it.toLowerCase()); } export function uri_to_contents_path(child: string, parent: string) { diff --git a/packages/jupyterlab-lsp/src/virtual/console.ts b/packages/jupyterlab-lsp/src/virtual/console.ts index cb7dc968c..0f2f884ac 100644 --- a/packages/jupyterlab-lsp/src/virtual/console.ts +++ b/packages/jupyterlab-lsp/src/virtual/console.ts @@ -26,7 +26,7 @@ export class FloatingConsole extends EditorLogConsole { private to_string(args: any[]) { return args - .map((arg) => '' + JSON.stringify(arg) + '') + .map(arg => '' + JSON.stringify(arg) + '') .join(', '); } diff --git a/packages/jupyterlab-lsp/src/virtual/document.spec.ts b/packages/jupyterlab-lsp/src/virtual/document.spec.ts index 06fa03eee..16830f250 100644 --- a/packages/jupyterlab-lsp/src/virtual/document.spec.ts +++ b/packages/jupyterlab-lsp/src/virtual/document.spec.ts @@ -14,11 +14,11 @@ print("plotted") describe('is_within_range', () => { let line_range: CodeEditor.IRange = { start: { line: 1, column: 0 }, - end: { line: 1, column: 10 }, + end: { line: 1, column: 10 } }; let long_range: CodeEditor.IRange = { start: { line: 0, column: 3 }, - end: { line: 1, column: 0 }, + end: { line: 1, column: 0 } }; it('recognizes positions within range in a single-line case', () => { expect(is_within_range({ line: 1, column: 0 }, line_range)).to.equal(true); @@ -60,10 +60,10 @@ describe('VirtualDocument', () => { it('joins non-standalone fragments together', () => { let { cell_code_kept, - foreign_document_map, + foreign_document_map } = document.extract_foreign_code(R_LINE_MAGICS, null, { line: 0, - column: 0, + column: 0 }); // note R cell lines are kept in code (keep_in_host=true) @@ -120,7 +120,7 @@ describe('VirtualDocument', () => { // The first (Python) line in the first block let editor_position = document.transform_virtual_to_editor({ line: 0, - ch: 0, + ch: 0 } as IVirtualPosition); expect(editor_position.line).to.equal(0); expect(editor_position.ch).to.equal(0); @@ -128,7 +128,7 @@ describe('VirtualDocument', () => { // The first (Python) line in the second block editor_position = document.transform_virtual_to_editor({ line: 4, - ch: 0, + ch: 0 } as IVirtualPosition); expect(editor_position.line).to.equal(0); expect(editor_position.ch).to.equal(0); @@ -138,7 +138,7 @@ describe('VirtualDocument', () => { init_document_with_Python_and_R(); let foreign_document = document.document_at_source_position({ line: 1, - ch: 3, + ch: 3 } as ISourcePosition); expect(foreign_document).to.not.equal(document); expect(foreign_document.value).to.equal( @@ -155,7 +155,7 @@ describe('VirtualDocument', () => { // targeting "s" in "1st", "1st" in "1st test line in R line magic" (first virtual line == line 0) let virtual_r_1_1 = { line: 0, - ch: 1, + ch: 1 } as IVirtualPosition; // For future reference, the code below would be wrong: @@ -174,7 +174,7 @@ describe('VirtualDocument', () => { // targeting 1 in "1st test line in R line magic 2" (4th virtual line == line 3) editor_position = foreign_document.transform_virtual_to_editor({ line: 3, - ch: 0, + ch: 0 } as IVirtualPosition); // 0th editor line is 'test line in Python 2\n' expect(editor_position.line).to.equal(1); @@ -186,7 +186,7 @@ describe('VirtualDocument', () => { // targeting "s" in "1st" in "1st test line in R line magic 3" (7th virtual line == line 6) editor_position = foreign_document.transform_virtual_to_editor({ line: 6, - ch: 36, + ch: 36 } as IVirtualPosition); // 0th editor line is 'test line in Python 3\n' expect(editor_position.line).to.equal(1); @@ -198,7 +198,7 @@ describe('VirtualDocument', () => { // targeting "s" in "1st" in "1st test line in R cell magic 2" (13th virtual lines == line 12) editor_position = foreign_document.transform_virtual_to_editor({ line: 12, - ch: 36, + ch: 36 } as IVirtualPosition); // 0th editor line is '%%R -i imported_variable\n' expect(editor_position.line).to.equal(1); diff --git a/packages/jupyterlab-lsp/src/virtual/document.ts b/packages/jupyterlab-lsp/src/virtual/document.ts index b38a5023c..03b57affb 100644 --- a/packages/jupyterlab-lsp/src/virtual/document.ts +++ b/packages/jupyterlab-lsp/src/virtual/document.ts @@ -1,6 +1,6 @@ import { IForeignCodeExtractor, - IForeignCodeExtractorsRegistry, + IForeignCodeExtractorsRegistry } from '../extractors/types'; import { CellMagicsMap, LineMagicsMap } from '../magics/maps'; import { IOverridesRegistry } from '../magics/overrides'; @@ -11,7 +11,7 @@ import * as CodeMirror from 'codemirror'; import { IEditorPosition, ISourcePosition, - IVirtualPosition, + IVirtualPosition } from '../positioning'; import IRange = CodeEditor.IRange; import { ILSPConnection } from '../tokens'; @@ -324,7 +324,7 @@ export class VirtualDocument { ); const context: IForeignContext = { foreign_document: document, - parent_host: this, + parent_host: this }; this.foreign_document_opened.emit(context); // pass through any future signals @@ -345,17 +345,17 @@ export class VirtualDocument { let source_position_ce: CodeEditor.IPosition = { line: source_line.editor_line, - column: position.ch, + column: position.ch }; for (let [ range, - { virtual_document: document }, + { virtual_document: document } ] of source_line.foreign_documents_map) { if (is_within_range(source_position_ce, range)) { let source_position_cm = { line: source_position_ce.line - range.start.line, - ch: source_position_ce.column - range.start.column, + ch: source_position_ce.column - range.start.column }; return document.document_at_source_position( @@ -372,7 +372,7 @@ export class VirtualDocument { let source_position_ce: CodeEditor.IPosition = { line: source_line.editor_line, - column: source_position.ch, + column: source_position.ch }; for (let [range] of source_line.foreign_documents_map) { if (is_within_range(source_position_ce, range)) { @@ -391,18 +391,18 @@ export class VirtualDocument { // position inside the cell (block) let source_position_ce: CodeEditor.IPosition = { line: source_line.editor_line, - column: source_position.ch, + column: source_position.ch }; for (let [ range, - { virtual_line, virtual_document: document }, + { virtual_line, virtual_document: document } ] of source_line.foreign_documents_map) { if (is_within_range(source_position_ce, range)) { // position inside the foreign document block let source_position_cm = { line: source_position_ce.line - range.start.line, - ch: source_position_ce.column - range.start.column, + ch: source_position_ce.column - range.start.column }; if (document.is_within_foreign(source_position_cm as ISourcePosition)) { return this.virtual_position_at_document( @@ -418,7 +418,7 @@ export class VirtualDocument { return { ch: source_position.ch, - line: virtual_line, + line: virtual_line } as IVirtualPosition; } @@ -477,11 +477,11 @@ export class VirtualDocument { foreign_document_map.set(result.range, { virtual_line: foreign_document.last_virtual_line, - virtual_document: foreign_document, + virtual_document: foreign_document }); let foreign_shift = { line: editor_shift.line + result.range.start.line, - column: editor_shift.column + result.range.start.column, + column: editor_shift.column + result.range.start.column }; foreign_document.append_code_block( result.foreign_code, @@ -537,14 +537,14 @@ export class VirtualDocument { let cell_override = this.cell_magics_overrides.override_for(cell_code); if (cell_override != null) { lines = cell_override.split('\n'); - skip_inspect = lines.map((l) => [this.id_path]); + skip_inspect = lines.map(l => [this.id_path]); } else { // otherwise, we replace line magics - if any let result = this.line_magics_overrides.replace_all( cell_code.split('\n') ); lines = result.lines; - skip_inspect = result.skip_inspect.map((skip) => + skip_inspect = result.skip_inspect.map(skip => skip ? [this.id_path] : [] ); } @@ -571,7 +571,7 @@ export class VirtualDocument { skip_inspect: skip_inspect[i], editor: cm_editor, // TODO this is incorrect, wont work if something was extracted - source_line: this.last_source_line + i, + source_line: this.last_source_line + i }); } for (let i = 0; i < source_cell_lines.length; i++) { @@ -580,13 +580,13 @@ export class VirtualDocument { editor_shift: { line: editor_shift.line - (virtual_shift?.line || 0), column: - i === 0 ? editor_shift.column - (virtual_shift?.column || 0) : 0, + i === 0 ? editor_shift.column - (virtual_shift?.column || 0) : 0 }, // TODO: move those to a new abstraction layer (DocumentBlock class) editor: cm_editor, foreign_documents_map: foreign_document_map, // TODO this is incorrect, wont work if something was extracted - virtual_line: this.last_virtual_line + i, + virtual_line: this.last_virtual_line + i }); } @@ -601,7 +601,7 @@ export class VirtualDocument { this.virtual_lines.set(this.last_virtual_line + i, { skip_inspect: [this.id_path], editor: cm_editor, - source_line: null, + source_line: null }); } @@ -633,7 +633,7 @@ export class VirtualDocument { console.log('LSP: closing document', document); this.foreign_document_closed.emit({ foreign_document: document, - parent_host: this, + parent_host: this }); // remove it from foreign documents list this.foreign_documents.delete(document.virtual_id); @@ -691,7 +691,7 @@ export class VirtualDocument { return { // only shift column in the line beginning the virtual document (first list of the editor in cell magics, but might be any line of editor in line magics!) ch: pos.ch + (editor_line === 0 ? editor_shift.column : 0), - line: editor_line + editor_shift.line, + line: editor_line + editor_shift.line // TODO or: // line: pos.line + editor_shift.line - this.first_line_of_the_block(editor) } as IEditorPosition; @@ -707,7 +707,7 @@ export class VirtualDocument { transform_virtual_to_source(position: IVirtualPosition): ISourcePosition { return { ch: position.ch, - line: this.virtual_lines.get(position.line).source_line, + line: this.virtual_lines.get(position.line).source_line } as ISourcePosition; } diff --git a/packages/jupyterlab-lsp/src/virtual/editor.spec.ts b/packages/jupyterlab-lsp/src/virtual/editor.spec.ts index e8ca89035..345f337b3 100644 --- a/packages/jupyterlab-lsp/src/virtual/editor.spec.ts +++ b/packages/jupyterlab-lsp/src/virtual/editor.spec.ts @@ -4,13 +4,13 @@ import { RegExpForeignCodeExtractor } from '../extractors/regexp'; import { IEditorPosition, IRootPosition, - IVirtualPosition, + IVirtualPosition } from '../positioning'; import * as CodeMirror from 'codemirror'; import { DocumentConnectionManager } from '../connection_manager'; import { MockLanguageServerManager, - MockServiceManager, + MockServiceManager } from '../adapters/codemirror/testutils'; class VirtualEditorImplementation extends VirtualEditor { @@ -53,15 +53,15 @@ describe('VirtualEditor', () => { pattern: '(^|\n)%R (.*)\n?', extract_to_foreign: '$2', is_standalone: false, - file_extension: 'R', + file_extension: 'R' }); const SERVICE_MANAGER = new MockServiceManager(); const LANGSERVER_MANAGER = new MockLanguageServerManager({ - serviceManager: SERVICE_MANAGER, + serviceManager: SERVICE_MANAGER }); const CONNECTION_MANAGER = new DocumentConnectionManager({ - language_server_manager: LANGSERVER_MANAGER, + language_server_manager: LANGSERVER_MANAGER }); const DEBUG = false; diff --git a/packages/jupyterlab-lsp/src/virtual/editor.ts b/packages/jupyterlab-lsp/src/virtual/editor.ts index 73df0b203..205aeca50 100644 --- a/packages/jupyterlab-lsp/src/virtual/editor.ts +++ b/packages/jupyterlab-lsp/src/virtual/editor.ts @@ -6,7 +6,7 @@ import { IEditorPosition, IRootPosition, ISourcePosition, - IVirtualPosition, + IVirtualPosition } from '../positioning'; import { until_ready } from '../utils'; import { Signal } from '@lumino/signaling'; @@ -71,7 +71,7 @@ export abstract class VirtualEditor implements CodeMirror.Editor { this.documents_updated.disconnect(this.on_updated, this); for (let [[eventName], wrapped_handler] of this._event_wrappers.entries()) { - this.forEveryBlockEditor((cm_editor) => { + this.forEveryBlockEditor(cm_editor => { cm_editor.off(eventName, wrapped_handler); }, false); } @@ -239,7 +239,7 @@ export abstract class VirtualEditor implements CodeMirror.Editor { }; this._event_wrappers.set([eventName, handler], wrapped_handler); - this.forEveryBlockEditor((cm_editor) => { + this.forEveryBlockEditor(cm_editor => { cm_editor.on(eventName, wrapped_handler); }); } @@ -247,7 +247,7 @@ export abstract class VirtualEditor implements CodeMirror.Editor { off(eventName: string, handler: CodeMirrorHandler, ...args: any[]): void { let wrapped_handler = this._event_wrappers.get([eventName, handler]); - this.forEveryBlockEditor((cm_editor) => { + this.forEveryBlockEditor(cm_editor => { cm_editor.off(eventName, wrapped_handler); }); } diff --git a/packages/jupyterlab-lsp/src/virtual/editors/file_editor.ts b/packages/jupyterlab-lsp/src/virtual/editors/file_editor.ts index 9d07717f9..1da9967c7 100644 --- a/packages/jupyterlab-lsp/src/virtual/editors/file_editor.ts +++ b/packages/jupyterlab-lsp/src/virtual/editors/file_editor.ts @@ -3,7 +3,7 @@ import * as CodeMirror from 'codemirror'; import { IEditorPosition, IRootPosition, - IVirtualPosition, + IVirtualPosition } from '../../positioning'; export class VirtualFileEditor extends VirtualEditor { @@ -32,7 +32,7 @@ export class VirtualFileEditor extends VirtualEditor { } else { return Reflect.get(target, prop, receiver); } - }, + } }; return new Proxy(this, handler); } diff --git a/packages/jupyterlab-lsp/src/virtual/editors/notebook.ts b/packages/jupyterlab-lsp/src/virtual/editors/notebook.ts index 38493f7ee..00578410c 100644 --- a/packages/jupyterlab-lsp/src/virtual/editors/notebook.ts +++ b/packages/jupyterlab-lsp/src/virtual/editors/notebook.ts @@ -8,7 +8,7 @@ import * as CodeMirror from 'codemirror'; import { IEditorPosition, IRootPosition, - IVirtualPosition, + IVirtualPosition } from '../../positioning'; // eslint-disable-next-line @typescript-eslint/ban-ts-ignore @@ -95,7 +95,7 @@ export class VirtualEditorForNotebook extends VirtualEditor { } else { return Reflect.get(target, prop, receiver); } - }, + } }); return this._proxy; } @@ -126,7 +126,7 @@ export class VirtualEditorForNotebook extends VirtualEditor { } return { ...(position as CodeMirror.Position), - line: position.line + shift, + line: position.line + shift } as IRootPosition; } @@ -145,7 +145,7 @@ export class VirtualEditorForNotebook extends VirtualEditor { public get_editor_index(position: IVirtualPosition): number { let cell = this.get_cell_at(position); - return this.notebook.widgets.findIndex((other_cell) => { + return this.notebook.widgets.findIndex(other_cell => { return cell === other_cell; }); } @@ -318,7 +318,7 @@ export class VirtualEditorForNotebook extends VirtualEditor { return; } - this.notebook.widgets.every((cell) => { + this.notebook.widgets.every(cell => { let codemirror_editor = cell.editor as CodeMirrorEditor; let cm_editor = codemirror_editor.editor; this.cm_editor_to_cell.set(cm_editor, cell); @@ -358,7 +358,7 @@ export class VirtualEditorForNotebook extends VirtualEditor { } addEventListener(type: string, listener: EventListenerOrEventListenerObject) { - this.forEveryBlockEditor((cm_editor) => { + this.forEveryBlockEditor(cm_editor => { cm_editor.getWrapperElement().addEventListener(type, listener); }); } @@ -403,7 +403,7 @@ export class VirtualEditorForNotebook extends VirtualEditor { if (cell_editor === cm_editor) { return { cell_id: i, - cell: cell, + cell: cell }; } } diff --git a/yarn.lock b/yarn.lock index 4c6b8f3bd..56829817d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -935,41 +935,41 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" -"@jupyterlab/application@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-2.0.0.tgz#55c59b3e903caca6d5f0ce95f6ca6f3fbd3fdd8e" - integrity sha512-CeN4jwshV/gQqa8dG9R3YlSH2KD3UGsJY+ptGdZqxoq44DNl1xX4gYfNW6VweTJRXPD2uozUywpXu01b1h6KTQ== +"@jupyterlab/application@2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-2.1.2.tgz#b69df3fc89fa586b984e4bbc9112f0cd6e703c96" + integrity sha512-b32BZGAt+LZWdzEN/c6RbmMxpbRxAIPrrl1HvopykWMdxMkFK9Y2g/qptg9Q2Lfo/t9WA/+i4NDOTUXFDB/9oQ== dependencies: "@fortawesome/fontawesome-free" "^5.12.0" - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/docregistry" "^2.0.0" - "@jupyterlab/rendermime" "^2.0.0" - "@jupyterlab/rendermime-interfaces" "^2.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/statedb" "^2.0.0" - "@jupyterlab/ui-components" "^2.0.0" + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/docregistry" "^2.1.2" + "@jupyterlab/rendermime" "^2.1.1" + "@jupyterlab/rendermime-interfaces" "^2.1.0" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/statedb" "^2.1.0" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/application" "^1.8.4" "@lumino/commands" "^1.10.1" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" "@lumino/messaging" "^1.3.3" - "@lumino/polling" "^1.0.4" + "@lumino/polling" "^1.1.1" "@lumino/properties" "^1.1.6" "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/apputils@^2.0.0", "@jupyterlab/apputils@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-2.0.0.tgz#bef09118a2af3273a3725fca33e58d48520cbcb7" - integrity sha512-4dehZZ3XADFbHIWTDxeqxURRCPvC+bDzGmrk8qfBy9kHnvB5A4+X87BobJpnNRjZKx8LxyABddFBQewLfDynkg== - dependencies: - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/settingregistry" "^2.0.0" - "@jupyterlab/statedb" "^2.0.0" - "@jupyterlab/ui-components" "^2.0.0" +"@jupyterlab/apputils@2", "@jupyterlab/apputils@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-2.1.1.tgz#069dc8214261c01c9e2ef58209137430649d4c01" + integrity sha512-orGzvW2S1k/FjW42dhygq8XJZbQRBTsNXXKFWsqewSn9sNTd3irKjDEwS3Ilce1w+LsS/t3H03xCnsOYPu8LSQ== + dependencies: + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/settingregistry" "^2.1.0" + "@jupyterlab/statedb" "^2.1.0" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/commands" "^1.10.1" "@lumino/coreutils" "^1.4.2" @@ -985,35 +985,35 @@ react-dom "~16.9.0" sanitize-html "~1.20.1" -"@jupyterlab/attachments@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/attachments/-/attachments-2.0.0.tgz#5e376bd1981245cdfce68ef4a03b422fa193403b" - integrity sha512-NczM6NBDXOnRr17cuxVy4J0sD5cSb0AsGbTCIxIb32ZiYqqKMgI/Q9TkxjEC1A/713KH6kn3A526KOqCxcaF1Q== +"@jupyterlab/attachments@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/attachments/-/attachments-2.1.1.tgz#bee9964fe1acee39f9d3da489f5484fb24f91ff8" + integrity sha512-fyL198rn0SUDz+eViIVVR1Yyf89omK+FItxRtN0hRFVPSJedbLrdHn0YiuaqBNiyGyi9D8rvGOiQ/f5iy7Sotg== dependencies: - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/rendermime" "^2.0.0" - "@jupyterlab/rendermime-interfaces" "^2.0.0" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/rendermime" "^2.1.1" + "@jupyterlab/rendermime-interfaces" "^2.1.0" "@lumino/disposable" "^1.3.5" "@lumino/signaling" "^1.3.5" -"@jupyterlab/cells@^2.0.0", "@jupyterlab/cells@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/cells/-/cells-2.0.0.tgz#552670008c3c645b541aefa1d3eb3e53a32bbee3" - integrity sha512-7AfcuaUhhX+84qnAySy8nGHmUKUvecyA3cLk60Ctqit53wjTKip10qE/6vObVQgmal0isaKUuQ5XldQA/F6yBw== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/attachments" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/codemirror" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/filebrowser" "^2.0.0" - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/outputarea" "^2.0.0" - "@jupyterlab/rendermime" "^2.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/ui-components" "^2.0.0" +"@jupyterlab/cells@2", "@jupyterlab/cells@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupyterlab/cells/-/cells-2.1.2.tgz#6d913e50cf434aa2eeed554c4337bdf17e6111bf" + integrity sha512-Ndi2rq/9+BaZZ3PCJC55BTSesiuZXkCXfkLhoTVMj/ifJ1YVP5CNwyEr0h2YGqNl8R9oKtHFA9CRUei49Qv3DA== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/attachments" "^2.1.1" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/codemirror" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/filebrowser" "^2.1.2" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/outputarea" "^2.1.1" + "@jupyterlab/rendermime" "^2.1.1" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/dragdrop" "^1.5.1" @@ -1023,15 +1023,15 @@ "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/codeeditor@^2.0.0", "@jupyterlab/codeeditor@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-2.0.0.tgz#8c7cf3d71d18617eb609a954881abe707ad7dd4e" - integrity sha512-4aqupSmOFRdmUOZxv3xxRoXAQK6oEdTjyMNFe2N/gXVdWZOBfAezSt1c8sN4xrVG3BkUDmzaRHAXhgTWNp8LHw== +"@jupyterlab/codeeditor@2", "@jupyterlab/codeeditor@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-2.1.1.tgz#3adb55e2d1a5c8792d064ce5ed16e7738e16a362" + integrity sha512-vdAxFHEv76cnAFlmaDQcnrKrtEODodYqZrckg0S/mKS7eR8QZQmnf52d8PjdQabtcEKpVY25pQu2/+UkrLKRig== dependencies: - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/ui-components" "^2.0.0" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" "@lumino/dragdrop" "^1.5.1" @@ -1039,37 +1039,37 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/codemirror@^2.0.0", "@jupyterlab/codemirror@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-2.0.0.tgz#1a9fc92d736f7fa84ed021b4b0ed7337fbd569ba" - integrity sha512-6BbdS5tCKhxVc9GtkVQuE5bxuJDZD2kTVUlLHaO7UsRWpU9PHkVEn8D0PmA8ilZw3DmVN/xsSCwGkTuT0CTKMQ== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/statusbar" "^2.0.0" +"@jupyterlab/codemirror@2", "@jupyterlab/codemirror@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-2.1.1.tgz#156b489438a2d5fd840b9797b464b4c3514cec75" + integrity sha512-f4cvsM5d7GI5se6Y/L7aCnYlm/XxrYXnK4ehZeqS3m8haRWyijwJW2BxOi0QJd2F25nv68adIuXVzV5581eTGQ== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/statusbar" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/commands" "^1.10.1" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" - "@lumino/polling" "^1.0.4" + "@lumino/polling" "^1.1.1" "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" codemirror "~5.49.2" react "~16.9.0" -"@jupyterlab/completer@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/completer/-/completer-2.0.0.tgz#0324eb71c74766dee793794e6fa566589fb76cc7" - integrity sha512-x+3J82zSLufZiAVs9YG+UfyJG9r5An6o2/zYR5OdNubGej11ep1xEKSrctoL9m9Ps5JLUCLPIf+5X6oYq7MMEw== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/statedb" "^2.0.0" +"@jupyterlab/completer@2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/completer/-/completer-2.1.1.tgz#4d4f8b0f91590a23d4496f42477a2eeb1029b2d9" + integrity sha512-XHpeqrPNTbMyBhIHj0nQTyfJSpVe7+CYWrTOJO/33pGkc5qZpfegSgI22G697zNNf6WwVg61aYRN67ItZn3tOg== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/statedb" "^2.1.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1078,10 +1078,10 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/coreutils@^4.0.0", "@jupyterlab/coreutils@~4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-4.0.0.tgz#84ea7cdeedc23989f05d1993ee705d4a0b883f71" - integrity sha512-f7wvlmJSYiSsjzTjD2wI6iXbt8hPYjWlM0l7J2ULbI7E1tsPmpn14mo/kmF/Ft0cLYXP9ApkItU5QrXB5BNoXA== +"@jupyterlab/coreutils@4", "@jupyterlab/coreutils@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-4.1.0.tgz#ac6cee0558b7c15786e0a210ac3b40a86aec8e84" + integrity sha512-2lcXHd8ZCUuqoiZYK9Xs4HHX46jkdtsdmfgvgg/3odFXFMdv4Twau7fqr9URgRl5JYszPPpItGJIorAVipVfNQ== dependencies: "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1091,16 +1091,16 @@ path-posix "~1.0.0" url-parse "~1.4.7" -"@jupyterlab/docmanager@^2.0.0", "@jupyterlab/docmanager@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-2.0.0.tgz#efb58e5fc4237ede0634275179e88edc7bf53c1f" - integrity sha512-r8qYuatNOn0wI5DVxvxOrZSm7+XNpb1MaWtL4nHhyRSUkxFjIapMcbZMYTFa8b9W2CI9gKFRGvL1WS+l0SvWoQ== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/docregistry" "^2.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/statusbar" "^2.0.0" +"@jupyterlab/docmanager@2", "@jupyterlab/docmanager@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-2.1.2.tgz#036f6a2ef61eacee2a4d4f2e9bc85e225a85f343" + integrity sha512-Yh5qlgR9RsPrMvYMPsLe+ZF8/1pRp6AzvHC9pR9j6DvuDkkO5DRyfJooCuQUoYYLGGEVYvioqj049M0rWT8gxw== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/docregistry" "^2.1.2" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/statusbar" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1110,20 +1110,20 @@ "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/docregistry@^2.0.0", "@jupyterlab/docregistry@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-2.0.0.tgz#bfc4996978253f72f4059667d82ae50f51ed27fa" - integrity sha512-JhsSNMv9Mgzc2M9qm3OmTi26qtS7jF/s6WexWx5LBpt0B4uekJoq1ro3B96xInO4Z6XqByuKW4ozRXqrHyea6w== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/codemirror" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/rendermime" "^2.0.0" - "@jupyterlab/rendermime-interfaces" "^2.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/ui-components" "^2.0.0" +"@jupyterlab/docregistry@2", "@jupyterlab/docregistry@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-2.1.2.tgz#62fa7bb2e345ca5005d5781a5481be6213964614" + integrity sha512-nUTkijFXmyaro0V4lLb9PudkdwNa/IyzNggW9Y8VJtDX4uCuwYznWspQ6w6HeXTfV2NSLfNvJ4n3gASxUmaCPQ== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/codemirror" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/rendermime" "^2.1.1" + "@jupyterlab/rendermime-interfaces" "^2.1.0" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1131,68 +1131,68 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/filebrowser@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-2.0.0.tgz#05703f62744ce9ed48ff03f2779b540214a408ba" - integrity sha512-vvG3OE/yY8VAlsyojLv329+rpXzchhmWWWtj77ld5mhKUG8167A4mDHpeiMO71uVGTWSB9FGYnYmKPi//U3Owg== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/docmanager" "^2.0.0" - "@jupyterlab/docregistry" "^2.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/statedb" "^2.0.0" - "@jupyterlab/statusbar" "^2.0.0" - "@jupyterlab/ui-components" "^2.0.0" +"@jupyterlab/filebrowser@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-2.1.2.tgz#b024ce334412a8c8f52be0c346f5fe678373bebe" + integrity sha512-6rEntHke97REIkuZ8kxcvxmui1HIsMmhNNYkQ2aOyhu206YBSvq6+tQ0PzITfhr/UnPJbIhIfWZ+/jZZBSpTqA== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/docmanager" "^2.1.2" + "@jupyterlab/docregistry" "^2.1.2" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/statedb" "^2.1.0" + "@jupyterlab/statusbar" "^2.1.1" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" "@lumino/domutils" "^1.1.7" "@lumino/dragdrop" "^1.5.1" "@lumino/messaging" "^1.3.3" - "@lumino/polling" "^1.0.4" + "@lumino/polling" "^1.1.1" "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/fileeditor@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/fileeditor/-/fileeditor-2.0.0.tgz#aad6860e196f35e3efeefc7928abc5c2e0994859" - integrity sha512-T/0ORfT1no+bIzTLQrRKN9/KT3dLORlFgv5gPwRmTtFEvj1Yp51zss3ecu2PXBTnOdOE9vUeUv8vZRpLwE4fAw== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/docregistry" "^2.0.0" - "@jupyterlab/statusbar" "^2.0.0" - "@jupyterlab/ui-components" "^2.0.0" +"@jupyterlab/fileeditor@2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupyterlab/fileeditor/-/fileeditor-2.1.2.tgz#f0208493c22b6288c0d7b7fea93b4ad11a66f87d" + integrity sha512-YG7F5X/DqNJyqwSjwa/s8SXuVFzesW4lnTcwhA4M24B1YyUxr6lz2dIS8+FlTFmOqwVWCd1v8jy6IAd9LgDXAw== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/docregistry" "^2.1.2" + "@jupyterlab/statusbar" "^2.1.1" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/coreutils" "^1.4.2" "@lumino/messaging" "^1.3.3" "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/nbformat@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-2.0.0.tgz#166ed71277681d270e139ebe33477ca26a22973a" - integrity sha512-TumS7G1fAeLhw07BtGdMUcuAaYEKGYXYov0LK/tDx99jSfdqMMrS+o4SlQKoZhZ/+xUwesmA/8L4dMkbYdyGgg== +"@jupyterlab/nbformat@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-2.1.0.tgz#cff41b91c647d32c30f1587ff12e6a3ee6d91ba0" + integrity sha512-4NybeAvLTpGLZguARl6g4ENGzIPYwUaU+CZpcH2H0vq47oXrzRrZMsiWq5Dufrn0sIhOD9CINHXJ9mxIYzj/JA== dependencies: "@lumino/coreutils" "^1.4.2" -"@jupyterlab/notebook@^2.0.0", "@jupyterlab/notebook@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/notebook/-/notebook-2.0.0.tgz#c627afec08032e347277dd335b2205e99d7450cc" - integrity sha512-BOkrxCIydBgY70Sf4P+zkCiQfw7J5OEzZ+LfONxqMU/pY1vmKMiiDxOfex7RX8NfBG/P52zwlFRuXzPMWiAzxw== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/cells" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/docregistry" "^2.0.0" - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/rendermime" "^2.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/statusbar" "^2.0.0" - "@jupyterlab/ui-components" "^2.0.0" +"@jupyterlab/notebook@2", "@jupyterlab/notebook@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupyterlab/notebook/-/notebook-2.1.2.tgz#b41c9769e3427fb53f5932845fc526b939f1f255" + integrity sha512-zJXLlG6+GqZaH1uEcYk3bj7qXj6p/TJwlhezyeZVdS9/KsVfiozmO+2S79O5ZEEXKuzSujdqmjLyR3sJAhr+PA== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/cells" "^2.1.2" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/docregistry" "^2.1.2" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/rendermime" "^2.1.1" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/statusbar" "^2.1.1" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/domutils" "^1.1.7" @@ -1204,10 +1204,10 @@ "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/observables@^3.0.0", "@jupyterlab/observables@~3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-3.0.0.tgz#e6f2a772f7778817d727a1f6c52a926cbe84a138" - integrity sha512-RN7wlWPzc5JGkRWBLWx+dbgAci0s3zOh2hixnUjxiokYvKARPmHUtLxxFa4YQUSm2iV0ynHYZwCImLtc0YAWsw== +"@jupyterlab/observables@3", "@jupyterlab/observables@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-3.1.0.tgz#8c6e95ea8354802d84c081e0e120892314289806" + integrity sha512-4Dx6o5BzHVdWFFUPTAaeUkGngJfy5Qm0N37lbh/2NcWz1NZuuC6SrgREW3zcLSKwxdwkMAXo6En0T1UyrCFjTA== dependencies: "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" @@ -1215,17 +1215,17 @@ "@lumino/messaging" "^1.3.3" "@lumino/signaling" "^1.3.5" -"@jupyterlab/outputarea@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/outputarea/-/outputarea-2.0.0.tgz#f5cb9966d7522786c6c0dda6a9665a138e6c31e4" - integrity sha512-5/7vnKnjIg31dvfdnN24fTSsFO8oZalpVLLhssEAJhqEWUQY65owKZLmLPG0mGEKlpkMMSb82CE4TsInOsOtfQ== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/rendermime" "^2.0.0" - "@jupyterlab/rendermime-interfaces" "^2.0.0" - "@jupyterlab/services" "^5.0.0" +"@jupyterlab/outputarea@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/outputarea/-/outputarea-2.1.1.tgz#72abeb796ebac7a4df3ccdb163ef8c40f740c591" + integrity sha512-MtJpK+1D4A1nW2tMQ4+Y/4URiFecnGnPbNtIv8kYjuJ/ApXbvBLzCKusgEuo5GFo2RpN/lHpaEcG2TqaXZd0XQ== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/rendermime" "^2.1.1" + "@jupyterlab/rendermime-interfaces" "^2.1.0" + "@jupyterlab/services" "^5.1.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1234,26 +1234,26 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/rendermime-interfaces@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-2.0.0.tgz#b421cd4c9ff0b91f54bef11f3114d5ef1f597092" - integrity sha512-1BRpxIppycFmJtV5kq+BVcQT80k3PflMmDsSITXFUspX20SiEktjZcSfzUplTwkp6pSXlr2QCLTV2rQE00dGNA== +"@jupyterlab/rendermime-interfaces@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-2.1.0.tgz#936fec0248a70c0e64c8bf292e9719fbc5d3516c" + integrity sha512-WZsFan4snRX3UkxMer4dOpsQcV1R3Two8wT4wLM7nrIHuwHxuruiIlzpmsZENaKfF6C5SKP5esi6DSfjs5y90g== dependencies: "@lumino/coreutils" "^1.4.2" "@lumino/widgets" "^1.11.1" -"@jupyterlab/rendermime@^2.0.0", "@jupyterlab/rendermime@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-2.0.0.tgz#749ed288461ed67a96c38c823f7bcf254dc594b6" - integrity sha512-vOCOwuG1UEqOnCZ/1U/cr5CUde+Wle6+OS1dRLu9srat57NpCysYcxXEih17d7dBTZnOQIXU5k2xAV8iDOHemA== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/codemirror" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/rendermime-interfaces" "^2.0.0" - "@jupyterlab/services" "^5.0.0" +"@jupyterlab/rendermime@2", "@jupyterlab/rendermime@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-2.1.1.tgz#da466027ff18be611aa133a96dfd75fc11045989" + integrity sha512-ePzpX8w2DcI/pYy7ew8cgBqUzoAhOvBpy4iMRTntbiUYhLqSipsOg71jW1h8U/fSwyvZMr/3d5keBHeJTP4U/w== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/codemirror" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/rendermime-interfaces" "^2.1.0" + "@jupyterlab/services" "^5.1.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/messaging" "^1.3.3" @@ -1262,30 +1262,30 @@ lodash.escape "^4.0.1" marked "^0.8.0" -"@jupyterlab/services@^5.0.0", "@jupyterlab/services@~5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-5.0.0.tgz#677ce58f759e470031ab89a0f5989dc5aac307ca" - integrity sha512-j1dJ1FdoZu+VhCz+v3SqOHVTp4r1kDTS3QCbjllMYbA0nuq1a1M4FfdlZKPuiKbAHWN3nZe2boDqFRAOhLCPuQ== - dependencies: - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/observables" "^3.0.0" - "@jupyterlab/settingregistry" "^2.0.0" - "@jupyterlab/statedb" "^2.0.0" +"@jupyterlab/services@5", "@jupyterlab/services@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-5.1.0.tgz#891607d87cbe9413219cfe4ceb9905193b85b657" + integrity sha512-xhtDvAdgw+sWNSbpkExCYyJbHxlwhiZYqc07+zhOdYrpxO19k/ZmmyNoYCyfvNLcMQ4JWVBoczI714u1QNLj4w== + dependencies: + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/observables" "^3.1.0" + "@jupyterlab/settingregistry" "^2.1.0" + "@jupyterlab/statedb" "^2.1.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" - "@lumino/polling" "^1.0.4" + "@lumino/polling" "^1.1.1" "@lumino/signaling" "^1.3.5" node-fetch "^2.6.0" ws "^7.2.0" -"@jupyterlab/settingregistry@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-2.0.0.tgz#1d4068be65ad0d061d4114076c4ef3616a286e75" - integrity sha512-wetj5bCdvyRaNqadgzUwMK0+IjcbOfK9m1pb4MEK4nQfxfXOJ5eKjH7R99yNK4GgE5z8cDQ/UtyJZn/QdfHfZQ== +"@jupyterlab/settingregistry@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-2.1.0.tgz#6be3c56b58657cdbff5320670ed17ddf0119db32" + integrity sha512-FkWKcg+7d4iWz/u7am3kmRWraJiVE5uidvzADE/PfByGhYQnwJ0ROjyJwaf/GFJv7yJZewxyr7Q4JXVuoIZwPg== dependencies: - "@jupyterlab/statedb" "^2.0.0" + "@jupyterlab/statedb" "^2.1.0" "@lumino/commands" "^1.10.1" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1293,10 +1293,10 @@ ajv "^6.10.2" json5 "^2.1.1" -"@jupyterlab/statedb@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-2.0.0.tgz#91fe8447fd7328de9f34031594f6251ba0f1d9ed" - integrity sha512-bBK0urGUVMlid8Gq7lQbap35hU91VbOR8aQbZFkK4pha+9y5CsiP4eFoVTLlPY+9soTV2bROAzXLnROD3O9Ndg== +"@jupyterlab/statedb@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-2.1.0.tgz#3b1889417563bb855bb3fd64fb8d2f45f5df7013" + integrity sha512-3L0NGJvNeI2KeU6jrY97riEmxcKtHb1WRxbMU9ORIppR5Sb5x3K3qErep7r9qu0lV7XH9Zb95uMukX4bgj2GaA== dependencies: "@lumino/commands" "^1.10.1" "@lumino/coreutils" "^1.4.2" @@ -1304,40 +1304,41 @@ "@lumino/properties" "^1.1.6" "@lumino/signaling" "^1.3.5" -"@jupyterlab/statusbar@^2.0.0", "@jupyterlab/statusbar@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-2.0.0.tgz#8b0421774917cc5ec067970b6ed99e0031fc7702" - integrity sha512-JFRecSRZmTW1gnrmYnNMY0kyNA5XMJZDs6HFbREQm21AKMzOZJ3/2c2SoXos5wR664rz5Rb+Uo37xdmuAVvDgg== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/coreutils" "^4.0.0" - "@jupyterlab/services" "^5.0.0" - "@jupyterlab/ui-components" "^2.0.0" +"@jupyterlab/statusbar@2", "@jupyterlab/statusbar@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-2.1.1.tgz#ccf4672d0ca0911e8dd02788aaa8c8cb0e63f1c0" + integrity sha512-Q9/7wXy0m2/g+bn6KHUC7s0YQCbjArZ4G+OuCesHJpj0XiU8yuJki7uiRvTfxdrmB6w2/oU+YykLojS1NYgOWA== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/services" "^5.1.0" + "@jupyterlab/ui-components" "^2.1.1" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" "@lumino/messaging" "^1.3.3" - "@lumino/polling" "^1.0.4" + "@lumino/polling" "^1.1.1" "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" + csstype "~2.6.9" react "~16.9.0" typestyle "^2.0.4" -"@jupyterlab/testutils@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/testutils/-/testutils-2.0.0.tgz#f35ea7ccbbc1b34229e17c2b3411519b530c9767" - integrity sha512-QvDsetETNsmD0GTDyAkJztI9rW9LptuuF9g59wK8mPdOoOJYX8war5g6b/mlsl32qBKaKuuus8jKWLwc4OksyA== - dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/cells" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/codemirror" "^2.0.0" - "@jupyterlab/docregistry" "^2.0.0" - "@jupyterlab/nbformat" "^2.0.0" - "@jupyterlab/notebook" "^2.0.0" - "@jupyterlab/rendermime" "^2.0.0" - "@jupyterlab/services" "^5.0.0" +"@jupyterlab/testutils@2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupyterlab/testutils/-/testutils-2.1.2.tgz#d9dcec61a35ecf3c8b95f7bacb9875b76eb011f0" + integrity sha512-vEGJYRnZCGQm/lNaQ0ilYBp88bvJsjK+pzLWCCHP2hcJzftIp91FmeoC5mN2O6RCXcqhLSGNkXCBEKwvnY7E4w== + dependencies: + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/cells" "^2.1.2" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/codemirror" "^2.1.1" + "@jupyterlab/docregistry" "^2.1.2" + "@jupyterlab/nbformat" "^2.1.0" + "@jupyterlab/notebook" "^2.1.2" + "@jupyterlab/rendermime" "^2.1.1" + "@jupyterlab/services" "^5.1.0" "@lumino/coreutils" "^1.4.2" "@lumino/signaling" "^1.3.5" fs-extra "^8.1.0" @@ -1348,27 +1349,27 @@ path "~0.12.7" simulate-event "~1.4.0" -"@jupyterlab/tooltip@~2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/tooltip/-/tooltip-2.0.0.tgz#eb7c10ef0f23e6d4c8f91fbe1d5a6f04b8d7d0b0" - integrity sha512-K6gjiCaMNVkcV59J5/8C/etE94FoYfu0cWeCNXwQb1vXHYW+ejHzq2zBKPCCAZWvfLZ9/U8RLyiCzDsFMbipcw== +"@jupyterlab/tooltip@2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/tooltip/-/tooltip-2.1.1.tgz#517b58883961143a2388aa93bbfe9a1d6506e420" + integrity sha512-Tzhb/6IbsMErW2hmqD7LWIWsSrsFh45tRtRG5+spMe1RATfkMOek7Xhvc99d2mDLggDct4u6eiJG8VSUetKrFw== dependencies: - "@jupyterlab/apputils" "^2.0.0" - "@jupyterlab/codeeditor" "^2.0.0" - "@jupyterlab/rendermime" "^2.0.0" - "@jupyterlab/services" "^5.0.0" + "@jupyterlab/apputils" "^2.1.1" + "@jupyterlab/codeeditor" "^2.1.1" + "@jupyterlab/rendermime" "^2.1.1" + "@jupyterlab/services" "^5.1.0" "@lumino/coreutils" "^1.4.2" "@lumino/messaging" "^1.3.3" "@lumino/widgets" "^1.11.1" -"@jupyterlab/ui-components@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-2.0.0.tgz#aedceddc4265fac7d545091413dd3f71273fc14c" - integrity sha512-SNojvg37k/jwL5C6lwvZu/+Oge3DbGnnkNmKiExp2YwauVDSSMV88EIkWGo6t1nZPBDHB0j8lb9SEMs+9j59zQ== +"@jupyterlab/ui-components@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-2.1.1.tgz#ace65290ebe3e913e85e574d5d94f3c9f55d244c" + integrity sha512-VZWtJud5XXzSTK6HJebbqg7TkJmvuRk5K+F30u+pgX7PStC4j8OFD7IXCreLWmrvxoVvEXd4GFH2sVng5cgsQA== dependencies: "@blueprintjs/core" "^3.22.2" "@blueprintjs/select" "^3.11.2" - "@jupyterlab/coreutils" "^4.0.0" + "@jupyterlab/coreutils" "^4.1.0" "@lumino/coreutils" "^1.4.2" "@lumino/signaling" "^1.3.5" "@lumino/virtualdom" "^1.6.1" @@ -1378,14 +1379,13 @@ typestyle "^2.0.4" "@krassowski/jupyterlab-lsp@file:packages/jupyterlab-lsp": - version "1.0.0" + version "2.0.0" dependencies: - "@krassowski/jupyterlab_go_to_definition" "~1.0.0" + "@krassowski/jupyterlab_go_to_definition" "~2.0.0" lodash.mergewith "^4.6.1" - lsp-ws-connection "~0.4.0" "@krassowski/jupyterlab_go_to_definition@file:packages/jupyterlab-go-to-definition": - version "1.0.0" + version "2.0.0" "@lerna/add@3.20.0": version "3.20.0" @@ -2077,6 +2077,11 @@ resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.2.3.tgz#4ab9883d7e9a5b1845372a752dcaee2a35a770c6" integrity sha512-XBJ/homcm7o8Y9G6MzYvf0FF7SVqUCzvkIO01G2mZhCOnkZZhZ9c4uNOcE2VjSHNxHv2WU0l7d8rdhyKhmet+A== +"@lumino/algorithm@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.3.0.tgz#1b8b07b537c1660b9e94cb1607d2e74cbf8aa15e" + integrity sha512-j0OFVm3/SpvKnKxHiUt8sgct25x+G97ohdrPRzDS9rHX0SLnx4GEVp5qE8OmzfGoAcY9V6C89F6Gh+PnN4LtiA== + "@lumino/application@^1.8.4": version "1.8.4" resolved "https://registry.yarnpkg.com/@lumino/application/-/application-1.8.4.tgz#63a26c4ecf8128bf0123739e37922415016f970a" @@ -2111,6 +2116,11 @@ resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-1.4.2.tgz#44cd3d55bb692e876c792f1ecc0df3daa1de63e9" integrity sha512-SmQ4YDANe25rZd0bLoW7LVAHmgySjkrJmyNPnPW0GrpBt2u4/6D+EQJ8PCCMNWuJvrljBCdlmgOFsT38qYhfcw== +"@lumino/coreutils@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-1.5.0.tgz#dd89573a3715fe18e2dd85622f16485899a22bf3" + integrity sha512-ioa+9YA+9jgTBl+FrlzSf1vqh25RUEaAltiY2s9WHyHP0vzizwaDEpiHQgMByhUS5ZN0FzuD1fOrKyb8izSi4Q== + "@lumino/disposable@^1.3.5": version "1.3.5" resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-1.3.5.tgz#3562ca063117fd2a0735df170f51e41620fa21d0" @@ -2119,6 +2129,14 @@ "@lumino/algorithm" "^1.2.3" "@lumino/signaling" "^1.3.5" +"@lumino/disposable@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-1.4.0.tgz#caab853579fe3662172a6ae7c922d07664f62adc" + integrity sha512-Tz/t3XU2E/Pn8TmuyOG/X4TTcnYaaKYUVbxfIIHWDJJln5hdqKe8ikMrufaJyhPkt7lTjOEKKilGePUj66POvA== + dependencies: + "@lumino/algorithm" "^1.3.0" + "@lumino/signaling" "^1.4.0" + "@lumino/domutils@^1.1.7": version "1.1.7" resolved "https://registry.yarnpkg.com/@lumino/domutils/-/domutils-1.1.7.tgz#9cc16cba0c1e8f31fcb734879dec050505925b16" @@ -2145,14 +2163,14 @@ "@lumino/algorithm" "^1.2.3" "@lumino/collections" "^1.2.3" -"@lumino/polling@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@lumino/polling/-/polling-1.0.4.tgz#85f956933fa63c47edf808c141cdb9a7a1a49f4c" - integrity sha512-9OYIDTohToj6SLrxOr+FbeyPvirBU/r53FgmPxulcDgUVnVk4tqTSLIJAUu3mjJd9hnmZZqpSn9ppyjQAo3qSg== +"@lumino/polling@^1.1.1": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@lumino/polling/-/polling-1.3.0.tgz#cd401706bc2508508a7f193298da40f9476a49db" + integrity sha512-sMg6UYXZGjc02dCXqyvseFGVzskSN0Xc877JJVXb0uTBlDRT0dvGxGzVL2EjYf6glwTnwiMTfW7ZXpxBFeBilg== dependencies: - "@lumino/coreutils" "^1.4.2" - "@lumino/disposable" "^1.3.5" - "@lumino/signaling" "^1.3.5" + "@lumino/coreutils" "^1.5.0" + "@lumino/disposable" "^1.4.0" + "@lumino/signaling" "^1.4.0" "@lumino/properties@^1.1.6": version "1.1.6" @@ -2166,6 +2184,13 @@ dependencies: "@lumino/algorithm" "^1.2.3" +"@lumino/signaling@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@lumino/signaling/-/signaling-1.4.0.tgz#e9f8b7bbd5db99a16576bcfbb390a9578961fbe7" + integrity sha512-rUoaKbdrSSOYEqr4Y5B+OJW9lurFgIU/gZlL/elpNsOj/0Bwkyh5B+RGm2YKYA6j00Rei+D7KgJo4Wm+2xi0qQ== + dependencies: + "@lumino/algorithm" "^1.3.0" + "@lumino/virtualdom@^1.6.1": version "1.6.1" resolved "https://registry.yarnpkg.com/@lumino/virtualdom/-/virtualdom-1.6.1.tgz#7f190091e065e7e4e4814836ed5b293aa8359b2d" @@ -2296,35 +2321,6 @@ dependencies: "@types/node" ">= 8" -"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.4.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.6.0.tgz#ec7670432ae9c8eb710400d112c201a362d83393" - integrity sha512-w4/WHG7C4WWFyE5geCieFJF6MZkbW4VAriol5KlmQXpAQdxvV0p26sqNZOW6Qyw6Y0l9K4g+cHvvczR2sEEpqg== - dependencies: - type-detect "4.0.8" - -"@sinonjs/formatio@^3.2.1": - version "3.2.2" - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c" - integrity sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ== - dependencies: - "@sinonjs/commons" "^1" - "@sinonjs/samsam" "^3.1.0" - -"@sinonjs/samsam@^3.1.0", "@sinonjs/samsam@^3.3.3": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a" - integrity sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ== - dependencies: - "@sinonjs/commons" "^1.3.0" - array-from "^2.1.1" - lodash "^4.17.15" - -"@sinonjs/text-encoding@^0.7.1": - version "0.7.1" - resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" - integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== - "@types/babel__core@^7.1.0": version "7.1.3" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.3.tgz#e441ea7df63cd080dfcd02ab199e6d16a735fc30" @@ -2480,21 +2476,11 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/mocha@^5.2.7": - version "5.2.7" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.7.tgz#315d570ccb56c53452ff8638738df60726d5b6ea" - integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ== - "@types/node@*", "@types/node@>= 8", "@types/node@>=4.5.0": version "13.7.7" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.7.tgz#1628e6461ba8cc9b53196dfeaeec7b07fa6eea99" integrity sha512-Uo4chgKbnPNlxQwoFmYIwctkQVkMMmsAoGGU4JKwLuvBefF0pCq4FybNSnfkfRCpC7ZW7kttcC/TrRtAJsvGtg== -"@types/node@^12.0.7": - version "12.12.17" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.17.tgz#191b71e7f4c325ee0fb23bc4a996477d92b8c39b" - integrity sha512-Is+l3mcHvs47sKy+afn2O1rV4ldZFU7W8101cNlOd+MRbjM4Onida8jSZnJdTe/0Pcf25g9BNIUsuugmE6puHA== - "@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" @@ -2526,11 +2512,6 @@ "@types/glob" "*" "@types/node" "*" -"@types/sinon@^7.0.12": - version "7.5.2" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.5.2.tgz#5e2f1d120f07b9cda07e5dedd4f3bf8888fccdb9" - integrity sha512-T+m89VdXj/eidZyejvmoP9jivXgBDdkOSBVQjU9kF349NEx10QdPNGxHeZUaj1IlJ32/ewdyXJjnJxyxJroYwg== - "@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" @@ -2619,162 +2600,6 @@ semver "^7.3.2" tsutils "^3.17.1" -"@webassemblyjs/ast@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" - integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== - dependencies: - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" - -"@webassemblyjs/floating-point-hex-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" - integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== - -"@webassemblyjs/helper-api-error@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" - integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== - -"@webassemblyjs/helper-buffer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" - integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== - -"@webassemblyjs/helper-code-frame@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" - integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== - dependencies: - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/helper-fsm@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" - integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== - -"@webassemblyjs/helper-module-context@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" - integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== - dependencies: - "@webassemblyjs/ast" "1.8.5" - mamacro "^0.0.3" - -"@webassemblyjs/helper-wasm-bytecode@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" - integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== - -"@webassemblyjs/helper-wasm-section@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" - integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - -"@webassemblyjs/ieee754@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" - integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" - integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" - integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== - -"@webassemblyjs/wasm-edit@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" - integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/helper-wasm-section" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-opt" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/wasm-gen@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" - integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wasm-opt@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" - integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - -"@webassemblyjs/wasm-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" - integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wast-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" - integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/floating-point-hex-parser" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-code-frame" "1.8.5" - "@webassemblyjs/helper-fsm" "1.8.5" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" - integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - "@zkochan/cmd-shim@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e" @@ -2802,14 +2627,6 @@ abbrev@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-globals@^4.1.0: version "4.3.4" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" @@ -2833,7 +2650,7 @@ acorn@^5.5.3: resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== -acorn@^6.0.1, acorn@^6.2.1: +acorn@^6.0.1: version "6.4.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw== @@ -2843,11 +2660,6 @@ acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= - agent-base@4, agent-base@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" @@ -2869,30 +2681,20 @@ agentkeepalive@^3.4.1: dependencies: humanize-ms "^1.2.1" -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, ajv-keywords@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== - -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5: - version "6.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" - integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== +ajv@^6.10.0: + version "6.12.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" + integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^6.10.0: - version "6.12.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" - integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== +ajv@^6.10.2, ajv@^6.5.5: + version "6.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" + integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -2904,16 +2706,6 @@ ansi-color@^0.2.1: resolved "https://registry.yarnpkg.com/ansi-color/-/ansi-color-0.2.1.tgz#3e75c037475217544ed763a8db5709fa9ae5bf9a" integrity sha1-PnXAN0dSF1RO12Oo21cJ+prlv5o= -ansi-colors@3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" - integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" @@ -2974,14 +2766,6 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.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.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -3037,11 +2821,6 @@ array-find-index@^1.0.1: resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= -array-from@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" - integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU= - array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" @@ -3078,11 +2857,6 @@ 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.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -3093,15 +2867,6 @@ asap@^2.0.0: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= -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== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" @@ -3114,14 +2879,6 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" @@ -3137,23 +2894,11 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - async-limiter@~1.0.0: 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@^2.5.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== - dependencies: - lodash "^4.17.14" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -3224,11 +2969,6 @@ babel-preset-jest@^24.9.0: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" babel-plugin-jest-hoist "^24.9.0" -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= - bail@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" @@ -3239,21 +2979,6 @@ balanced-match@^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.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" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -3292,28 +3017,6 @@ before-after-hook@^2.0.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== -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" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== - bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" @@ -3321,37 +3024,11 @@ bindings@^1.5.0: 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.3.0, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: +bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: 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: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -body-parser@^1.16.1: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -3360,7 +3037,7 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: +braces@^2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== @@ -3376,18 +3053,6 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.2, 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" @@ -3400,70 +3065,6 @@ browser-resolve@^1.11.3: dependencies: resolve "1.1.7" -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.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" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - browserslist@^4.6.0, browserslist@^4.8.2: version "4.8.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.2.tgz#b45720ad5fbc8713b7253c20766f701c9a694289" @@ -3492,43 +3093,11 @@ btoa-lite@^1.0.0: resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - buffer-from@1.x, buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - 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" - isarray "^1.0.0" - bufrw@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/bufrw/-/bufrw-1.3.0.tgz#28d6cfdaf34300376836310f5c31d57eeb40c8fa" @@ -3539,11 +3108,6 @@ bufrw@^1.3.0: hexer "^1.5.0" xtend "^4.0.0" -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - builtins@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" @@ -3559,12 +3123,7 @@ byte-size@^5.0.1: resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: +cacache@^12.0.0, cacache@^12.0.3: version "12.0.3" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== @@ -3619,11 +3178,6 @@ caller-path@^2.0.0: 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" @@ -3702,7 +3256,7 @@ chai@^4.0.1, chai@^4.2.0: pathval "^1.1.0" type-detect "^4.0.5" -chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.2.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.2.0, chalk@^2.3.1, 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== @@ -3744,65 +3298,16 @@ check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= -chokidar@^2.0.2: - 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" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6" - integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A== - 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.2.0" - optionalDependencies: - fsevents "~2.1.1" - chownr@^1.1.1, chownr@^1.1.2: 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.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" - ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -3939,11 +3444,6 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colors@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - columnify@^1.5.4: version "1.5.4" resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" @@ -3959,16 +3459,11 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.20.0, commander@^2.9.0, commander@~2.20.3: +commander@^2.9.0, commander@~2.20.3: 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== -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - compare-func@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" @@ -3977,32 +3472,17 @@ compare-func@^1.3.1: array-ify "^1.0.0" dot-prop "^3.0.0" -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" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@1.6.2, concat-stream@^1.5.0: +concat-stream@^1.5.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -4030,36 +3510,11 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" -connect@^3.6.0: - version "3.6.6" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" - integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ= - dependencies: - debug "2.6.9" - finalhandler "1.1.0" - parseurl "~1.3.2" - utils-merge "1.0.1" - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - 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= -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= - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - conventional-changelog-angular@^5.0.3: version "5.0.6" resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.6.tgz#269540c624553aded809c29a3508fdc2b544c059" @@ -4150,11 +3605,6 @@ convert-source-map@^1.4.0, convert-source-map@^1.7.0: 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" @@ -4200,37 +3650,6 @@ cosmiconfig@^5.1.0, cosmiconfig@^5.2.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== - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - 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== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - create-react-context@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c" @@ -4239,17 +3658,6 @@ create-react-context@^0.3.0: gud "^1.0.0" warning "^4.0.3" -cross-spawn@6.0.5, 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" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -4259,22 +3667,16 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" +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" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": version "0.3.8" @@ -4293,6 +3695,11 @@ csstype@^2.2.0, csstype@^2.4.0: resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098" integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q== +csstype@~2.6.9: + version "2.6.10" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b" + integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w== + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -4300,11 +3707,6 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" -custom-event@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" - integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= - cyclist@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" @@ -4341,31 +3743,26 @@ data-urls@^1.0.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" -date-format@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" - integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== - dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: - 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.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@3.2.6, debug@^3.0.0, debug@^3.1.0, debug@^3.2.6: +debug@^2.2.0, debug@^2.3.3: + 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: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -4477,29 +3874,11 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== -des.js@^1.0.0: - 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" - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -4518,11 +3897,6 @@ dezalgo@^1.0.0: asap "^2.0.0" wrappy "1" -di@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" - integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= - dictionary-en-gb@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/dictionary-en-gb/-/dictionary-en-gb-2.2.1.tgz#8ef21b484b0ce89cdebd60c1b2b65f56df9a475f" @@ -4543,20 +3917,6 @@ diff-sequences@^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, 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== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^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" @@ -4634,16 +3994,6 @@ dom-helpers@^3.4.0: dependencies: "@babel/runtime" "^7.1.2" -dom-serialize@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= - dependencies: - custom-event "~1.0.0" - ent "~2.2.0" - extend "^3.0.0" - void-elements "^2.0.0" - dom-serializer@0: version "0.2.2" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" @@ -4657,11 +4007,6 @@ dom4@^2.1.5: resolved "https://registry.yarnpkg.com/dom4/-/dom4-2.1.5.tgz#f98a94eb67b340f0fa5b42b0ee9c38cda035428e" integrity sha512-gJbnVGq5zaBUY0lUh0LUEVGYrtN75Ks8ZwpwOYvnVFrKy/qzXK4R/1WuLIFExWj/tBxbRAkTzZUGJHXmqsBNjQ== -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - domelementtype@1, domelementtype@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" @@ -4731,29 +4076,11 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - electron-to-chromium@^1.3.322: version "1.3.322" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8" integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA== -elliptic@^6.0.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -4764,92 +4091,19 @@ emoji-regex@^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@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -encodeurl@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - encoding@^0.1.11: version "0.1.12" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= dependencies: - iconv-lite "~0.4.13" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - 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.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" - integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== - 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.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" - integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== - 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" - -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== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - tapable "^1.0.0" - -enhanced-resolve@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" - integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" + iconv-lite "~0.4.13" -ent@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + 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" entities@^1.1.1: version "1.1.2" @@ -4876,13 +4130,6 @@ err-code@^1.0.0: resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -4996,12 +4243,7 @@ es6-weak-map@^2.0.2: es6-iterator "^2.0.3" es6-symbol "^3.1.1" -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: +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= @@ -5056,14 +4298,6 @@ eslint-plugin-react@^7.19.0: string.prototype.matchall "^4.0.2" xregexp "^4.3.0" -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - eslint-scope@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" @@ -5190,24 +4424,11 @@ eventemitter3@^3.1.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== -eventemitter3@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" - integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== - events@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - 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" @@ -5257,13 +4478,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - expect@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" @@ -5326,16 +4540,6 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@^1.6.6: - version "1.6.7" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" - integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= - dependencies: - concat-stream "1.6.2" - debug "2.6.9" - mkdirp "0.5.1" - yauzl "2.4.1" - extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -5397,13 +4601,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= - dependencies: - pend "~1.2.0" - figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" @@ -5430,14 +4627,6 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" -file-loader@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" - integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== - dependencies: - loader-utils "^1.0.2" - schema-utils "^1.0.0" - 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" @@ -5453,42 +4642,6 @@ 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" - -finalhandler@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" - integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U= - dependencies: - debug "2.6.9" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" - unpipe "~1.0.0" - -find-cache-dir@^2.1.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@3.0.0, find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -5504,6 +4657,13 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -5512,16 +4672,6 @@ find-up@^4.0.0: locate-path "^5.0.0" path-exists "^4.0.0" -findup-sync@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" @@ -5531,13 +4681,6 @@ flat-cache@^2.0.1: rimraf "2.6.3" write "1.0.3" -flat@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" - integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== - dependencies: - is-buffer "~2.0.3" - flatted@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" @@ -5551,13 +4694,6 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@^1.0.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f" - integrity sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A== - dependencies: - debug "^3.0.0" - for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -5602,14 +4738,7 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-access@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" - integrity sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o= - dependencies: - null-check "^1.0.0" - -fs-extra@^7.0.0, fs-extra@^7.0.1: +fs-extra@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== @@ -5657,11 +4786,6 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" - integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== - function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -5818,7 +4942,7 @@ 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.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== @@ -5830,18 +4954,6 @@ glob-to-regexp@^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.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -5854,42 +4966,6 @@ glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -global-modules@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -5921,11 +4997,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -5965,18 +5036,6 @@ harmony-reflect@^1.4.6: resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA== -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-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" @@ -6035,27 +5094,6 @@ has@^1.0.3: dependencies: 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= - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - hexer@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/hexer/-/hexer-1.5.0.tgz#b86ce808598e8a9d1892c571f3cedd86fc9f0653" @@ -6073,22 +5111,6 @@ highlight.js@^9.13.1: dependencies: handlebars "^4.5.3" -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: version "2.8.7" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.7.tgz#4d2e0d5248e1cfabc984b0f6a6d75fe36e679511" @@ -6118,17 +5140,6 @@ http-cache-semantics@^3.8.1: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - http-proxy-agent@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" @@ -6137,15 +5148,6 @@ http-proxy-agent@^2.1.0: agent-base "4" debug "3.1.0" -http-proxy@^1.13.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" - integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -6155,12 +5157,7 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -https-proxy-agent@^2.2.1, https-proxy-agent@^2.2.3: +https-proxy-agent@^2.2.3: version "2.2.4" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== @@ -6206,11 +5203,6 @@ identity-obj-proxy@^3.0.0: dependencies: harmony-reflect "^1.4.6" -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" @@ -6249,7 +5241,7 @@ import-fresh@^3.0.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-local@2.0.0, import-local@^2.0.0: +import-local@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== @@ -6274,11 +5266,6 @@ indent-string@^3.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -6292,7 +5279,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, 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== @@ -6302,12 +5289,7 @@ inherits@2.0.1: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.2, ini@^1.3.4, ini@^1.3.5: +ini@^1.3.2, 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== @@ -6373,7 +5355,7 @@ internal-slot@^1.0.2: has "^1.0.3" side-channel "^1.0.2" -interpret@1.2.0, interpret@^1.0.0: +interpret@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== @@ -6385,11 +5367,6 @@ invariant@^2.2.2, invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - ip@1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -6437,26 +5414,12 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= -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" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - 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-buffer@^2.0.0, is-buffer@~2.0.3: +is-buffer@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== @@ -6576,7 +5539,7 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.0, 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== @@ -6595,11 +5558,6 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" -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-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" @@ -6689,7 +5647,7 @@ is-whitespace-character@^1.0.0: resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== -is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.0, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== @@ -6704,28 +5662,11 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: +isarray@1.0.0, isarray@~1.0.0: version "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.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" - integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== - dependencies: - buffer-alloc "^1.2.0" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -7218,14 +6159,6 @@ js-levenshtein@^1.1.3: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@3.13.1, js-yaml@^3.12.1, 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== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@^3.12.0: version "3.14.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" @@ -7234,6 +6167,14 @@ js-yaml@^3.12.0: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^3.12.1, 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== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -7281,7 +6222,7 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== @@ -7344,13 +6285,6 @@ json5@2.x, json5@^2.1.0, json5@^2.1.1: dependencies: minimist "^1.2.0" -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - jsonc-parser@^1.0.0, jsonc-parser@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-1.0.3.tgz#1d53d7160e401a783dbceabaad82473f80e6ad7e" @@ -7396,87 +6330,6 @@ jsx-ast-utils@^2.2.3: array-includes "^3.1.1" object.assign "^4.1.0" -just-extend@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc" - integrity sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw== - -karma-chrome-launcher@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf" - integrity sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w== - dependencies: - fs-access "^1.0.0" - which "^1.2.1" - -karma-junit-reporter@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/karma-junit-reporter/-/karma-junit-reporter-2.0.1.tgz#d34eef7f0b2fd064e0896954e8851a90cf14c8f3" - integrity sha512-VtcGfE0JE4OE1wn0LK8xxDKaTP7slN8DO3I+4xg6gAi1IoAHAXOJ1V9G/y45Xg6sxdxPOR3THCFtDlAfBo9Afw== - dependencies: - path-is-absolute "^1.0.0" - xmlbuilder "12.0.0" - -karma-mocha-reporter@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz#15120095e8ed819186e47a0b012f3cd741895560" - integrity sha1-FRIAlejtgZGG5HoLAS8810GJVWA= - dependencies: - chalk "^2.1.0" - log-symbols "^2.1.0" - strip-ansi "^4.0.0" - -karma-mocha@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-1.3.0.tgz#eeaac7ffc0e201eb63c467440d2b69c7cf3778bf" - integrity sha1-7qrH/8DiAetjxGdEDStpx883eL8= - dependencies: - minimist "1.2.0" - -karma-webpack@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-4.0.2.tgz#23219bd95bdda853e3073d3874d34447c77bced0" - integrity sha512-970/okAsdUOmiMOCY8sb17A2I8neS25Ad9uhyK3GHgmRSIFJbDcNEFE8dqqUhNe9OHiCC9k3DMrSmtd/0ymP1A== - dependencies: - clone-deep "^4.0.1" - loader-utils "^1.1.0" - neo-async "^2.6.1" - schema-utils "^1.0.0" - source-map "^0.7.3" - webpack-dev-middleware "^3.7.0" - -karma@^4.1.0: - version "4.4.1" - resolved "https://registry.yarnpkg.com/karma/-/karma-4.4.1.tgz#6d9aaab037a31136dc074002620ee11e8c2e32ab" - integrity sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A== - dependencies: - bluebird "^3.3.0" - body-parser "^1.16.1" - braces "^3.0.2" - chokidar "^3.0.0" - colors "^1.1.0" - connect "^3.6.0" - di "^0.0.1" - dom-serialize "^2.2.0" - flatted "^2.0.0" - glob "^7.1.1" - graceful-fs "^4.1.2" - http-proxy "^1.13.0" - isbinaryfile "^3.0.0" - lodash "^4.17.14" - log4js "^4.0.0" - mime "^2.3.1" - minimatch "^3.0.2" - optimist "^0.6.1" - qjobs "^1.1.4" - range-parser "^1.2.0" - rimraf "^2.6.0" - safe-buffer "^5.0.1" - socket.io "2.1.1" - source-map "^0.6.1" - tmp "0.0.33" - useragent "2.3.0" - kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -7506,13 +6359,6 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - left-pad@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" @@ -7592,20 +6438,6 @@ load-json-file@^5.3.0: strip-bom "^3.0.0" type-fest "^0.3.0" -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -7719,29 +6551,13 @@ lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -log-symbols@2.2.0, log-symbols@^2.1.0: +log-symbols@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== dependencies: chalk "^2.0.1" -log4js@^4.0.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-4.5.1.tgz#e543625e97d9e6f3e6e7c9fc196dd6ab2cae30b5" - integrity sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw== - dependencies: - date-format "^2.0.0" - debug "^4.1.1" - flatted "^2.0.0" - rfdc "^1.1.4" - streamroller "^1.0.6" - -lolex@^4.1.0, lolex@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-4.2.0.tgz#ddbd7f6213ca1ea5826901ab1222b65d714b3cd7" - integrity sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg== - long@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/long/-/long-2.4.0.tgz#9fa180bb1d9500cdc29c4156766a1995e1f4524f" @@ -7762,7 +6578,7 @@ loud-rejection@^1.0.0: currently-unhandled "^0.4.1" signal-exit "^3.0.0" -lru-cache@4.1.x, lru-cache@^4.0.1: +lru-cache@^4.0.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== @@ -7784,15 +6600,6 @@ lru-queue@0.1: dependencies: es5-ext "~0.10.2" -"lsp-ws-connection@file:packages/lsp-ws-connection": - version "0.4.0" - dependencies: - vscode-jsonrpc "^4.1.0-next" - vscode-languageclient "^5.2.1" - vscode-languageserver-protocol "^3.14.1" - vscode-languageserver-types "^3.14.0" - vscode-ws-jsonrpc "0.1.1" - macos-release@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" @@ -7805,7 +6612,7 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" -make-dir@^2.0.0, make-dir@^2.1.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== @@ -7842,18 +6649,6 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" -mamacro@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" - integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== - -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -7891,15 +6686,6 @@ marked@^0.8.0: resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.0.tgz#ec5c0c9b93878dc52dd54be8d0e524097bd81a99" integrity sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ== -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - mdast-comment-marker@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-1.1.2.tgz#5ad2e42cfcc41b92a10c1421a98c288d7b447a6d" @@ -7925,20 +6711,6 @@ mdast-util-to-string@^1.0.2: resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.0.8.tgz#a414cee45ad4bef93a60f32f48266d43e263d88f" integrity sha512-GBracya0dOzckEEizUBzfrkWRLCHMsppuU97LPUriY9kWnYyGFWTx4VDW+sUcj2LneBz/Tp1aYp3aUCibzjtWg== -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - memoizee@^0.4.14: version "0.4.14" resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57" @@ -7953,22 +6725,6 @@ memoizee@^0.4.14: next-tick "1" timers-ext "^0.1.5" -memory-fs@^0.4.0, 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= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.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" - meow@^3.3.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" @@ -8025,7 +6781,7 @@ merge2@^1.2.3: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: +micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -8044,52 +6800,29 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - mime-db@1.43.0: version "1.43.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== -mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: +mime-types@^2.1.12, mime-types@~2.1.19: version "2.1.26" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== dependencies: mime-db "1.43.0" -mime@^2.0.3, mime@^2.3.1, mime@^2.4.4: - version "2.4.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" - integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== - 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.1.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== -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" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "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.4, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: +minimatch@^3.0.0, 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== @@ -8109,7 +6842,7 @@ minimist@0.0.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= @@ -8170,42 +6903,13 @@ mkdirp@*: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz#4cf2e30ad45959dddea53ad97d518b6c8205e1ea" integrity sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g== -mkdirp@0.5.1, mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1: +mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" -mocha@^6.1.4: - version "6.2.2" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.2.tgz#5d8987e28940caf8957a7d7664b910dc5b2fea20" - integrity sha512-FgDS9Re79yU1xz5d+C4rv1G7QagNGHZ+iXF81hO8zY35YZZcLEsJVfFolfsqKFWunATEvNzMK0r/CwWd/szO9A== - dependencies: - ansi-colors "3.2.3" - browser-stdout "1.3.1" - debug "3.2.6" - diff "3.5.0" - escape-string-regexp "1.0.5" - find-up "3.0.0" - glob "7.1.3" - growl "1.10.5" - he "1.2.0" - js-yaml "3.13.1" - log-symbols "2.2.0" - minimatch "3.0.4" - mkdirp "0.5.1" - ms "2.1.1" - node-environment-flags "1.0.5" - object.assign "4.1.0" - strip-json-comments "2.0.1" - supports-color "6.0.0" - which "1.3.1" - wide-align "1.1.3" - yargs "13.3.0" - yargs-parser "13.1.1" - yargs-unparser "1.6.0" - modify-values@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" @@ -8238,11 +6942,6 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - ms@^2.0.0, ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -8304,12 +7003,7 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -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, neo-async@^2.6.1: +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== @@ -8329,17 +7023,6 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -nise@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.2.tgz#b6d29af10e48b321b307e10e065199338eeb2652" - integrity sha512-/6RhOUlicRCbE9s+94qCUsyE+pKlVJ5AhIv+jEE7ESKwnbXqulKZ1FYU+XAtHHWE9TinYvAxDUJAb912PwPoWA== - dependencies: - "@sinonjs/formatio" "^3.2.1" - "@sinonjs/text-encoding" "^0.7.1" - just-extend "^4.0.2" - lolex "^4.1.0" - path-to-regexp "^1.7.0" - nlcst-is-literal@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/nlcst-is-literal/-/nlcst-is-literal-1.2.1.tgz#878b68a43b5fd77b85e45b1b1737ae11a25f1be3" @@ -8352,14 +7035,6 @@ nlcst-to-string@^2.0.0: resolved "https://registry.yarnpkg.com/nlcst-to-string/-/nlcst-to-string-2.0.3.tgz#b7913bb1305263b0561a86de68e179f17f7febe3" integrity sha512-OY2QhGdf6jpYfHqS4vJwqF7aIBZkaMjMUkcHcskMPitvXLuYNGdQvgVWI/5yKwkmIdmhft3ounSJv+Re2yydng== -node-environment-flags@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.5.tgz#fa930275f5bf5dae188d6192b24b4c8bbac3d76a" - integrity sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ== - dependencies: - object.getownpropertydescriptors "^2.0.3" - semver "^5.7.0" - node-fetch-npm@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" @@ -8396,35 +7071,6 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - node-modules-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" @@ -8473,11 +7119,6 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -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-url@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" @@ -8566,11 +7207,6 @@ nspell@^2.0.0: dependencies: is-buffer "^2.0.0" -null-check@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" - integrity sha1-l33/1xdgErnsMNKjnbXPcqBDnt0= - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -8591,11 +7227,6 @@ object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^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" @@ -8632,7 +7263,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@4.1.0, object.assign@^4.1.0: +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== @@ -8691,13 +7322,6 @@ octokit-pagination-methods@^1.1.0: resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -8771,25 +7395,11 @@ ora@^1.3.0: cli-spinners "^1.0.1" log-symbols "^2.1.0" -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= -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== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - os-name@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" @@ -8811,11 +7421,6 @@ osenv@^0.1.4, osenv@^0.1.5: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - p-each-series@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" @@ -8828,11 +7433,6 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -8914,11 +7514,6 @@ p-waterfall@^1.0.0: dependencies: p-reduce "^1.0.0" -pako@~1.0.5: - 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.2.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" @@ -8935,18 +7530,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== - dependencies: - asn1.js "^4.0.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" - parse-english@^4.0.0: version "4.1.2" resolved "https://registry.yarnpkg.com/parse-english/-/parse-english-4.1.2.tgz#6710d426caa76db327ef7066991cd1b9f602db9f" @@ -9008,11 +7591,6 @@ parse-latin@^4.0.0, parse-latin@^4.1.1: unist-util-modify-children "^1.0.0" unist-util-visit-children "^1.0.0" -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - parse-path@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.1.tgz#0ec769704949778cb3b8eda5e994c32073a1adff" @@ -9036,35 +7614,11 @@ 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" - -parseurl@~1.3.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" @@ -9107,13 +7661,6 @@ path-posix@~1.0.0: resolved "https://registry.yarnpkg.com/path-posix/-/path-posix-1.0.0.tgz#06b26113f56beab042545a23bfa88003ccac260f" integrity sha1-BrJhE/Vr6rBCVFojv6iAA8ysJg8= -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -9143,32 +7690,11 @@ pathval@^1.1.0: resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= -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== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.4: - version "2.2.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a" - integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA== - pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -9315,12 +7841,12 @@ process@^0.10.0: resolved "https://registry.yarnpkg.com/process/-/process-0.10.1.tgz#842457cc51cfed72dc775afeeafb8c6034372725" integrity sha1-hCRXzFHP7XLcd1r+6vuMYDQ3JyU= -process@^0.11.1, process@^0.11.10: +process@^0.11.1: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= -progress@^2.0.0, progress@^2.0.1: +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== @@ -9379,16 +7905,6 @@ protoduck@^5.0.1: dependencies: genfun "^5.0.0" -proxy-from-env@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" - integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" @@ -9399,18 +7915,6 @@ psl@^1.1.28: resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c" integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ== -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" @@ -9436,65 +7940,21 @@ pumpify@^1.3.3: inherits "^2.0.3" pump "^2.0.0" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -puppeteer@^1.17.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.20.0.tgz#e3d267786f74e1d87cf2d15acc59177f471bbe38" - integrity sha512-bt48RDBy2eIwZPrkgbcwHtb51mj2nKvHOPMaSH2IsWiv7lOG9k9zhaRzpDZafrk05ajMc3cu+lSQYYOfH2DkVQ== - dependencies: - debug "^4.1.0" - extract-zip "^1.6.6" - https-proxy-agent "^2.2.1" - mime "^2.0.3" - progress "^2.0.1" - proxy-from-env "^1.0.0" - rimraf "^2.6.1" - ws "^6.1.0" - q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qjobs@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" - integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - 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== -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - querystringify@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" @@ -9510,36 +7970,6 @@ quotation@^1.1.0: resolved "https://registry.yarnpkg.com/quotation/-/quotation-1.1.3.tgz#2a4d11f70105ad398b577883f310469367f53351" integrity sha512-45gUgmX/RtQOQV1kwM06boP49OYXcKCPrYwdmAvs5YqkpiobhNKKwo524JM6Ma0ko3oN9tXNcWs9+ABq3Ry7YA== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.0, range-parser@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - react-dom@~16.9.0: version "16.9.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962" @@ -9688,7 +8118,7 @@ read@1, read@~1.0.1: dependencies: mute-stream "~0.0.4" -"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.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, 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== @@ -9720,22 +8150,6 @@ readdir-scoped-modules@^1.0.0: graceful-fs "^4.1.2" once "^1.3.0" -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839" - integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ== - dependencies: - picomatch "^2.0.4" - realpath-native@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" @@ -10474,14 +8888,6 @@ resolve-cwd@^2.0.0: dependencies: resolve-from "^3.0.0" -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" @@ -10586,11 +8992,6 @@ retry@^0.10.0: resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= -rfdc@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz#ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2" - integrity sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug== - rimraf@2.6.3, rimraf@~2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -10598,21 +8999,13 @@ rimraf@2.6.3, rimraf@~2.6.2: dependencies: glob "^7.1.3" -rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@^2.5.4, rimraf@^2.6.1, 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" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" @@ -10663,7 +9056,7 @@ rxjs@^6.5.3: 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, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== @@ -10729,15 +9122,6 @@ scheduler@^0.15.0: loose-envify "^1.1.0" object-assign "^4.1.1" -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" - semaphore-async-await@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz#857bef5e3644601ca4b9570b87e9df5ca12974fa" @@ -10768,11 +9152,6 @@ semver@^7.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -serialize-javascript@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" - integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== - 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" @@ -10788,24 +9167,6 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - 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" @@ -10859,19 +9220,6 @@ simulate-event@~1.4.0: dependencies: xtend "^4.0.1" -sinon@^7.3.2: - version "7.5.0" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-7.5.0.tgz#e9488ea466070ea908fd44a3d6478fd4923c67ec" - integrity sha512-AoD0oJWerp0/rY9czP/D6hDTTUYGpObhZjMpd7Cl/A6+j0xBE+ayL/ldfggkBXUs0IkvIiM1ljM8+WkOc5k78Q== - dependencies: - "@sinonjs/commons" "^1.4.0" - "@sinonjs/formatio" "^3.2.1" - "@sinonjs/samsam" "^3.3.3" - diff "^3.5.0" - lolex "^4.2.0" - nise "^1.5.2" - supports-color "^5.5.0" - sisteransi@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.4.tgz#386713f1ef688c7c0304dc4c0632898941cad2e3" @@ -10941,52 +9289,6 @@ 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.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" - integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~3.1.0" - engine.io-client "~3.2.0" - has-binary2 "~1.0.2" - 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.2.0" - to-array "0.1.4" - -socket.io-parser@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" - integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== - dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - isarray "2.0.1" - -socket.io@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" - integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== - dependencies: - debug "~3.1.0" - engine.io "~3.2.0" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.1.1" - socket.io-parser "~3.2.0" - socks-proxy-agent@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" @@ -11010,19 +9312,6 @@ sort-keys@^2.0.0: dependencies: is-plain-obj "^1.0.0" -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-loader@~0.2.1: - version "0.2.4" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.4.tgz#c18b0dc6e23bf66f6792437557c569a11e072271" - integrity sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ== - dependencies: - async "^2.5.0" - loader-utils "^1.1.0" - source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" @@ -11034,7 +9323,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.6, source-map-support@~0.5.12: +source-map-support@^0.5.6: version "0.5.16" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== @@ -11057,11 +9346,6 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - spdx-correct@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" @@ -11162,16 +9446,6 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.5.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= - stdin@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/stdin/-/stdin-0.0.1.tgz#d3041981aaec3dfdbc77a1b38d6372e38f5fb71e" @@ -11182,14 +9456,6 @@ stealthy-require@^1.1.1: resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - stream-each@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" @@ -11198,33 +9464,11 @@ stream-each@^1.1.0: end-of-stream "^1.1.0" stream-shift "^1.0.0" -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - stream-shift@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -streamroller@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz#8167d8496ed9f19f05ee4b158d9611321b8cacd9" - integrity sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg== - dependencies: - async "^2.6.2" - date-format "^2.0.0" - debug "^3.2.6" - fs-extra "^7.0.1" - lodash "^4.17.14" - string-length@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" @@ -11322,7 +9566,7 @@ string.prototype.trimstart@^1.0.1: define-properties "^1.1.3" es-abstract "^1.17.5" -string_decoder@^1.0.0, string_decoder@^1.1.1: +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== @@ -11393,11 +9637,6 @@ strip-indent@^2.0.0: resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= -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-json-comments@^3.0.1: version "3.1.0" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" @@ -11412,27 +9651,20 @@ strong-log-transformer@^2.0.0: minimist "^1.2.0" through "^2.3.4" -supports-color@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" - integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -supports-color@6.1.0, supports-color@^6.1.0: +supports-color@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== dependencies: has-flag "^3.0.0" -supports-color@^5.3.0, supports-color@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - 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" @@ -11460,11 +9692,6 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" @@ -11495,30 +9722,6 @@ temp-write@^3.4.0: temp-dir "^1.0.0" uuid "^3.0.1" -terser-webpack-plugin@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" - integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^2.1.2" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@^4.1.2: - version "4.6.4" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.4.tgz#40a0b37afbe5b57e494536815efa68326840fc00" - integrity sha512-5fqgBPLgVHZ/fVvqRhhUp9YUiGXhFJ9ZkrZWD9vQtFBR4QIGTnbsb+/kKqSqfgp3WnBwGWAFnedGTtmX1YTn0w== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - test-exclude@^5.2.3: version "5.2.3" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" @@ -11587,13 +9790,6 @@ through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -timers-browserify@^2.0.4: - 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" - timers-ext@^0.1.5: version "0.1.7" resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" @@ -11602,7 +9798,7 @@ timers-ext@^0.1.5: es5-ext "~0.10.46" next-tick "1" -tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33: +tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== @@ -11614,16 +9810,6 @@ 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" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -11644,13 +9830,6 @@ 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" @@ -11661,11 +9840,6 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - 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" @@ -11744,11 +9918,6 @@ tsutils@^3.17.1: dependencies: tslib "^1.8.1" -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -11775,7 +9944,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: +type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -11800,14 +9969,6 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-is@~1.6.17: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - type@^1.0.1: version "1.2.0" resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" @@ -11897,11 +10058,6 @@ uid-number@0.0.6: resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= -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== - umask@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" @@ -12087,11 +10243,6 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -12100,7 +10251,7 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -upath@^1.1.1, upath@^1.2.0: +upath@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== @@ -12130,27 +10281,11 @@ url-parse@~1.4.7: querystringify "^2.1.1" requires-port "^1.0.0" -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -useragent@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" - integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== - dependencies: - lru-cache "4.1.x" - tmp "0.0.x" - 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" @@ -12171,35 +10306,18 @@ util.promisify@^1.0.0: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" -util@0.10.3, util@^0.10.3: +util@^0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= dependencies: inherits "2.0.1" -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - uuid@^3.0.1, uuid@^3.2.1, uuid@^3.3.2: 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.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" - integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== - 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" @@ -12259,16 +10377,6 @@ vfile@^3.0.0: unist-util-stringify-position "^1.0.0" vfile-message "^1.0.0" -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -void-elements@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" - integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= - vscode-css-languageserver-bin@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/vscode-css-languageserver-bin/-/vscode-css-languageserver-bin-1.4.0.tgz#d9ebf3c4c9df0dcab96abc4abc6f79daf6408508" @@ -12352,24 +10460,11 @@ vscode-jsonrpc@^4.0.0: resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz#a7bf74ef3254d0a0c272fab15c82128e378b3be9" integrity sha512-perEnXQdQOJMTDFNv+UF3h1Y0z4iSiaN9jIlb0OqIYgosPCZGYh/MCUlkFtV2668PL69lRDO32hmvL2yiidUYg== -vscode-jsonrpc@^4.1.0-next: - version "4.1.0-next.3" - resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.1.0-next.3.tgz#05fe742959a2726020d4d0bfbc3d3c97873c7fde" - integrity sha512-Z6oxBiMks2+UADV1QHXVooSakjyhI+eHTnXzDyVvVMmegvSfkXk2w6mPEdSkaNHFBdtWW7n20H1yw2nA3A17mg== - vscode-jsonrpc@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-5.0.1.tgz#9bab9c330d89f43fc8c1e8702b5c36e058a01794" integrity sha512-JvONPptw3GAQGXlVV2utDcHx0BiY34FupW/kI6mZ5x06ER5DdPG/tXWMVHjTNULF5uKPOUUD0SaXg5QaubJL0A== -vscode-languageclient@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-5.2.1.tgz#7cfc83a294c409f58cfa2b910a8cfeaad0397193" - integrity sha512-7jrS/9WnV0ruqPamN1nE7qCxn0phkH5LjSgSp9h6qoJGoeAKzwKz/PF6M+iGA/aklx4GLZg1prddhEPQtuXI1Q== - dependencies: - semver "^5.5.0" - vscode-languageserver-protocol "3.14.1" - vscode-languageserver-protocol-foldingprovider@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol-foldingprovider/-/vscode-languageserver-protocol-foldingprovider-2.0.1.tgz#051d0d9e58d1b79dc4681acd48f21797f5515bfd" @@ -12394,7 +10489,7 @@ vscode-languageserver-protocol@3.5.1: vscode-jsonrpc "3.5.0" vscode-languageserver-types "3.5.0" -vscode-languageserver-protocol@^3.10.3, vscode-languageserver-protocol@^3.14.1, vscode-languageserver-protocol@^3.15.1, vscode-languageserver-protocol@^3.15.3, vscode-languageserver-protocol@^3.7.2: +vscode-languageserver-protocol@^3.10.3, vscode-languageserver-protocol@^3.15.1, vscode-languageserver-protocol@^3.15.3, vscode-languageserver-protocol@^3.7.2: version "3.15.3" resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.3.tgz#3fa9a0702d742cf7883cb6182a6212fcd0a1d8bb" integrity sha512-zrMuwHOAQRhjDSnflWdJG+O2ztMWss8GqUUB8dXLR/FPenwkiBNkMIJJYfSN6sgskvsF0rHAoBowNQfbyZnnvw== @@ -12412,7 +10507,7 @@ vscode-languageserver-types@3.14.0: resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz#d3b5952246d30e5241592b6dde8280e03942e743" integrity sha512-lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A== -vscode-languageserver-types@3.15.1, vscode-languageserver-types@^3.0.3, vscode-languageserver-types@^3.13.0, vscode-languageserver-types@^3.14.0, vscode-languageserver-types@^3.15.0-next.9, vscode-languageserver-types@^3.15.1, vscode-languageserver-types@^3.5.0, vscode-languageserver-types@^3.6.1, vscode-languageserver-types@^3.7.2: +vscode-languageserver-types@3.15.1, vscode-languageserver-types@^3.0.3, vscode-languageserver-types@^3.13.0, vscode-languageserver-types@^3.15.0-next.9, vscode-languageserver-types@^3.15.1, vscode-languageserver-types@^3.5.0, vscode-languageserver-types@^3.6.1, vscode-languageserver-types@^3.7.2: version "3.15.1" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz#17be71d78d2f6236d414f0001ce1ef4d23e6b6de" integrity sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ== @@ -12483,13 +10578,6 @@ vscode-uri@^2.1.1: resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.1.tgz#5aa1803391b6ebdd17d047f51365cf62c38f6e90" integrity sha512-eY9jmGoEnVf8VE8xr5znSah7Qt1P/xsCdErz+g8HYZtJ7bZqKH5E3d+6oVNm1AC/c6IHUDokbmVXKOi4qPAC9A== -vscode-ws-jsonrpc@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-0.1.1.tgz#163ff05662635b4fd161ed132e112cec4d83f126" - integrity sha512-1O/FUORbb8dZAvh9AFF6HViLJ0Ja0RbF+sFRnUsoqkuKIRsXDDiiJpwYwT6fmglCLefE5afGPw9NoHvDVN/5yw== - dependencies: - vscode-jsonrpc "^4.1.0-next" - 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" @@ -12511,15 +10599,6 @@ warning@^4.0.2, warning@^4.0.3: dependencies: loose-envify "^1.0.0" -watchpack@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== - dependencies: - chokidar "^2.0.2" - graceful-fs "^4.1.2" - neo-async "^2.5.0" - wcwidth@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -12537,79 +10616,6 @@ webidl-conversions@^4.0.2: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== -webpack-cli@^3.3.0: - version "3.3.11" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz#3bf21889bf597b5d82c38f215135a411edfdc631" - integrity sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g== - dependencies: - chalk "2.4.2" - cross-spawn "6.0.5" - enhanced-resolve "4.1.0" - findup-sync "3.0.0" - global-modules "2.0.0" - import-local "2.0.0" - interpret "1.2.0" - loader-utils "1.2.3" - supports-color "6.1.0" - v8-compile-cache "2.0.3" - yargs "13.2.4" - -webpack-dev-middleware@^3.7.0: - version "3.7.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" - integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-sources@^1.4.0, webpack-sources@^1.4.1: - 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" - -webpack@^4.32.2: - version "4.41.6" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.6.tgz#12f2f804bf6542ef166755050d4afbc8f66ba7e1" - integrity sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/wasm-edit" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - acorn "^6.2.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.1" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.6.0" - webpack-sources "^1.4.1" - whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" @@ -12645,14 +10651,14 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@1.3.1, which@^1.2.1, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: +which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" -wide-align@1.1.3, wide-align@^1.1.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== @@ -12676,13 +10682,6 @@ wordwrap@~0.0.2: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" @@ -12769,27 +10768,11 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" -ws@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - ws@^7.2.0: version "7.2.1" resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.1.tgz#03ed52423cd744084b2cf42ed197c8b65a936b8e" integrity sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A== -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" - x-is-string@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" @@ -12805,16 +10788,6 @@ xml@^1.0.1: resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU= -xmlbuilder@12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-12.0.0.tgz#e2ed675e06834a089ddfb84db96e2c2b03f78c1a" - integrity sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ== - -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= - xorshift@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/xorshift/-/xorshift-0.2.1.tgz#fcd82267e9351c13f0fb9c73307f25331d29c63a" @@ -12875,7 +10848,7 @@ yargs-parser@10.x, yargs-parser@^10.0.0: dependencies: camelcase "^4.1.0" -yargs-parser@13.1.1, yargs-parser@^13.1.0, yargs-parser@^13.1.1: +yargs-parser@^13.1.1: version "13.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== @@ -12891,33 +10864,7 @@ yargs-parser@^15.0.0: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-unparser@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" - integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== - dependencies: - flat "^4.1.0" - lodash "^4.17.15" - yargs "^13.3.0" - -yargs@13.2.4: - version "13.2.4" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" - integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.0" - -yargs@13.3.0, yargs@^13.3.0: +yargs@^13.3.0: version "13.3.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== @@ -12949,15 +10896,3 @@ yargs@^14.2.2: which-module "^2.0.0" y18n "^4.0.0" yargs-parser "^15.0.0" - -yauzl@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" - integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= - dependencies: - fd-slicer "~1.0.1" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= From 737f9618d47dd752a00e1383e4013eeba373cb98 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Tue, 16 Jun 2020 15:12:43 -0400 Subject: [PATCH 71/82] some more cleanup on architecture diagrams --- docs/Architecture.ipynb | 2 +- docs/dot/as-is/backend.dot | 4 +--- docs/dot/as-is/frontend.dot | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/docs/Architecture.ipynb b/docs/Architecture.ipynb index a5ac6a778..2842dc7d1 100644 --- a/docs/Architecture.ipynb +++ b/docs/Architecture.ipynb @@ -165,7 +165,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.5" + "version": "3.7.6" } }, "nbformat": 4, diff --git a/docs/dot/as-is/backend.dot b/docs/dot/as-is/backend.dot index 346c1f4f6..89e46f64f 100644 --- a/docs/dot/as-is/backend.dot +++ b/docs/dot/as-is/backend.dot @@ -13,8 +13,6 @@ graph backend { subgraph cluster_kernel { label="The Language Server Kernel" Manager[label="The\nLanguage\nServer\nManager"] - Handlers - ControlComm SpecFinders subgraph cluster_lsp { label="Per Language Server" LanguageServerComm @@ -46,7 +44,7 @@ graph backend { } } - Clients -- {ControlComm LanguageServerComm} -- Manager + Clients -- {LanguageServerComm} -- Manager Session -- {Reader Writer} -- LanguageServer {Manager Traitlets EntryPoints} -- {SpecFinders Listeners} Manager -- {Spec Session} diff --git a/docs/dot/as-is/frontend.dot b/docs/dot/as-is/frontend.dot index 9a5fd5d60..0f7edacc9 100644 --- a/docs/dot/as-is/frontend.dot +++ b/docs/dot/as-is/frontend.dot @@ -21,7 +21,6 @@ graph backend { DiagnosticPanel ConnectionManager LanguageServerManager - ControlComm } WidgetTrackers @@ -53,7 +52,7 @@ graph backend { {Connection CodeMirrors VirtualDocument VirtualEditor} -- Feature[lhead=cluster_features]; Diagnostics -- DiagnosticPanel - Connection -- ConnectionManager -- LanguageServerManager -- ControlComm -- LanguageServerKernel + Connection -- ConnectionManager -- LanguageServerManager CodeMirrors -- CodeMirrorAdapters -- WidgetAdapter WidgetAdapter -- VirtualEditor -- VirtualDocument WidgetTrackers -- {Plugin -- Widget} From 6c8899fbbbc496e6053860652ae6e3a92a145a14 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Tue, 16 Jun 2020 15:22:26 -0400 Subject: [PATCH 72/82] smore more cleanup on architecture diagrams --- docs/dot/as-is/backend.dot | 1 + docs/dot/as-is/frontend.dot | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/docs/dot/as-is/backend.dot b/docs/dot/as-is/backend.dot index 89e46f64f..fab87d8e9 100644 --- a/docs/dot/as-is/backend.dot +++ b/docs/dot/as-is/backend.dot @@ -45,6 +45,7 @@ graph backend { } Clients -- {LanguageServerComm} -- Manager + LanguageServerComm -- Spec Session -- {Reader Writer} -- LanguageServer {Manager Traitlets EntryPoints} -- {SpecFinders Listeners} Manager -- {Spec Session} diff --git a/docs/dot/as-is/frontend.dot b/docs/dot/as-is/frontend.dot index 0f7edacc9..979d73b29 100644 --- a/docs/dot/as-is/frontend.dot +++ b/docs/dot/as-is/frontend.dot @@ -15,6 +15,10 @@ graph backend { LanguageServerKernel[label="The Language Server Kernel"] } subgraph cluster_lab { label="JupyterLab" + WidgetTrackers + SettingsManager + ServiceManager + subgraph cluster_singletons { label="Singletons" Plugin StatusBarItem @@ -22,12 +26,17 @@ graph backend { ConnectionManager LanguageServerManager } - WidgetTrackers + + subgraph cluster_kernels { label="Kernels" + ClientLanguageServerKernel[label="The Language Server Kernel"] + } subgraph cluster_lang {label="Per Language" Connection LanguageServerComm + Comm } + subgraph cluster_doc { label="Per Document" Widget CodeMirrors @@ -52,14 +61,14 @@ graph backend { {Connection CodeMirrors VirtualDocument VirtualEditor} -- Feature[lhead=cluster_features]; Diagnostics -- DiagnosticPanel - Connection -- ConnectionManager -- LanguageServerManager + Connection -- ConnectionManager -- LanguageServerManager -- ClientLanguageServerKernel CodeMirrors -- CodeMirrorAdapters -- WidgetAdapter WidgetAdapter -- VirtualEditor -- VirtualDocument WidgetTrackers -- {Plugin -- Widget} StatusBarItem -- Connection - Widget -- WidgetAdapter -- Plugin -- StatusBarItem -- LanguageServerManager + Widget -- WidgetAdapter -- Plugin -- StatusBarItem -- LanguageServerManager -- SettingsManager Widget -- CodeMirrors Plugin -- {ConnectionManager LanguageServerManager} - Connection -- LanguageServerComm -- LanguageServerKernel + Connection -- LanguageServerComm -- Comm -- ClientLanguageServerKernel -- ServiceManager -- LanguageServerKernel {Keyboard Mouse} -- CodeMirrors } From 65542f22b55f1c6b832d0cab125b4262ac7909f0 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Tue, 16 Jun 2020 15:29:53 -0400 Subject: [PATCH 73/82] disable docs in azure (now done by rtd) --- azure-pipelines.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c3aa5b4c5..32c7e9506 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -26,4 +26,3 @@ variables: jobs: - template: ci/job.lint.yml - template: ci/job.test.yml - - template: ci/job.docs.yml From 2ee1f6d1948091c1c464671bb26ea77a41eeb9b2 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Tue, 16 Jun 2020 15:51:49 -0400 Subject: [PATCH 74/82] some more docs about the serverextension->kernel transition --- README.md | 8 +++++- .../jupyterlab-lsp/src/connection_manager.ts | 5 +--- packages/jupyterlab-lsp/src/manager.ts | 25 +++++++++++++++++-- py_src/jupyter_lsp/README.md | 11 ++++---- setup.cfg | 2 +- 5 files changed, 38 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 3f365bc04..9797214f5 100644 --- a/README.md +++ b/README.md @@ -104,12 +104,18 @@ Use of a python `virtualenv` or a conda env is also recommended. pip install 'jupyterlab>=2,<2.1.0a0' ``` -1. install the server extension: +1. install the kernel: ```bash pip install jupyter-lsp ``` +1. enable the kernelspec + +```bash +jupyter lsp kernelspec install +``` + 1. install `nodejs` ```bash diff --git a/packages/jupyterlab-lsp/src/connection_manager.ts b/packages/jupyterlab-lsp/src/connection_manager.ts index 8eca6642a..539d4eb30 100644 --- a/packages/jupyterlab-lsp/src/connection_manager.ts +++ b/packages/jupyterlab-lsp/src/connection_manager.ts @@ -136,9 +136,6 @@ export class DocumentConnectionManager { language }); - // lazily load 1) the underlying library (1.5mb) and/or 2) a live WebSocket- - // like connection: either already connected or potentiailly in the process - // of connecting. const connection = await Private.connection( language, language_server_id, @@ -350,7 +347,7 @@ namespace Private { } /** - * Return (or create and initialize) the WebSocket associated with the language + * Return (or create and initialize) the connection associated with the language */ export async function connection( language: string, diff --git a/packages/jupyterlab-lsp/src/manager.ts b/packages/jupyterlab-lsp/src/manager.ts index aaff2fef5..abcafb7c0 100644 --- a/packages/jupyterlab-lsp/src/manager.ts +++ b/packages/jupyterlab-lsp/src/manager.ts @@ -133,8 +133,11 @@ export class LanguageServerManager implements ILanguageServerManager { const commIds = Object.keys(commInfo.content.comms); const commId = commIds.length ? commIds[0] : null; - // not _neccessarily_ the language server comm, but we can use it anyway - // and it wil be re-connected later + /** + * If comms are already open on the server, this will not _neccessarily_ + * be "the" control comm, but we can use it anyway and it wil be repurposed + * later. + */ const comm = kernel.createComm(COMM_TARGET, ...(commId ? [commId] : [])); comm.onMsg = this.onControlCommMsg.bind(this); comm.open({}); @@ -142,6 +145,9 @@ export class LanguageServerManager implements ILanguageServerManager { return comm; } + /** + * Handle a metadata-only comm message which provides information about all + */ protected async onControlCommMsg(msg: KernelMessage.ICommMsgMsg) { const { sessions, uris } = msg.metadata as SCHEMA.ServersResponse; this._rootUri = uris.root; @@ -151,6 +157,9 @@ export class LanguageServerManager implements ILanguageServerManager { this._kernelReady.resolve(void 0); } + /** + * Find a language server comm by implementation id + */ protected async getLanguageServerComm(language_server_id: TLanguageServerId) { const kernel = await this.ensureKernel(); @@ -175,6 +184,18 @@ export class LanguageServerManager implements ILanguageServerManager { return comm; } + /** + * Start a singleton Language Server Kernel + * + * Right now, this is a singleton, as it is the only kernel that supports + * the `jupyter.lsp` comm target. When another kernel _does_ support it, + * it would be neccessary to: + * + * - ask all open kernels if they support `jupyter.lsp` + * - open the comm + * - see which language (servers) they provide + * - probably give the user the option to prefer "native" kernel LSP sources + */ async initKernel() { if (this._kernelSessionConnection) { this._kernelSessionConnection.dispose(); diff --git a/py_src/jupyter_lsp/README.md b/py_src/jupyter_lsp/README.md index 453c7acfd..30d101760 100644 --- a/py_src/jupyter_lsp/README.md +++ b/py_src/jupyter_lsp/README.md @@ -1,7 +1,7 @@ # jupyter-lsp -Multi-[Language Server][language-server] WebSocket proxy for your Jupyter -`notebook` or `lab` server. For Python 3.5+. +A Jupyter Kernel for managing and proxying any number of [Language Servers][language-server]. +Powered by [ipykernel][] and Python 3.5+. > See the parent of this repository, > [jupyterlab-lsp](https://github.com/krassowski/jupyterlab-lsp) for the @@ -12,8 +12,9 @@ Multi-[Language Server][language-server] WebSocket proxy for your Jupyter `jupyter-lsp` does not come with any Language Servers! Learn more about installing and configuring [language servers](../../docs/LANGUAGESERVERS.md) -[language-server]: https://microsoft.github.io/language-server-protocol/specification -[langserver]: https://langserver.org -[lsp-implementations]: https://microsoft.github.io/language-server-protocol/implementors/servers +[ipykernel]: https://github.com/ipython/ipykernel [jupyter-lsp]: https://github.com/krassowski/jupyterlab-lsp.git [jupyterlab]: https://github.com/jupyterlab/jupyterlab +[langserver]: https://langserver.org +[language-server]: https://microsoft.github.io/language-server-protocol/specification +[lsp-implementations]: https://microsoft.github.io/language-server-protocol/implementors/servers diff --git a/setup.cfg b/setup.cfg index dd197273c..e4997832a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = jupyter-lsp -description = Multi-Language Server WebSocket proxy for Jupyter notebook or lab server for Python 3.5+. +description = Jupyter Kernel for managing and proxying any number of Language Servers long_description = file: ./py_src/jupyter_lsp/README.md long_description_content_type = text/markdown url = https://github.com/krassowski/jupyterlab-lsp From 7bc7e32fcf2199d2f109d1f871c61ba827a1f81f Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Tue, 16 Jun 2020 15:55:51 -0400 Subject: [PATCH 75/82] update some more docs with kernel stuff --- README.md | 6 +++--- docs/Installation.ipynb | 24 +++++++++++++++++++++--- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 9797214f5..15408be74 100644 --- a/README.md +++ b/README.md @@ -112,9 +112,9 @@ Use of a python `virtualenv` or a conda env is also recommended. 1. enable the kernelspec -```bash -jupyter lsp kernelspec install -``` + ```bash + jupyter lsp kernelspec install + ``` 1. install `nodejs` diff --git a/docs/Installation.ipynb b/docs/Installation.ipynb index 78d911fca..d0a5f45d4 100644 --- a/docs/Installation.ipynb +++ b/docs/Installation.ipynb @@ -27,8 +27,8 @@ "\n", "- runs in your browser, as an extension to JupyterLab\n", "- to install it, you need:\n", - " - `nodejs >8`\n", - " - `jupyterlab >=1.1,<2`\n", + " - `nodejs >=10`\n", + " - `jupyterlab >=2,<3`\n", "\n", "#### Language Servers\n", "\n", @@ -55,10 +55,11 @@ "#### conda (minimal python)\n", "\n", "```bash\n", - "conda create -c conda-forge -n lsp 'python >=3.7,<3.8' 'jupyterlab=1.2' 'nodejs>8' python-language-server\n", + "conda create -c conda-forge -n lsp 'python >=3.7,<3.8' 'jupyterlab=2' 'nodejs>10' python-language-server\n", "# Also consider: r-languageserver [*]\n", "source activate lsp\n", "python -m pip install 'jupyter-lsp=1.0.0' --no-deps\n", + "jupyter lsp kernelspec install\n", "jupyter labextension install '@krassowski/jupyterlab-lsp@2.0.0'\n", "```\n", "\n", @@ -99,6 +100,7 @@ " 'r-languageserver' \\\n", " && python3 -m pip install --no-cache-dir --no-deps \\\n", " 'jupyter-lsp=1.0.0' \\\n", + " && jupyter lsp kernelspec install \\\n", " && jupyter labextension install --no-build \\\n", " '@krassowski/jupyterlab-lsp@2.0.0' \\\n", " && jupyter lab build --dev-build=False --minimize=True \\\n", @@ -209,6 +211,22 @@ "\n", "```bash\n", "pip install jupyter-lsp=1.0.0\n", + "jupyter lsp kernelspec install\n", + "```\n", + "\n", + "Verify your kernel is installed:\n", + "\n", + "```bash\n", + "jupyter kernelspec list\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Install Jupyter[Lab] LSP\n", + "```bash\n", "jupyter labextension install @krassowski/jupyterlab-lsp@2.0.0\n", "```" ] From 2e7bfe9a11420071b9465f6977073eb69fb5812f Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Tue, 16 Jun 2020 15:56:23 -0400 Subject: [PATCH 76/82] linting --- docs/Installation.ipynb | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/Installation.ipynb b/docs/Installation.ipynb index d0a5f45d4..95cf84723 100644 --- a/docs/Installation.ipynb +++ b/docs/Installation.ipynb @@ -226,6 +226,7 @@ "metadata": {}, "source": [ "#### Install Jupyter[Lab] LSP\n", + "\n", "```bash\n", "jupyter labextension install @krassowski/jupyterlab-lsp@2.0.0\n", "```" From 03015f47bbfc19be42a0e6471815475cfabb83dd Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Tue, 16 Jun 2020 16:18:00 -0400 Subject: [PATCH 77/82] ensure docs are opened before changing --- packages/jupyterlab-lsp/src/comm/connection.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/jupyterlab-lsp/src/comm/connection.ts b/packages/jupyterlab-lsp/src/comm/connection.ts index dbbb84a03..b80e0e450 100644 --- a/packages/jupyterlab-lsp/src/comm/connection.ts +++ b/packages/jupyterlab-lsp/src/comm/connection.ts @@ -27,6 +27,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { > = new Map(); private _listeners = new Map(); + private _openDocuments = new Map(); private closingManually = false; @@ -35,6 +36,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { this._rootUri = options.rootUri; this.initSignals(); this.initHandlers(); + this.commChanged.connect(() => this._openDocuments.clear()); } get rootUri() { @@ -297,6 +299,7 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { version: documentInfo.version } }).catch(err => console.warn(err)); + this._openDocuments.set(documentInfo.uri, true); this.sendChange(documentInfo); } @@ -304,6 +307,9 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { if (!this.isReady) { return; } + if (!this._openDocuments.get(documentInfo.uri)) { + this.sendOpen(documentInfo); + } this.notify(LSP.Method.DID_CHANGE, { textDocument: { uri: documentInfo.uri, @@ -527,6 +533,11 @@ export class CommLSPConnection extends CommLSP implements ILSPConnection { if (!this.isReady) { return; } + + if (!this._openDocuments.get(documentInfo.uri)) { + this.sendOpen(documentInfo); + } + this.notify(LSP.Method.DID_CHANGE, { textDocument: { uri: documentInfo.uri, From cb1baf6d74f71d5adef25e6019bcd75456c0a586 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 19 Jul 2020 13:01:35 -0400 Subject: [PATCH 78/82] upgrading lab --- README.md | 2 +- binder/environment.yml | 2 +- ci/job.docs.yml | 2 +- ci/job.lint.yml | 2 +- ci/job.test.yml | 6 +- docs/Installation.ipynb | 8 +- packages/jupyterlab-lsp/package.json | 4 +- requirements/lab.txt | 2 +- yarn.lock | 5395 ++++++++++++++++---------- 9 files changed, 3464 insertions(+), 1959 deletions(-) diff --git a/README.md b/README.md index 631bfc115..598d0eba2 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ Open it searching for "Show diagnostics panel" in JupyterLab commands palette or Either: -- JupyterLab >=2.1.0,<3.0.0a0 +- JupyterLab >=2.2.0,<3.0.0a0 And: diff --git a/binder/environment.yml b/binder/environment.yml index c119e143c..9d00637c1 100644 --- a/binder/environment.yml +++ b/binder/environment.yml @@ -7,7 +7,7 @@ channels: dependencies: # runtime dependencies - python >=3.7,<3.8.0a0 - - jupyterlab >=2.1.0,<3.0.0a0 + - jupyterlab >=2.2.0,<3.0.0a0 - notebook >=4.3.1 # build dependencies - nodejs >=10,<14 diff --git a/ci/job.docs.yml b/ci/job.docs.yml index e0d1012fb..3fa742136 100644 --- a/ci/job.docs.yml +++ b/ci/job.docs.yml @@ -6,7 +6,7 @@ parameters: pythons: - name: ThreeSeven spec: '>=3.7,<3.8.0a0' - lab: '>=2,<3.0.0a0' + lab: '>=2.2.0,<3.0.0a0' nodejs: '>=12,<13.0.0a0' env_update: conda env update -n jupyterlab-lsp --file env-test.yml --quiet env_docs: conda env update -n jupyterlab-lsp --file requirements/docs.yml --quiet diff --git a/ci/job.lint.yml b/ci/job.lint.yml index 07af2f07b..9ab2ebb78 100644 --- a/ci/job.lint.yml +++ b/ci/job.lint.yml @@ -6,7 +6,7 @@ parameters: pythons: - name: ThreeSeven spec: '>=3.7,<3.8.0a0' - lab: '>=2,<3.0.0a0' + lab: '>=2.2.0,<3.0.0a0' nodejs: '>=12,<13.0.0a0' env_update: conda env update -n jupyterlab-lsp --file env-test.yml --quiet env_lint: conda env update -n jupyterlab-lsp --file requirements/lint.yml --quiet diff --git a/ci/job.test.yml b/ci/job.test.yml index 0b1d5cfef..f6188af8d 100644 --- a/ci/job.test.yml +++ b/ci/job.test.yml @@ -12,15 +12,15 @@ parameters: pythons: - name: ThreeSix spec: '=3.6' - lab: '>=2.1.0,<3.0.0a0' + lab: '>=2.2.0,<3.0.0a0' nodejs: '>=10,<11.0.0.a0' - name: ThreeSeven spec: '=3.7' - lab: '>=2.1.0,<3.0.0a0' + lab: '>=2.2.0,<3.0.0a0' nodejs: '>=12,<13.0.0a0' - name: ThreeEight spec: '=3.8' - lab: '>=2.1.0,<3.0.0a0' + lab: '>=2.2.0,<3.0.0a0' nodejs: '>=13,<14.0.0a0' js_cov_packages: - jupyterlab-go-to-definition diff --git a/docs/Installation.ipynb b/docs/Installation.ipynb index 10f80fc12..840edfe3e 100644 --- a/docs/Installation.ipynb +++ b/docs/Installation.ipynb @@ -262,9 +262,13 @@ ] }, { - "cell_type": "markdown", - "metadata": {}, + "cell_type": "code", + "execution_count": null, + "metadata": { + "hide_input": true + }, "source": [ + "%%markdown\n", "#### Install Jupyter[Lab] LSP\n", "\n", "```bash\n", diff --git a/packages/jupyterlab-lsp/package.json b/packages/jupyterlab-lsp/package.json index f575a3e79..7dc18cc87 100644 --- a/packages/jupyterlab-lsp/package.json +++ b/packages/jupyterlab-lsp/package.json @@ -41,7 +41,7 @@ }, "devDependencies": { "@babel/preset-env": "^7.4.3", - "@jupyterlab/application": "2", + "@jupyterlab/application": "^2.2.0", "@jupyterlab/apputils": "2", "@jupyterlab/cells": "2", "@jupyterlab/codeeditor": "2", @@ -76,7 +76,7 @@ "typescript": "~3.9.5" }, "peerDependencies": { - "@jupyterlab/application": "2", + "@jupyterlab/application": "^2.2.0", "@jupyterlab/apputils": "2", "@jupyterlab/cells": "2", "@jupyterlab/codeeditor": "2", diff --git a/requirements/lab.txt b/requirements/lab.txt index f977c4b5a..49263bfaf 100644 --- a/requirements/lab.txt +++ b/requirements/lab.txt @@ -1,3 +1,3 @@ # the version of jupyterlab -r ./prod.txt -jupyterlab >=2.1.0,<3.0.0a0 +jupyterlab >=2.2.0,<3.0.0a0 diff --git a/yarn.lock b/yarn.lock index 51c5a58a6..750c4d80d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,708 +2,855 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== +"@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.8.3" + "@babel/highlight" "^7.10.4" -"@babel/core@^7.1.0": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.4.tgz#d496799e5c12195b3602d0fddd77294e3e38e80e" - integrity sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.4" - "@babel/helpers" "^7.8.4" - "@babel/parser" "^7.8.4" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.4" - "@babel/types" "^7.8.3" +"@babel/compat-data@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.10.5.tgz#d38425e67ea96b1480a3f50404d1bf85676301a6" + integrity sha512-mPVoWNzIpYJHbWje0if7Ck36bpbtTvIxOi9+6WSK9wjGEXearAqlwBoTQvVjsAY2VIwgcs8V940geY3okzRCEw== + dependencies: + browserslist "^4.12.0" + invariant "^2.2.4" + semver "^5.5.0" + +"@babel/core@^7.1.0", "@babel/core@^7.7.5": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.10.5.tgz#1f15e2cca8ad9a1d78a38ddba612f5e7cdbbd330" + integrity sha512-O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.10.5" + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helpers" "^7.10.4" + "@babel/parser" "^7.10.5" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.5" + "@babel/types" "^7.10.5" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" - json5 "^2.1.0" - lodash "^4.17.13" + 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.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.4.tgz#35bbc74486956fe4251829f9f6c48330e8d0985e" - integrity sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA== +"@babel/generator@^7.10.5", "@babel/generator@^7.4.0": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.5.tgz#1b903554bc8c583ee8d25f1e8969732e6b829a69" + integrity sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.10.5" jsesc "^2.5.1" - lodash "^4.17.13" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz#5f73f2b28580e224b5b9bd03146a4015d6217f5f" - integrity sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/helper-call-delegate@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz#621b83e596722b50c0066f9dc37d3232e461b801" - integrity sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA== - dependencies: - "@babel/helper-hoist-variables" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/helper-create-regexp-features-plugin@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz#6d5762359fd34f4da1500e4cff9955b5299aaf59" - integrity sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A== +"@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/helper-regex" "^7.4.4" - regexpu-core "^4.6.0" + "@babel/types" "^7.10.4" -"@babel/helper-define-map@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz#2841bf92eb8bd9c906851546fe6b9d45e162f176" - integrity sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg== +"@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/helper-function-name" "^7.7.4" - "@babel/types" "^7.7.4" - lodash "^4.17.13" + "@babel/helper-explode-assignable-expression" "^7.10.4" + "@babel/types" "^7.10.4" -"@babel/helper-explode-assignable-expression@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz#fa700878e008d85dc51ba43e9fb835cddfe05c84" - integrity sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg== +"@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/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/compat-data" "^7.10.4" + browserslist "^4.12.0" + invariant "^2.2.4" + levenary "^1.1.1" + semver "^5.5.0" -"@babel/helper-function-name@^7.7.4", "@babel/helper-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" - integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" +"@babel/helper-create-class-features-plugin@^7.10.4": + 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.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz#40a1cd917bff1288f699a94a75b37a1a2dbd8c7c" + integrity sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A== + dependencies: + "@babel/traverse" "^7.10.4" + "@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.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.5.tgz#172f56e7a63e78112f3a04055f24365af702e7ee" + integrity sha512-HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA== + dependencies: + "@babel/types" "^7.10.5" + +"@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": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz#120c271c0b3353673fcdfd8c053db3c544a260d6" + integrity sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA== + 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.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.5" + 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": + 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.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz#fce8bea4e9690bbe923056ded21e54b4e8b68ed5" + integrity sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-wrap-function" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^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-split-export-declaration@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1" + integrity sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg== + dependencies: + "@babel/types" "^7.10.4" + +"@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" + js-tokens "^4.0.0" -"@babel/helper-get-function-arity@^7.7.4", "@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== - dependencies: - "@babel/types" "^7.8.3" +"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.10.5", "@babel/parser@^7.4.3": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.5.tgz#e7c6bf5a7deff957cec9f04b551e2762909d826b" + integrity sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ== -"@babel/helper-hoist-variables@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz#612384e3d823fdfaaf9fce31550fe5d4db0f3d12" - integrity sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ== +"@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/types" "^7.7.4" + "@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/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== +"@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/types" "^7.8.3" + "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/helper-module-imports@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== +"@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/types" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/helper-module-transforms@^7.7.4", "@babel/helper-module-transforms@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz#d044da7ffd91ec967db25cd6748f704b6b244835" - integrity sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw== +"@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/helper-module-imports" "^7.7.4" - "@babel/helper-simple-access" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" - lodash "^4.17.13" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.0" -"@babel/helper-optimise-call-expression@^7.7.4", "@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== +"@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/types" "^7.8.3" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" - integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" - integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== +"@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: - lodash "^4.17.13" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/helper-remap-async-to-generator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz#c68c2407350d9af0e061ed6726afb4fff16d0234" - integrity sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw== +"@babel/plugin-proposal-object-rest-spread@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz#50129ac216b9a6a55b3853fdd923e74bf553a4c0" + integrity sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA== dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-wrap-function" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.10.4" -"@babel/helper-replace-supers@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz#91192d25f6abbcd41da8a989d4492574fb1530bc" - integrity sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA== +"@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-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/helper-simple-access@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz#a169a0adb1b5f418cfc19f22586b2ebf58a9a294" - integrity sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A== +"@babel/plugin-proposal-optional-chaining@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz#750f1255e930a1f82d8cdde45031f81a0d0adff7" + integrity sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ== dependencies: - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/helper-split-export-declaration@^7.7.4", "@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== +"@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/types" "^7.8.3" + "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/helper-wrap-function@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz#37ab7fed5150e22d9d7266e830072c0cdd8baace" - integrity sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg== +"@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-function-name" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/helpers@^7.8.4": +"@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.4.tgz#754eb3ee727c165e0a240d6c207de7c455f36f73" - integrity sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w== + 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/template" "^7.8.3" - "@babel/traverse" "^7.8.4" - "@babel/types" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/highlight@^7.8.3": +"@babel/plugin-syntax-bigint@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" - integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== dependencies: - 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.8.3", "@babel/parser@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.4.tgz#d1dbe64691d60358a974295fa53da074dd2ce8e8" - integrity sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw== + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-proposal-async-generator-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz#0351c5ac0a9e927845fffd5b82af476947b7ce6d" - integrity sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw== +"@babel/plugin-syntax-class-properties@^7.10.4", "@babel/plugin-syntax-class-properties@^7.8.3": + 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.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.4" - "@babel/plugin-syntax-async-generators" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-dynamic-import@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz#dde64a7f127691758cbfed6cf70de0fa5879d52d" - integrity sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ== +"@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.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-proposal-json-strings@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz#7700a6bfda771d8dc81973249eac416c6b4c697d" - integrity sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw== +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.7.7": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.0.tgz#ca8ac673d32db774c2154a4c7517fd46ec45e9cf" - integrity sha512-SjJ2ZXCylpWC+5DTES0/pbpNmw/FnjU/3dF068xF0DU9aN+oOKah+3MCSFcb4pnZ9IwmxfOy4KnbGJSQR+hAZA== +"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": + 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-object-rest-spread" "^7.8.0" -"@babel/plugin-proposal-optional-catch-binding@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz#ec21e8aeb09ec6711bc0a39ca49520abee1de379" - integrity sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w== +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + 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.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-unicode-property-regex@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz#433fa9dac64f953c12578b29633f456b68831c4e" - integrity sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w== +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + 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-create-regexp-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-async-generators@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz#331aaf310a10c80c44a66b238b6e49132bd3c889" - integrity sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g== +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": + 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.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-dynamic-import@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz#29ca3b4415abfe4a5ec381e903862ad1a54c3aec" - integrity sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg== +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": + 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.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-json-strings@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz#86e63f7d2e22f9e27129ac4e83ea989a382e86cc" - integrity sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg== +"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": + 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.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.7.4", "@babel/plugin-syntax-object-rest-spread@^7.8.0": +"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": 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== + 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-optional-catch-binding@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz#a3e38f59f4b6233867b4a92dcb0ee05b2c334aa6" - integrity sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ== +"@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.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-top-level-await@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz#bd7d8fa7b9fee793a36e4027fd6dd1aa32f946da" - integrity sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg== +"@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.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-arrow-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz#76309bd578addd8aee3b379d809c802305a98a12" - integrity sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA== +"@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-plugin-utils" "^7.0.0" + "@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-async-to-generator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz#694cbeae6d613a34ef0292713fa42fb45c4470ba" - integrity sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg== +"@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-module-imports" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoped-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz#d0d9d5c269c78eaea76227ace214b8d01e4d837b" - integrity sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ== +"@babel/plugin-transform-block-scoping@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz#b81b8aafefbfe68f0f65f7ef397b9ece68a6037d" + integrity sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoping@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz#200aad0dcd6bb80372f94d9e628ea062c58bf224" - integrity sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg== +"@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-plugin-utils" "^7.0.0" - lodash "^4.17.13" + "@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-classes@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz#c92c14be0a1399e15df72667067a8f510c9400ec" - integrity sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg== +"@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-annotate-as-pure" "^7.7.4" - "@babel/helper-define-map" "^7.7.4" - "@babel/helper-function-name" "^7.7.4" - "@babel/helper-optimise-call-expression" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" - globals "^11.1.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-computed-properties@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz#e856c1628d3238ffe12d668eb42559f79a81910d" - integrity sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ== +"@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.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-destructuring@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz#2b713729e5054a1135097b6a67da1b6fe8789267" - integrity sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA== +"@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-plugin-utils" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-dotall-regex@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz#3e9713f1b69f339e87fa796b097d73ded16b937b" - integrity sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg== +"@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-create-regexp-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-duplicate-keys@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz#3d21731a42e3f598a73835299dd0169c3b90ac91" - integrity sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA== +"@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-plugin-utils" "^7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-exponentiation-operator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz#dd30c0191e3a1ba19bcc7e389bdfddc0729d5db9" - integrity sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ== +"@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-builder-binary-assignment-operator-visitor" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-for-of@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz#248800e3a5e507b1f103d8b4ca998e77c63932bc" - integrity sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA== +"@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-plugin-utils" "^7.0.0" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-function-name@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz#75a6d3303d50db638ff8b5385d12451c865025b1" - integrity sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g== +"@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-function-name" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz#27fe87d2b5017a2a5a34d1c41a6b9f6a6262643e" - integrity sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw== +"@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.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz#aee127f2f3339fc34ce5e3055d7ffbf7aa26f19a" - integrity sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA== +"@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-plugin-utils" "^7.0.0" + "@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-amd@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz#39e0fb717224b59475b306402bb8eedab01e729c" - integrity sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ== +"@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.7.5" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" + "@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-commonjs@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz#1d27f5eb0bcf7543e774950e5b2fa782e637b345" - integrity sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q== +"@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-module-transforms" "^7.7.5" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.7.4" - babel-plugin-dynamic-import-node "^2.3.0" + "@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-systemjs@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz#cd98152339d3e763dfe838b7d4273edaf520bb30" - integrity sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw== +"@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-hoist-variables" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-modules-umd@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz#1027c355a118de0aae9fee00ad7813c584d9061f" - integrity sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw== +"@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-module-transforms" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.10.4" -"@babel/plugin-transform-named-capturing-groups-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz#fb3bcc4ee4198e7385805007373d6b6f42c98220" - integrity sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw== +"@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-create-regexp-features-plugin" "^7.7.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-new-target@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz#4a0753d2d60639437be07b592a9e58ee00720167" - integrity sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg== +"@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.0.0" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" -"@babel/plugin-transform-object-super@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz#48488937a2d586c0148451bf51af9d7dda567262" - integrity sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg== +"@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-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.4" + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-parameters@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz#7a884b2460164dc5f194f668332736584c760007" - integrity sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew== +"@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-call-delegate" "^7.7.4" - "@babel/helper-get-function-arity" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-property-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz#2388d6505ef89b266103f450f9167e6bd73f98c2" - integrity sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ== +"@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: - "@babel/helper-plugin-utils" "^7.0.0" + regenerator-transform "^0.14.2" -"@babel/plugin-transform-regenerator@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz#3a8757ee1a2780f390e89f246065ecf59c26fce9" - integrity sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw== +"@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: - regenerator-transform "^0.14.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-reserved-words@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz#6a7cf123ad175bb5c69aec8f6f0770387ed3f1eb" - integrity sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ== +"@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.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-shorthand-properties@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz#74a0a9b2f6d67a684c6fbfd5f0458eb7ba99891e" - integrity sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q== +"@babel/plugin-transform-spread@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz#4e2c85ea0d6abaee1b24dcfbbae426fe8d674cff" + integrity sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-spread@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz#aa673b356fe6b7e70d69b6e33a17fef641008578" - integrity sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q== +"@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.0.0" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-regex" "^7.10.4" -"@babel/plugin-transform-sticky-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz#ffb68c05090c30732076b1285dc1401b404a123c" - integrity sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A== +"@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-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-template-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz#1eb6411736dd3fe87dbd20cc6668e5121c17d604" - integrity sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ== +"@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-annotate-as-pure" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-typeof-symbol@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz#3174626214f2d6de322882e498a38e8371b2140e" - integrity sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg== +"@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.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-unicode-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz#a3c0f65b117c4c81c5b6484f2a5e7b95346b83ae" - integrity sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw== +"@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.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/preset-env@^7.4.3": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.7.tgz#c294167b91e53e7e36d820e943ece8d0c7fe46ac" - integrity sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg== - dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.7.4" - "@babel/plugin-proposal-dynamic-import" "^7.7.4" - "@babel/plugin-proposal-json-strings" "^7.7.4" - "@babel/plugin-proposal-object-rest-spread" "^7.7.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.7.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.7.7" - "@babel/plugin-syntax-async-generators" "^7.7.4" - "@babel/plugin-syntax-dynamic-import" "^7.7.4" - "@babel/plugin-syntax-json-strings" "^7.7.4" - "@babel/plugin-syntax-object-rest-spread" "^7.7.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" - "@babel/plugin-syntax-top-level-await" "^7.7.4" - "@babel/plugin-transform-arrow-functions" "^7.7.4" - "@babel/plugin-transform-async-to-generator" "^7.7.4" - "@babel/plugin-transform-block-scoped-functions" "^7.7.4" - "@babel/plugin-transform-block-scoping" "^7.7.4" - "@babel/plugin-transform-classes" "^7.7.4" - "@babel/plugin-transform-computed-properties" "^7.7.4" - "@babel/plugin-transform-destructuring" "^7.7.4" - "@babel/plugin-transform-dotall-regex" "^7.7.7" - "@babel/plugin-transform-duplicate-keys" "^7.7.4" - "@babel/plugin-transform-exponentiation-operator" "^7.7.4" - "@babel/plugin-transform-for-of" "^7.7.4" - "@babel/plugin-transform-function-name" "^7.7.4" - "@babel/plugin-transform-literals" "^7.7.4" - "@babel/plugin-transform-member-expression-literals" "^7.7.4" - "@babel/plugin-transform-modules-amd" "^7.7.5" - "@babel/plugin-transform-modules-commonjs" "^7.7.5" - "@babel/plugin-transform-modules-systemjs" "^7.7.4" - "@babel/plugin-transform-modules-umd" "^7.7.4" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4" - "@babel/plugin-transform-new-target" "^7.7.4" - "@babel/plugin-transform-object-super" "^7.7.4" - "@babel/plugin-transform-parameters" "^7.7.7" - "@babel/plugin-transform-property-literals" "^7.7.4" - "@babel/plugin-transform-regenerator" "^7.7.5" - "@babel/plugin-transform-reserved-words" "^7.7.4" - "@babel/plugin-transform-shorthand-properties" "^7.7.4" - "@babel/plugin-transform-spread" "^7.7.4" - "@babel/plugin-transform-sticky-regex" "^7.7.4" - "@babel/plugin-transform-template-literals" "^7.7.4" - "@babel/plugin-transform-typeof-symbol" "^7.7.4" - "@babel/plugin-transform-unicode-regex" "^7.7.4" - "@babel/types" "^7.7.4" - browserslist "^4.6.0" - core-js-compat "^3.6.0" + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.10.4.tgz#fbf57f9a803afd97f4f32e4f798bb62e4b2bef5f" + integrity sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw== + dependencies: + "@babel/compat-data" "^7.10.4" + "@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-json-strings" "^7.10.4" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" + "@babel/plugin-proposal-numeric-separator" "^7.10.4" + "@babel/plugin-proposal-object-rest-spread" "^7.10.4" + "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" + "@babel/plugin-proposal-optional-chaining" "^7.10.4" + "@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-json-strings" "^7.8.0" + "@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.10.4" + "@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.10.4" + browserslist "^4.12.0" + core-js-compat "^3.6.2" invariant "^2.2.2" - js-levenshtein "^1.1.3" + levenary "^1.1.1" semver "^5.5.0" -"@babel/runtime-corejs3@^7.8.3": - version "7.10.2" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.10.2.tgz#3511797ddf9a3d6f3ce46b99cc835184817eaa4e" - integrity sha512-+a2M/u7r15o3dV1NEizr9bRi+KUVnrs/qYxF0Z06DAPx/4VCWaz1WA7EcbE+uqGgt39lp5akWGmHsTseIkHkHg== - dependencies: - core-js-pure "^3.0.0" - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.1.2": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.4.tgz#d79f5a2040f7caa24d53e563aad49cbc05581308" - integrity sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ== +"@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: - regenerator-runtime "^0.13.2" + "@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/template@^7.4.0", "@babel/template@^7.7.4", "@babel/template@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8" - integrity sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ== +"@babel/runtime@^7.1.2", "@babel/runtime@^7.8.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.5.tgz#303d8bd440ecd5a491eae6117fd3367698674c5c" + integrity sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg== dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.3" - "@babel/types" "^7.8.3" + regenerator-runtime "^0.13.4" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.4", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.4.tgz#f0845822365f9d5b0e312ed3959d3f827f869e3c" - integrity sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.4" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.8.4" - "@babel/types" "^7.8.3" +"@babel/template@^7.10.4", "@babel/template@^7.3.3", "@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.10.5", "@babel/traverse@^7.4.3": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.5.tgz#77ce464f5b258be265af618d8fddf0536f20b564" + integrity sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.10.5" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" + "@babel/parser" "^7.10.5" + "@babel/types" "^7.10.5" 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.7.4", "@babel/types@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" - integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg== +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.0", "@babel/types@^7.4.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz#d88ae7e2fde86bfbfe851d4d81afa70a997b5d15" + integrity sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q== 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" -"@blueprintjs/core@^3.22.2", "@blueprintjs/core@^3.24.0": - version "3.24.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-3.24.0.tgz#593a2b289bb94224f3a924eb1b3065ea3c4ca00a" - integrity sha512-qW29DDPjzYsT27J6n97C0jZ1ifvEEziwNC98UhaKdSE7I8qxbLsb+ft2JOop+pEX4ab67T1lhQKAiQjWCPKZng== +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@blueprintjs/core@^3.22.2", "@blueprintjs/core@^3.30.0": + version "3.30.0" + resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-3.30.0.tgz#d847e451741735a7b11216fb3ec1c669f201bb90" + integrity sha512-/fBhPmQ1AJ7ATGzA9YBlnxN8KV7PjNeW9KL+IOWiERUNcF9kuiuKJ88hTs7gSSHNtHmCF+jheD+X0MQq4WYVjA== dependencies: - "@blueprintjs/icons" "^3.14.0" + "@blueprintjs/icons" "^3.19.0" "@types/dom4" "^2.0.1" classnames "^2.2" dom4 "^2.1.5" normalize.css "^8.0.1" - popper.js "^1.15.0" + popper.js "^1.16.1" react-lifecycles-compat "^3.0.4" react-popper "^1.3.7" react-transition-group "^2.9.0" resize-observer-polyfill "^1.5.1" tslib "~1.10.0" -"@blueprintjs/icons@^3.14.0": - version "3.14.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-3.14.0.tgz#9f9a51b116907d103e4e2e9b78d53d4ac6f107fd" - integrity sha512-cvQ3CSdy0DqVqcXcPqSxoycJw497TVP5goyE6xCFlVs84477ahxh7Uung6J+CCoDVBuI87h576LtuyjwSxorvQ== +"@blueprintjs/icons@^3.19.0": + version "3.19.0" + resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-3.19.0.tgz#83ad9fe213705f6656dbec6e9d6bec75d3564455" + integrity sha512-pFgEdSDj8q8ESofuXXSfonsiiqQNJ0u54vr8zxQyKggSwgMyASM/h9MdFVED7jXaj5nsda4or+hWM1ilUeES4Q== dependencies: classnames "^2.2" tslib "~1.10.0" "@blueprintjs/select@^3.11.2": - version "3.12.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/select/-/select-3.12.0.tgz#cd20b39ecb79c9c117d9a26fd54789ed6d605aec" - integrity sha512-rABlv5M+h7onuoUuNsratyiukPnkdblDm7lt7GT4fbRmJglSsKylNnfHogNDZkMMHqmgmVB05mgzBQ+kcLA1cw== + version "3.13.5" + resolved "https://registry.yarnpkg.com/@blueprintjs/select/-/select-3.13.5.tgz#397b1833893a9a80ca111048b3ffa1335dc52649" + integrity sha512-GFdLhmD23JvWueLNDBZjE5+Kii1zT/R7vx/Ta5fPv3gdSnUBMyGZMkQAjKWrn7o7xyOE1im5G2A0sdhcfcs3iw== dependencies: - "@blueprintjs/core" "^3.24.0" + "@blueprintjs/core" "^3.30.0" classnames "^2.2" tslib "~1.10.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" @@ -783,9 +930,25 @@ which "^1.3.1" "@fortawesome/fontawesome-free@^5.12.0": - version "5.12.1" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.12.1.tgz#2a98fea9fbb8a606ddc79a4680034e9d5591c550" - integrity sha512-ZtjIIFplxncqxvogq148C3hBLQE+W3iJ8E4UvJ09zIJUgzwLcROsWwFDErVSXY2Plzao5J9KUYNHKHMEUYDMKw== + version "5.14.0" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.14.0.tgz#a371e91029ebf265015e64f81bfbf7d228c9681f" + integrity sha512-OfdMsF+ZQgdKHP9jUbmDcRrP0eX90XXrsXIdyjLbkmSBzmMXPABB8eobUJtivaupucYaByz6WNe1PI1JuYm3qA== + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" + integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== "@jest/console@^24.7.1", "@jest/console@^24.9.0": version "24.9.0" @@ -796,6 +959,17 @@ chalk "^2.0.1" slash "^2.0.0" +"@jest/console@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.5.0.tgz#770800799d510f37329c508a9edd0b7b447d9abb" + integrity sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw== + dependencies: + "@jest/types" "^25.5.0" + chalk "^3.0.0" + jest-message-util "^25.5.0" + jest-util "^25.5.0" + slash "^3.0.0" + "@jest/core@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" @@ -830,6 +1004,40 @@ slash "^2.0.0" strip-ansi "^5.0.0" +"@jest/core@^25.5.4": + version "25.5.4" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.5.4.tgz#3ef7412f7339210f003cdf36646bbca786efe7b4" + integrity sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA== + dependencies: + "@jest/console" "^25.5.0" + "@jest/reporters" "^25.5.1" + "@jest/test-result" "^25.5.0" + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^25.5.0" + jest-config "^25.5.4" + jest-haste-map "^25.5.1" + jest-message-util "^25.5.0" + jest-regex-util "^25.2.6" + jest-resolve "^25.5.1" + jest-resolve-dependencies "^25.5.4" + jest-runner "^25.5.4" + jest-runtime "^25.5.4" + jest-snapshot "^25.5.1" + jest-util "^25.5.0" + jest-validate "^25.5.0" + jest-watcher "^25.5.0" + micromatch "^4.0.2" + p-each-series "^2.1.0" + realpath-native "^2.0.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + "@jest/environment@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" @@ -840,6 +1048,15 @@ "@jest/types" "^24.9.0" jest-mock "^24.9.0" +"@jest/environment@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.5.0.tgz#aa33b0c21a716c65686638e7ef816c0e3a0c7b37" + integrity sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA== + dependencies: + "@jest/fake-timers" "^25.5.0" + "@jest/types" "^25.5.0" + jest-mock "^25.5.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" @@ -849,6 +1066,26 @@ jest-message-util "^24.9.0" jest-mock "^24.9.0" +"@jest/fake-timers@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.5.0.tgz#46352e00533c024c90c2bc2ad9f2959f7f114185" + integrity sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ== + dependencies: + "@jest/types" "^25.5.0" + jest-message-util "^25.5.0" + jest-mock "^25.5.0" + jest-util "^25.5.0" + lolex "^5.0.0" + +"@jest/globals@^25.5.2": + version "25.5.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-25.5.2.tgz#5e45e9de8d228716af3257eeb3991cc2e162ca88" + integrity sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA== + dependencies: + "@jest/environment" "^25.5.0" + "@jest/types" "^25.5.0" + expect "^25.5.0" + "@jest/reporters@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" @@ -876,6 +1113,38 @@ source-map "^0.6.0" string-length "^2.0.0" +"@jest/reporters@^25.5.1": + version "25.5.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.5.1.tgz#cb686bcc680f664c2dbaf7ed873e93aa6811538b" + integrity sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + chalk "^3.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^25.5.1" + jest-resolve "^25.5.1" + jest-util "^25.5.0" + jest-worker "^25.5.0" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^3.1.0" + terminal-link "^2.0.0" + v8-to-istanbul "^4.1.3" + optionalDependencies: + node-notifier "^6.0.0" + "@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" @@ -885,6 +1154,15 @@ graceful-fs "^4.1.15" source-map "^0.6.0" +"@jest/source-map@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-25.5.0.tgz#df5c20d6050aa292c2c6d3f0d2c7606af315bd1b" + integrity sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + "@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" @@ -894,6 +1172,16 @@ "@jest/types" "^24.9.0" "@types/istanbul-lib-coverage" "^2.0.0" +"@jest/test-result@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.5.0.tgz#139a043230cdeffe9ba2d8341b27f2efc77ce87c" + integrity sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A== + dependencies: + "@jest/console" "^25.5.0" + "@jest/types" "^25.5.0" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + "@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" @@ -904,6 +1192,17 @@ jest-runner "^24.9.0" jest-runtime "^24.9.0" +"@jest/test-sequencer@^25.5.4": + version "25.5.4" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz#9b4e685b36954c38d0f052e596d28161bdc8b737" + integrity sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA== + dependencies: + "@jest/test-result" "^25.5.0" + graceful-fs "^4.2.4" + jest-haste-map "^25.5.1" + jest-runner "^25.5.4" + jest-runtime "^25.5.4" + "@jest/transform@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" @@ -926,6 +1225,28 @@ source-map "^0.6.1" write-file-atomic "2.4.1" +"@jest/transform@^25.5.1": + version "25.5.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.5.1.tgz#0469ddc17699dd2bf985db55fa0fb9309f5c2db3" + integrity sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^25.5.0" + babel-plugin-istanbul "^6.0.0" + chalk "^3.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^25.5.1" + jest-regex-util "^25.2.6" + jest-util "^25.5.0" + micromatch "^4.0.2" + pirates "^4.0.1" + realpath-native "^2.0.0" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + "@jest/types@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" @@ -935,20 +1256,30 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" +"@jest/types@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" + integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + "@jupyterlab/application@2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-2.1.2.tgz#b69df3fc89fa586b984e4bbc9112f0cd6e703c96" - integrity sha512-b32BZGAt+LZWdzEN/c6RbmMxpbRxAIPrrl1HvopykWMdxMkFK9Y2g/qptg9Q2Lfo/t9WA/+i4NDOTUXFDB/9oQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-2.2.0.tgz#65d37cfc6146e28e7aa250667996024134400bfa" + integrity sha512-dayndJ2MahAORRMDrersVvANmOded5GkKKShUAq/8C24bRkKd8zb/U4IpG1Ge93NWVW6ATHjRst6LxkiR+biOA== dependencies: "@fortawesome/fontawesome-free" "^5.12.0" - "@jupyterlab/apputils" "^2.1.1" - "@jupyterlab/coreutils" "^4.1.0" - "@jupyterlab/docregistry" "^2.1.2" - "@jupyterlab/rendermime" "^2.1.1" - "@jupyterlab/rendermime-interfaces" "^2.1.0" - "@jupyterlab/services" "^5.1.0" - "@jupyterlab/statedb" "^2.1.0" - "@jupyterlab/ui-components" "^2.1.1" + "@jupyterlab/apputils" "^2.2.0" + "@jupyterlab/coreutils" "^4.2.0" + "@jupyterlab/docregistry" "^2.2.0" + "@jupyterlab/rendermime" "^2.2.0" + "@jupyterlab/rendermime-interfaces" "^2.2.0" + "@jupyterlab/services" "^5.2.0" + "@jupyterlab/statedb" "^2.2.0" + "@jupyterlab/ui-components" "^2.2.0" "@lumino/algorithm" "^1.2.3" "@lumino/application" "^1.8.4" "@lumino/commands" "^1.10.1" @@ -960,16 +1291,16 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/apputils@2", "@jupyterlab/apputils@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-2.1.1.tgz#069dc8214261c01c9e2ef58209137430649d4c01" - integrity sha512-orGzvW2S1k/FjW42dhygq8XJZbQRBTsNXXKFWsqewSn9sNTd3irKjDEwS3Ilce1w+LsS/t3H03xCnsOYPu8LSQ== - dependencies: - "@jupyterlab/coreutils" "^4.1.0" - "@jupyterlab/services" "^5.1.0" - "@jupyterlab/settingregistry" "^2.1.0" - "@jupyterlab/statedb" "^2.1.0" - "@jupyterlab/ui-components" "^2.1.1" +"@jupyterlab/apputils@2", "@jupyterlab/apputils@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-2.2.0.tgz#005d6b4dfd1b805fd968462e95dff0399d9b7dbb" + integrity sha512-QiPr3otdgOAI6K1FTR39RZI2AlFaeRhsdwB2W/XO+TIIYTRljmL93WuNixZQjgyVBqVhyMwPLPLtE/zt1diPvQ== + dependencies: + "@jupyterlab/coreutils" "^4.2.0" + "@jupyterlab/services" "^5.2.0" + "@jupyterlab/settingregistry" "^2.2.0" + "@jupyterlab/statedb" "^2.2.0" + "@jupyterlab/ui-components" "^2.2.0" "@lumino/algorithm" "^1.2.3" "@lumino/commands" "^1.10.1" "@lumino/coreutils" "^1.4.2" @@ -985,35 +1316,35 @@ react-dom "~16.9.0" sanitize-html "~1.20.1" -"@jupyterlab/attachments@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@jupyterlab/attachments/-/attachments-2.1.1.tgz#bee9964fe1acee39f9d3da489f5484fb24f91ff8" - integrity sha512-fyL198rn0SUDz+eViIVVR1Yyf89omK+FItxRtN0hRFVPSJedbLrdHn0YiuaqBNiyGyi9D8rvGOiQ/f5iy7Sotg== +"@jupyterlab/attachments@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/attachments/-/attachments-2.2.0.tgz#30c8b755fb6304454f9170e968acbe90f6b568be" + integrity sha512-GeNKuSNpc6v5KjXbek6kSxPYoUaPcPEyTehBpDay3m44H8vo/K5WXCCMu3x+i8JKG+fCsDFSAvnkPKeziGRgpA== dependencies: - "@jupyterlab/nbformat" "^2.1.0" - "@jupyterlab/observables" "^3.1.0" - "@jupyterlab/rendermime" "^2.1.1" - "@jupyterlab/rendermime-interfaces" "^2.1.0" + "@jupyterlab/nbformat" "^2.2.0" + "@jupyterlab/observables" "^3.2.0" + "@jupyterlab/rendermime" "^2.2.0" + "@jupyterlab/rendermime-interfaces" "^2.2.0" "@lumino/disposable" "^1.3.5" "@lumino/signaling" "^1.3.5" -"@jupyterlab/cells@2", "@jupyterlab/cells@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@jupyterlab/cells/-/cells-2.1.2.tgz#6d913e50cf434aa2eeed554c4337bdf17e6111bf" - integrity sha512-Ndi2rq/9+BaZZ3PCJC55BTSesiuZXkCXfkLhoTVMj/ifJ1YVP5CNwyEr0h2YGqNl8R9oKtHFA9CRUei49Qv3DA== - dependencies: - "@jupyterlab/apputils" "^2.1.1" - "@jupyterlab/attachments" "^2.1.1" - "@jupyterlab/codeeditor" "^2.1.1" - "@jupyterlab/codemirror" "^2.1.1" - "@jupyterlab/coreutils" "^4.1.0" - "@jupyterlab/filebrowser" "^2.1.2" - "@jupyterlab/nbformat" "^2.1.0" - "@jupyterlab/observables" "^3.1.0" - "@jupyterlab/outputarea" "^2.1.1" - "@jupyterlab/rendermime" "^2.1.1" - "@jupyterlab/services" "^5.1.0" - "@jupyterlab/ui-components" "^2.1.1" +"@jupyterlab/cells@2", "@jupyterlab/cells@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/cells/-/cells-2.2.0.tgz#0110d50cc992e04bb1ff90ebc8c0e73f0059bc8f" + integrity sha512-Hy/B5JahXKouCNRLTZPEbWryPNh9rhGsO801wG147mPBdVacWWqYafPNFH8LDkXgZcGVJu4TB94+GF6ZlV/oug== + dependencies: + "@jupyterlab/apputils" "^2.2.0" + "@jupyterlab/attachments" "^2.2.0" + "@jupyterlab/codeeditor" "^2.2.0" + "@jupyterlab/codemirror" "^2.2.0" + "@jupyterlab/coreutils" "^4.2.0" + "@jupyterlab/filebrowser" "^2.2.0" + "@jupyterlab/nbformat" "^2.2.0" + "@jupyterlab/observables" "^3.2.0" + "@jupyterlab/outputarea" "^2.2.0" + "@jupyterlab/rendermime" "^2.2.0" + "@jupyterlab/services" "^5.2.0" + "@jupyterlab/ui-components" "^2.2.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/dragdrop" "^1.5.1" @@ -1023,15 +1354,15 @@ "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/codeeditor@2", "@jupyterlab/codeeditor@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-2.1.1.tgz#3adb55e2d1a5c8792d064ce5ed16e7738e16a362" - integrity sha512-vdAxFHEv76cnAFlmaDQcnrKrtEODodYqZrckg0S/mKS7eR8QZQmnf52d8PjdQabtcEKpVY25pQu2/+UkrLKRig== +"@jupyterlab/codeeditor@2", "@jupyterlab/codeeditor@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-2.2.0.tgz#124bb0c7e61ab5c15c12ea4c9e95072e3f38900a" + integrity sha512-BIvvznUEGJ+sjmiyxEKr7OC9O2jDO9mCpoFMV0koPQuQEz/241JltuskM+BeP81CIIyP9yq3Le6qXttsq7dXDQ== dependencies: - "@jupyterlab/coreutils" "^4.1.0" - "@jupyterlab/nbformat" "^2.1.0" - "@jupyterlab/observables" "^3.1.0" - "@jupyterlab/ui-components" "^2.1.1" + "@jupyterlab/coreutils" "^4.2.0" + "@jupyterlab/nbformat" "^2.2.0" + "@jupyterlab/observables" "^3.2.0" + "@jupyterlab/ui-components" "^2.2.0" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" "@lumino/dragdrop" "^1.5.1" @@ -1039,17 +1370,17 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/codemirror@2", "@jupyterlab/codemirror@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-2.1.1.tgz#156b489438a2d5fd840b9797b464b4c3514cec75" - integrity sha512-f4cvsM5d7GI5se6Y/L7aCnYlm/XxrYXnK4ehZeqS3m8haRWyijwJW2BxOi0QJd2F25nv68adIuXVzV5581eTGQ== - dependencies: - "@jupyterlab/apputils" "^2.1.1" - "@jupyterlab/codeeditor" "^2.1.1" - "@jupyterlab/coreutils" "^4.1.0" - "@jupyterlab/nbformat" "^2.1.0" - "@jupyterlab/observables" "^3.1.0" - "@jupyterlab/statusbar" "^2.1.1" +"@jupyterlab/codemirror@2", "@jupyterlab/codemirror@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-2.2.0.tgz#0cc6fda9749ae22cc26ee3f52d897b7126a5c28e" + integrity sha512-mErh3xhemsUWxgDVxwYxaPmrKruXF0ks/GaRJyfbrTA/m8KnAf4jEbCISXeZTQ31EWAjdmkfUO35TVWvFCQYmg== + dependencies: + "@jupyterlab/apputils" "^2.2.0" + "@jupyterlab/codeeditor" "^2.2.0" + "@jupyterlab/coreutils" "^4.2.0" + "@jupyterlab/nbformat" "^2.2.0" + "@jupyterlab/observables" "^3.2.0" + "@jupyterlab/statusbar" "^2.2.0" "@lumino/algorithm" "^1.2.3" "@lumino/commands" "^1.10.1" "@lumino/coreutils" "^1.4.2" @@ -1057,19 +1388,20 @@ "@lumino/polling" "^1.1.1" "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" - codemirror "~5.49.2" + codemirror "~5.53.2" react "~16.9.0" "@jupyterlab/completer@2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@jupyterlab/completer/-/completer-2.1.1.tgz#4d4f8b0f91590a23d4496f42477a2eeb1029b2d9" - integrity sha512-XHpeqrPNTbMyBhIHj0nQTyfJSpVe7+CYWrTOJO/33pGkc5qZpfegSgI22G697zNNf6WwVg61aYRN67ItZn3tOg== - dependencies: - "@jupyterlab/apputils" "^2.1.1" - "@jupyterlab/codeeditor" "^2.1.1" - "@jupyterlab/coreutils" "^4.1.0" - "@jupyterlab/services" "^5.1.0" - "@jupyterlab/statedb" "^2.1.0" + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/completer/-/completer-2.2.0.tgz#c714bd778778d12484c4e162b00a543613c9995f" + integrity sha512-cQTKPZvA0lt1bhkn8smjXQ34UIhVxGma2PL2l8/krKcM01FXGZDDg5/Zae/bzTRCF+pEjDsS2ljbcp8MRUDsdQ== + dependencies: + "@jupyterlab/apputils" "^2.2.0" + "@jupyterlab/codeeditor" "^2.2.0" + "@jupyterlab/coreutils" "^4.2.0" + "@jupyterlab/services" "^5.2.0" + "@jupyterlab/statedb" "^2.2.0" + "@jupyterlab/ui-components" "^2.2.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1078,10 +1410,10 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/coreutils@4", "@jupyterlab/coreutils@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-4.1.0.tgz#ac6cee0558b7c15786e0a210ac3b40a86aec8e84" - integrity sha512-2lcXHd8ZCUuqoiZYK9Xs4HHX46jkdtsdmfgvgg/3odFXFMdv4Twau7fqr9URgRl5JYszPPpItGJIorAVipVfNQ== +"@jupyterlab/coreutils@4", "@jupyterlab/coreutils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-4.2.0.tgz#13ee2291cad40995f17dee8e6572913d50c83e60" + integrity sha512-jxR3Y6ONYL4Pe6I1cT9hgsU7iCuNQfb31FBK9HX62D5ky40O/BN2VYlNX6+lPXXeSEvH4kqKEQfMG1kADK2ONg== dependencies: "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1091,16 +1423,16 @@ path-posix "~1.0.0" url-parse "~1.4.7" -"@jupyterlab/docmanager@2", "@jupyterlab/docmanager@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-2.1.2.tgz#036f6a2ef61eacee2a4d4f2e9bc85e225a85f343" - integrity sha512-Yh5qlgR9RsPrMvYMPsLe+ZF8/1pRp6AzvHC9pR9j6DvuDkkO5DRyfJooCuQUoYYLGGEVYvioqj049M0rWT8gxw== - dependencies: - "@jupyterlab/apputils" "^2.1.1" - "@jupyterlab/coreutils" "^4.1.0" - "@jupyterlab/docregistry" "^2.1.2" - "@jupyterlab/services" "^5.1.0" - "@jupyterlab/statusbar" "^2.1.1" +"@jupyterlab/docmanager@2", "@jupyterlab/docmanager@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-2.2.0.tgz#b8365e357341e242855b78f866780117f11df481" + integrity sha512-v8/5SExM66LHXvidEBNXTeqcbvHnSGWsRJqOXedItgYpTioKnWiDrrqDgt5VPJ+pOopsa00knLm8Z9GjzikBEA== + dependencies: + "@jupyterlab/apputils" "^2.2.0" + "@jupyterlab/coreutils" "^4.2.0" + "@jupyterlab/docregistry" "^2.2.0" + "@jupyterlab/services" "^5.2.0" + "@jupyterlab/statusbar" "^2.2.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1110,20 +1442,20 @@ "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/docregistry@2", "@jupyterlab/docregistry@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-2.1.2.tgz#62fa7bb2e345ca5005d5781a5481be6213964614" - integrity sha512-nUTkijFXmyaro0V4lLb9PudkdwNa/IyzNggW9Y8VJtDX4uCuwYznWspQ6w6HeXTfV2NSLfNvJ4n3gASxUmaCPQ== - dependencies: - "@jupyterlab/apputils" "^2.1.1" - "@jupyterlab/codeeditor" "^2.1.1" - "@jupyterlab/codemirror" "^2.1.1" - "@jupyterlab/coreutils" "^4.1.0" - "@jupyterlab/observables" "^3.1.0" - "@jupyterlab/rendermime" "^2.1.1" - "@jupyterlab/rendermime-interfaces" "^2.1.0" - "@jupyterlab/services" "^5.1.0" - "@jupyterlab/ui-components" "^2.1.1" +"@jupyterlab/docregistry@2", "@jupyterlab/docregistry@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-2.2.0.tgz#45ff2310af556753a3db4688270061b0cca4f1c0" + integrity sha512-jIjZ+YXYoNtTcZzfNBrf/1VNxLTSiMasaOB9jUsgVy6Z3MYuPrRobBp29ovVoTx8s/xe7sEbJr3MHIepJmuZxw== + dependencies: + "@jupyterlab/apputils" "^2.2.0" + "@jupyterlab/codeeditor" "^2.2.0" + "@jupyterlab/codemirror" "^2.2.0" + "@jupyterlab/coreutils" "^4.2.0" + "@jupyterlab/observables" "^3.2.0" + "@jupyterlab/rendermime" "^2.2.0" + "@jupyterlab/rendermime-interfaces" "^2.2.0" + "@jupyterlab/services" "^5.2.0" + "@jupyterlab/ui-components" "^2.2.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1131,19 +1463,19 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/filebrowser@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-2.1.2.tgz#b024ce334412a8c8f52be0c346f5fe678373bebe" - integrity sha512-6rEntHke97REIkuZ8kxcvxmui1HIsMmhNNYkQ2aOyhu206YBSvq6+tQ0PzITfhr/UnPJbIhIfWZ+/jZZBSpTqA== - dependencies: - "@jupyterlab/apputils" "^2.1.1" - "@jupyterlab/coreutils" "^4.1.0" - "@jupyterlab/docmanager" "^2.1.2" - "@jupyterlab/docregistry" "^2.1.2" - "@jupyterlab/services" "^5.1.0" - "@jupyterlab/statedb" "^2.1.0" - "@jupyterlab/statusbar" "^2.1.1" - "@jupyterlab/ui-components" "^2.1.1" +"@jupyterlab/filebrowser@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-2.2.0.tgz#0c1a29e1edb324e92c8598779df77fc31c3485c0" + integrity sha512-iPXecsNxz8Zdfv1IEXwN1hrgJzuM4ARw/5DZczp6aWZlaODRD6spA4lwkQ08SBAEtwcYDfMpyaEcI3fBjx8UhA== + dependencies: + "@jupyterlab/apputils" "^2.2.0" + "@jupyterlab/coreutils" "^4.2.0" + "@jupyterlab/docmanager" "^2.2.0" + "@jupyterlab/docregistry" "^2.2.0" + "@jupyterlab/services" "^5.2.0" + "@jupyterlab/statedb" "^2.2.0" + "@jupyterlab/statusbar" "^2.2.0" + "@jupyterlab/ui-components" "^2.2.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1156,43 +1488,43 @@ react "~16.9.0" "@jupyterlab/fileeditor@2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@jupyterlab/fileeditor/-/fileeditor-2.1.2.tgz#f0208493c22b6288c0d7b7fea93b4ad11a66f87d" - integrity sha512-YG7F5X/DqNJyqwSjwa/s8SXuVFzesW4lnTcwhA4M24B1YyUxr6lz2dIS8+FlTFmOqwVWCd1v8jy6IAd9LgDXAw== - dependencies: - "@jupyterlab/apputils" "^2.1.1" - "@jupyterlab/codeeditor" "^2.1.1" - "@jupyterlab/docregistry" "^2.1.2" - "@jupyterlab/statusbar" "^2.1.1" - "@jupyterlab/ui-components" "^2.1.1" + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/fileeditor/-/fileeditor-2.2.0.tgz#0df5a47d348015cd91c3307b53e9f15673e780d2" + integrity sha512-cZ4/UtWWp+3wEZAmpWHDPcSSnLocCjaQmVwV1c+ybbD5JzjtWNOc8Ndv5WEyL6qno23gWIUUmf0UU62sO/LGhA== + dependencies: + "@jupyterlab/apputils" "^2.2.0" + "@jupyterlab/codeeditor" "^2.2.0" + "@jupyterlab/docregistry" "^2.2.0" + "@jupyterlab/statusbar" "^2.2.0" + "@jupyterlab/ui-components" "^2.2.0" "@lumino/coreutils" "^1.4.2" "@lumino/messaging" "^1.3.3" "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/nbformat@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-2.1.0.tgz#cff41b91c647d32c30f1587ff12e6a3ee6d91ba0" - integrity sha512-4NybeAvLTpGLZguARl6g4ENGzIPYwUaU+CZpcH2H0vq47oXrzRrZMsiWq5Dufrn0sIhOD9CINHXJ9mxIYzj/JA== +"@jupyterlab/nbformat@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-2.2.0.tgz#b3acb2144e9b6c1579085f7c67709d85e6ce3fcf" + integrity sha512-BD88hlx2u4zFf976yJUdny84UvY8iQRWk+eZ6+Aj4XEFdY0j79evac7L7KEusZRnOq9uV4juAlZMUo2+iRPIIQ== dependencies: "@lumino/coreutils" "^1.4.2" -"@jupyterlab/notebook@2", "@jupyterlab/notebook@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@jupyterlab/notebook/-/notebook-2.1.2.tgz#b41c9769e3427fb53f5932845fc526b939f1f255" - integrity sha512-zJXLlG6+GqZaH1uEcYk3bj7qXj6p/TJwlhezyeZVdS9/KsVfiozmO+2S79O5ZEEXKuzSujdqmjLyR3sJAhr+PA== - dependencies: - "@jupyterlab/apputils" "^2.1.1" - "@jupyterlab/cells" "^2.1.2" - "@jupyterlab/codeeditor" "^2.1.1" - "@jupyterlab/coreutils" "^4.1.0" - "@jupyterlab/docregistry" "^2.1.2" - "@jupyterlab/nbformat" "^2.1.0" - "@jupyterlab/observables" "^3.1.0" - "@jupyterlab/rendermime" "^2.1.1" - "@jupyterlab/services" "^5.1.0" - "@jupyterlab/statusbar" "^2.1.1" - "@jupyterlab/ui-components" "^2.1.1" +"@jupyterlab/notebook@2", "@jupyterlab/notebook@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/notebook/-/notebook-2.2.0.tgz#3f240eb17f6a447d43f1374ee6e20432f35cad14" + integrity sha512-sFjUjaBWLK4bkZ04czbaSJSqisYel6wyjtQZ43Nv3AEQya0AjW37b++1G0f5TdvE//lJTC4OCGDNTZAVVCbK9g== + dependencies: + "@jupyterlab/apputils" "^2.2.0" + "@jupyterlab/cells" "^2.2.0" + "@jupyterlab/codeeditor" "^2.2.0" + "@jupyterlab/coreutils" "^4.2.0" + "@jupyterlab/docregistry" "^2.2.0" + "@jupyterlab/nbformat" "^2.2.0" + "@jupyterlab/observables" "^3.2.0" + "@jupyterlab/rendermime" "^2.2.0" + "@jupyterlab/services" "^5.2.0" + "@jupyterlab/statusbar" "^2.2.0" + "@jupyterlab/ui-components" "^2.2.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/domutils" "^1.1.7" @@ -1204,10 +1536,10 @@ "@lumino/widgets" "^1.11.1" react "~16.9.0" -"@jupyterlab/observables@3", "@jupyterlab/observables@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-3.1.0.tgz#8c6e95ea8354802d84c081e0e120892314289806" - integrity sha512-4Dx6o5BzHVdWFFUPTAaeUkGngJfy5Qm0N37lbh/2NcWz1NZuuC6SrgREW3zcLSKwxdwkMAXo6En0T1UyrCFjTA== +"@jupyterlab/observables@3", "@jupyterlab/observables@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-3.2.0.tgz#866d9c9f3bdb2fda5c3262647deb72b5cd009ae2" + integrity sha512-BZ6lwmeFMjFq9ffl5wkJCjvjiGAVkydWGPWIf7ebvQriTQ6ALI6eG/aqniQLhd2yE0jEiLWhaxApiFGQmLtQPA== dependencies: "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" @@ -1215,17 +1547,17 @@ "@lumino/messaging" "^1.3.3" "@lumino/signaling" "^1.3.5" -"@jupyterlab/outputarea@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@jupyterlab/outputarea/-/outputarea-2.1.1.tgz#72abeb796ebac7a4df3ccdb163ef8c40f740c591" - integrity sha512-MtJpK+1D4A1nW2tMQ4+Y/4URiFecnGnPbNtIv8kYjuJ/ApXbvBLzCKusgEuo5GFo2RpN/lHpaEcG2TqaXZd0XQ== - dependencies: - "@jupyterlab/apputils" "^2.1.1" - "@jupyterlab/nbformat" "^2.1.0" - "@jupyterlab/observables" "^3.1.0" - "@jupyterlab/rendermime" "^2.1.1" - "@jupyterlab/rendermime-interfaces" "^2.1.0" - "@jupyterlab/services" "^5.1.0" +"@jupyterlab/outputarea@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/outputarea/-/outputarea-2.2.0.tgz#044515c9557dabf81636c3a724077c56c24b9fa9" + integrity sha512-ZMhcCHD6mEnvZ0DMvfnuKqDAOKDrbjS5F1ibTpdamohoLoECNc+NcU2j0TgyHwPEEFjU0uKlsVPPmus27uQxpA== + dependencies: + "@jupyterlab/apputils" "^2.2.0" + "@jupyterlab/nbformat" "^2.2.0" + "@jupyterlab/observables" "^3.2.0" + "@jupyterlab/rendermime" "^2.2.0" + "@jupyterlab/rendermime-interfaces" "^2.2.0" + "@jupyterlab/services" "^5.2.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1234,26 +1566,26 @@ "@lumino/signaling" "^1.3.5" "@lumino/widgets" "^1.11.1" -"@jupyterlab/rendermime-interfaces@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-2.1.0.tgz#936fec0248a70c0e64c8bf292e9719fbc5d3516c" - integrity sha512-WZsFan4snRX3UkxMer4dOpsQcV1R3Two8wT4wLM7nrIHuwHxuruiIlzpmsZENaKfF6C5SKP5esi6DSfjs5y90g== +"@jupyterlab/rendermime-interfaces@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-2.2.0.tgz#0b9f807a788a78ad067d6425d8b2c323c82b2b18" + integrity sha512-2gdYvRzq+IfOKgI751aZY9Gr8of3UeVZ03O2nLyiSlHa6lWhKuzXDPPrKk3NiToOlc2rJSUy+Y9Oj+TONjfvKg== dependencies: "@lumino/coreutils" "^1.4.2" "@lumino/widgets" "^1.11.1" -"@jupyterlab/rendermime@2", "@jupyterlab/rendermime@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-2.1.1.tgz#da466027ff18be611aa133a96dfd75fc11045989" - integrity sha512-ePzpX8w2DcI/pYy7ew8cgBqUzoAhOvBpy4iMRTntbiUYhLqSipsOg71jW1h8U/fSwyvZMr/3d5keBHeJTP4U/w== - dependencies: - "@jupyterlab/apputils" "^2.1.1" - "@jupyterlab/codemirror" "^2.1.1" - "@jupyterlab/coreutils" "^4.1.0" - "@jupyterlab/nbformat" "^2.1.0" - "@jupyterlab/observables" "^3.1.0" - "@jupyterlab/rendermime-interfaces" "^2.1.0" - "@jupyterlab/services" "^5.1.0" +"@jupyterlab/rendermime@2", "@jupyterlab/rendermime@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-2.2.0.tgz#773982c89c881c322c8778512542f5fda2ee7fb0" + integrity sha512-wTls25TElx0iAjALKxgWyLW+QGFCAXnyH0XiGkQULrbUauRuoArPQ1hKMcz4KL6XJjydMg6s9cqV9gQ9o3yJ8Q== + dependencies: + "@jupyterlab/apputils" "^2.2.0" + "@jupyterlab/codemirror" "^2.2.0" + "@jupyterlab/coreutils" "^4.2.0" + "@jupyterlab/nbformat" "^2.2.0" + "@jupyterlab/observables" "^3.2.0" + "@jupyterlab/rendermime-interfaces" "^2.2.0" + "@jupyterlab/services" "^5.2.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/messaging" "^1.3.3" @@ -1262,16 +1594,16 @@ lodash.escape "^4.0.1" marked "^0.8.0" -"@jupyterlab/services@5", "@jupyterlab/services@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-5.1.0.tgz#891607d87cbe9413219cfe4ceb9905193b85b657" - integrity sha512-xhtDvAdgw+sWNSbpkExCYyJbHxlwhiZYqc07+zhOdYrpxO19k/ZmmyNoYCyfvNLcMQ4JWVBoczI714u1QNLj4w== - dependencies: - "@jupyterlab/coreutils" "^4.1.0" - "@jupyterlab/nbformat" "^2.1.0" - "@jupyterlab/observables" "^3.1.0" - "@jupyterlab/settingregistry" "^2.1.0" - "@jupyterlab/statedb" "^2.1.0" +"@jupyterlab/services@5", "@jupyterlab/services@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-5.2.0.tgz#896e5515d1403fe1d4b001f7adfdcc8bddcbc48d" + integrity sha512-FeQlZDJjJXlRwfTjn6OtKIkiKVqIlRUV8qIC48cvruR55pmIXMcISkpKg2f4yRf4QYfyjEBcDJDA4Qy37Qx4bA== + dependencies: + "@jupyterlab/coreutils" "^4.2.0" + "@jupyterlab/nbformat" "^2.2.0" + "@jupyterlab/observables" "^3.2.0" + "@jupyterlab/settingregistry" "^2.2.0" + "@jupyterlab/statedb" "^2.2.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1280,12 +1612,12 @@ node-fetch "^2.6.0" ws "^7.2.0" -"@jupyterlab/settingregistry@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-2.1.0.tgz#6be3c56b58657cdbff5320670ed17ddf0119db32" - integrity sha512-FkWKcg+7d4iWz/u7am3kmRWraJiVE5uidvzADE/PfByGhYQnwJ0ROjyJwaf/GFJv7yJZewxyr7Q4JXVuoIZwPg== +"@jupyterlab/settingregistry@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-2.2.0.tgz#9f05bb1dbcfe76863dd9de6539c3b92c95bafeb8" + integrity sha512-C/UIzUJaZqrh4IREabzkYHdhOTMZDXdwoNSodpGVSVY3QAZnjkTA1YtHCyohryd+nJ8H+lIH+rGz1HOrorvZnA== dependencies: - "@jupyterlab/statedb" "^2.1.0" + "@jupyterlab/statedb" "^2.2.0" "@lumino/commands" "^1.10.1" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1293,10 +1625,10 @@ ajv "^6.10.2" json5 "^2.1.1" -"@jupyterlab/statedb@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-2.1.0.tgz#3b1889417563bb855bb3fd64fb8d2f45f5df7013" - integrity sha512-3L0NGJvNeI2KeU6jrY97riEmxcKtHb1WRxbMU9ORIppR5Sb5x3K3qErep7r9qu0lV7XH9Zb95uMukX4bgj2GaA== +"@jupyterlab/statedb@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-2.2.0.tgz#4d7e708832f968f011c34e4802efec02c693dd50" + integrity sha512-53izqdjTjVAdxF9qsAQc4tkKYYICtDVeTr+STdOj59Qbz5EiAPnR9o/fE87eSG+LwqrZSQKs1Bw/yRiTWiU7BQ== dependencies: "@lumino/commands" "^1.10.1" "@lumino/coreutils" "^1.4.2" @@ -1304,16 +1636,16 @@ "@lumino/properties" "^1.1.6" "@lumino/signaling" "^1.3.5" -"@jupyterlab/statusbar@2", "@jupyterlab/statusbar@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-2.1.1.tgz#ccf4672d0ca0911e8dd02788aaa8c8cb0e63f1c0" - integrity sha512-Q9/7wXy0m2/g+bn6KHUC7s0YQCbjArZ4G+OuCesHJpj0XiU8yuJki7uiRvTfxdrmB6w2/oU+YykLojS1NYgOWA== - dependencies: - "@jupyterlab/apputils" "^2.1.1" - "@jupyterlab/codeeditor" "^2.1.1" - "@jupyterlab/coreutils" "^4.1.0" - "@jupyterlab/services" "^5.1.0" - "@jupyterlab/ui-components" "^2.1.1" +"@jupyterlab/statusbar@2", "@jupyterlab/statusbar@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-2.2.0.tgz#877cb010afb499d0412944595029bfbd8451331b" + integrity sha512-W4gv0kIgqT4nQcctCi8Bb2Wutdcdsy1GMd6fuP/fCRAUqSoDyIGesC1nx/V8+GBEgzBAehSQhFi+4P6Opo6ZyQ== + dependencies: + "@jupyterlab/apputils" "^2.2.0" + "@jupyterlab/codeeditor" "^2.2.0" + "@jupyterlab/coreutils" "^4.2.0" + "@jupyterlab/services" "^5.2.0" + "@jupyterlab/ui-components" "^2.2.0" "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" "@lumino/disposable" "^1.3.5" @@ -1326,50 +1658,59 @@ typestyle "^2.0.4" "@jupyterlab/testutils@2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@jupyterlab/testutils/-/testutils-2.1.2.tgz#d9dcec61a35ecf3c8b95f7bacb9875b76eb011f0" - integrity sha512-vEGJYRnZCGQm/lNaQ0ilYBp88bvJsjK+pzLWCCHP2hcJzftIp91FmeoC5mN2O6RCXcqhLSGNkXCBEKwvnY7E4w== - dependencies: - "@jupyterlab/apputils" "^2.1.1" - "@jupyterlab/cells" "^2.1.2" - "@jupyterlab/codeeditor" "^2.1.1" - "@jupyterlab/codemirror" "^2.1.1" - "@jupyterlab/docregistry" "^2.1.2" - "@jupyterlab/nbformat" "^2.1.0" - "@jupyterlab/notebook" "^2.1.2" - "@jupyterlab/rendermime" "^2.1.1" - "@jupyterlab/services" "^5.1.0" + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/testutils/-/testutils-2.2.0.tgz#42a17f029583eb475f58233372e564623c7fc448" + integrity sha512-sKXv7TfdgOlxkWQfzIWbzF91ao6Ehtq7r6AvEhUy/IUoj73XskcvRvC40vvxqcBQo0snXnSqEP3hWSYNumWmfg== + dependencies: + "@jupyterlab/apputils" "^2.2.0" + "@jupyterlab/cells" "^2.2.0" + "@jupyterlab/codeeditor" "^2.2.0" + "@jupyterlab/codemirror" "^2.2.0" + "@jupyterlab/coreutils" "^4.2.0" + "@jupyterlab/docregistry" "^2.2.0" + "@jupyterlab/nbformat" "^2.2.0" + "@jupyterlab/notebook" "^2.2.0" + "@jupyterlab/rendermime" "^2.2.0" + "@jupyterlab/services" "^5.2.0" + "@lumino/algorithm" "^1.2.3" "@lumino/coreutils" "^1.4.2" + "@lumino/properties" "^1.1.6" "@lumino/signaling" "^1.3.5" + child_process "~1.0.2" fs-extra "^8.1.0" identity-obj-proxy "^3.0.0" + jest "^25.2.3" + jest-junit "^10.0.0" jest-raw-loader "^1.0.1" + jest-summary-reporter "^0.0.2" json-to-html "~0.1.2" + markdown-loader-jest "^0.1.1" node-fetch "^2.6.0" path "~0.12.7" simulate-event "~1.4.0" + ts-jest "^25.2.1" "@jupyterlab/tooltip@2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@jupyterlab/tooltip/-/tooltip-2.1.1.tgz#517b58883961143a2388aa93bbfe9a1d6506e420" - integrity sha512-Tzhb/6IbsMErW2hmqD7LWIWsSrsFh45tRtRG5+spMe1RATfkMOek7Xhvc99d2mDLggDct4u6eiJG8VSUetKrFw== + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/tooltip/-/tooltip-2.2.0.tgz#cbe942b7817cc71c10e56e05cb6ed563921514f8" + integrity sha512-3QNw1gxzILs+9UVyoAwoz3YxMh9xUg3dxlWAI+8T0hHlIm1yERCCyS9ET9a3bgWe1IYPQe1gSvcWNyEpEq8/QA== dependencies: - "@jupyterlab/apputils" "^2.1.1" - "@jupyterlab/codeeditor" "^2.1.1" - "@jupyterlab/rendermime" "^2.1.1" - "@jupyterlab/services" "^5.1.0" + "@jupyterlab/apputils" "^2.2.0" + "@jupyterlab/codeeditor" "^2.2.0" + "@jupyterlab/rendermime" "^2.2.0" + "@jupyterlab/services" "^5.2.0" "@lumino/coreutils" "^1.4.2" "@lumino/messaging" "^1.3.3" "@lumino/widgets" "^1.11.1" -"@jupyterlab/ui-components@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-2.1.1.tgz#ace65290ebe3e913e85e574d5d94f3c9f55d244c" - integrity sha512-VZWtJud5XXzSTK6HJebbqg7TkJmvuRk5K+F30u+pgX7PStC4j8OFD7IXCreLWmrvxoVvEXd4GFH2sVng5cgsQA== +"@jupyterlab/ui-components@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-2.2.0.tgz#fe4edfc589789b154cbe0302c513dcdf2708a5e8" + integrity sha512-ggMP82+IRMH9fJmQqYm/F/qmeDLCnyOzG5113LKWEorPiEdvp68ufc8cZLHxd0q4KIeI5grmvqnqwJxAdEEMvA== dependencies: "@blueprintjs/core" "^3.22.2" "@blueprintjs/select" "^3.11.2" - "@jupyterlab/coreutils" "^4.1.0" + "@jupyterlab/coreutils" "^4.2.0" "@lumino/coreutils" "^1.4.2" "@lumino/signaling" "^1.3.5" "@lumino/virtualdom" "^1.6.1" @@ -1387,14 +1728,14 @@ "@krassowski/jupyterlab_go_to_definition@file:packages/jupyterlab-go-to-definition": version "2.0.0" -"@lerna/add@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.20.0.tgz#bea7edf36fc93fb72ec34cb9ba854c48d4abf309" - integrity sha512-AnH1oRIEEg/VDa3SjYq4x1/UglEAvrZuV0WssHUMN81RTZgQk3we+Mv3qZNddrZ/fBcZu2IAdN/EQ3+ie2JxKQ== +"@lerna/add@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.21.0.tgz#27007bde71cc7b0a2969ab3c2f0ae41578b4577b" + integrity sha512-vhUXXF6SpufBE1EkNEXwz1VLW03f177G9uMOFMQkp6OJ30/PWg4Ekifuz9/3YfgB2/GH8Tu4Lk3O51P2Hskg/A== dependencies: "@evocateur/pacote" "^9.6.3" - "@lerna/bootstrap" "3.20.0" - "@lerna/command" "3.18.5" + "@lerna/bootstrap" "3.21.0" + "@lerna/command" "3.21.0" "@lerna/filter-options" "3.20.0" "@lerna/npm-conf" "3.16.0" "@lerna/validation-error" "3.13.0" @@ -1403,12 +1744,12 @@ p-map "^2.1.0" semver "^6.2.0" -"@lerna/bootstrap@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.20.0.tgz#635d71046830f208e851ab429a63da1747589e37" - integrity sha512-Wylullx3uthKE7r4izo09qeRGL20Y5yONlQEjPCfnbxCC2Elu+QcPu4RC6kqKQ7b+g7pdC3OOgcHZjngrwr5XQ== +"@lerna/bootstrap@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.21.0.tgz#bcd1b651be5b0970b20d8fae04c864548123aed6" + integrity sha512-mtNHlXpmvJn6JTu0KcuTTPl2jLsDNud0QacV/h++qsaKbhAaJr/FElNZ5s7MwZFUM3XaDmvWzHKaszeBMHIbBw== dependencies: - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/filter-options" "3.20.0" "@lerna/has-npm-version" "3.16.5" "@lerna/npm-install" "3.16.5" @@ -1432,13 +1773,13 @@ read-package-tree "^5.1.6" semver "^6.2.0" -"@lerna/changed@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.20.0.tgz#66b97ebd6c8f8d207152ee524a0791846a9097ae" - integrity sha512-+hzMFSldbRPulZ0vbKk6RD9f36gaH3Osjx34wrrZ62VB4pKmjyuS/rxVYkCA3viPLHoiIw2F8zHM5BdYoDSbjw== +"@lerna/changed@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.21.0.tgz#108e15f679bfe077af500f58248c634f1044ea0b" + integrity sha512-hzqoyf8MSHVjZp0gfJ7G8jaz+++mgXYiNs9iViQGA8JlN/dnWLI5sWDptEH3/B30Izo+fdVz0S0s7ydVE3pWIw== dependencies: "@lerna/collect-updates" "3.20.0" - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/listable" "3.18.5" "@lerna/output" "3.13.0" @@ -1460,12 +1801,12 @@ execa "^1.0.0" strong-log-transformer "^2.0.0" -"@lerna/clean@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.20.0.tgz#ba777e373ddeae63e57860df75d47a9e5264c5b2" - integrity sha512-9ZdYrrjQvR5wNXmHfDsfjWjp0foOkCwKe3hrckTzkAeQA1ibyz5llGwz5e1AeFrV12e2/OLajVqYfe+qdkZUgg== +"@lerna/clean@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.21.0.tgz#c0b46b5300cc3dae2cda3bec14b803082da3856d" + integrity sha512-b/L9l+MDgE/7oGbrav6rG8RTQvRiZLO1zTcG17zgJAAuhlsPxJExMlh2DFwJEVi2les70vMhHfST3Ue1IMMjpg== dependencies: - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/filter-options" "3.20.0" "@lerna/prompt" "3.18.5" "@lerna/pulse-till-done" "3.13.0" @@ -1505,14 +1846,14 @@ npmlog "^4.1.2" slash "^2.0.0" -"@lerna/command@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.18.5.tgz#14c6d2454adbfd365f8027201523e6c289cd3cd9" - integrity sha512-36EnqR59yaTU4HrR1C9XDFti2jRx0BgpIUBeWn129LZZB8kAB3ov1/dJNa1KcNRKp91DncoKHLY99FZ6zTNpMQ== +"@lerna/command@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.21.0.tgz#9a2383759dc7b700dacfa8a22b2f3a6e190121f7" + integrity sha512-T2bu6R8R3KkH5YoCKdutKv123iUgUbW8efVjdGCDnCMthAQzoentOJfDeodBwn0P2OqCl3ohsiNVtSn9h78fyQ== dependencies: "@lerna/child-process" "3.16.5" "@lerna/package-graph" "3.18.5" - "@lerna/project" "3.18.0" + "@lerna/project" "3.21.0" "@lerna/validation-error" "3.13.0" "@lerna/write-log-file" "3.13.0" clone-deep "^4.0.1" @@ -1521,10 +1862,10 @@ is-ci "^2.0.0" npmlog "^4.1.2" -"@lerna/conventional-commits@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-3.18.5.tgz#08efd2e5b45acfaf3f151a53a3ec7ecade58a7bc" - integrity sha512-qcvXIEJ3qSgalxXnQ7Yxp5H9Ta5TVyai6vEor6AAEHc20WiO7UIdbLDCxBtiiHMdGdpH85dTYlsoYUwsCJu3HQ== +"@lerna/conventional-commits@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-3.22.0.tgz#2798f4881ee2ef457bdae027ab7d0bf0af6f1e09" + integrity sha512-z4ZZk1e8Mhz7+IS8NxHr64wyklHctCJyWpJKEZZPJiLFJ8yKto/x38O80R10pIzC0rr8Sy/OsjSH4bl0TbbgqA== dependencies: "@lerna/validation-error" "3.13.0" conventional-changelog-angular "^5.0.3" @@ -1547,14 +1888,14 @@ fs-extra "^8.1.0" npmlog "^4.1.2" -"@lerna/create@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.18.5.tgz#11ac539f069248eaf7bc4c42e237784330f4fc47" - integrity sha512-cHpjocbpKmLopCuZFI7cKEM3E/QY8y+yC7VtZ4FQRSaLU8D8i2xXtXmYaP1GOlVNavji0iwoXjuNpnRMInIr2g== +"@lerna/create@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.22.0.tgz#d6bbd037c3dc5b425fe5f6d1b817057c278f7619" + integrity sha512-MdiQQzCcB4E9fBF1TyMOaAEz9lUjIHp1Ju9H7f3lXze5JK6Fl5NYkouAvsLgY6YSIhXMY8AHW2zzXeBDY4yWkw== dependencies: "@evocateur/pacote" "^9.6.3" "@lerna/child-process" "3.16.5" - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/npm-conf" "3.16.0" "@lerna/validation-error" "3.13.0" camelcase "^5.0.0" @@ -1579,23 +1920,23 @@ "@lerna/child-process" "3.16.5" npmlog "^4.1.2" -"@lerna/diff@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.18.5.tgz#e9e2cb882f84d5b84f0487c612137305f07accbc" - integrity sha512-u90lGs+B8DRA9Z/2xX4YaS3h9X6GbypmGV6ITzx9+1Ga12UWGTVlKaCXBgONMBjzJDzAQOK8qPTwLA57SeBLgA== +"@lerna/diff@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.21.0.tgz#e6df0d8b9916167ff5a49fcb02ac06424280a68d" + integrity sha512-5viTR33QV3S7O+bjruo1SaR40m7F2aUHJaDAC7fL9Ca6xji+aw1KFkpCtVlISS0G8vikUREGMJh+c/VMSc8Usw== dependencies: "@lerna/child-process" "3.16.5" - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/validation-error" "3.13.0" npmlog "^4.1.2" -"@lerna/exec@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.20.0.tgz#29f0c01aee2340eb46f90706731fef2062a49639" - integrity sha512-pS1mmC7kzV668rHLWuv31ClngqeXjeHC8kJuM+W2D6IpUVMGQHLcCTYLudFgQsuKGVpl0DGNYG+sjLhAPiiu6A== +"@lerna/exec@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.21.0.tgz#17f07533893cb918a17b41bcc566dc437016db26" + integrity sha512-iLvDBrIE6rpdd4GIKTY9mkXyhwsJ2RvQdB9ZU+/NhR3okXfqKc6py/24tV111jqpXTtZUW6HNydT4dMao2hi1Q== dependencies: "@lerna/child-process" "3.16.5" - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/filter-options" "3.20.0" "@lerna/profiler" "3.20.0" "@lerna/run-topologically" "3.18.5" @@ -1638,13 +1979,13 @@ ssri "^6.0.1" tar "^4.4.8" -"@lerna/github-client@3.16.5": - version "3.16.5" - resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-3.16.5.tgz#2eb0235c3bf7a7e5d92d73e09b3761ab21f35c2e" - integrity sha512-rHQdn8Dv/CJrO3VouOP66zAcJzrHsm+wFuZ4uGAai2At2NkgKH+tpNhQy2H1PSC0Ezj9LxvdaHYrUzULqVK5Hw== +"@lerna/github-client@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-3.22.0.tgz#5d816aa4f76747ed736ae64ff962b8f15c354d95" + integrity sha512-O/GwPW+Gzr3Eb5bk+nTzTJ3uv+jh5jGho9BOqKlajXaOkMYGBELEAqV5+uARNGWZFvYAiF4PgqHb6aCUu7XdXg== dependencies: "@lerna/child-process" "3.16.5" - "@octokit/plugin-enterprise-rest" "^3.6.1" + "@octokit/plugin-enterprise-rest" "^6.0.1" "@octokit/rest" "^16.28.4" git-url-parse "^11.1.2" npmlog "^4.1.2" @@ -1671,13 +2012,13 @@ "@lerna/child-process" "3.16.5" semver "^6.2.0" -"@lerna/import@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.18.5.tgz#a9c7d8601870729851293c10abd18b3707f7ba5e" - integrity sha512-PH0WVLEgp+ORyNKbGGwUcrueW89K3Iuk/DDCz8mFyG2IG09l/jOF0vzckEyGyz6PO5CMcz4TI1al/qnp3FrahQ== +"@lerna/import@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.22.0.tgz#1a5f0394f38e23c4f642a123e5e1517e70d068d2" + integrity sha512-uWOlexasM5XR6tXi4YehODtH9Y3OZrFht3mGUFFT3OIl2s+V85xIGFfqFGMTipMPAGb2oF1UBLL48kR43hRsOg== dependencies: "@lerna/child-process" "3.16.5" - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/prompt" "3.18.5" "@lerna/pulse-till-done" "3.13.0" "@lerna/validation-error" "3.13.0" @@ -1685,43 +2026,43 @@ fs-extra "^8.1.0" p-map-series "^1.0.0" -"@lerna/info@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@lerna/info/-/info-3.20.0.tgz#3a5212f3029f2bc6255f9533bdf4bcb120ef329a" - integrity sha512-Rsz+KQF9mczbGUbPTrtOed1N0C+cA08Qz0eX/oI+NNjvsryZIju/o7uedG4I3P55MBiAioNrJI88fHH3eTgYug== +"@lerna/info@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/info/-/info-3.21.0.tgz#76696b676fdb0f35d48c83c63c1e32bb5e37814f" + integrity sha512-0XDqGYVBgWxUquFaIptW2bYSIu6jOs1BtkvRTWDDhw4zyEdp6q4eaMvqdSap1CG+7wM5jeLCi6z94wS0AuiuwA== dependencies: - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/output" "3.13.0" envinfo "^7.3.1" -"@lerna/init@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.18.5.tgz#86dd0b2b3290755a96975069b5cb007f775df9f5" - integrity sha512-oCwipWrha98EcJAHm8AGd2YFFLNI7AW9AWi0/LbClj1+XY9ah+uifXIgYGfTk63LbgophDd8936ZEpHMxBsbAg== +"@lerna/init@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.21.0.tgz#1e810934dc8bf4e5386c031041881d3b4096aa5c" + integrity sha512-6CM0z+EFUkFfurwdJCR+LQQF6MqHbYDCBPyhu/d086LRf58GtYZYj49J8mKG9ktayp/TOIxL/pKKjgLD8QBPOg== dependencies: "@lerna/child-process" "3.16.5" - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" fs-extra "^8.1.0" p-map "^2.1.0" write-json-file "^3.2.0" -"@lerna/link@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.18.5.tgz#f24347e4f0b71d54575bd37cfa1794bc8ee91b18" - integrity sha512-xTN3vktJpkT7Nqc3QkZRtHO4bT5NvuLMtKNIBDkks0HpGxC9PRyyqwOoCoh1yOGbrWIuDezhfMg3Qow+6I69IQ== +"@lerna/link@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.21.0.tgz#8be68ff0ccee104b174b5bbd606302c2f06e9d9b" + integrity sha512-tGu9GxrX7Ivs+Wl3w1+jrLi1nQ36kNI32dcOssij6bg0oZ2M2MDEFI9UF2gmoypTaN9uO5TSsjCFS7aR79HbdQ== dependencies: - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/package-graph" "3.18.5" "@lerna/symlink-dependencies" "3.17.0" p-map "^2.1.0" slash "^2.0.0" -"@lerna/list@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.20.0.tgz#7e67cc29c5cf661cfd097e8a7c2d3dcce7a81029" - integrity sha512-fXTicPrfioVnRzknyPawmYIVkzDRBaQqk9spejS1S3O1DOidkihK0xxNkr8HCVC0L22w6f92g83qWDp2BYRUbg== +"@lerna/list@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.21.0.tgz#42f76fafa56dea13b691ec8cab13832691d61da2" + integrity sha512-KehRjE83B1VaAbRRkRy6jLX1Cin8ltsrQ7FHf2bhwhRHK0S54YuA6LOoBnY/NtA8bHDX/Z+G5sMY78X30NS9tg== dependencies: - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/filter-options" "3.20.0" "@lerna/listable" "3.18.5" "@lerna/output" "3.13.0" @@ -1867,10 +2208,10 @@ npmlog "^4.1.2" upath "^1.2.0" -"@lerna/project@3.18.0": - version "3.18.0" - resolved "https://registry.yarnpkg.com/@lerna/project/-/project-3.18.0.tgz#56feee01daeb42c03cbdf0ed8a2a10cbce32f670" - integrity sha512-+LDwvdAp0BurOAWmeHE3uuticsq9hNxBI0+FMHiIai8jrygpJGahaQrBYWpwbshbQyVLeQgx3+YJdW2TbEdFWA== +"@lerna/project@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/project/-/project-3.21.0.tgz#5d784d2d10c561a00f20320bcdb040997c10502d" + integrity sha512-xT1mrpET2BF11CY32uypV2GPtPVm6Hgtha7D81GQP9iAitk9EccrdNjYGt5UBYASl4CIDXBRxwmTTVGfrCx82A== dependencies: "@lerna/package" "3.16.0" "@lerna/validation-error" "3.13.0" @@ -1893,10 +2234,10 @@ inquirer "^6.2.0" npmlog "^4.1.2" -"@lerna/publish@3.20.2": - version "3.20.2" - resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.20.2.tgz#a45d29813099b3249657ea913d0dc3f8ebc5cc2e" - integrity sha512-N7Y6PdhJ+tYQPdI1tZum8W25cDlTp4D6brvRacKZusweWexxaopbV8RprBaKexkEX/KIbncuADq7qjDBdQHzaA== +"@lerna/publish@3.22.1": + version "3.22.1" + resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.22.1.tgz#b4f7ce3fba1e9afb28be4a1f3d88222269ba9519" + integrity sha512-PG9CM9HUYDreb1FbJwFg90TCBQooGjj+n/pb3gw/eH5mEDq0p8wKdLFe0qkiqUkm/Ub5C8DbVFertIo0Vd0zcw== dependencies: "@evocateur/libnpmaccess" "^3.1.2" "@evocateur/npm-registry-fetch" "^4.0.0" @@ -1904,7 +2245,7 @@ "@lerna/check-working-tree" "3.16.5" "@lerna/child-process" "3.16.5" "@lerna/collect-updates" "3.20.0" - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/describe-ref" "3.16.5" "@lerna/log-packed" "3.16.0" "@lerna/npm-conf" "3.16.0" @@ -1919,7 +2260,7 @@ "@lerna/run-lifecycle" "3.16.2" "@lerna/run-topologically" "3.18.5" "@lerna/validation-error" "3.13.0" - "@lerna/version" "3.20.2" + "@lerna/version" "3.22.1" figgy-pudding "^3.5.1" fs-extra "^8.1.0" npm-package-arg "^6.1.0" @@ -1982,12 +2323,12 @@ figgy-pudding "^3.5.1" p-queue "^4.0.0" -"@lerna/run@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.20.0.tgz#a479f7c42bdf9ebabb3a1e5a2bdebb7a8d201151" - integrity sha512-9U3AqeaCeB7KsGS9oyKNp62s9vYoULg/B4cqXTKZkc+OKL6QOEjYHYVSBcMK9lUXrMjCjDIuDSX3PnTCPxQ2Dw== +"@lerna/run@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.21.0.tgz#2a35ec84979e4d6e42474fe148d32e5de1cac891" + integrity sha512-fJF68rT3veh+hkToFsBmUJ9MHc9yGXA7LSDvhziAojzOb0AI/jBDp6cEcDQyJ7dbnplba2Lj02IH61QUf9oW0Q== dependencies: - "@lerna/command" "3.18.5" + "@lerna/command" "3.21.0" "@lerna/filter-options" "3.20.0" "@lerna/npm-run-script" "3.16.5" "@lerna/output" "3.13.0" @@ -2032,17 +2373,17 @@ dependencies: npmlog "^4.1.2" -"@lerna/version@3.20.2": - version "3.20.2" - resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.20.2.tgz#3709141c0f537741d9bc10cb24f56897bcb30428" - integrity sha512-ckBJMaBWc+xJen0cMyCE7W67QXLLrc0ELvigPIn8p609qkfNM0L0CF803MKxjVOldJAjw84b8ucNWZLvJagP/Q== +"@lerna/version@3.22.1": + version "3.22.1" + resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.22.1.tgz#9805a9247a47ee62d6b81bd9fa5fb728b24b59e2" + integrity sha512-PSGt/K1hVqreAFoi3zjD0VEDupQ2WZVlVIwesrE5GbrL2BjXowjCsTDPqblahDUPy0hp6h7E2kG855yLTp62+g== dependencies: "@lerna/check-working-tree" "3.16.5" "@lerna/child-process" "3.16.5" "@lerna/collect-updates" "3.20.0" - "@lerna/command" "3.18.5" - "@lerna/conventional-commits" "3.18.5" - "@lerna/github-client" "3.16.5" + "@lerna/command" "3.21.0" + "@lerna/conventional-commits" "3.22.0" + "@lerna/github-client" "3.22.0" "@lerna/gitlab-client" "3.15.0" "@lerna/output" "3.13.0" "@lerna/prerelease-id-from-version" "3.16.0" @@ -2072,148 +2413,123 @@ npmlog "^4.1.2" write-file-atomic "^2.3.0" -"@lumino/algorithm@*", "@lumino/algorithm@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.2.3.tgz#4ab9883d7e9a5b1845372a752dcaee2a35a770c6" - integrity sha512-XBJ/homcm7o8Y9G6MzYvf0FF7SVqUCzvkIO01G2mZhCOnkZZhZ9c4uNOcE2VjSHNxHv2WU0l7d8rdhyKhmet+A== - -"@lumino/algorithm@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.3.0.tgz#1b8b07b537c1660b9e94cb1607d2e74cbf8aa15e" - integrity sha512-j0OFVm3/SpvKnKxHiUt8sgct25x+G97ohdrPRzDS9rHX0SLnx4GEVp5qE8OmzfGoAcY9V6C89F6Gh+PnN4LtiA== +"@lumino/algorithm@*", "@lumino/algorithm@^1.2.3", "@lumino/algorithm@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.3.2.tgz#f1c9f97a4ab72ab9d69ed4e472dbf722c0fe99ee" + integrity sha512-r2pfLvv0oamOK+iGJgvfpoFupJs656adSXiWZlUVO2TnHzlooHtzdF2NiOygCd9++gukcNOv/lSY2Gmun6lunw== "@lumino/application@^1.8.4": - version "1.8.4" - resolved "https://registry.yarnpkg.com/@lumino/application/-/application-1.8.4.tgz#63a26c4ecf8128bf0123739e37922415016f970a" - integrity sha512-f+CgggJ/9jopHT6db76+BjsiPBHjv6fgReU/vKtRGg8rsDjNRDefoWd9bWGWRuPiGymBY8c/+9Kyq5v0UDs5vg== - dependencies: - "@lumino/commands" "^1.10.1" - "@lumino/coreutils" "^1.4.2" - "@lumino/widgets" "^1.11.1" - -"@lumino/collections@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@lumino/collections/-/collections-1.2.3.tgz#8cd9578dac3a5ecba68972991fdfd2b94d3339bc" - integrity sha512-lrSTb7kru/w8xww8qWqHHhHO3GkoQeXST2oNkOEbWNEO4wuBIHoKPSOmXpUwu58UykBUfd5hL5wbkeTzyNMONg== + version "1.10.2" + resolved "https://registry.yarnpkg.com/@lumino/application/-/application-1.10.2.tgz#9f2a557b6f85311a128e81e94c04782b87d2d1fe" + integrity sha512-31k+pWhLpxw+w/QDugpcMFpLrqWSsRP1190lSpLPypKELzeIlnVrLD5/ttODENjVFG762Vi4hAdVT7b+mzF4KA== dependencies: - "@lumino/algorithm" "^1.2.3" + "@lumino/commands" "^1.11.2" + "@lumino/coreutils" "^1.5.2" + "@lumino/widgets" "^1.13.2" -"@lumino/commands@^1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@lumino/commands/-/commands-1.10.1.tgz#149186d23cc48215f9f7f6515321f8871797a444" - integrity sha512-HGtXtqKD1WZJszJ42u2DyM3sgxrLal66IoHSJjbn2ygcEVCKDK73NSzoaQtXFtiissMedzKl8aIRXB3uyeEOlw== - dependencies: - "@lumino/algorithm" "^1.2.3" - "@lumino/coreutils" "^1.4.2" - "@lumino/disposable" "^1.3.5" - "@lumino/domutils" "^1.1.7" - "@lumino/keyboard" "^1.1.6" - "@lumino/signaling" "^1.3.5" - "@lumino/virtualdom" "^1.6.1" - -"@lumino/coreutils@^1.4.2": +"@lumino/collections@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@lumino/collections/-/collections-1.3.2.tgz#7cfb5d1ef9407057444c8aa1a1b46cd23cb247c2" + integrity sha512-6ka08E9qZsTXBclwQZz1IfUCxo6G0V2Y8Gb0XPdXe0IzxqAtNmRMGIvRmEf3yKZa6wY6oCgyh5IhJS9km6bqVQ== + dependencies: + "@lumino/algorithm" "^1.3.2" + +"@lumino/commands@^1.10.1", "@lumino/commands@^1.11.2": + version "1.11.2" + resolved "https://registry.yarnpkg.com/@lumino/commands/-/commands-1.11.2.tgz#c85dec5f924c356ab59e1386d98e6acbcb642784" + integrity sha512-d03EHTztfzftXwzrDhyfST1iIhfW6DXWuWJOBNtfKO5SMCPHgt11TvNRFbgUi9grj+iOFGSOyu7q6/epb0jY0Q== + dependencies: + "@lumino/algorithm" "^1.3.2" + "@lumino/coreutils" "^1.5.2" + "@lumino/disposable" "^1.4.2" + "@lumino/domutils" "^1.2.2" + "@lumino/keyboard" "^1.2.2" + "@lumino/signaling" "^1.4.2" + "@lumino/virtualdom" "^1.7.2" + +"@lumino/coreutils@^1.4.2", "@lumino/coreutils@^1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-1.5.2.tgz#9ac5becae4a42b3260284e6af378a85fb67a8dd6" + integrity sha512-yLk507d5gONDjGLvU+bWHVisssDEigbZ1UmbCzaSaQ8DaK0WktscwqPbODh68cK8cobClx11xM7SPonqQtjX/Q== + +"@lumino/disposable@^1.3.5", "@lumino/disposable@^1.4.2": version "1.4.2" - resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-1.4.2.tgz#44cd3d55bb692e876c792f1ecc0df3daa1de63e9" - integrity sha512-SmQ4YDANe25rZd0bLoW7LVAHmgySjkrJmyNPnPW0GrpBt2u4/6D+EQJ8PCCMNWuJvrljBCdlmgOFsT38qYhfcw== - -"@lumino/coreutils@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-1.5.0.tgz#dd89573a3715fe18e2dd85622f16485899a22bf3" - integrity sha512-ioa+9YA+9jgTBl+FrlzSf1vqh25RUEaAltiY2s9WHyHP0vzizwaDEpiHQgMByhUS5ZN0FzuD1fOrKyb8izSi4Q== - -"@lumino/disposable@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-1.3.5.tgz#3562ca063117fd2a0735df170f51e41620fa21d0" - integrity sha512-IWDAd+nysBnwLhEtW7M62PVk84OEex9OEktZsS6V+19n/o8/Rw4ccL0pt0GFby01CsVK0YcELDoDaMUZsMiAmA== - dependencies: - "@lumino/algorithm" "^1.2.3" - "@lumino/signaling" "^1.3.5" - -"@lumino/disposable@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-1.4.0.tgz#caab853579fe3662172a6ae7c922d07664f62adc" - integrity sha512-Tz/t3XU2E/Pn8TmuyOG/X4TTcnYaaKYUVbxfIIHWDJJln5hdqKe8ikMrufaJyhPkt7lTjOEKKilGePUj66POvA== + resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-1.4.2.tgz#56e6d26e536ab835127c525be71bd1a2156f94cc" + integrity sha512-aXQvktpOT/NcUIU17bzbyv1l7Tk7F1EP6XRAF1it9E0PvNcYyutxSr5kIrV/u7PY7LAL2oYDih0X0gY8H8v5kg== dependencies: - "@lumino/algorithm" "^1.3.0" - "@lumino/signaling" "^1.4.0" + "@lumino/algorithm" "^1.3.2" + "@lumino/signaling" "^1.4.2" -"@lumino/domutils@^1.1.7": - version "1.1.7" - resolved "https://registry.yarnpkg.com/@lumino/domutils/-/domutils-1.1.7.tgz#9cc16cba0c1e8f31fcb734879dec050505925b16" - integrity sha512-NPysY8XfpCvLNvDe+z1caIUPxOLXWRPQMUAjOj/EhggRyXadan6Lm/5uO6M9S5gW/v9QUXT4+1Sxe3WXz0nRCA== +"@lumino/domutils@^1.1.7", "@lumino/domutils@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@lumino/domutils/-/domutils-1.2.2.tgz#c3ed117037564ec93ebdd096073344adec0138e4" + integrity sha512-7m5TxYBlb1Dp84eBiW3gSIPTduMuxfq+FYUn77i03HyFrRo3m00afibBHtKPKXshSVwDRVI4QdvaTrtv3loo+g== -"@lumino/dragdrop@^1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@lumino/dragdrop/-/dragdrop-1.5.1.tgz#502305183d430693edc112f7c234a3d9f2d89f02" - integrity sha512-MFg/hy6hHdPwBZypBue5mlrBzjoNrtBQzzJW+kbM5ftAOvS99ZRgyMMlMQcbsHd+6yib9NOQ64Hd8P8uZEWTdw== +"@lumino/dragdrop@^1.5.1", "@lumino/dragdrop@^1.6.2": + version "1.6.2" + resolved "https://registry.yarnpkg.com/@lumino/dragdrop/-/dragdrop-1.6.2.tgz#3530e65783d45c9fa3a1450049a0b5cdb7f3e333" + integrity sha512-fsN6G6/v4EkaliQZFgot8Gaod4YkZpRMRh1C4XmMxHCoWxJMTzHWLubuoib7MrMdderusZG6uL6wkzqrp5bLAQ== dependencies: - "@lumino/coreutils" "^1.4.2" - "@lumino/disposable" "^1.3.5" + "@lumino/coreutils" "^1.5.2" + "@lumino/disposable" "^1.4.2" -"@lumino/keyboard@^1.1.6": - version "1.1.6" - resolved "https://registry.yarnpkg.com/@lumino/keyboard/-/keyboard-1.1.6.tgz#bf222369bbeacf2c7d2dfe5003d52736c5a2fc3d" - integrity sha512-W6pqe0TXRfGOoz1ZK1PRmuGZUWpmdoJArrzwmduUf0t2r06yl56S7w76gxrB7ExTidNPPaOWydGIosPgdgZf5A== +"@lumino/keyboard@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@lumino/keyboard/-/keyboard-1.2.2.tgz#6c015b80d8da6bcc8c57c1f215caf8b1c38a1139" + integrity sha512-pQF2rsZZnAL+e2XaProTaAHHJxNXlzfDYYLKhrEIhaQlNduwU/GK1f/M8IFJ2+SFzEOvEIo9+v2jMtF4MlU2cg== -"@lumino/messaging@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@lumino/messaging/-/messaging-1.3.3.tgz#75d3c880b11087da130554eeefa9a19572b24d22" - integrity sha512-J+0m1aywl64I9/dr9fzE9IwC+eq90T5gUi1hCXP1MFnZh4aLUymmRV5zFw1CNh/vYlNnEu72xxEuhfCfuhiy8g== +"@lumino/messaging@^1.3.3", "@lumino/messaging@^1.4.2": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@lumino/messaging/-/messaging-1.4.2.tgz#240a79f0fdb2ebbc7cf46f6ef82f145faea8ad2b" + integrity sha512-3kgrCrCFxIqIdhaMbaQdsG1CD/bqiUIJue+5ZGoQKHk4rdalkwpvk5c+RcMlJIPbK2k2J6ytiQ535s4jkUCZ3Q== dependencies: - "@lumino/algorithm" "^1.2.3" - "@lumino/collections" "^1.2.3" + "@lumino/algorithm" "^1.3.2" + "@lumino/collections" "^1.3.2" "@lumino/polling@^1.1.1": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@lumino/polling/-/polling-1.3.0.tgz#cd401706bc2508508a7f193298da40f9476a49db" - integrity sha512-sMg6UYXZGjc02dCXqyvseFGVzskSN0Xc877JJVXb0uTBlDRT0dvGxGzVL2EjYf6glwTnwiMTfW7ZXpxBFeBilg== - dependencies: - "@lumino/coreutils" "^1.5.0" - "@lumino/disposable" "^1.4.0" - "@lumino/signaling" "^1.4.0" - -"@lumino/properties@^1.1.6": - version "1.1.6" - resolved "https://registry.yarnpkg.com/@lumino/properties/-/properties-1.1.6.tgz#367538d63453e99e8c94e5559748a0713d9874ac" - integrity sha512-QnZa1IB7sr4Tawf0OKvwgZAptxDRK7DUAMJ71zijXNXH4FlxyThzOWXef51HHFsISKYa8Rn3rysOwtc62XkmXw== - -"@lumino/signaling@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@lumino/signaling/-/signaling-1.3.5.tgz#21d77cf201c429f9824e04c19f0cc04027f963c8" - integrity sha512-6jniKrLrJOXKJmaJyU7hr6PBzE4GJ5Wms5hc/yzNKKDBxGSEPdtNJlW3wTNUuSTTtF/9ItN8A8ZC/G0yIu53Tw== - dependencies: - "@lumino/algorithm" "^1.2.3" - -"@lumino/signaling@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@lumino/signaling/-/signaling-1.4.0.tgz#e9f8b7bbd5db99a16576bcfbb390a9578961fbe7" - integrity sha512-rUoaKbdrSSOYEqr4Y5B+OJW9lurFgIU/gZlL/elpNsOj/0Bwkyh5B+RGm2YKYA6j00Rei+D7KgJo4Wm+2xi0qQ== + version "1.3.2" + resolved "https://registry.yarnpkg.com/@lumino/polling/-/polling-1.3.2.tgz#e8621220f7fd4378217b6058ff29ebd44df2eb06" + integrity sha512-qS5kcTyn/IEsKz05YQk4Vixim4viFDlQB8fBmdAX8R92ATCQ1YMuDZnmtzmCPmPg2EHqcI4ZwtcFsZ7iEcV7yw== dependencies: - "@lumino/algorithm" "^1.3.0" + "@lumino/coreutils" "^1.5.2" + "@lumino/disposable" "^1.4.2" + "@lumino/signaling" "^1.4.2" -"@lumino/virtualdom@^1.6.1": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@lumino/virtualdom/-/virtualdom-1.6.1.tgz#7f190091e065e7e4e4814836ed5b293aa8359b2d" - integrity sha512-+KdzSw8TCPwvK6qhZr4xTyp6HymvEb2Da0xPdi4RsVUNhYf2gBI03uidXHx76Vx5OIbEgCn1B+0srxvm2ZbWsQ== - dependencies: - "@lumino/algorithm" "^1.2.3" +"@lumino/properties@^1.1.6", "@lumino/properties@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@lumino/properties/-/properties-1.2.2.tgz#5403a3ec77ff939a8808ac38062f8dc921462e6d" + integrity sha512-5KzVhdoB9JP4ai74+198pACbC0JBRVRS59aKcHJmp7+cUKMpF3GawZXLVCNJrQ2Cam03lo2RBTCJvldT2VKR4g== -"@lumino/widgets@*", "@lumino/widgets@^1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@lumino/widgets/-/widgets-1.11.1.tgz#2aba526f1dba7cb004786f25b3bc4a58bd8fe14d" - integrity sha512-f4QDe6lVNPcjL8Vb20BiP0gzbT1rx0/1Hc719u5oW9c0Z/xrXMWwNhnb/zYM/kBBVBe3omLmCfJOiNuE0oZl0A== - dependencies: - "@lumino/algorithm" "^1.2.3" - "@lumino/commands" "^1.10.1" - "@lumino/coreutils" "^1.4.2" - "@lumino/disposable" "^1.3.5" - "@lumino/domutils" "^1.1.7" - "@lumino/dragdrop" "^1.5.1" - "@lumino/keyboard" "^1.1.6" - "@lumino/messaging" "^1.3.3" - "@lumino/properties" "^1.1.6" - "@lumino/signaling" "^1.3.5" - "@lumino/virtualdom" "^1.6.1" +"@lumino/signaling@^1.3.5", "@lumino/signaling@^1.4.2": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@lumino/signaling/-/signaling-1.4.2.tgz#7cbc03b3ae7fbbd635329b415dc6ba17bd472ae1" + integrity sha512-U+T/m3iY7Oe1RR9wR/1d3DMZpNMcYdBeBzBx1l+dkdB5IEk28QqVcJDxZxyAJ7QuqXjWqvQew/SVuxyIDJWC7g== + dependencies: + "@lumino/algorithm" "^1.3.2" + +"@lumino/virtualdom@^1.6.1", "@lumino/virtualdom@^1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@lumino/virtualdom/-/virtualdom-1.7.2.tgz#d880a84bd05d5d08c974903fe3f3e3e564d7ff18" + integrity sha512-HIeoT7ivFp4LcOB6Sqd0/9PLNgA4vHedBnEBnAHfohLUnLNih/MlPUz7lxGoyYmc+YYT5v/Ikyb6CwuEMQqLfw== + dependencies: + "@lumino/algorithm" "^1.3.2" + +"@lumino/widgets@*", "@lumino/widgets@^1.11.1", "@lumino/widgets@^1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@lumino/widgets/-/widgets-1.13.2.tgz#c5bd3dfd733e4626aa5900a312c12bc0eaf5b6dc" + integrity sha512-pWQEKw4Y8eaTg/kZqYkJgZ2IJmU6Iz3VyCWnw8z5qcxiEVLVeCMtkWnEWI4QYn5LNXlEZagpzc3KA9waCWOfIw== + dependencies: + "@lumino/algorithm" "^1.3.2" + "@lumino/commands" "^1.11.2" + "@lumino/coreutils" "^1.5.2" + "@lumino/disposable" "^1.4.2" + "@lumino/domutils" "^1.2.2" + "@lumino/dragdrop" "^1.6.2" + "@lumino/keyboard" "^1.2.2" + "@lumino/messaging" "^1.4.2" + "@lumino/properties" "^1.2.2" + "@lumino/signaling" "^1.4.2" + "@lumino/virtualdom" "^1.7.2" "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" @@ -2229,25 +2545,25 @@ integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== "@octokit/auth-token@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.0.tgz#b64178975218b99e4dfe948253f0673cbbb59d9f" - integrity sha512-eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg== + version "2.4.2" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.2.tgz#10d0ae979b100fa6b72fa0e8e63e27e6d0dbff8a" + integrity sha512-jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ== dependencies: - "@octokit/types" "^2.0.0" + "@octokit/types" "^5.0.0" -"@octokit/endpoint@^5.5.0": - version "5.5.3" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.5.3.tgz#0397d1baaca687a4c8454ba424a627699d97c978" - integrity sha512-EzKwkwcxeegYYah5ukEeAI/gYRLv2Y9U5PpIsseGSFDk+G3RbipQGBs8GuYS1TLCtQaqoO66+aQGtITPalxsNQ== +"@octokit/endpoint@^6.0.1": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.4.tgz#da3eafdee1fabd6e5b6ca311efcba26f0dd99848" + integrity sha512-ZJHIsvsClEE+6LaZXskDvWIqD3Ao7+2gc66pRG5Ov4MQtMvCU9wGu1TItw9aGNmRuU9x3Fei1yb+uqGaQnm0nw== dependencies: - "@octokit/types" "^2.0.0" + "@octokit/types" "^5.0.0" is-plain-object "^3.0.0" - universal-user-agent "^5.0.0" + universal-user-agent "^6.0.0" -"@octokit/plugin-enterprise-rest@^3.6.1": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-3.6.2.tgz#74de25bef21e0182b4fa03a8678cd00a4e67e561" - integrity sha512-3wF5eueS5OHQYuAEudkpN+xVeUsg8vYEMMenEzLphUZ7PRZ8OJtDcsreL3ad9zxXmBbaFWzLmFcdob5CLyZftA== +"@octokit/plugin-enterprise-rest@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" + integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== "@octokit/plugin-paginate-rest@^1.1.1": version "1.1.2" @@ -2269,7 +2585,7 @@ "@octokit/types" "^2.0.1" deprecation "^2.3.1" -"@octokit/request-error@^1.0.1", "@octokit/request-error@^1.0.2": +"@octokit/request-error@^1.0.2": version "1.2.1" resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.2.1.tgz#ede0714c773f32347576c25649dc013ae6b31801" integrity sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA== @@ -2278,24 +2594,33 @@ deprecation "^2.0.0" once "^1.4.0" +"@octokit/request-error@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.2.tgz#0e76b83f5d8fdda1db99027ea5f617c2e6ba9ed0" + integrity sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw== + dependencies: + "@octokit/types" "^5.0.1" + deprecation "^2.0.0" + once "^1.4.0" + "@octokit/request@^5.2.0": - version "5.3.2" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.3.2.tgz#1ca8b90a407772a1ee1ab758e7e0aced213b9883" - integrity sha512-7NPJpg19wVQy1cs2xqXjjRq/RmtSomja/VSWnptfYwuBxLdbYh2UjhGi0Wx7B1v5Iw5GKhfFDQL7jM7SSp7K2g== + version "5.4.6" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.6.tgz#e8cc8d4cfc654d30428ea92aaa62168fd5ead7eb" + integrity sha512-9r8Sn4CvqFI9LDLHl9P17EZHwj3ehwQnTpTE+LEneb0VBBqSiI/VS4rWIBfBhDrDs/aIGEGZRSB0QWAck8u+2g== dependencies: - "@octokit/endpoint" "^5.5.0" - "@octokit/request-error" "^1.0.1" - "@octokit/types" "^2.0.0" + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.0.0" + "@octokit/types" "^5.0.0" deprecation "^2.0.0" is-plain-object "^3.0.0" node-fetch "^2.3.0" once "^1.4.0" - universal-user-agent "^5.0.0" + universal-user-agent "^6.0.0" "@octokit/rest@^16.28.4": - version "16.43.1" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.43.1.tgz#3b11e7d1b1ac2bbeeb23b08a17df0b20947eda6b" - integrity sha512-gfFKwRT/wFxq5qlNjnW2dh+qh74XgTQ2B179UX5K1HYCluioWj8Ndbgqw2PVqa1NnVJkGHp2ovMpVn/DImlmkw== + version "16.43.2" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.43.2.tgz#c53426f1e1d1044dee967023e3279c50993dd91b" + integrity sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ== dependencies: "@octokit/auth-token" "^2.4.0" "@octokit/plugin-paginate-rest" "^1.1.1" @@ -2315,16 +2640,30 @@ universal-user-agent "^4.0.0" "@octokit/types@^2.0.0", "@octokit/types@^2.0.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.3.1.tgz#40cd61c125a6161cfb3bfabc75805ac7a54213b4" - integrity sha512-rvJP1Y9A/+Cky2C3var1vsw3Lf5Rjn/0sojNl2AjCX+WbpIHYccaJ46abrZoIxMYnOToul6S9tPytUVkFI7CXQ== + version "2.16.2" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.16.2.tgz#4c5f8da3c6fecf3da1811aef678fda03edac35d2" + integrity sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q== dependencies: "@types/node" ">= 8" -"@types/babel__core@^7.1.0": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.3.tgz#e441ea7df63cd080dfcd02ab199e6d16a735fc30" - integrity sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA== +"@octokit/types@^5.0.0", "@octokit/types@^5.0.1": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-5.1.0.tgz#4377a3f39edad3e60753fb5c3c310756f1ded57f" + integrity sha512-OFxUBgrEllAbdEmWp/wNmKIu5EuumKHG4sgy56vjZ8lXPgMhF05c76hmulfOdFHHYRpPj49ygOZJ8wgVsPecuA== + dependencies: + "@types/node" ">= 8" + +"@sinonjs/commons@^1.7.0": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217" + integrity sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw== + dependencies: + type-detect "4.0.8" + +"@types/babel__core@^7.1.0", "@types/babel__core@^7.1.7": + 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" @@ -2333,9 +2672,9 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.0.tgz#f1ec1c104d1bb463556ecb724018ab788d0c172a" - integrity sha512-c1mZUu4up5cp9KROs/QAw0gTeHrw/x7m52LcnvMxxOZ03DmLwPV0MlGmlgzV3cnSdjhJOZsj7E7FHeioai+egw== + 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" @@ -2348,16 +2687,16 @@ "@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/chai@^4.1.7": - version "4.2.9" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.9.tgz#194332625ed2ae914aef00b8d5ca3b77e7924cc6" - integrity sha512-NeXgZj+MFL4izGqA4sapdYzkzQG+MtGra9vhQ58dnmDY++VgJaRUws+aLVV5zRJCYJl/8s9IjMmhiUw1WsKSmw== + version "4.2.11" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.11.tgz#d3614d6c5f500142358e6ed24e1bf16657536c50" + integrity sha512-t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw== "@types/codemirror@^0.0.74": version "0.0.74" @@ -2382,11 +2721,11 @@ integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== "@types/estree@*": - version "0.0.42" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.42.tgz#8d0c1f480339efedb3e46070e22dd63e0430dd11" - integrity sha512-K1DPVvnBCPxzD+G51/cxVIoc2X8uUVl1zpJeE6iKcgHMj4+tbat5Xu4TjV7v2QSDbIeAfLi2hIk+u2+s0MlpUQ== + version "0.0.45" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" + integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== -"@types/events@*", "@types/events@^3.0.0": +"@types/events@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== @@ -2399,14 +2738,20 @@ "@types/node" "*" "@types/glob@*", "@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== dependencies: - "@types/events" "*" "@types/minimatch" "*" "@types/node" "*" +"@types/graceful-fs@^4.1.2": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" + integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ== + dependencies: + "@types/node" "*" + "@types/handlebars@^4.0.38": version "4.1.0" resolved "https://registry.yarnpkg.com/@types/handlebars/-/handlebars-4.1.0.tgz#3fcce9bf88f85fe73dc932240ab3fb682c624850" @@ -2415,26 +2760,31 @@ handlebars "*" "@types/highlight.js@^9.12.3": - version "9.12.3" - resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.12.3.tgz#b672cfaac25cbbc634a0fd92c515f66faa18dbca" - integrity sha512-pGF/zvYOACZ/gLGWdQH8zSwteQS1epp68yRcVLJMgUck/MjEn/FBYmPub9pXT8C1e4a8YZfHo1CKyV8q1vKUnQ== + version "9.12.4" + resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.12.4.tgz#8c3496bd1b50cc04aeefd691140aa571d4dbfa34" + integrity sha512-t2szdkwmg2JJyuCM20e8kR2X59WCE5Zkl4bzm1u1Oukjm79zpbiAv+QjnwLnuuV0WHEcX2NgUItu0pAMKuOPww== -"@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== +"@types/is-glob@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/is-glob/-/is-glob-4.0.1.tgz#a93eec1714172c8eb3225a1cc5eb88c2477b7d00" + integrity sha512-k3RS5HyBPu4h+5hTmIEfPB2rl5P3LnGdQEZrV2b9OWTJVtsUQ2VBcedqYKGqxvZqle5UALUXdSfVA8nf3HfyWQ== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + 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" "*" @@ -2445,9 +2795,9 @@ integrity sha512-Q5hTcfdudEL2yOmluA1zaSyPbzWPmJ3XfSWeP3RyoYvS9hnje1ZyagrZOuQ6+1nQC1Gw+7gap3pLNL3xL6UBug== "@types/json-schema@^7.0.3": - version "7.0.4" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" - integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== + 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/lodash.mergewith@^4.6.1": version "4.6.6" @@ -2456,15 +2806,10 @@ dependencies: "@types/lodash" "*" -"@types/lodash@*": - version "4.14.150" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.150.tgz#649fe44684c3f1fcb6164d943c5a61977e8cf0bd" - integrity sha512-kMNLM5JBcasgYscD9x/Gvr6lTAv2NVgsKtet/hm93qMyf/D1pt+7jeEZklKJKxMVmXjxbRVQQGfqDSfipYCO6w== - -"@types/lodash@^4.14.110": - version "4.14.149" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz#1342d63d948c6062838fbf961012f74d4e638440" - integrity sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ== +"@types/lodash@*", "@types/lodash@^4.14.110": + version "4.14.157" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.157.tgz#fdac1c52448861dfde1a2e1515dbc46e54926dc8" + integrity sha512-Ft5BNFmv2pHDgxV5JDsndOWTRJ+56zte0ZpYLowp03tW+K+t8u8YMOzAnpuqPgzX6WO1XpDIUm7u04M8vdDiVQ== "@types/marked@^0.4.0": version "0.4.2" @@ -2476,20 +2821,32 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/node@*", "@types/node@>= 8", "@types/node@>=4.5.0": - version "13.7.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.7.tgz#1628e6461ba8cc9b53196dfeaeec7b07fa6eea99" - integrity sha512-Uo4chgKbnPNlxQwoFmYIwctkQVkMMmsAoGGU4JKwLuvBefF0pCq4FybNSnfkfRCpC7ZW7kttcC/TrRtAJsvGtg== +"@types/minimist@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" + integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= + +"@types/mkdirp@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz#503aacfe5cc2703d5484326b1b27efa67a339c1f" + integrity sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg== + dependencies: + "@types/node" "*" + +"@types/node@*", "@types/node@>= 8": + version "14.0.23" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.23.tgz#676fa0883450ed9da0bb24156213636290892806" + integrity sha512-Z4U8yDAl5TFkmYsZdFPdjeMa57NOvnaf1tljHzhouaPEp7LCj2JKkejpI1ODviIAQuW4CcQmxkQ77rnLsOOoKw== "@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/prettier@^1.16.1": - version "1.19.0" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.0.tgz#a2502fb7ce9b6626fdbfc2e2a496f472de1bdd05" - integrity sha512-gDE8JJEygpay7IjA/u3JiIURvwZW08f0cZSZLAzFoX/ZmeqvS0Sqv+97aKuHpNsalAMMhwPe+iAS6fQbfmbt7A== +"@types/prettier@^1.16.1", "@types/prettier@^1.19.0": + version "1.19.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" + integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ== "@types/prop-types@*": version "15.7.3" @@ -2497,17 +2854,17 @@ integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== "@types/react@~16.9.16": - version "16.9.23" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.23.tgz#1a66c6d468ba11a8943ad958a8cb3e737568271c" - integrity sha512-SsGVT4E7L2wLN3tPYLiF20hmZTPGuzaayVunfgXzUn1x4uHVsKH6QDJQ/TdpHqwsTLd4CwrmQ2vOgxN7gE24gw== + version "16.9.43" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.43.tgz#c287f23f6189666ee3bebc2eb8d0f84bcb6cdb6b" + integrity sha512-PxshAFcnJqIWYpJbLPriClH53Z2WlJcVZE+NP2etUtWQs2s7yIMj3/LDKZT/5CHJ/F62iyjVCDu2H3jHEXIxSg== dependencies: "@types/prop-types" "*" csstype "^2.2.0" "@types/shelljs@^0.8.0": - version "0.8.6" - resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.8.6.tgz#45193a51df99e0f00513c39a2152832399783221" - integrity sha512-svx2eQS268awlppL/P8wgDLBrsDXdKznABHJcuqXyWpSKJgE1s2clXlBvAwbO/lehTmG06NtEWJRkAk4tAgenA== + version "0.8.8" + resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.8.8.tgz#e439c69929b88a2c8123c1a55e09eb708315addf" + integrity sha512-lD3LWdg6j8r0VRBFahJVaxoW0SIcswxKaFUrmKl33RJVeeoNYQAz4uqCJ5Z6v4oIBOsC5GozX+I5SorIKiTcQA== dependencies: "@types/glob" "*" "@types/node" "*" @@ -2546,14 +2903,21 @@ "@types/vfile-message" "*" "@types/yargs-parser@*": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz#c563aa192f39350a1d18da36c5a8da382bbd8228" - integrity sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg== + 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.3" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.3.tgz#76482af3981d4412d65371a318f992d33464a380" - integrity sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ== + version "13.0.9" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.9.tgz#44028e974343c7afcf3960f1a2b1099c39a7b5e1" + integrity sha512-xrvhZ4DZewMDhoH1utLtOAwYQy60eYFoXeje30TzM3VOvQlBwQaEpKFq5m34k1wOw2AKIi2pwtiAjdmhvlBUzg== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^15.0.0": + version "15.0.5" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz#947e9a6561483bdee9adffc983e91a6902af8b79" + integrity sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w== dependencies: "@types/yargs-parser" "*" @@ -2618,16 +2982,16 @@ JSONStream@^1.0.4, JSONStream@^1.3.4: through ">=2.2.7 <3" abab@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.2.tgz#a2fba1b122c69a85caa02d10f9270c7219709a9d" - integrity sha512-2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" + integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== 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== -acorn-globals@^4.1.0: +acorn-globals@^4.1.0, acorn-globals@^4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== @@ -2651,11 +3015,11 @@ acorn@^5.5.3: integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== acorn@^6.0.1: - version "6.4.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" - integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw== + version "6.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== -acorn@^7.1.1: +acorn@^7.1.0, acorn@^7.1.1: version "7.3.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== @@ -2681,20 +3045,10 @@ agentkeepalive@^3.4.1: dependencies: humanize-ms "^1.2.1" -ajv@^6.10.0: - version "6.12.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" - integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.10.2, ajv@^6.5.5: - version "6.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" - integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: + version "6.12.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" + integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -2745,7 +3099,7 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.1.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== @@ -2766,6 +3120,14 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +anymatch@^3.0.3: + 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.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -2836,9 +3198,9 @@ array-includes@^3.1.1: is-string "^1.0.5" array-iterate@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/array-iterate/-/array-iterate-1.1.3.tgz#b116bdb1e37f3c3fec13acdfb91ac829f122543c" - integrity sha512-7MIv7HE9MuzfK6B2UnWv07oSHBLOaY1UUXAxZ07bIeRM+4IkPTlveMDs9MY//qvxPZPSvCn2XV4bmtQgSkVodg== + version "1.1.4" + resolved "https://registry.yarnpkg.com/array-iterate/-/array-iterate-1.1.4.tgz#add1522e9dd9749bb41152d08b845bd08d6af8b7" + integrity sha512-sNRaPGh9nnmdC8Zf+pT3UqP8rnWj5Hf9wiFGsX3wUQ2yVSIhO2ShFwCoceIPpB41QF6i2OEmrHmCo36xronCVA== array-union@^1.0.2: version "1.0.2" @@ -2857,11 +3219,25 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +array.prototype.flatmap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz#1c13f84a178566042dd63de4414440db9222e443" + integrity sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + asap@^2.0.0: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -2889,6 +3265,11 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +ast-types@0.9.6: + version "0.9.6" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" + integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk= + astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" @@ -2920,9 +3301,9 @@ aws-sign2@~0.7.0: integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" - integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== + version "1.10.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" + integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== babel-jest@^24.9.0: version "24.9.0" @@ -2937,10 +3318,24 @@ babel-jest@^24.9.0: chalk "^2.4.2" slash "^2.0.0" -babel-plugin-dynamic-import-node@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== +babel-jest@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.5.1.tgz#bc2e6101f849d6f6aec09720ffc7bc5332e62853" + integrity sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ== + dependencies: + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^25.5.0" + chalk "^3.0.0" + graceful-fs "^4.2.4" + slash "^3.0.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" @@ -2954,6 +3349,17 @@ babel-plugin-istanbul@^5.1.0: istanbul-lib-instrument "^3.3.0" test-exclude "^5.2.3" +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + 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" @@ -2961,6 +3367,32 @@ babel-plugin-jest-hoist@^24.9.0: dependencies: "@types/babel__traverse" "^7.0.6" +babel-plugin-jest-hoist@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz#129c80ba5c7fc75baf3a45b93e2e372d57ca2677" + integrity sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__traverse" "^7.0.6" + +babel-preset-current-node-syntax@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz#b4b547acddbf963cba555ba9f9cbbb70bfd044da" + integrity sha512-uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + 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" @@ -2969,6 +3401,14 @@ babel-preset-jest@^24.9.0: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" babel-plugin-jest-hoist "^24.9.0" +babel-preset-jest@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz#c1d7f191829487a907764c65307faa0e66590b49" + integrity sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw== + dependencies: + babel-plugin-jest-hoist "^25.5.0" + babel-preset-current-node-syntax "^0.1.2" + bail@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" @@ -2993,17 +3433,19 @@ base@^0.11.1: pascalcase "^0.1.1" bash-language-server@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/bash-language-server/-/bash-language-server-1.7.0.tgz#9b7e93d056ac26bebde08decdf9689685352853d" - integrity sha512-7LoZPq2jYPov87LDnoYY5/3KdwTjjUQbQAim9zvRvjV2DI6sku5CKLGmoqaivOyx0Ah8mUWwnvHg/1R+H5N9qg== + version "1.16.1" + resolved "https://registry.yarnpkg.com/bash-language-server/-/bash-language-server-1.16.1.tgz#e3896cd280ceee4d6582a3a976b0b7b0beae8d6e" + integrity sha512-IS1Ix7qyRq7GTMXqhHUF44yY89i/1Ucn5KFLimEfDpwU1f3GvbV9VnDpqpG6kedJsl2LigEthSnoVlzaOwgt0g== dependencies: - glob "^7.1.2" + fuzzy-search "^3.2.1" + glob "^7.1.6" request "^2.83.0" request-promise-native "^1.0.5" turndown "^4.0.2" urijs "^1.19.1" - vscode-languageserver "^5.2.1" - web-tree-sitter "^0.15.9" + vscode-languageserver "^6.1.1" + vscode-languageserver-textdocument "^1.0.1" + web-tree-sitter "^0.16.2" bcrypt-pbkdf@^1.0.0: version "1.0.2" @@ -3017,6 +3459,11 @@ before-after-hook@^2.0.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" @@ -3053,10 +3500,17 @@ braces@^2.3.1: split-string "^3.0.2" to-regex "^3.0.1" -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== +braces@^3.0.1: + 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" + +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" @@ -3065,14 +3519,15 @@ browser-resolve@^1.11.3: dependencies: resolve "1.1.7" -browserslist@^4.6.0, browserslist@^4.8.2: - version "4.8.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.2.tgz#b45720ad5fbc8713b7253c20766f701c9a694289" - integrity sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA== +browserslist@^4.12.0, browserslist@^4.8.5: + version "4.13.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.13.0.tgz#42556cba011e1b0a2775b611cba6a8eca18e940d" + integrity sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ== dependencies: - caniuse-lite "^1.0.30001015" - electron-to-chromium "^1.3.322" - node-releases "^1.1.42" + caniuse-lite "^1.0.30001093" + electron-to-chromium "^1.3.488" + escalade "^3.0.1" + node-releases "^1.1.58" bs-logger@0.x: version "0.2.6" @@ -3124,9 +3579,9 @@ byte-size@^5.0.1: integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== cacache@^12.0.0, cacache@^12.0.3: - version "12.0.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" - integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== dependencies: bluebird "^3.5.5" chownr "^1.1.1" @@ -3188,6 +3643,14 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -3205,6 +3668,15 @@ camelcase-keys@^4.0.0: map-obj "^2.0.0" quick-lru "^1.0.0" +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + camelcase@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" @@ -3220,10 +3692,15 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001015: - version "1.0.30001015" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001015.tgz#15a7ddf66aba786a71d99626bc8f2b91c6f0f5f0" - integrity sha512-/xL2AbW/XWHNu1gnIrO8UitBGoFthcsDgU9VLK1/dpsoxbaD5LscHozKze05R6WLsBvLhqv78dAPozMFQBYLbQ== +camelcase@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e" + integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== + +caniuse-lite@^1.0.30001093: + version "1.0.30001103" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001103.tgz#fe81536d075b97cd013d4988c9212418faa289a8" + integrity sha512-EJkTPrZrgy712tjZ7GQDye5A67SQOyNS6X9b6GS/e5QFu5Renv5qfkx3GHq1S+vObxKzbWWYuPO/7nt4kYW/gA== capture-exit@^2.0.0: version "2.0.0" @@ -3273,6 +3750,14 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.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" + character-entities-legacy@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" @@ -3298,6 +3783,11 @@ check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= +child_process@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/child_process/-/child_process-1.0.2.tgz#b1f7e7fc73d25e7fd1d455adc94e143830182b5a" + integrity sha1-sffn/HPSXn/R1FWtyU4UODAYK1o= + chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -3323,6 +3813,13 @@ classnames@^2.2: resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== +clean-css@4.2.x: + version "4.2.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + dependencies: + source-map "~0.6.0" + cli-color@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-1.4.0.tgz#7d10738f48526824f8fe7da51857cb0f572fe01f" @@ -3355,9 +3852,14 @@ cli-spinners@^1.0.1: integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg== 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@^5.0.0: version "5.0.0" @@ -3368,6 +3870,15 @@ cliui@^5.0.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-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -3398,20 +3909,25 @@ code-point-at@^1.0.0: integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= codemirror@*: - version "5.50.2" - resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.50.2.tgz#32ddfe2b50193fcf573d8141c4a31d267c92b4a3" - integrity sha512-PPjUsC1oXSM86lunKrw609P1oM0Wu8z9rqzjbeyBYCcx44VL41aUpccdOf1PfAZtTONlmN3sT3p2etLNYa1OGg== + version "5.55.0" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.55.0.tgz#23731f641288f202a6858fdc878f3149e0e04363" + integrity sha512-TumikSANlwiGkdF/Blnu/rqovZ0Y3Jh8yy9TqrPbSM0xxSucq3RgnpVDQ+mD9q6JERJEIT2FMuF/fBGfkhIR/g== -codemirror@~5.49.2: - version "5.49.2" - resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.49.2.tgz#c84fdaf11b19803f828b0c67060c7bc6d154ccad" - integrity sha512-dwJ2HRPHm8w51WB5YTF9J7m6Z5dtkqbU9ntMZ1dqXyFB9IpjoUFDj80ahRVEoVanfIp6pfASJbOlbWdEf8FOzQ== +codemirror@~5.53.2: + version "5.53.2" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.53.2.tgz#9799121cf8c50809cca487304e9de3a74d33f428" + integrity sha512-wvSQKS4E+P8Fxn/AQ+tQtJnF1qH5UOlxtugFLpubEZ5jcdH2iXTVinb+Xc/4QjshuOxRm4fUsU2QPF1JJKiyXA== collapse-white-space@^1.0.2: version "1.0.6" resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -3459,15 +3975,25 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.9.0, commander@~2.20.3: +commander@2.17.x: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== + +commander@^2.9.0: 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@~2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + compare-func@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" - integrity sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg= + version "1.3.4" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.4.tgz#6b07c4c5e8341119baf44578085bda0f4a823516" + integrity sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q== dependencies: array-ify "^1.0.0" dot-prop "^3.0.0" @@ -3516,9 +4042,9 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= conventional-changelog-angular@^5.0.3: - version "5.0.6" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.6.tgz#269540c624553aded809c29a3508fdc2b544c059" - integrity sha512-QDEmLa+7qdhVIv8sFZfVxU1VSyVvnXPsxq8Vam49mKUcO1Z8VTLEJk9uI21uiJUsnmm0I4Hrsdc9TgkOQo9WSA== + version "5.0.10" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.10.tgz#5cf7b00dd315b6a6a558223c80d5ef24ddb34205" + integrity sha512-k7RPPRs0vp8+BtPsM9uDxRl6KcgqtCJmzRD1wRtgqmhQ96g8ifBGo9O/TZBG23jqlXS/rg8BKRDELxfnQQGiaA== dependencies: compare-func "^1.3.1" q "^1.5.1" @@ -3543,43 +4069,43 @@ conventional-changelog-core@^3.1.6: through2 "^3.0.0" conventional-changelog-preset-loader@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.0.tgz#580fa8ab02cef22c24294d25e52d7ccd247a9a6a" - integrity sha512-/rHb32J2EJnEXeK4NpDgMaAVTFZS3o1ExmjKMtYVgIC4MQn0vkNSbYpdGRotkfGGRWiqk3Ri3FBkiZGbAfIfOQ== + version "2.3.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c" + integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== conventional-changelog-writer@^4.0.6: - version "4.0.11" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.11.tgz#9f56d2122d20c96eb48baae0bf1deffaed1edba4" - integrity sha512-g81GQOR392I+57Cw3IyP1f+f42ME6aEkbR+L7v1FBBWolB0xkjKTeCWVguzRrp6UiT1O6gBpJbEy2eq7AnV1rw== + version "4.0.16" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.16.tgz#ca10f2691a8ea6d3c2eb74bd35bcf40aa052dda5" + integrity sha512-jmU1sDJDZpm/dkuFxBeRXvyNcJQeKhGtVcFFkwTphUAzyYWcwz2j36Wcv+Mv2hU3tpvLMkysOPXJTLO55AUrYQ== dependencies: compare-func "^1.3.1" - conventional-commits-filter "^2.0.2" + conventional-commits-filter "^2.0.6" dateformat "^3.0.0" - handlebars "^4.4.0" + handlebars "^4.7.6" json-stringify-safe "^5.0.1" lodash "^4.17.15" - meow "^5.0.0" + meow "^7.0.0" semver "^6.0.0" split "^1.0.0" through2 "^3.0.0" -conventional-commits-filter@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz#f122f89fbcd5bb81e2af2fcac0254d062d1039c1" - integrity sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ== +conventional-commits-filter@^2.0.2, conventional-commits-filter@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.6.tgz#0935e1240c5ca7698329affee1b6a46d33324c4c" + integrity sha512-4g+sw8+KA50/Qwzfr0hL5k5NWxqtrOVw4DDk3/h6L85a9Gz0/Eqp3oP+CWCNfesBvZZZEFHF7OTEbRe+yYSyKw== dependencies: lodash.ismatch "^4.4.0" modify-values "^1.0.0" conventional-commits-parser@^3.0.3: - version "3.0.8" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.8.tgz#23310a9bda6c93c874224375e72b09fb275fe710" - integrity sha512-YcBSGkZbYp7d+Cr3NWUeXbPDFUN6g3SaSIzOybi8bjHL5IJ5225OSCxJJ4LgziyEJ7AaJtE9L2/EU6H7Nt/DDQ== + version "3.1.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.1.0.tgz#10140673d5e7ef5572633791456c5d03b69e8be4" + integrity sha512-RSo5S0WIwXZiRxUGTPuYFbqvrR4vpJ1BDdTlthFgvHt5kEdnd1+pdvwWphWn57/oIl4V72NMmOocFqqJ8mFFhA== dependencies: JSONStream "^1.0.4" is-text-path "^1.0.1" lodash "^4.17.15" - meow "^5.0.0" + meow "^7.0.0" split2 "^2.0.0" through2 "^3.0.0" trim-off-newlines "^1.0.0" @@ -3598,7 +4124,7 @@ conventional-recommended-bump@^5.0.0: meow "^4.0.0" q "^1.5.1" -convert-source-map@^1.4.0, convert-source-map@^1.7.0: +convert-source-map@^1.4.0, convert-source-map@^1.6.0, 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== @@ -3622,19 +4148,14 @@ 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.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.1.tgz#39638c935c83c93a793abb628b252ec43e85783a" - integrity sha512-2Tl1EuxZo94QS2VeH28Ebf5g3xbPZG/hj/N5HDDy4XMP/ImR0JIer/nggQRiMN91Q54JVkGbytf42wO29oXVHg== +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.2" + browserslist "^4.8.5" semver "7.0.0" -core-js-pure@^3.0.0: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813" - integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA== - 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" @@ -3678,11 +4199,25 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": +cross-spawn@^7.0.0: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@~0.3.6: version "0.3.8" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== +cssom@^0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + cssstyle@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" @@ -3690,15 +4225,22 @@ cssstyle@^1.0.0: dependencies: cssom "0.3.x" -csstype@^2.2.0, csstype@^2.4.0: +cssstyle@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstype@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098" integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q== -csstype@~2.6.9: - version "2.6.10" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b" - integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w== +csstype@^2.2.0, csstype@~2.6.9: + version "2.6.11" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.11.tgz#452f4d024149ecf260a852b025e36562a253ffc5" + integrity sha512-l8YyEC9NBkSm783PFTvh0FmJy7s5pFKrDp49ZL7zBGX3fWkO+N4EEyan1qqp8cwPLDcD0OSdyY6hAMoxp34JFw== currently-unhandled@^0.4.1: version "0.4.1" @@ -3734,7 +4276,7 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -data-urls@^1.0.0: +data-urls@^1.0.0, data-urls@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== @@ -3781,7 +4323,7 @@ debuglog@^1.0.1: resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= -decamelize-keys@^1.0.0: +decamelize-keys@^1.0.0, decamelize-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= @@ -3828,6 +4370,11 @@ 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= +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + defaults@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" @@ -3889,6 +4436,11 @@ detect-newline@^2.1.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + dezalgo@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" @@ -3898,25 +4450,30 @@ dezalgo@^1.0.0: wrappy "1" dictionary-en-gb@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/dictionary-en-gb/-/dictionary-en-gb-2.2.1.tgz#8ef21b484b0ce89cdebd60c1b2b65f56df9a475f" - integrity sha512-kYhSoaD9yOaq/h14DyT/+hyjs5X96kFdnlmy582wr+hCOIRuv1hqAe9gWM+oUQAA1+MH8fAKzyAsTxS8ps/qsg== + version "2.2.2" + resolved "https://registry.yarnpkg.com/dictionary-en-gb/-/dictionary-en-gb-2.2.2.tgz#836ffaf70080977fdceb6ad769b5d22d1106c9c0" + integrity sha512-36Pz/2BGmJfXtAo5+IGOi+U6gwtxFsFXFJMOX0FC1z2YeLd1IXkxsfAhieC06OrdGie3SqCZmUOYeYgct5Hzzw== dictionary-en@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/dictionary-en/-/dictionary-en-3.0.0.tgz#c6cdb8cabbde09bd6a4a9349586548e58afff042" - integrity sha512-GHD7vLcjd3oB878zQ86iDhJLgrylt8U5H0+s8IBIMDW7EXQ+uRoDh27NawU/HMyc5amYaaoLQawwhAJX+TDQaw== + version "3.0.1" + resolved "https://registry.yarnpkg.com/dictionary-en/-/dictionary-en-3.0.1.tgz#bebcd9efcd7e2adf45470eb8cded9ea6010ad45e" + integrity sha512-IMVLlTXYGlKwmzTMvRzLDx/BCl9Tq3l56xY7URaH4eZMIufl7myaaXJJyTH6qdjXOxKMOkzE2t3rp3Ql7QciBA== diff-match-patch@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.4.tgz#6ac4b55237463761c4daf0dc603eb869124744b1" - integrity sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg== + version "1.0.5" + resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz#abb584d5f10cd1196dfc55aa03701592ae3f7b37" + integrity sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw== 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-sequences@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" + integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== + dir-glob@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" @@ -4076,10 +4633,10 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -electron-to-chromium@^1.3.322: - version "1.3.322" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8" - integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA== +electron-to-chromium@^1.3.488: + version "1.3.501" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.501.tgz#faa17a2cb0105ee30d5e1ca87eae7d8e85dd3175" + integrity sha512-tyzuKaV2POw2mtqBBzQGNBojMZzH0MRu8bT8T/50x+hWeucyG/9pkgAATy+PcM2ySNM9+8eG2VllY9c6j4i+bg== emoji-regex@^7.0.1: version "7.0.3" @@ -4091,12 +4648,17 @@ emoji-regex@^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== + encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== dependencies: - iconv-lite "~0.4.13" + iconv-lite "^0.6.2" end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" @@ -4111,9 +4673,9 @@ entities@^1.1.1: integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" - integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" + integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== env-paths@^2.2.0: version "2.2.0" @@ -4121,9 +4683,9 @@ env-paths@^2.2.0: integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== envinfo@^7.3.1: - version "7.5.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.5.0.tgz#91410bb6db262fb4f1409bd506e9ff57e91023f4" - integrity sha512-jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ== + version "7.5.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.5.1.tgz#93c26897225a00457c75e734d354ea9106a72236" + integrity sha512-hQBkDf2iO4Nv0CNHpCuSBeaSrveU6nThVxFGTrq/eDlV716UQk09zChaJae4mZRsos1x4YLY2TaH3LHUae3ZmQ== err-code@^1.0.0: version "1.1.2" @@ -4152,7 +4714,7 @@ error@^7.0.0: dependencies: string-template "~0.2.1" -es-abstract@^1.17.0, es-abstract@^1.17.5: +es-abstract@^1.17.0, 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== @@ -4169,23 +4731,6 @@ es-abstract@^1.17.0, es-abstract@^1.17.5: string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" -es-abstract@^1.17.0-next.1: - version "1.17.4" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184" - integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.1.5" - is-regex "^1.0.5" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimleft "^2.1.1" - string.prototype.trimright "^2.1.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" @@ -4233,6 +4778,14 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.3: d "^1.0.1" ext "^1.1.2" +es6-templates@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/es6-templates/-/es6-templates-0.2.3.tgz#5cb9ac9fb1ded6eb1239342b81d792bbb4078ee4" + integrity sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ= + dependencies: + recast "~0.11.12" + through "~2.3.6" + es6-weak-map@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" @@ -4243,17 +4796,22 @@ es6-weak-map@^2.0.2: es6-iterator "^2.0.3" es6-symbol "^3.1.1" +escalade@^3.0.1: + 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.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.12.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" - integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== +escodegen@^1.11.1, escodegen@^1.9.1: + 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" @@ -4268,9 +4826,9 @@ eslint-config-prettier@^6.7.0: get-stdin "^6.0.0" eslint-plugin-jest@^23.8.2: - version "23.13.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.13.2.tgz#7b7993b4e09be708c696b02555083ddefd7e4cc7" - integrity sha512-qZit+moTXTyZFNDqSIR88/L3rdBlTU7CuW6XmyErD2FfHEkdoLgThkRbiQjzgYnX6rfgLx3Ci4eJmF4Ui5v1Cw== + version "23.18.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.18.0.tgz#4813eacb181820ed13c5505f400956d176b25af8" + integrity sha512-wLPM/Rm1SGhxrFQ2TKM/BYsYPhn7ch6ZEK92S2o/vGkAAnDXM0I4nTIo745RIX+VlCRMFgBuJEax6XfTHMdeKg== dependencies: "@typescript-eslint/experimental-utils" "^2.5.0" @@ -4282,21 +4840,21 @@ eslint-plugin-prettier@^3.1.1: prettier-linter-helpers "^1.0.0" eslint-plugin-react@^7.19.0: - version "7.20.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.0.tgz#f98712f0a5e57dfd3e5542ef0604b8739cd47be3" - integrity sha512-rqe1abd0vxMjmbPngo4NaYxTcR3Y4Hrmc/jg4T+sYz63yqlmJRknpEQfmWY+eDWPuMmix6iUIK+mv0zExjeLgA== + version "7.20.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.3.tgz#0590525e7eb83890ce71f73c2cf836284ad8c2f1" + integrity sha512-txbo090buDeyV0ugF3YMWrzLIUqpYTsWSDZV9xLSmExE1P/Kmgg9++PD931r+KEWS66O1c9R4srLVVHmeHpoAg== dependencies: array-includes "^3.1.1" + array.prototype.flatmap "^1.2.3" doctrine "^2.1.0" has "^1.0.3" - jsx-ast-utils "^2.2.3" - object.entries "^1.1.1" + jsx-ast-utils "^2.4.1" + object.entries "^1.1.2" object.fromentries "^2.0.2" object.values "^1.1.1" prop-types "^15.7.2" - resolve "^1.15.1" + resolve "^1.17.0" string.prototype.matchall "^4.0.2" - xregexp "^4.3.0" eslint-scope@^5.0.0: version "5.1.0" @@ -4321,9 +4879,9 @@ eslint-utils@^2.0.0: eslint-visitor-keys "^1.1.0" eslint-visitor-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" - integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + 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.8.0: version "6.8.0" @@ -4377,22 +4935,22 @@ espree@^6.1.2: acorn-jsx "^5.2.0" eslint-visitor-keys "^1.1.0" -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= - -esprima@^4.0.0: +esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== +esprima@~3.1.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= + esquery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" - integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== + 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 "^4.0.0" + estraverse "^5.1.0" esrecurse@^4.1.0: version "4.2.1" @@ -4401,11 +4959,16 @@ esrecurse@^4.1.0: dependencies: estraverse "^4.1.0" -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: 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.1.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -4430,9 +4993,9 @@ events@^3.0.0: integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== 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== + 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@^0.9.0: version "0.9.0" @@ -4460,6 +5023,22 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^3.2.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + 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" + p-finally "^2.0.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" @@ -4490,6 +5069,18 @@ expect@^24.9.0: jest-message-util "^24.9.0" jest-regex-util "^24.9.0" +expect@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-25.5.0.tgz#f07f848712a2813bb59167da3fb828ca21f58bba" + integrity sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA== + dependencies: + "@jest/types" "^25.5.0" + ansi-styles "^4.0.0" + jest-get-type "^25.2.6" + jest-matcher-utils "^25.5.0" + jest-message-util "^25.5.0" + jest-regex-util "^25.2.6" + ext@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" @@ -4556,9 +5147,9 @@ fast-deep-equal@^2.0.1: integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + 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-diff@^1.1.2: version "1.2.0" @@ -4594,6 +5185,11 @@ fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fastparse@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + fb-watchman@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" @@ -4602,9 +5198,9 @@ fb-watchman@^2.0.0: bser "2.1.1" figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" - integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== figures@^2.0.0: version "2.0.0" @@ -4642,6 +5238,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-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -4664,7 +5267,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0: +find-up@^4.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== @@ -4682,9 +5285,9 @@ flat-cache@^2.0.1: write "1.0.3" flatted@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" - integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== flush-write-stream@^1.0.0: version "1.1.1" @@ -4725,10 +5328,10 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -free-style@2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/free-style/-/free-style-2.6.1.tgz#6af512568291195854842cbbaacd95578a6a9a8b" - integrity sha512-uaVA8e57tvhrFKAl6x32SGIrGFBoeTAFtfHDzWxjPhiXQiUxOI6EEdEReRkjNO2H9XcdMJXXEnMHw8Q7iMYLbw== +free-style@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/free-style/-/free-style-3.1.0.tgz#4e2996029534e6b1731611d843437b9e2f473f08" + integrity sha512-vJujYSIyT30iDoaoeigNAxX4yB1RUrh+N2ZMhIElMr3BvCuGXOw7XNJMEEJkDUeamK2Rnb/IKFGKRKlTWIGRWA== from2@^2.1.0: version "2.3.0" @@ -4779,13 +5382,18 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.11" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3" - integrity sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw== + 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" +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" @@ -4796,6 +5404,11 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +fuzzy-search@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/fuzzy-search/-/fuzzy-search-3.2.1.tgz#65d5faad6bc633aee86f1898b7788dfe312ac6c9" + integrity sha512-vAcPiyomt1ioKAsAL2uxSABHJ4Ju/e4UeDM+g1OlR0vV4YhLGMNsdLNvZTpEDY4JCSt0E4hASCNM5t2ETtsbyg== + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -4830,6 +5443,11 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + get-pkg-repo@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" @@ -4873,6 +5491,13 @@ get-stream@^4.0.0, get-stream@^4.1.0: dependencies: pump "^3.0.0" +get-stream@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + 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" @@ -4943,9 +5568,9 @@ glob-parent@^3.1.0: path-dirname "^1.0.0" glob-parent@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" - integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== + 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" @@ -4992,10 +5617,10 @@ globby@^9.2.0: pify "^4.0.1" slash "^2.0.0" -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, graceful-fs@^4.2.2: - version "4.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== +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, graceful-fs@^4.2.2, graceful-fs@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== growly@^1.3.0: version "1.3.0" @@ -5007,14 +5632,15 @@ gud@^1.0.0: resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== -handlebars@*, handlebars@^4.0.6, handlebars@^4.1.2, handlebars@^4.4.0, handlebars@^4.5.3: - version "4.7.3" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.3.tgz#8ece2797826886cf8082d1726ff21d2a022550ee" - integrity sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg== +handlebars@*, handlebars@^4.0.6, handlebars@^4.7.6: + version "4.7.6" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" + integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== dependencies: + minimist "^1.2.5" neo-async "^2.6.0" - optimist "^0.6.1" source-map "^0.6.1" + wordwrap "^1.0.0" optionalDependencies: uglify-js "^3.1.4" @@ -5031,6 +5657,11 @@ har-validator@~5.1.3: ajv "^6.5.5" har-schema "^2.0.0" +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + harmony-reflect@^1.4.6: version "1.6.1" resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" @@ -5094,6 +5725,11 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +he@1.2.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + hexer@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/hexer/-/hexer-1.5.0.tgz#b86ce808598e8a9d1892c571f3cedd86fc9f0653" @@ -5105,16 +5741,14 @@ hexer@^1.5.0: xtend "^4.0.0" highlight.js@^9.13.1: - version "9.17.1" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.17.1.tgz#14a4eded23fd314b05886758bb906e39dd627f9a" - integrity sha512-TA2/doAur5Ol8+iM3Ov7qy3jYcr/QiJ2eDTdRF4dfbjG7AaaB99J5G+zSl11ljbl6cIcahgPY6SKb3sC3EJ0fw== - dependencies: - handlebars "^4.5.3" + version "9.18.1" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.1.tgz#ed21aa001fe6252bb10a3d76d47573c6539fe13c" + integrity sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg== hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: - version "2.8.7" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.7.tgz#4d2e0d5248e1cfabc984b0f6a6d75fe36e679511" - integrity sha512-ChkjQtKJ3GI6SsI4O5jwr8q8EPrWCnxuc4Tbx+vRI5x6mDOpjKKltNo1lRlszw3xwgTOSns1ZRBiMmmwpcvLxg== + 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" @@ -5123,6 +5757,35 @@ 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== + +html-loader@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-0.5.5.tgz#6356dbeb0c49756d8ebd5ca327f16ff06ab5faea" + integrity sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog== + dependencies: + es6-templates "^0.2.3" + fastparse "^1.1.1" + html-minifier "^3.5.8" + loader-utils "^1.1.0" + object-assign "^4.1.1" + +html-minifier@^3.5.8: + version "3.5.21" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" + integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== + dependencies: + camel-case "3.0.x" + clean-css "4.2.x" + commander "2.17.x" + he "1.2.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.4.x" + htmlparser2@^3.10.0: version "3.10.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" @@ -5165,6 +5828,11 @@ https-proxy-agent@^2.2.3: agent-base "^4.3.0" debug "^3.1.0" +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== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -5189,13 +5857,20 @@ husky@^3.0.9: run-node "^1.0.0" slash "^3.0.0" -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@~0.4.13: +iconv-lite@0.4.24, 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" +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + identity-obj-proxy@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" @@ -5249,6 +5924,14 @@ import-local@^2.0.0: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -5266,6 +5949,11 @@ indent-string@^3.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -5279,15 +5967,15 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, 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== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@^1.3.2, ini@^1.3.4: version "1.3.5" @@ -5328,20 +6016,20 @@ inquirer@^6.2.0: through "^2.3.6" inquirer@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.2.0.tgz#63ce99d823090de7eb420e4bb05e6f3449aa389a" - integrity sha512-E0c4rPwr9ByePfNlTIB8z51kK1s2n6jrHuJeEHENl/sbq2G/S1auvibgEwNR4uSyiU+PiYHqSwsgGiXjG8p5ZQ== + version "7.3.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.2.tgz#25245d2e32dc9f33dbe26eeaada231daa66e9c7c" + integrity sha512-DF4osh1FM6l0RJc5YWYhSDB6TawiBRlbV9Cox8MWlidU218Tb7fm3lQTULyUJDfJ0tjbzl0W4q651mrCCEM55w== dependencies: ansi-escapes "^4.2.1" - chalk "^3.0.0" + chalk "^4.1.0" cli-cursor "^3.1.0" - cli-width "^2.0.0" + cli-width "^3.0.0" external-editor "^3.0.3" figures "^3.0.0" - lodash "^4.17.15" + lodash "^4.17.16" mute-stream "0.0.8" run-async "^2.4.0" - rxjs "^6.5.3" + rxjs "^6.6.0" string-width "^4.1.0" strip-ansi "^6.0.0" through "^2.3.6" @@ -5356,9 +6044,9 @@ internal-slot@^1.0.2: side-channel "^1.0.2" interpret@^1.0.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== invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" @@ -5367,6 +6055,11 @@ invariant@^2.2.2, invariant@^2.2.4: dependencies: loose-envify "^1.0.0" +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + ip@1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -5424,12 +6117,7 @@ is-buffer@^2.0.0: 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.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== - -is-callable@^1.2.0: +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== @@ -5488,6 +6176,11 @@ is-directory@^0.3.1: resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= +is-docker@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" + integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== + is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -5558,6 +6251,11 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" +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-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" @@ -5576,25 +6274,16 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: isobject "^3.0.1" is-plain-object@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928" - integrity sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg== - dependencies: - isobject "^4.0.0" - -is-promise@^2.1, 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 "3.0.1" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b" + integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g== -is-regex@^1.0.4, is-regex@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== - dependencies: - has "^1.0.3" +is-promise@^2.1: + 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.1.0: +is-regex@^1.0.4, is-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff" integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw== @@ -5613,6 +6302,11 @@ 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-string@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" @@ -5632,7 +6326,7 @@ is-text-path@^1.0.1: dependencies: text-extensions "^1.0.0" -is-typedarray@~1.0.0: +is-typedarray@^1.0.0, 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= @@ -5662,6 +6356,13 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= +is-wsl@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + isarray@1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -5684,11 +6385,6 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isobject@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" - integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== - isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -5699,6 +6395,11 @@ istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" @@ -5712,6 +6413,16 @@ istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: istanbul-lib-coverage "^2.0.5" semver "^6.0.0" +istanbul-lib-instrument@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + istanbul-lib-report@^2.0.4: version "2.0.8" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" @@ -5721,6 +6432,15 @@ istanbul-lib-report@^2.0.4: make-dir "^2.1.0" supports-color "^6.1.0" +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + istanbul-lib-source-maps@^3.0.1: version "3.0.6" resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" @@ -5732,25 +6452,42 @@ istanbul-lib-source-maps@^3.0.1: rimraf "^2.6.3" source-map "^0.6.1" +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + istanbul-reports@^2.2.6: - 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== + 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: + html-escaper "^2.0.0" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== dependencies: - handlebars "^4.1.2" + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" iterare@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/iterare/-/iterare-1.2.0.tgz#7427f5ed45986e4b73e2fea903579f1117f3dd15" - integrity sha512-RxMV9p/UzdK0Iplnd8mVgRvNdXlsTOiuDrqMRnDi3wIhbT+JP4xDquAX9ay13R3CH72NBzQ91KWe0+C168QAyQ== + version "1.2.1" + resolved "https://registry.yarnpkg.com/iterare/-/iterare-1.2.1.tgz#139c400ff7363690e33abffa33cbba8920f00042" + integrity sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q== jaeger-client@^3.5.3: - version "3.17.2" - resolved "https://registry.yarnpkg.com/jaeger-client/-/jaeger-client-3.17.2.tgz#92cf26752c5c66f3e66adf595cdde2f548cc0804" - integrity sha512-19YloSidmKbrXHgecLWod8eXo7rm2ieUnsfg0ripTFGRCW5v2OWE96Gte4/tOQG/8N+T39VoLU2nMBdjbdMUJg== + version "3.18.0" + resolved "https://registry.yarnpkg.com/jaeger-client/-/jaeger-client-3.18.0.tgz#95c9183e06a9b14b957bce33b5e2ddaecb2ed51f" + integrity sha512-xZ9WvZDWLkZFq7SObpLwu1asMCKCgBRNcDxxGSvK+ZQ7OZyJC5xPlU+rJa4+s/P6autPBVwHpqMGbOERFxWuuA== dependencies: node-int64 "^0.4.0" - opentracing "^0.13.0" + opentracing "^0.14.4" thriftrw "^3.5.0" uuid "^3.2.1" xorshift "^0.2.0" @@ -5789,6 +6526,15 @@ jest-changed-files@^24.9.0: execa "^1.0.0" throat "^4.0.0" +jest-changed-files@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.5.0.tgz#141cc23567ceb3f534526f8614ba39421383634c" + integrity sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw== + dependencies: + "@jest/types" "^25.5.0" + execa "^3.2.0" + throat "^5.0.0" + jest-cli@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" @@ -5808,6 +6554,26 @@ jest-cli@^24.9.0: realpath-native "^1.1.0" yargs "^13.3.0" +jest-cli@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.5.4.tgz#b9f1a84d1301a92c5c217684cb79840831db9f0d" + integrity sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw== + dependencies: + "@jest/core" "^25.5.4" + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^25.5.4" + jest-util "^25.5.0" + jest-validate "^25.5.0" + prompts "^2.0.1" + realpath-native "^2.0.0" + yargs "^15.3.1" + jest-config@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" @@ -5831,6 +6597,31 @@ jest-config@^24.9.0: pretty-format "^24.9.0" realpath-native "^1.1.0" +jest-config@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.5.4.tgz#38e2057b3f976ef7309b2b2c8dcd2a708a67f02c" + integrity sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^25.5.4" + "@jest/types" "^25.5.0" + babel-jest "^25.5.1" + chalk "^3.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^25.5.0" + jest-environment-node "^25.5.0" + jest-get-type "^25.2.6" + jest-jasmine2 "^25.5.4" + jest-regex-util "^25.2.6" + jest-resolve "^25.5.1" + jest-util "^25.5.0" + jest-validate "^25.5.0" + micromatch "^4.0.2" + pretty-format "^25.5.0" + realpath-native "^2.0.0" + jest-diff@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" @@ -5841,6 +6632,16 @@ jest-diff@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" +jest-diff@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" + integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== + dependencies: + chalk "^3.0.0" + diff-sequences "^25.2.6" + jest-get-type "^25.2.6" + pretty-format "^25.5.0" + jest-docblock@^24.3.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" @@ -5848,6 +6649,13 @@ jest-docblock@^24.3.0: dependencies: detect-newline "^2.1.0" +jest-docblock@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef" + integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg== + dependencies: + detect-newline "^3.0.0" + jest-each@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" @@ -5859,6 +6667,17 @@ jest-each@^24.9.0: jest-util "^24.9.0" pretty-format "^24.9.0" +jest-each@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.5.0.tgz#0c3c2797e8225cb7bec7e4d249dcd96b934be516" + integrity sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA== + dependencies: + "@jest/types" "^25.5.0" + chalk "^3.0.0" + jest-get-type "^25.2.6" + jest-util "^25.5.0" + pretty-format "^25.5.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" @@ -5871,6 +6690,18 @@ jest-environment-jsdom@^24.9.0: jest-util "^24.9.0" jsdom "^11.5.1" +jest-environment-jsdom@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz#dcbe4da2ea997707997040ecf6e2560aec4e9834" + integrity sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A== + dependencies: + "@jest/environment" "^25.5.0" + "@jest/fake-timers" "^25.5.0" + "@jest/types" "^25.5.0" + jest-mock "^25.5.0" + jest-util "^25.5.0" + jsdom "^15.2.1" + 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" @@ -5882,11 +6713,28 @@ jest-environment-node@^24.9.0: jest-mock "^24.9.0" jest-util "^24.9.0" +jest-environment-node@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.5.0.tgz#0f55270d94804902988e64adca37c6ce0f7d07a1" + integrity sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA== + dependencies: + "@jest/environment" "^25.5.0" + "@jest/fake-timers" "^25.5.0" + "@jest/types" "^25.5.0" + jest-mock "^25.5.0" + jest-util "^25.5.0" + semver "^6.3.0" + 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-get-type@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" + integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== + 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" @@ -5906,6 +6754,26 @@ jest-haste-map@^24.9.0: optionalDependencies: fsevents "^1.2.7" +jest-haste-map@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.5.1.tgz#1df10f716c1d94e60a1ebf7798c9fb3da2620943" + integrity sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ== + dependencies: + "@jest/types" "^25.5.0" + "@types/graceful-fs" "^4.1.2" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-serializer "^25.5.0" + jest-util "^25.5.0" + jest-worker "^25.5.0" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + which "^2.0.2" + optionalDependencies: + fsevents "^2.1.2" + jest-jasmine2@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" @@ -5928,6 +6796,40 @@ jest-jasmine2@^24.9.0: pretty-format "^24.9.0" throat "^4.0.0" +jest-jasmine2@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz#66ca8b328fb1a3c5364816f8958f6970a8526968" + integrity sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^25.5.0" + "@jest/source-map" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" + chalk "^3.0.0" + co "^4.6.0" + expect "^25.5.0" + is-generator-fn "^2.0.0" + jest-each "^25.5.0" + jest-matcher-utils "^25.5.0" + jest-message-util "^25.5.0" + jest-runtime "^25.5.4" + jest-snapshot "^25.5.1" + jest-util "^25.5.0" + pretty-format "^25.5.0" + throat "^5.0.0" + +jest-junit@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-10.0.0.tgz#c94b91c24920a327c9d2a075e897b2dba4af494b" + integrity sha512-dbOVRyxHprdSpwSAR9/YshLwmnwf+RSl5hf0kCGlhAcEeZY9aRqo4oNmaT0tLC16Zy9D0zekDjWkjHGjXlglaQ== + dependencies: + jest-validate "^24.9.0" + mkdirp "^0.5.1" + strip-ansi "^5.2.0" + uuid "^3.3.3" + xml "^1.0.1" + jest-junit@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-8.0.0.tgz#d4f7ff67e292a5426dc60bc38694c9f77cb94178" @@ -5946,6 +6848,14 @@ jest-leak-detector@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" +jest-leak-detector@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz#2291c6294b0ce404241bb56fe60e2d0c3e34f0bb" + integrity sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA== + dependencies: + jest-get-type "^25.2.6" + pretty-format "^25.5.0" + 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" @@ -5956,6 +6866,16 @@ jest-matcher-utils@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" +jest-matcher-utils@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz#fbc98a12d730e5d2453d7f1ed4a4d948e34b7867" + integrity sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw== + dependencies: + chalk "^3.0.0" + jest-diff "^25.5.0" + jest-get-type "^25.2.6" + pretty-format "^25.5.0" + 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" @@ -5970,6 +6890,20 @@ jest-message-util@^24.9.0: slash "^2.0.0" stack-utils "^1.0.1" +jest-message-util@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.5.0.tgz#ea11d93204cc7ae97456e1d8716251185b8880ea" + integrity sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^25.5.0" + "@types/stack-utils" "^1.0.1" + chalk "^3.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + slash "^3.0.0" + stack-utils "^1.0.1" + jest-mock@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" @@ -5977,10 +6911,17 @@ jest-mock@^24.9.0: dependencies: "@jest/types" "^24.9.0" +jest-mock@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.5.0.tgz#a91a54dabd14e37ecd61665d6b6e06360a55387a" + integrity sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA== + dependencies: + "@jest/types" "^25.5.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-raw-loader@^1.0.1: version "1.0.1" @@ -5992,6 +6933,11 @@ jest-regex-util@^24.3.0, jest-regex-util@^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-regex-util@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964" + integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw== + 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" @@ -6001,6 +6947,15 @@ jest-resolve-dependencies@^24.9.0: jest-regex-util "^24.3.0" jest-snapshot "^24.9.0" +jest-resolve-dependencies@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz#85501f53957c8e3be446e863a74777b5a17397a7" + integrity sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw== + dependencies: + "@jest/types" "^25.5.0" + jest-regex-util "^25.2.6" + jest-snapshot "^25.5.1" + jest-resolve@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" @@ -6008,9 +6963,24 @@ jest-resolve@^24.9.0: dependencies: "@jest/types" "^24.9.0" browser-resolve "^1.11.3" - chalk "^2.0.1" + chalk "^2.0.1" + jest-pnp-resolver "^1.2.1" + realpath-native "^1.1.0" + +jest-resolve@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.5.1.tgz#0e6fbcfa7c26d2a5fe8f456088dc332a79266829" + integrity sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ== + dependencies: + "@jest/types" "^25.5.0" + browser-resolve "^1.11.3" + chalk "^3.0.0" + graceful-fs "^4.2.4" jest-pnp-resolver "^1.2.1" - realpath-native "^1.1.0" + read-pkg-up "^7.0.1" + realpath-native "^2.0.0" + resolve "^1.17.0" + slash "^3.0.0" jest-runner@^24.9.0: version "24.9.0" @@ -6037,6 +7007,31 @@ jest-runner@^24.9.0: source-map-support "^0.5.6" throat "^4.0.0" +jest-runner@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.5.4.tgz#ffec5df3875da5f5c878ae6d0a17b8e4ecd7c71d" + integrity sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg== + dependencies: + "@jest/console" "^25.5.0" + "@jest/environment" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^25.5.4" + jest-docblock "^25.3.0" + jest-haste-map "^25.5.1" + jest-jasmine2 "^25.5.4" + jest-leak-detector "^25.5.0" + jest-message-util "^25.5.0" + jest-resolve "^25.5.1" + jest-runtime "^25.5.4" + jest-util "^25.5.0" + jest-worker "^25.5.0" + source-map-support "^0.5.6" + throat "^5.0.0" + jest-runtime@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" @@ -6066,11 +7061,50 @@ jest-runtime@^24.9.0: strip-bom "^3.0.0" yargs "^13.3.0" +jest-runtime@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.5.4.tgz#dc981fe2cb2137abcd319e74ccae7f7eeffbfaab" + integrity sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ== + dependencies: + "@jest/console" "^25.5.0" + "@jest/environment" "^25.5.0" + "@jest/globals" "^25.5.2" + "@jest/source-map" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^25.5.4" + jest-haste-map "^25.5.1" + jest-message-util "^25.5.0" + jest-mock "^25.5.0" + jest-regex-util "^25.2.6" + jest-resolve "^25.5.1" + jest-snapshot "^25.5.1" + jest-util "^25.5.0" + jest-validate "^25.5.0" + realpath-native "^2.0.0" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.3.1" + 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-serializer@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.5.0.tgz#a993f484e769b4ed54e70e0efdb74007f503072b" + integrity sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA== + dependencies: + graceful-fs "^4.2.4" + jest-snapshot@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" @@ -6090,6 +7124,34 @@ jest-snapshot@^24.9.0: pretty-format "^24.9.0" semver "^6.2.0" +jest-snapshot@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.5.1.tgz#1a2a576491f9961eb8d00c2e5fd479bc28e5ff7f" + integrity sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^25.5.0" + "@types/prettier" "^1.19.0" + chalk "^3.0.0" + expect "^25.5.0" + graceful-fs "^4.2.4" + jest-diff "^25.5.0" + jest-get-type "^25.2.6" + jest-matcher-utils "^25.5.0" + jest-message-util "^25.5.0" + jest-resolve "^25.5.1" + make-dir "^3.0.0" + natural-compare "^1.4.0" + pretty-format "^25.5.0" + semver "^6.3.0" + +jest-summary-reporter@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/jest-summary-reporter/-/jest-summary-reporter-0.0.2.tgz#53b9997b56f343a0dd9af24199c68d371e01f534" + integrity sha512-rZ3ThO57l+ZJCxF74cXIGQU3cV9I7bSBe1ElBp0taE3x2JghgD69bNCKt0LvpVQX5azTRHG7LmcjIpwriVnTng== + dependencies: + chalk "^2.4.1" + jest-util@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" @@ -6108,6 +7170,17 @@ jest-util@^24.9.0: slash "^2.0.0" source-map "^0.6.0" +jest-util@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.5.0.tgz#31c63b5d6e901274d264a4fec849230aa3fa35b0" + integrity sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA== + dependencies: + "@jest/types" "^25.5.0" + chalk "^3.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + make-dir "^3.0.0" + jest-validate@^24.0.0, jest-validate@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" @@ -6120,6 +7193,18 @@ jest-validate@^24.0.0, jest-validate@^24.9.0: leven "^3.1.0" pretty-format "^24.9.0" +jest-validate@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.5.0.tgz#fb4c93f332c2e4cf70151a628e58a35e459a413a" + integrity sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ== + dependencies: + "@jest/types" "^25.5.0" + camelcase "^5.3.1" + chalk "^3.0.0" + jest-get-type "^25.2.6" + leven "^3.1.0" + pretty-format "^25.5.0" + jest-watcher@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" @@ -6133,6 +7218,18 @@ jest-watcher@^24.9.0: jest-util "^24.9.0" string-length "^2.0.0" +jest-watcher@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.5.0.tgz#d6110d101df98badebe435003956fd4a465e8456" + integrity sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q== + dependencies: + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + jest-util "^25.5.0" + string-length "^3.1.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" @@ -6141,6 +7238,14 @@ jest-worker@^24.6.0, jest-worker@^24.9.0: merge-stream "^2.0.0" supports-color "^6.1.0" +jest-worker@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" + integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw== + dependencies: + merge-stream "^2.0.0" + supports-color "^7.0.0" + jest@^24.7.1: version "24.9.0" resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" @@ -6149,17 +7254,21 @@ jest@^24.7.1: import-local "^2.0.0" jest-cli "^24.9.0" -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== +jest@^25.2.3: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest/-/jest-25.5.4.tgz#f21107b6489cfe32b076ce2adcadee3587acb9db" + integrity sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ== + dependencies: + "@jest/core" "^25.5.4" + import-local "^3.0.2" + jest-cli "^25.5.4" "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.12.0: +js-yaml@^3.12.0, js-yaml@^3.12.1, js-yaml@^3.13.1: 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== @@ -6167,14 +7276,6 @@ js-yaml@^3.12.0: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^3.12.1, 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== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -6212,6 +7313,38 @@ jsdom@^11.5.1, jsdom@^11.9.0: ws "^5.2.0" xml-name-validator "^3.0.0" +jsdom@^15.2.1: + version "15.2.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" + integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g== + dependencies: + abab "^2.0.0" + acorn "^7.1.0" + acorn-globals "^4.3.2" + array-equal "^1.0.0" + cssom "^0.4.1" + cssstyle "^2.0.0" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.1" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.2.0" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.7" + saxes "^3.1.9" + symbol-tree "^3.2.2" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.1.2" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^7.0.0" + xml-name-validator "^3.0.0" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -6237,18 +7370,22 @@ json-schema-ref-parser@^6.1.0: ono "^4.0.11" json-schema-to-typescript@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/json-schema-to-typescript/-/json-schema-to-typescript-8.1.0.tgz#c92174a3f70d5eb68646c1ab16cb6bcba6d1cbee" - integrity sha512-SGGX82OofMggPDUIO6+GYc14g8bew4ETtEif9G8I9SSXYFVHPSfoNE0AaNcfTFwI/xHSepHRse4aMurAtc8+mw== + version "8.2.0" + resolved "https://registry.yarnpkg.com/json-schema-to-typescript/-/json-schema-to-typescript-8.2.0.tgz#a859f836df89db63c5f17a6c9c2f1dea93e8dd9b" + integrity sha512-yvi4v9oLeJzJCktt+Zta6kOgEu8R93gNMZUJYo83aAPxoG0qB+cXIxVg5xa6gmdNkyffjH9Ebw1rvyaJKIor5A== dependencies: + "@types/is-glob" "^4.0.1" "@types/json-schema" "^7.0.3" - "@types/node" ">=4.5.0" + "@types/mkdirp" "^0.5.2" "@types/prettier" "^1.16.1" cli-color "^1.4.0" + glob "^7.1.4" + is-glob "^4.0.1" json-schema-ref-parser "^6.1.0" json-stringify-safe "^5.0.1" lodash "^4.17.11" minimist "^1.2.0" + mkdirp "^0.5.1" mz "^2.7.0" prettier "^1.19.1" stdin "0.0.1" @@ -6278,10 +7415,17 @@ json-to-html@~0.1.2: resolved "https://registry.yarnpkg.com/json-to-html/-/json-to-html-0.1.2.tgz#7a095ae4a34b33534aad0970ca4b7417b2c11ee3" integrity sha1-egla5KNLM1NKrQlwykt0F7LBHuM= -json5@2.x, json5@^2.1.0, json5@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" - integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== +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@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== dependencies: minimist "^1.2.0" @@ -6290,15 +7434,10 @@ jsonc-parser@^1.0.0, jsonc-parser@^1.0.3: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-1.0.3.tgz#1d53d7160e401a783dbceabaad82473f80e6ad7e" integrity sha512-hk/69oAeaIzchq/v3lS50PXuzn5O2ynldopMC+SWBql7J2WtdptfB9dy8Y7+Og5rPkTCpn83zTiO8FMcqlXJ/g== -jsonc-parser@^2.0.0-next.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.1.tgz#db73cd59d78cce28723199466b2a03d1be1df2bc" - integrity sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w== - -jsonc-parser@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.0.tgz#f206f87f9d49d644b7502052c04e82dd6392e9ef" - integrity sha512-4fLQxW1j/5fWj6p78vAlAafoCKtuBm6ghv+Ij5W2DrDx0qE+ZdEl2c6Ko1mgJNF5ftX1iEWQQ4Ap7+3GlhjkOA== +jsonc-parser@^2.0.0-next.1, jsonc-parser@^2.2.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.0.tgz#7c7fc988ee1486d35734faaaa866fadb00fa91ee" + integrity sha512-b0EBt8SWFNnixVdvoR2ZtEGa9ZqLhbJnOjezn+WP+8kspFm+PFYDN8Z4Bc7pRlDjvuVcADSUkroIuTWWn/YiIA== jsonfile@^4.0.0: version "4.0.0" @@ -6322,7 +7461,7 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -jsx-ast-utils@^2.2.3: +jsx-ast-utils@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz#1114a4c1209481db06c690c2b4f488cc665f657e" integrity sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w== @@ -6349,7 +7488,7 @@ kind-of@^5.0.0: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== -kind-of@^6.0.0, kind-of@^6.0.2: +kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: 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== @@ -6365,26 +7504,26 @@ left-pad@^1.3.0: integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== lerna@^3.13.2: - version "3.20.2" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.20.2.tgz#abf84e73055fe84ee21b46e64baf37b496c24864" - integrity sha512-bjdL7hPLpU3Y8CBnw/1ys3ynQMUjiK6l9iDWnEGwFtDy48Xh5JboR9ZJwmKGCz9A/sarVVIGwf1tlRNKUG9etA== - dependencies: - "@lerna/add" "3.20.0" - "@lerna/bootstrap" "3.20.0" - "@lerna/changed" "3.20.0" - "@lerna/clean" "3.20.0" + version "3.22.1" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.22.1.tgz#82027ac3da9c627fd8bf02ccfeff806a98e65b62" + integrity sha512-vk1lfVRFm+UuEFA7wkLKeSF7Iz13W+N/vFd48aW2yuS7Kv0RbNm2/qcDPV863056LMfkRlsEe+QYOw3palj5Lg== + dependencies: + "@lerna/add" "3.21.0" + "@lerna/bootstrap" "3.21.0" + "@lerna/changed" "3.21.0" + "@lerna/clean" "3.21.0" "@lerna/cli" "3.18.5" - "@lerna/create" "3.18.5" - "@lerna/diff" "3.18.5" - "@lerna/exec" "3.20.0" - "@lerna/import" "3.18.5" - "@lerna/info" "3.20.0" - "@lerna/init" "3.18.5" - "@lerna/link" "3.18.5" - "@lerna/list" "3.20.0" - "@lerna/publish" "3.20.2" - "@lerna/run" "3.20.0" - "@lerna/version" "3.20.2" + "@lerna/create" "3.22.0" + "@lerna/diff" "3.21.0" + "@lerna/exec" "3.21.0" + "@lerna/import" "3.22.0" + "@lerna/info" "3.21.0" + "@lerna/init" "3.21.0" + "@lerna/link" "3.21.0" + "@lerna/list" "3.21.0" + "@lerna/publish" "3.22.1" + "@lerna/run" "3.21.0" + "@lerna/version" "3.22.1" import-local "^2.0.0" npmlog "^4.1.2" @@ -6393,6 +7532,13 @@ leven@^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: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -6438,6 +7584,15 @@ load-json-file@^5.3.0: strip-bom "^3.0.0" type-fest "^0.3.0" +loader-utils@^1.1.0: + 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 "^3.0.0" + json5 "^1.0.1" + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -6546,7 +7701,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.2.1: +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.16, lodash@^4.17.19, lodash@^4.17.4, lodash@^4.2.1: version "4.17.19" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== @@ -6558,6 +7713,13 @@ log-symbols@^2.1.0: dependencies: chalk "^2.0.1" +lolex@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" + integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== + dependencies: + "@sinonjs/commons" "^1.7.0" + long@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/long/-/long-2.4.0.tgz#9fa180bb1d9500cdc29c4156766a1995e1f4524f" @@ -6578,6 +7740,11 @@ loud-rejection@^1.0.0: currently-unhandled "^0.4.1" signal-exit "^3.0.0" +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" @@ -6601,9 +7768,9 @@ lru-queue@0.1: es5-ext "~0.10.2" macos-release@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" - integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== + version "2.4.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.4.0.tgz#837b39fc01785c3584f103c5599e0f0c8068b49e" + integrity sha512-ko6deozZYiAkqa/0gmcsz+p4jSy3gY7/ZsCEokPaYd8k+6/aXGkiTgr61+Owup7Sf+xjqW8u2ElhoM9SEcEfuA== make-dir@^1.0.0: version "1.3.0" @@ -6620,10 +7787,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== make-fetch-happen@^5.0.0: version "5.0.2" @@ -6664,6 +7838,11 @@ map-obj@^2.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= +map-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" + integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== + map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -6676,15 +7855,36 @@ markdown-escapes@^1.0.0: resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== +markdown-loader-jest@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/markdown-loader-jest/-/markdown-loader-jest-0.1.1.tgz#7de45f7e6c8644805bd02ca126dfb54a55cf8255" + integrity sha512-osdgJgjxP/9C+vcIkTxU5p91C3+IkD2yY+SvG4GcFOOfAK0mixqepDSkNdMIsCf10KK9DfHjPUslnzKLH1tktg== + dependencies: + html-loader "^0.5.1" + markdown-loader "^2.0.1" + +markdown-loader@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/markdown-loader/-/markdown-loader-2.0.2.tgz#1cdcf11307658cd611046d7db34c2fe80542af7c" + integrity sha512-v/ej7DflZbb6t//3Yu9vg0T+sun+Q9EoqggifeyABKfvFROqPwwwpv+hd1NKT2QxTRg6VCFk10IIJcMI13yCoQ== + dependencies: + loader-utils "^1.1.0" + marked "^0.3.9" + +marked@^0.3.9: + version "0.3.19" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" + integrity sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg== + marked@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/marked/-/marked-0.4.0.tgz#9ad2c2a7a1791f10a852e0112f77b571dce10c66" integrity sha512-tMsdNBgOsrUophCAFQl0XPe6Zqk/uy9gnue+jIIKhykO51hxyu6uNx7zBPy0+y/WKYVZZMspV9YeXLNdKk+iYw== marked@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.0.tgz#ec5c0c9b93878dc52dd54be8d0e524097bd81a99" - integrity sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ== + version "0.8.2" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.2.tgz#4faad28d26ede351a7a1aaa5fec67915c869e355" + integrity sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw== mdast-comment-marker@^1.0.0: version "1.1.2" @@ -6707,9 +7907,9 @@ mdast-util-to-nlcst@^3.2.0: vfile-location "^2.0.0" mdast-util-to-string@^1.0.2: - version "1.0.8" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.0.8.tgz#a414cee45ad4bef93a60f32f48266d43e263d88f" - integrity sha512-GBracya0dOzckEEizUBzfrkWRLCHMsppuU97LPUriY9kWnYyGFWTx4VDW+sUcj2LneBz/Tp1aYp3aUCibzjtWg== + version "1.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527" + integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== memoizee@^0.4.14: version "0.4.14" @@ -6756,20 +7956,24 @@ meow@^4.0.0: redent "^2.0.0" trim-newlines "^2.0.0" -meow@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" - integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - yargs-parser "^10.0.0" +meow@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-7.0.1.tgz#1ed4a0a50b3844b451369c48362eb0515f04c1dc" + integrity sha512-tBKIQqVrAHqwit0vfuFPY3LlzJYkEOFyKa3bPgxzNl6q/RtN8KQ+ALYEASYuFayzSAsjlhXj/JZ10rH85Q6TUw== + dependencies: + "@types/minimist" "^1.2.0" + arrify "^2.0.1" + camelcase "^6.0.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "^4.0.2" + normalize-package-data "^2.5.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.13.1" + yargs-parser "^18.1.3" merge-stream@^2.0.0: version "2.0.0" @@ -6777,9 +7981,17 @@ merge-stream@^2.0.0: integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.2.3: - version "1.3.0" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" - integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@4.x, 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" micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" @@ -6800,17 +8012,17 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -mime-db@1.43.0: - version "1.43.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" - integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== +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.26" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" - integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== + 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.43.0" + mime-db "1.44.0" mimic-fn@^1.0.0: version "1.2.0" @@ -6822,6 +8034,11 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + minimatch@^3.0.0, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -6837,20 +8054,19 @@ minimist-options@^3.0.1: arrify "^1.0.1" is-plain-obj "^1.1.0" -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@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= +minimist-options@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" -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= +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.0: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: version "2.9.0" @@ -6899,16 +8115,16 @@ mkdirp-promise@^5.0.1: mkdirp "*" mkdirp@*: - version "1.0.3" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz#4cf2e30ad45959dddea53ad97d518b6c8205e1ea" - integrity sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g== + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1: - 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" modify-values@^1.0.0: version "1.0.1" @@ -6916,9 +8132,9 @@ modify-values@^1.0.0: integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== moment@^2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" - integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== + 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" @@ -6933,9 +8149,9 @@ move-concurrently@^1.0.1: run-queue "^1.0.3" mri@^1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.4.tgz#7cb1dd1b9b40905f1fac053abe25b6720f44744a" - integrity sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w== + version "1.1.6" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.6.tgz#49952e1044db21dbf90f6cd92bc9c9a777d415a6" + integrity sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ== ms@2.0.0: version "2.0.0" @@ -6977,9 +8193,9 @@ mz@^2.5.0, mz@^2.6.0, mz@^2.7.0: thenify-all "^1.0.0" 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" @@ -7004,9 +8220,9 @@ natural-compare@^1.4.0: integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 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== + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== next-tick@1: version "1.1.0" @@ -7031,14 +8247,21 @@ nlcst-is-literal@^1.0.0: nlcst-to-string "^2.0.0" nlcst-to-string@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/nlcst-to-string/-/nlcst-to-string-2.0.3.tgz#b7913bb1305263b0561a86de68e179f17f7febe3" - integrity sha512-OY2QhGdf6jpYfHqS4vJwqF7aIBZkaMjMUkcHcskMPitvXLuYNGdQvgVWI/5yKwkmIdmhft3ounSJv+Re2yydng== + version "2.0.4" + resolved "https://registry.yarnpkg.com/nlcst-to-string/-/nlcst-to-string-2.0.4.tgz#9315dfab80882bbfd86ddf1b706f53622dc400cc" + integrity sha512-3x3jwTd6UPG7vi5k4GEzvxJ5rDA7hVUIRNHPblKuMVP9Z3xmlsd9cgLcpAMkc5uPOBna82EeshROFhsPkbnTZg== + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" node-fetch-npm@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" - integrity sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" + integrity sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg== dependencies: encoding "^0.1.11" json-parse-better-errors "^1.0.0" @@ -7050,9 +8273,9 @@ node-fetch@^2.3.0, node-fetch@^2.5.0, node-fetch@^2.6.0: integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== node-gyp@^5.0.2: - version "5.1.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.0.tgz#8e31260a7af4a2e2f994b0673d4e0b3866156332" - integrity sha512-OUTryc5bt/P8zVgNUmC6xdXiDJxLMAW8cF5tLQOT9E5sOQj+UeQxnnPy74K3CLCa/SOjjBlbuzDLR8ANwA+wmw== + version "5.1.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e" + integrity sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw== dependencies: env-paths "^2.2.0" glob "^7.1.4" @@ -7087,17 +8310,26 @@ node-notifier@^5.4.2: shellwords "^0.1.1" which "^1.3.0" -node-releases@^1.1.42: - version "1.1.42" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.42.tgz#a999f6a62f8746981f6da90627a8d2fc090bbad7" - integrity sha512-OQ/ESmUqGawI2PRX+XIRao44qWYBBfN54ImQYdWVTQqUckuejOg76ysSqDBK8NG3zwySRVnX36JwDQ6x+9GxzA== +node-notifier@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12" + integrity sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw== dependencies: + growly "^1.3.0" + is-wsl "^2.1.1" semver "^6.3.0" + shellwords "^0.1.1" + which "^1.3.1" + +node-releases@^1.1.58: + version "1.1.59" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.59.tgz#4d648330641cec704bff10f8e4fe28e453ab8e8e" + integrity sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw== nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + version "4.0.3" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== dependencies: abbrev "1" osenv "^0.1.4" @@ -7119,6 +8351,11 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" +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-url@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" @@ -7137,9 +8374,9 @@ npm-bundled@^1.0.1: npm-normalize-package-bin "^1.0.1" npm-lifecycle@^3.1.2: - version "3.1.4" - resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.4.tgz#de6975c7d8df65f5150db110b57cce498b0b604c" - integrity sha512-tgs1PaucZwkxECGKhC/stbEgFyc3TGh2TJcg2CDr6jbvQRdteHNhmMeljRzpe4wgFAXQADoy1cSqqi7mtiAa5A== + version "3.1.5" + resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz#9882d3642b8c82c815782a12e6a1bfeed0026309" + integrity sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g== dependencies: byline "^5.0.0" graceful-fs "^4.1.15" @@ -7190,6 +8427,13 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" +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: + path-key "^3.0.0" + npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -7212,10 +8456,10 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 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== +nwsapi@^2.0.7, nwsapi@^2.2.0: + 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" @@ -7242,14 +8486,17 @@ object-hash@^1.1.8: integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== object-inspect@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== + version "1.8.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== object-is@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" - integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -7273,7 +8520,7 @@ object.assign@^4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" -object.entries@^1.1.1: +object.entries@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== @@ -7292,7 +8539,7 @@ object.fromentries@^2.0.2: function-bind "^1.1.1" has "^1.0.3" -object.getownpropertydescriptors@^2.0.3: +object.getownpropertydescriptors@^2.0.3, 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== @@ -7351,28 +8598,15 @@ ono@^4.0.11: format-util "^1.0.3" opencollective-postinstall@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" - integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== - -opentracing@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.13.0.tgz#6a341442f09d7d866bc11ed03de1e3828e3d6aab" - integrity sha1-ajQUQvCdfYZrwR7QPeHjgo49aqs= + version "2.0.3" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" + integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== -opentracing@^0.14.0: +opentracing@^0.14.0, opentracing@^0.14.4: version "0.14.4" resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.4.tgz#a113408ea740da3a90fde5b3b0011a375c2e4268" integrity sha512-nNnZDkUNExBwEpb7LZaeMeQgvrlO8l4bgY/LvGNZCR0xG/dGWqHqjKrAmR5GUoYo0FIz38kxasvA1aevxWs2CA== -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - optionator@^0.8.1, optionator@^0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -7428,11 +8662,21 @@ p-each-series@^1.0.0: dependencies: p-reduce "^1.0.0" +p-each-series@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" + integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ== + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -7441,9 +8685,9 @@ p-limit@^1.1.0: p-try "^1.0.0" p-limit@^2.0.0, p-limit@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" - integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== + 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" @@ -7523,6 +8767,13 @@ parallel-transform@^1.1.0: inherits "^2.0.3" readable-stream "^2.1.5" +param-case@2.1.x: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -7531,9 +8782,9 @@ parent-module@^1.0.0: callsites "^3.0.0" parse-english@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/parse-english/-/parse-english-4.1.2.tgz#6710d426caa76db327ef7066991cd1b9f602db9f" - integrity sha512-+PBf+1ifxqJlOpisODiKX4A8wBEgWm4goMvDB5O9zx/cQI58vzHTZeWFbAgCF9fUXRl8/YdINv1cfmfIRR1acg== + version "4.1.3" + resolved "https://registry.yarnpkg.com/parse-english/-/parse-english-4.1.3.tgz#692ec002e515b4b9b3e9e64ee1224b082667a20b" + integrity sha512-IQl1v/ik9gw437T8083coohMihae0rozpc7JYC/9h6hi9xKBSxFwh5HWRpzVC2ZhEs2nUlze2aAktpNBJXdJKA== dependencies: nlcst-to-string "^2.0.0" parse-latin "^4.0.0" @@ -7583,9 +8834,9 @@ parse-json@^5.0.0: lines-and-columns "^1.1.6" parse-latin@^4.0.0, parse-latin@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/parse-latin/-/parse-latin-4.2.0.tgz#b0b107a26ecbe8670f9ed0d20eb491c7780f99d1" - integrity sha512-b8PvsA1Ohh7hIQwDDy6kSjx3EbcuR3oKYm5lC1/l/zIB6mVVV5ESEoS1+Qr5+QgEGmp+aEZzc+D145FIPJUszw== + version "4.2.1" + resolved "https://registry.yarnpkg.com/parse-latin/-/parse-latin-4.2.1.tgz#b78c57c026cdf8e4e9924b296a2d0aa69877fab8" + integrity sha512-7T9g6mIsFFpLlo0Zzb2jLWdCt+H9Qtf/hRmMYFi/Mq6Ovi+YKo+AyDFX3OhFfu0vXX5Nid9FKJGKSSzNcTkWiA== dependencies: nlcst-to-string "^2.0.0" unist-util-modify-children "^1.0.0" @@ -7614,6 +8865,11 @@ parse5@4.0.0: resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" @@ -7651,6 +8907,11 @@ 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.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== + path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -7695,6 +8956,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: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -7762,7 +9028,7 @@ pn@^1.1.0: resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== -popper.js@^1.14.4, popper.js@^1.15.0: +popper.js@^1.14.4, popper.js@^1.16.1: version "1.16.1" resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== @@ -7773,9 +9039,9 @@ posix-character-classes@^0.1.0: integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= postcss@^7.0.5: - version "7.0.27" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.27.tgz#cc67cdc6b0daa375105b7c424a85567345fc54d9" - integrity sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ== + 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" @@ -7826,7 +9092,17 @@ pretty-format@^24.9.0: ansi-styles "^3.2.0" react-is "^16.8.4" -private@^0.1.6: +pretty-format@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" + integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== + dependencies: + "@jest/types" "^25.5.0" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^16.12.0" + +private@~0.1.5: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== @@ -7865,12 +9141,12 @@ promise-retry@^1.1.1: retry "^0.10.0" prompts@^2.0.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.0.tgz#a444e968fa4cc7e86689a74050685ac8006c4cc4" - integrity sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg== + version "2.3.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" + integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== dependencies: kleur "^3.0.3" - sisteransi "^1.0.3" + sisteransi "^1.0.4" promzard@^0.3.0: version "0.3.0" @@ -7911,9 +9187,9 @@ pseudomap@^1.0.2: integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= psl@^1.1.28: - version "1.7.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c" - integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ== + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== pump@^2.0.0: version "2.0.1" @@ -7965,6 +9241,11 @@ quick-lru@^1.0.0: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + quotation@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/quotation/-/quotation-1.1.3.tgz#2a4d11f70105ad398b577883f310469367f53351" @@ -7980,10 +9261,10 @@ react-dom@~16.9.0: prop-types "^15.6.2" scheduler "^0.15.0" -react-is@^16.8.1, react-is@^16.8.4: - version "16.13.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz#0f37c3613c34fe6b37cd7f763a0d6293ab15c527" - integrity sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA== +react-is@^16.12.0, react-is@^16.8.1, react-is@^16.8.4: + 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-lifecycles-compat@^3.0.4: version "3.0.4" @@ -8014,9 +9295,9 @@ react-transition-group@^2.9.0: react-lifecycles-compat "^3.0.4" react@*: - version "16.13.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.0.tgz#d046eabcdf64e457bbeed1e792e235e1b9934cf7" - integrity sha512-TSavZz2iSLkq5/oiE7gnFzmURKZMltmi193rm5HEoUDAXpzT9Kzw6oNZnGoai/4+fUnm7FqS5dwgUL34TujcWQ== + 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" @@ -8083,6 +9364,15 @@ read-pkg-up@^4.0.0: find-up "^3.0.0" read-pkg "^3.0.0" +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -8157,6 +9447,21 @@ realpath-native@^1.1.0: dependencies: util.promisify "^1.0.0" +realpath-native@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866" + integrity sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q== + +recast@~0.11.12: + version "0.11.23" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" + integrity sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM= + dependencies: + ast-types "0.9.6" + esprima "~3.1.0" + private "~0.1.5" + source-map "~0.5.0" + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -8180,34 +9485,37 @@ redent@^2.0.0: indent-string "^3.0.0" strip-indent "^2.0.0" -regenerate-unicode-properties@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.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.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== - -regenerator-runtime@^0.13.2: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" - integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + 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.13.4: version "0.13.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== -regenerator-transform@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== +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: - private "^0.1.6" + "@babel/runtime" "^7.8.4" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -8235,34 +9543,39 @@ regexpp@^3.0.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== -regexpu-core@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" - integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== +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.1.0" - regjsgen "^0.5.0" - regjsparser "^0.6.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.1.0" + unicode-match-property-value-ecmascript "^1.2.0" -regjsgen@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== +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.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.1.tgz#5b6b28c418f312ef42898dc6865ae2d4b9f0f7a2" - integrity sha512-7LutE94sz/NKSYegK+/4E77+8DipxF+Qn2Tmu362AcmsF2NYq/wx3+ObvU90TKEhjf7hQoFXo23ajjrXP7eUgg== +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" +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + remark-lint-blockquote-indentation@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-1.0.3.tgz#9c35235dd0e904ad6c085e9f66d94b3f13968d1f" - integrity sha512-qK4C1l2VmeOVWEAkDYP0CaDtSFoaEBEo5l4oyz1kTkY7YB0Jh7llW2KjuhJz5IzMLmloKJzIyGwlu/odcwaHpg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-1.0.4.tgz#246b0bcf6ce83ed3eb3e306bba65d08e8cdeb5d2" + integrity sha512-ExcDP7lufshEBNkVddSHa+Bz/97PtFstIniQ8ZF2TahHPmpx92z3mkI/nXL2Qt5d3B09eTVvh4Pvhgp6x2470g== dependencies: mdast-util-to-string "^1.0.2" plur "^3.0.0" @@ -8272,9 +9585,9 @@ remark-lint-blockquote-indentation@^1.0.0: unist-util-visit "^1.1.1" remark-lint-code-block-style@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-code-block-style/-/remark-lint-code-block-style-1.0.3.tgz#236d8a5558041decf2b275e9d9eb5868950375ec" - integrity sha512-DL+rudnd9ILP5YXm74tLpMzfWZLqziX7NwIwUhqRefaOyWwxgPPy7hbT59FJqcFc6E/zvDz+Oq4nR1BSV5kEdw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-code-block-style/-/remark-lint-code-block-style-1.0.4.tgz#c7d2fc493e4212e6c18a46b3396dae052bd223ad" + integrity sha512-Wq5F94nkaWTx8W/9C/ydG+DhVWLirBrWb0xnoMQ0cHnizAd3BWw8g0x5L7yglMYSUSVLWY0jfMHgOe9UW3JfTw== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8282,9 +9595,9 @@ remark-lint-code-block-style@^1.0.0: unist-util-visit "^1.1.1" remark-lint-definition-case@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-definition-case/-/remark-lint-definition-case-1.0.4.tgz#54d2a112794f1a070a5e8aa7c8090e8ae9aa3e11" - integrity sha512-ebl8vYOab9iy1Mr29Wo/9CmqcYGRjCfBievIZts08efrxIElWz+jB8/n7C17fh8k0djiiS/Of6W+bfRD+kMXLA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-definition-case/-/remark-lint-definition-case-1.0.5.tgz#14746987b90bb91944bf2f7f9c2e0efdac48d9e9" + integrity sha512-iirq74fKhJZsFw7x4FJuLVRkXclntutG1YKajfLaE3Gm14YlJWBEoabNTk+ENR4QXoB9rTdEqn3Cc3ImO8qciQ== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8292,9 +9605,9 @@ remark-lint-definition-case@^1.0.0: unist-util-visit "^1.4.0" remark-lint-definition-spacing@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-definition-spacing/-/remark-lint-definition-spacing-1.0.4.tgz#c322ff110c168449d8217773a23352c4174ffeba" - integrity sha512-UderghITmru72OXB5ErCFhVsY7up2wK/m1bUD3E2dm/TFn73/7WpykENt5UirCDT/aeyoHYl8QXUVL20rAc3XQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-definition-spacing/-/remark-lint-definition-spacing-1.0.5.tgz#d334b418fa66954c13450038056fd383963a6436" + integrity sha512-ss8OQmK4c/1amEAJpDjkFiByLyXpsYFNzmk6rEZQkxZZd+DVHI0oF+CzSeMVHu48rF2qHOkKhVghqrCM0vleAA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8302,9 +9615,9 @@ remark-lint-definition-spacing@^1.0.0: unist-util-visit "^1.4.0" remark-lint-emphasis-marker@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-1.0.3.tgz#6dc4e7df13e5092c1222110f826f68b4b3920550" - integrity sha512-ea2tEVyhZvYxwj6AHsW2qzgEDLljcnzq5taZ3FJFL0KMZYZHfWaIU90H43jrW4seGEtmaP1bmoqJaTavJ2x5Jw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-1.0.4.tgz#86b5824a6d568726a8e5cb675ede92825e3297b7" + integrity sha512-TdYISSw7Ib6EJDApDj9zcZNDCJEaEoQIrYS3+QH2TQxoDx96B0t1bbErRM5L/hx1UWPBpeFLKpgIWL163eMmYA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8312,9 +9625,9 @@ remark-lint-emphasis-marker@^1.0.0: unist-util-visit "^1.1.1" remark-lint-fenced-code-flag@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-1.0.3.tgz#349caf7c6dd153d0b6ffb57cbcc67c8277569d2a" - integrity sha512-X8Oi6dhfqV9NI3cVg29myvT/NATDHVgRGCpnNz76w7VXwzhBvQtJr1MxZzuPxfWLox+ARCXF2rY9n9hbYFHYTg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-1.0.4.tgz#9b0b2f1b0e3a919697d6b24230cd250353b1d5c8" + integrity sha512-bkQvlEYco6ZzdzvGPrY7DBsqSq/2mZEmdhpn0KdMEZ9kcKJP4unQdVQys04SKnf9QISqQ446VnQj5Q4E3HMSkQ== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8322,9 +9635,9 @@ remark-lint-fenced-code-flag@^1.0.0: unist-util-visit "^1.1.1" remark-lint-fenced-code-marker@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-1.0.3.tgz#9df1d16d535856f41b3c17a7d309385475cbec04" - integrity sha512-JKnojSQ8JkwpIpbNm6wtKEfx8iiv8QIwNHFM06iTCHExMhXa4pJ3wb5M5f0wsWNHtoND3lrw6AcVPoZxEPnflg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-1.0.4.tgz#80a6cc501c21435dad4a4ec635e6b3901b04fd2e" + integrity sha512-aJF4ISIEvK3NX+C2rN93QoS/32SSiytQKRSeGa+HwsAn3sTwqmy2IoAwbFeZIZA2vqKcVB4h1b9yKamSlfX30Q== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8332,16 +9645,16 @@ remark-lint-fenced-code-marker@^1.0.0: unist-util-visit "^1.1.1" remark-lint-file-extension@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-file-extension/-/remark-lint-file-extension-1.0.3.tgz#a7fc78fbf041e513c618b2cca0f2160ee37daa13" - integrity sha512-P5gzsxKmuAVPN7Kq1W0f8Ss0cFKfu+OlezYJWXf+5qOa+9Y5GqHEUOobPnsmNFZrVMiM7JoqJN2C9ZjrUx3N6Q== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-file-extension/-/remark-lint-file-extension-1.0.5.tgz#7e2feec02919aa3db5c71fda19d726a9e24a4c6c" + integrity sha512-oVQdf5vEomwHkfQ7R/mgmsWW2H/t9kSvnrxtVoNOHr+qnOEafKKDn+AFhioN2kqtjCZBAjSSrePs6xGKmXKDTw== dependencies: unified-lint-rule "^1.0.0" remark-lint-final-definition@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-final-definition/-/remark-lint-final-definition-1.0.3.tgz#4fd7bbf5a028f6e32645460965099689485508ae" - integrity sha512-QhbBYy99enfQDeUTElioCHrhgg+SgjMNRlru7/JlOguOufP6wn7AXgn2EVTrLZRoByY0VsNS2jCayXxUTzQ8KA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-final-definition/-/remark-lint-final-definition-1.0.4.tgz#4ebf6f45a54b457d426e3247ef6727e3ce7aff60" + integrity sha512-y9aDZPhqWcI7AtrJtL69HE6MoWMqDqLQUyWMadzAYUYb9/m4ciLdygJ4cWVpEN3n4mkBepHIsWzASaKHHBDJOQ== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8349,9 +9662,9 @@ remark-lint-final-definition@^1.0.0: unist-util-visit "^1.1.1" remark-lint-hard-break-spaces@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-1.0.4.tgz#200e1dae849a6bc2f8fdb3b843faf23c70942530" - integrity sha512-YM82UpgliZCZhGNmFxEe7ArfhqR5CplFf2bc0k0+8w3rKWKx7EJcGMar2NK410tIi40gGeWtH/pIEypPJFCCiA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-1.0.5.tgz#875c0b25d69eaadf71e6c5f2a5ebc8cd705e26ec" + integrity sha512-Rss7ujNtxipO/hasWYc0QdiO8D5VyliSwj3zAZ8GeDn0ix2KH+pY4/AJC7i9IGcVVbUGvvXLpJB3Pp1VeY7oKw== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8359,18 +9672,18 @@ remark-lint-hard-break-spaces@^1.0.0: unist-util-visit "^1.1.1" remark-lint-heading-increment@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-heading-increment/-/remark-lint-heading-increment-1.0.3.tgz#44ca296b50e182c2c4a59604b8026911be3977de" - integrity sha512-/KL4/7D2pNxP07KKgktjcIUS+ga8pYI2k9Q/V91pMfyfSC+RYuCGOLFVJSKV0Affr/4Eqnfhw+gJ9X2HAanNuw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-heading-increment/-/remark-lint-heading-increment-1.0.4.tgz#a2bfb6449dda639ed65d361305e5f19a0243ee01" + integrity sha512-3PJj32G7W1OUyRVSZiZbSOxyFAsw/mNssIosS9G8+6Lq2yeTSMDoCJy0+LC+s00nORFcbzeMedMK5U/eLbDe4w== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-visit "^1.1.1" remark-lint-heading-style@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-heading-style/-/remark-lint-heading-style-1.0.3.tgz#de7377996cb9c7e501ec1ba7b7767709a68b824b" - integrity sha512-ZUhMav0HHUxo5gzLqxQsOf2ZpP/I3m6EEK8q25/kqpCYnwm1uRJ5CQ40PDQx46pmKtVibIMzDmraYovxNG3ovw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-heading-style/-/remark-lint-heading-style-1.0.4.tgz#eee857c25da86c0e68473d3a61794886a7d06c37" + integrity sha512-ASssbw0vj9urTMxDJGpOn4K7d9MgPQPJGaCD+7v7je42krofvqC4CxpYvO/fOAkRZcttE91VfFHxkaPjiBtQLw== dependencies: mdast-util-heading-style "^1.0.2" unified-lint-rule "^1.0.0" @@ -8378,9 +9691,9 @@ remark-lint-heading-style@^1.0.0: unist-util-visit "^1.1.1" remark-lint-link-title-style@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-link-title-style/-/remark-lint-link-title-style-1.0.4.tgz#eaca24b6eb1ee62b66a237ea54e532ed2aaaafec" - integrity sha512-61/uH3zDTiozLJqgxp6rHGnVKTChC3UjL3Q0KQDBpprEOL4qLYjTn4fFKscVz776d0uUX6jczrW+GT4AFVOUgg== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-link-title-style/-/remark-lint-link-title-style-1.0.5.tgz#55e098d1d1640ac2275efae8f3147a9b9b701744" + integrity sha512-Nu0cKj220q/PmUzELhYRUR2uxXabWuFJq9sApkgsc59uh+NKDtCEdpxkx7Zwvn6kUEwpuQVimeRfdesiKxX52g== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8389,9 +9702,9 @@ remark-lint-link-title-style@^1.0.0: vfile-location "^2.0.1" remark-lint-list-item-content-indent@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-1.0.3.tgz#e62012ef361fedaca42a764b8389023df4212eca" - integrity sha512-ZSIGJG2/6jd1xj/xEoDlkcJBf2Ksw8U6vIGJO0IFIA3BLCbJm2EMWJxto2cfzRvXoACmAaxTJMqW8qatPExa4w== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-1.0.4.tgz#966640afa93d3e42377851bb47ac4c4d551b83f4" + integrity sha512-zfEeAayZjEKkPr07fnhkGLENxOhnm0WZJTj6UBIXhtGu7rX23WNKSZaiou8iUoHxcO6ySCvIUJAEmq/XN1FxkQ== dependencies: plur "^3.0.0" unified-lint-rule "^1.0.0" @@ -8400,9 +9713,9 @@ remark-lint-list-item-content-indent@^1.0.0: unist-util-visit "^1.1.1" remark-lint-list-item-indent@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-list-item-indent/-/remark-lint-list-item-indent-1.0.4.tgz#7a1ef6283f9a928f4940e02ec37099935f2783e6" - integrity sha512-Sv0gVH6qP1/nFpbJuyyguB9sAD2o42StD2WbEZeUcEexXwRO4u/YaX0Pm5pMtCiEHyN+qyL6ShKBQMtgol9BeA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-indent/-/remark-lint-list-item-indent-1.0.5.tgz#873c51c24ec673af0816347ecf941361a04b1ff4" + integrity sha512-DjRgxjqaVMrnlQFJypizTPtLa9gSM5ad0LVIFDSstV2UVXSgpBi2+bSsFJEXb4Fkjo/d2JAgt27UhzhcoF2lnw== dependencies: plur "^3.0.0" unified-lint-rule "^1.0.0" @@ -8411,9 +9724,9 @@ remark-lint-list-item-indent@^1.0.0: unist-util-visit "^1.1.1" remark-lint-list-item-spacing@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-1.1.3.tgz#5989bd2450fb4bbd5e8f8007887dc5ca56ad2e5f" - integrity sha512-QzDY0Qfk6m+Az0kmxP57OfswIH1WRdd6SIpQLaUEgsTlsbrJOiO0sJYkkOlFPsyJIfp7SV/FCbr+aYCbHF+kRQ== + version "1.1.4" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-1.1.4.tgz#ea0df16f8378ef6414a2473755ade9544adc0888" + integrity sha512-zZELzTPYCoOCnOWh/nYTfQWnGXWg4/I5KpwrjBqe7WYwoMtvLVU9mqjRj2jHEbmirEXas54NZnYnkCoIBMS4bw== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8421,9 +9734,9 @@ remark-lint-list-item-spacing@^1.0.0: unist-util-visit "^1.1.1" remark-lint-maximum-heading-length@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-1.0.3.tgz#e235190e9991567254f9ce1104e15dad8e332b13" - integrity sha512-ybcDpR5VHBjtjzdry7AdSjLFwslPo6rdhIJK2+WfHgfeEjIYnlz1uMvp1Z98QMmjpB5JSN83Kzg5fH8/B7poUw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-1.0.4.tgz#49f6d2df870dcf993c053a67fb82344d5aac0af8" + integrity sha512-dhDBnUFXMuHoW8LSV/VICJAJO+wWumnvuu3ND7MJquCYrsjX2vcRmJXL5cusJSY4yqPosKlOowIkzdV5B6/SDQ== dependencies: mdast-util-to-string "^1.0.2" unified-lint-rule "^1.0.0" @@ -8431,9 +9744,9 @@ remark-lint-maximum-heading-length@^1.0.0: unist-util-visit "^1.1.1" remark-lint-maximum-line-length@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-1.2.1.tgz#1030991d9af3c935731168a0a12ecb1db2d2b2b6" - integrity sha512-CSxX1qc+rAqixk8eBrI+yBsUmD8YGfOezFeJWjJRuUaoOvs67oqCIU+I2HbwcUYY8/KnDxF1MCp+uCM0RkjKKw== + version "1.2.2" + resolved "https://registry.yarnpkg.com/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-1.2.2.tgz#9bb53292a0d3263596bd84e23007ead081558bd1" + integrity sha512-ItAdjK+tUhqggqFvtAJ8iJ0MbBgShLl0HDgpG3In0QSYp/dmofO77DjvRjCJQo1pQYS8/LwlBii9cqg/3MwFfA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8441,9 +9754,9 @@ remark-lint-maximum-line-length@^1.0.0: unist-util-visit "^1.4.0" remark-lint-no-auto-link-without-protocol@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-1.0.3.tgz#f97aed92af24e6c07023a7a7dc2c147f7eb7927f" - integrity sha512-k+hg2mXnO4Q9WV+UShPLen5oThvFxcRVWkx2hviVd/nu3eiszBKH3o38csBwjeJoMG3l2ZhdUW8dlOBhq8670Q== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-1.0.4.tgz#c7417ee8f5ab7eb45aa1f7c6a345ff6db1acf843" + integrity sha512-dhDHQLeaI79p7SRoKfxJ9c8J5otQsGua7ILeNbs2Onzn46/tp9ir6zjq3Lfh4VJJr4OVign2e8u+MzXsS7Uu/A== dependencies: mdast-util-to-string "^1.0.2" unified-lint-rule "^1.0.0" @@ -8452,9 +9765,9 @@ remark-lint-no-auto-link-without-protocol@^1.0.0: unist-util-visit "^1.1.1" remark-lint-no-blockquote-without-marker@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-2.0.3.tgz#7eb431fcb742412e3bc66faa7f58531245ad952f" - integrity sha512-faDzKrA6aKidsRXG6gcIlCO8TexLxIxe+n9B3mdnl8mhZGgE0FfWTkIWVMj0IYps/xVsVMf45KxhXgc1wU9kwg== + version "2.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-2.0.4.tgz#96fe200cd738ee2857c82a549622ed999243a990" + integrity sha512-a5LFGj7It2z7aBRGaAcztk4D2pax2b7dK9iOarIWv/JBus/PSjZJxzZCma2aAAOQhv3wbNTwqQwuQC0UJHMbPg== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8463,9 +9776,9 @@ remark-lint-no-blockquote-without-marker@^2.0.0: vfile-location "^2.0.1" remark-lint-no-consecutive-blank-lines@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-1.0.3.tgz#4fa3b2cf2939c978a3fe7978f726f6142e7dd567" - integrity sha512-2Ef7fPxrfLditA7sTo2Qfqd+xwh/luWl8GzILE5vcWIxLDqKk3dTLJkB5nP+7Cr4kqWJAwXnRkEDd77ehrRV3A== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-1.0.4.tgz#8819e358e9e609360ced6d61e0076ca1a6a2c971" + integrity sha512-33rYrp+3OQ2UjG2/xhctruCvkP2iKLuHJhoUOAUV3BGwqJjAB+xNOl+0DdvDo0fxh5dyZuNesBuos3xr2yVR+w== dependencies: plur "^3.0.0" unified-lint-rule "^1.0.0" @@ -8474,9 +9787,9 @@ remark-lint-no-consecutive-blank-lines@^1.0.0: unist-util-visit "^1.1.1" remark-lint-no-duplicate-headings@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-1.0.4.tgz#52ac1479b6de83d5607b8d07e8ef3401d5078424" - integrity sha512-QuPw+VG502Ctpd/jBjnBYuRXTg0ToP3D+dd3TYds4TRcdgaEFYTZfQ5zjK6XrxLMg0Hn9/WpXr4UqTlV4YZupA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-1.0.5.tgz#c65f65f254df4a6d5ccfff6f370141bbe142aa21" + integrity sha512-4GKPxhKpN797V/6Jg1K4Zwqq+PhsjC633+wQMrZcTvOJfY+Rq1i7sNJ9lJVZnsDAlZJI56VqZCKnPJmS2br87g== dependencies: mdast-util-to-string "^1.0.2" unified-lint-rule "^1.0.0" @@ -8486,53 +9799,53 @@ remark-lint-no-duplicate-headings@^1.0.0: unist-util-visit "^1.1.1" remark-lint-no-emphasis-as-heading@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-1.0.3.tgz#9d837d4c5635a784ef0e983cfb402da15672050d" - integrity sha512-HEmyeyKciUz95+CgpAH98RPR73jq5u5CZb2FOMSqgNl9B6FZXqVpq9F3txPqUw3nAqFYOAEnfiaoRgcqtioh0Q== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-1.0.4.tgz#144aef1df77bfcdc7112bd0616a571a484e82538" + integrity sha512-gnsInLxTkc59eVD3/qelFagD/NcrMPKXT1sy7i4e8D2jqQyrIHHl0p3TfiyNNt8qIjKMKhlIii4k4kVk/3Mczg== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-visit "^1.1.1" remark-lint-no-file-name-articles@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-1.0.3.tgz#c712d06a24e24b0c4c3666cf3084a0052a2c2c17" - integrity sha512-YZDJDKUWZEmhrO6tHB0u0K0K2qJKxyg/kryr14OaRMvWLS62RgMn97sXPZ38XOSN7mOcCnl0k7/bClghJXx0sg== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-1.0.5.tgz#4ca3425f6613f94feaef6941028583299727c339" + integrity sha512-AQk5eTb3s3TAPPjiglZgqlQj4ycao+gPs8/XkdN1VCPUtewW0GgwoQe7YEuBKayJ6ioN8dGP37Kg/P/PlKaRQA== dependencies: unified-lint-rule "^1.0.0" remark-lint-no-file-name-consecutive-dashes@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-1.0.3.tgz#6a96ddf60e18dcdb004533733f3ccbfd8ab076ae" - integrity sha512-7f4vyXn/ca5lAguWWC3eu5hi8oZ7etX7aQlnTSgQZeslnJCbVJm6V6prFJKAzrqbBzMicUXr5pZLBDoXyTvHHw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-1.0.5.tgz#e9a6f2aeab948aa249c8a8356359e3d8843a4c5c" + integrity sha512-Mg2IDsi790/dSdAzwnBnsMYdZm3qC2QgGwqOWcr0TPABJhhjC3p8r5fX4MNMTXI5It7B7bW9+ImmCeLOZiXkLg== dependencies: unified-lint-rule "^1.0.0" remark-lint-no-file-name-irregular-characters@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-1.0.3.tgz#6dcd8b51e00e10094585918cb8e7fc999df776c3" - integrity sha512-b4xIy1Yi8qZpM2vnMN+6gEujagPGxUBAs1judv6xJQngkl5d5zT8VQZsYsTGHku4NWHjjh3b7vK5mr0/yp4JSg== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-1.0.5.tgz#6866f5b8370cdc916d55e7cf87bb6a55f9b6e0c6" + integrity sha512-Oe5i99qNUKc2bxmiH421o5B/kqlf1dfjAxpHNLhi2X2dXE91zRGavrlRM/4f4oR0N9Bqb3qB9JZPyMPWrzu9XA== dependencies: unified-lint-rule "^1.0.0" remark-lint-no-file-name-mixed-case@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-1.0.3.tgz#0ebe5eedd0191507d27ad6ac5eed1778cb33c2de" - integrity sha512-d7rJ4c8CzDbEbGafw2lllOY8k7pvnsO77t8cV4PHFylwQ3hmCdTHLuDvK87G3DaWCeKclp0PMyamfOgJWKMkPA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-1.0.5.tgz#3e37bfef74bbdd4b07aa9ef9dd452758f8b46731" + integrity sha512-ilrUCbHZin/ENwr8c3SC2chgkFsizXjBQIB/oZ7gnm1IkCkZPiMyXZAHdpwC/DjbrpGxfMYh9JmIHao4giS5+A== dependencies: unified-lint-rule "^1.0.0" remark-lint-no-file-name-outer-dashes@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-1.0.4.tgz#c6e22a5cc64df4e12fc31712a927e8039854a666" - integrity sha512-+bZvvme2Bm3Vp5L2iKuvGHYVmHKrTkkRt8JqJPGepuhvBvT4Q7+CgfKyMtC/hIjyl+IcuJQ2H0qPRzdicjy1wQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-1.0.6.tgz#4e0e4d42a63f0fdfb856bb5d8d8112725656e700" + integrity sha512-rT8CmcIlenegS0Yst4maYXdZfqIjBOiRUY8j/KJkORF5tKH+3O1/S07025qPGmcRihzK3w4yO0K8rgkKQw0b9w== dependencies: unified-lint-rule "^1.0.0" remark-lint-no-heading-punctuation@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-1.0.3.tgz#7357b0b6e668bb6b32338fe280cde9fe4388b547" - integrity sha512-JQD05RjLS99ePBQ4Bed1uWsQTlIMBTcGgIgF6jFXSCEqhwnrIUDwk6S3MG1RZsKd3TLw2xuT/i+POpfBc2+1kQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-1.0.4.tgz#f13adfd3a8b87646fb2e337120e22483a2a8b03e" + integrity sha512-++/HXg/qtVssJjzq2ZgEreoxaazw9KkYrAbTDImKV7Fypo+7bZFELUvFicq0/i9qwAwt1tvhkKtLYt1W/sr1JQ== dependencies: mdast-util-to-string "^1.0.2" unified-lint-rule "^1.0.0" @@ -8540,9 +9853,9 @@ remark-lint-no-heading-punctuation@^1.0.0: unist-util-visit "^1.1.1" remark-lint-no-inline-padding@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-1.0.4.tgz#eedb4ca2691d30f3f05b4e5e33967bd64a34daa4" - integrity sha512-u5rgbDkcfVv645YxxOwoGBBJbsHEwWm/XqnO8EhfKTxkfKOF4ZItG7Ajhj89EDaeXMkvCcB/avBl4bj50eJH3g== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-1.0.5.tgz#01ec68b2be9154601f68805ae5f5f3173c866ee0" + integrity sha512-AjS34hBRasYiIAKZJ7/9U42LouRHok2WVTRdQPcVtRBswStNOuot59S+FRsatqlk1wvMmjytqxUKQfVTSeu9ag== dependencies: mdast-util-to-string "^1.0.2" unified-lint-rule "^1.0.0" @@ -8550,9 +9863,9 @@ remark-lint-no-inline-padding@^1.0.0: unist-util-visit "^1.4.0" remark-lint-no-literal-urls@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-1.0.3.tgz#1b5374e416d1b595ee1902587dc37f34c0d6244a" - integrity sha512-H5quyMzl2kaewK+jYD1FI0G1SIinIsIp4DEyOUwIR+vYUoKwo0B4vvW0cmPpD1dgqqxHYx0B2B0JQQKFVWzGiw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-1.0.4.tgz#02152e46a6381a387f7f0bb887944a33e4b8aef4" + integrity sha512-sHjbzaSG4z6jMu1L0Qx1b7VvIQHy0bR4xZ6t9auJ5AoB5ua8hb/970s77irH1+46TF1ezhE7i+QDjmhcQi09xg== dependencies: mdast-util-to-string "^1.0.2" unified-lint-rule "^1.0.0" @@ -8561,9 +9874,9 @@ remark-lint-no-literal-urls@^1.0.0: unist-util-visit "^1.1.1" remark-lint-no-multiple-toplevel-headings@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-1.0.4.tgz#0cfd8575e5576d7678802eac56fda894afee3817" - integrity sha512-0wDddx6htN5sL9/rofesiQF0oEgwN5224UmueiDx0ZUlYrn6VS0/SS0X3WWxtXmyeqlExfWF3D/g89tNs7dcjw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-1.0.5.tgz#0ac0fa5adf2c87acb78ac44355b554d22f491002" + integrity sha512-RZ1YPxRO7Bo8mT+A36cZ7nx2QHFAKk+oE6j87YrZYpAKr2oF6snKS8nIGhVku4PSI/9cW1G12MZz1cAA5rcjFw== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8572,36 +9885,36 @@ remark-lint-no-multiple-toplevel-headings@^1.0.0: unist-util-visit "^1.1.1" remark-lint-no-shell-dollars@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-1.0.3.tgz#07e99fc3843c665440f9a1d894ee518b2ad23958" - integrity sha512-fT3lQMTjEkPryL+63qDP1NfrohP3tG5i3SkNWSSR4VLU6OSsSSXlHGQGjo0ag//+EPKHB5/9frB/YQ0gDEPRGQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-1.0.4.tgz#18372714b94c0ee89e00ae02279bdc745b95afab" + integrity sha512-YXFj8FUVTKkVvoAbFY3zv1Ol7Kj1i+qdze3pXSgRG61y1LpfL8/HpnvFrseMbBmNw6o4WpjTo7GoArngJ1sCeg== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-visit "^1.1.1" remark-lint-no-shortcut-reference-image@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-1.0.3.tgz#ab4fa15fd8aff251cb8db1f3aed4853e293aff41" - integrity sha512-CGm27X54kXp/5ehXejDTsZjqzK4uIhLGcrFzN3k/KjdwunQouEY92AARGrLSEuJ1hQx0bJsmnvr/hvQyWAfNJg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-1.0.4.tgz#ed819f1af33738bb9003b3d92e043edcf7fd2d55" + integrity sha512-5/9QoesnOHIDwMHU9x+AGPBiFoMe9ZBKIR8nC17C6ZdksgwUIpjBJ3VX5POFlt5E6OhAZaeXqUCq9G2USccEdA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-visit "^1.1.1" remark-lint-no-shortcut-reference-link@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-1.0.4.tgz#92af34b939c0341eacdb2fc2ede855f742dc1779" - integrity sha512-FXdMJYqspZBhPlxYqfVgVluVXjxStg0RHJzqrk8G9wS8fCS62AE3reoaoiCahwoH1tfKcA+poktbKqDAmZo7Jg== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-1.0.5.tgz#0c3c48a0ce80e85b89d3d2ec1d264b00eb151584" + integrity sha512-qDVL7/0ptOTd/nyd9u/4MYFWQtYQU8povdUB45UgTXy5Rrf1WsC+4DfzAEZkX3tOSTExdAIf1WOKqdC5xRcfvA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-visit "^1.1.1" remark-lint-no-table-indentation@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-1.0.4.tgz#6681a26198ee86c4fbbba382a42254125bc5807b" - integrity sha512-H4VGHcg1k8sTIbwazFYLNbDqpPR+M0aHHKDf+93b/xyd27Dp0ODQrMnQbls1Cls5qOAQnwAQbx+75wcpFxP3OQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-1.0.5.tgz#e865ab34b172fa7f52ed410d5bb9a7b8adb18817" + integrity sha512-eE1GL+IzU3vtHdYCKHCZEIhCwiwCM7UH+pMDIMpGfH2LB3cB/Nrfbiz9xadGkARKqxxDMsJSBZDw4A/01IU+kA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8609,9 +9922,9 @@ remark-lint-no-table-indentation@^1.0.0: unist-util-visit "^1.4.0" remark-lint-ordered-list-marker-style@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-1.0.3.tgz#3fc6b9e254a641036e275269254365c42b7c62a1" - integrity sha512-24TmW1eUa/2JlwprZg9jJ8LKLxNGKnlKiI5YOhN4taUp2yv8daqlV9vR54yfn/ZZQh6EQvbIX0jeVY9NYgQUtw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-1.0.4.tgz#338f384094942389fd943af0523fdf639ccbf3d8" + integrity sha512-c6AIqeePzm3nfkPCbTdwBS3/AQICgwE76+ryOc7tsSq4ulyK/Nt8Syvi/oiHYuonBddZoGtFTNCn0jqen9qscA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8619,9 +9932,9 @@ remark-lint-ordered-list-marker-style@^1.0.0: unist-util-visit "^1.1.1" remark-lint-ordered-list-marker-value@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-1.0.4.tgz#4651021892a787bcec7243317549ba51151e761f" - integrity sha512-ojRXhvysomFFf6C747Fo7s5CyhU56e+IKE7cV1couAu+COrajQEbL13If3P3fL9Ucw1yXw9srg0AQWjsEGHYCg== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-1.0.5.tgz#00b52a49aa77e8ed81c53354843846d30525c35b" + integrity sha512-eKepbNNfu9rEuG8WvV0sc7B+KiPMgq5Nc9baAxL9Hi6mhpj347YFWXxJUNttSINS13YTpnHxPvXmF9SzhjFKNQ== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8629,9 +9942,9 @@ remark-lint-ordered-list-marker-value@^1.0.0: unist-util-visit "^1.1.1" remark-lint-rule-style@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-rule-style/-/remark-lint-rule-style-1.0.3.tgz#859aef4d2e2180ecf9db56360497372b90a04aab" - integrity sha512-SJe7IFORYRdo8JUhMSdcTktVAUVNVp36YYl1ZD9CfHqQHWlFD+3vWYzJXOZfog/i+CyWf7Yi0WVYmQes+167dA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-rule-style/-/remark-lint-rule-style-1.0.4.tgz#16de7183711f9bcc96355e3f475f793090552b58" + integrity sha512-omr5P6CCvo2zixCzK9uiGZpwzOE+4rc+95kWH95k2iA6Rp8Qohp8RK4unSRKLtFYGUhSbiQPgWaQXHDxMkWczg== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8639,9 +9952,9 @@ remark-lint-rule-style@^1.0.0: unist-util-visit "^1.1.1" remark-lint-strong-marker@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-strong-marker/-/remark-lint-strong-marker-1.0.3.tgz#028e05b046ef260e8d40b342900061f1d09c8131" - integrity sha512-PFkH282dCwfRsVEw9IxbYbaZBY4UcTuT2SN+lA3R0cBeocWnOySVw8YEm4sv9JfV8BLcQA5gc4tj66/U3KCScw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-strong-marker/-/remark-lint-strong-marker-1.0.4.tgz#7cef1bc8e9446f4f1d009555e42cc08bd30bddb4" + integrity sha512-X9f6yhZ85cdP0cmCgkqlbxllpeQ60pS9Qqk9Jb9SZo6f95esaHptQ5bExb1ZVXzhSHz2Xz86tUhXtzG3zGFD4g== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8649,9 +9962,9 @@ remark-lint-strong-marker@^1.0.0: unist-util-visit "^1.1.1" remark-lint-table-cell-padding@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-1.0.4.tgz#be2b020a3985c414abb59cc5d88fda1993f8f2e8" - integrity sha512-AQWWtV1yca1PN27QaFRJbBK6Ro/bopv1XnVKxj/iMebhOU2D2FBJ8rXmMZXVMC3G9OB2WSzGgqH3nP6QY12LoA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-1.0.5.tgz#0a533eaa60746a5976704ec9e6e49de311d67a95" + integrity sha512-N/WpcymrGBSPbLiv2OQTvdzNn6H9ctdyEA+P/odn4G9FqyrLmeTMkGJuGtinU569hLG/RtHqZIDeFVDiYi8Wzw== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8659,9 +9972,9 @@ remark-lint-table-cell-padding@^1.0.0: unist-util-visit "^1.4.0" remark-lint-table-pipe-alignment@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-1.0.3.tgz#8c6d0c93e417706a4083dc7fa279c537d4ed886c" - integrity sha512-5fhEMcKqNjK6S/y7cVG0+iVqhmhXFW+awIuN7vOBhmDbZ3HF9rCCy20XiHoaG6FzrPJ+zfkjK/QZAbq2Vf58HA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-1.0.4.tgz#5b6a08bc7a8eb66f5002667991405b616d0ffb02" + integrity sha512-pmELEOXeUjMQedyVvOtZcTCnTu6FxZ4gfBskMx6iJhOFEEKTFOmviqlKLpndPBxFNZB86AiE0C00/NvAaut8dw== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8669,9 +9982,9 @@ remark-lint-table-pipe-alignment@^1.0.0: unist-util-visit "^1.1.1" remark-lint-table-pipes@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-table-pipes/-/remark-lint-table-pipes-1.0.3.tgz#e34f91de4371f98c5e16701bd2302928468cbd8a" - integrity sha512-K9NnGZp6i0m/CaOH7ZT4Ymt2seyiRPcBIlNMMGXBm6gpy34KJDDxYqsNUrh+j7dR+Zg4rYAQLnr3BiSHvj+rbQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-table-pipes/-/remark-lint-table-pipes-1.0.4.tgz#b8cd860a3098385bbdbd4b1f9b34ac6cfed16035" + integrity sha512-0fdnoiiSLIPd/76gNvQY4pg27d8HkMmmv5gCGfD+Z/Si9DdpbJdq93U0kX+Botb3+/4VEDIlcU7Cp5HXppMTWA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8679,9 +9992,9 @@ remark-lint-table-pipes@^1.0.0: unist-util-visit "^1.1.1" remark-lint-unordered-list-marker-style@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-1.0.3.tgz#72f9ec8cd54950753593b3b727fd28e48fa197d5" - integrity sha512-0nn/Yscy5ImO4fqByrk/Ua02UwGx8LRu+0kdCbkVz4IxPO5qxTEfyccUQZR71zTdMJp1d2OeqyD9XtMaO4X7Ww== + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-1.0.4.tgz#c4952f929a96d82a0e18d86a32b70ea454523c85" + integrity sha512-lcuG1J74VGTT4gl8oH33HpkHrqorxjxMlJnBupLFrVowqvJ2hAq8yPJdGZ7P46uZOYw+Xz+Qv08bF8A73PNWxQ== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -8689,9 +10002,9 @@ remark-lint-unordered-list-marker-style@^1.0.0: unist-util-visit "^1.1.1" remark-lint@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-6.0.5.tgz#fbb864d56bf83d2e5d23ea7e346ca5e36710fda3" - integrity sha512-o1I3ddm+KNsTxk60wWGI+p2yU1jB1gcm8jo2Sy6VhJ4ab2TrQIp1oQbp5xeLoFXYSh/NAqCpKjHkCM/BYpkFdQ== + version "6.0.6" + resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-6.0.6.tgz#5bf64efe5d88f3caf859ad541ab00656e3ca9c63" + integrity sha512-JBY6zz5fYQFN724Vq6VeiHwhyjVIlrww/dE1+hWGcDyUuz7YNCqwZKwBdQGDvslICkzHw/wEExNEb8D4PNiLlA== dependencies: remark-message-control "^4.0.0" @@ -8726,9 +10039,9 @@ remark-parse@^6.0.3: xtend "^4.0.1" remark-preset-lint-markdown-style-guide@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-2.1.3.tgz#2d2e6a162cc18976a2be93f4ebd45835f2ff6c14" - integrity sha512-H/jSoLvTY8abUcB+7/062I2oHevlHcHdrfRMP2RMh19QA1wmARgNEn3tZfdBXFq1TpzhevGgb6VwSdOjdU8NOQ== + version "2.1.4" + resolved "https://registry.yarnpkg.com/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-2.1.4.tgz#fb51373db7f4045fb10dea7aa095686d3762ba7f" + integrity sha512-CGEN3DRtJEp+BvfgZ+VKxuq0Ij8Uw2DXfrbhK2xn4/XxatcHRPN8tnagXbMe1LHaQJGN8Gl1+UyLjsfIk6hyGQ== dependencies: remark-lint "^6.0.0" remark-lint-blockquote-indentation "^1.0.0" @@ -8819,19 +10132,19 @@ request-light@^0.2.1, request-light@^0.2.3: https-proxy-agent "^2.2.3" vscode-nls "^4.1.1" -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.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" + integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== dependencies: - lodash "^4.17.11" + lodash "^4.17.15" -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== +request-promise-native@^1.0.5, request-promise-native@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" + integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== dependencies: - request-promise-core "1.1.2" + request-promise-core "1.1.3" stealthy-require "^1.1.1" tough-cookie "^2.3.3" @@ -8888,6 +10201,13 @@ resolve-cwd@^2.0.0: dependencies: resolve-from "^3.0.0" +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" @@ -8898,6 +10218,11 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -8908,14 +10233,7 @@ 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.15.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" - integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== - dependencies: - path-parse "^1.0.6" - -resolve@^1.15.1: +resolve@1.x, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.17.0, 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== @@ -9006,19 +10324,19 @@ rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: 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" + rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== -run-async@^2.2.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" - integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== - dependencies: - is-promise "^2.1.0" - -run-async@^2.4.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== @@ -9042,24 +10360,17 @@ rxjs@^5.5.0: dependencies: symbol-observable "1.0.1" -rxjs@^6.4.0: - version "6.5.4" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" - integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== - dependencies: - tslib "^1.9.0" - -rxjs@^6.5.3: - version "6.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" - integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== +rxjs@^6.4.0, rxjs@^6.6.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.0.tgz#af2901eedf02e3a83ffa7f886240ff9018bbec84" + integrity sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg== dependencies: tslib "^1.9.0" safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + 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" @@ -9073,7 +10384,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -9114,6 +10425,13 @@ sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +saxes@^3.1.9: + version "3.1.11" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" + scheduler@^0.15.0: version "0.15.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.15.0.tgz#6bfcf80ff850b280fed4aeecc6513bc0b4f17f8e" @@ -9137,16 +10455,16 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +semver@6.x, 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.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.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.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" @@ -9181,15 +10499,27 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +shebang-regex@^3.0.0: + version "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.2: - version "0.8.3" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.3.tgz#a7f3319520ebf09ee81275b2368adb286659b097" - integrity sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A== + 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" @@ -9209,9 +10539,9 @@ side-channel@^1.0.2: object-inspect "^1.7.0" 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== simulate-event@~1.4.0: version "1.4.0" @@ -9220,10 +10550,10 @@ simulate-event@~1.4.0: dependencies: xtend "^4.0.1" -sisteransi@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.4.tgz#386713f1ef688c7c0304dc4c0632898941cad2e3" - integrity sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig== +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@^2.0.0: version "2.0.0" @@ -9324,9 +10654,9 @@ source-map-resolve@^0.5.0: urix "^0.1.0" source-map-support@^0.5.6: - version "0.5.16" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" - integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + 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" @@ -9336,33 +10666,38 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= -source-map@^0.5.0, source-map@^0.5.6: +source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + 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" @@ -9477,6 +10812,14 @@ string-length@^2.0.0: astral-regex "^1.0.0" strip-ansi "^4.0.0" +string-length@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" + integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== + dependencies: + astral-regex "^1.0.0" + strip-ansi "^5.2.0" + string-similarity@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-similarity/-/string-similarity-2.0.0.tgz#c16d8fc7e7c8dce706742c87adc482dbdb7030bb" @@ -9513,7 +10856,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.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== @@ -9542,22 +10885,6 @@ string.prototype.trimend@^1.0.1: define-properties "^1.1.3" es-abstract "^1.17.5" -string.prototype.trimleft@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" - integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" - -string.prototype.trimright@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" - integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" - 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" @@ -9620,11 +10947,21 @@ strip-bom@^3.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +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-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" @@ -9637,10 +10974,17 @@ strip-indent@^2.0.0: resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + strip-json-comments@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" - integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== + 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== strong-log-transformer@^2.0.0: version "2.1.0" @@ -9665,13 +11009,21 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.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" +supports-hyperlinks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" + integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.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" @@ -9722,6 +11074,14 @@ temp-write@^3.4.0: temp-dir "^1.0.0" uuid "^3.0.1" +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + test-exclude@^5.2.3: version "5.2.3" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" @@ -9732,6 +11092,15 @@ test-exclude@^5.2.3: read-pkg-up "^4.0.0" require-main-filename "^2.0.0" +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + text-extensions@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" @@ -9750,9 +11119,9 @@ thenify-all@^1.0.0: thenify ">= 3.1.0 < 4" "thenify@>= 3.1.0 < 4": - version "3.3.0" - resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" - integrity sha1-5p44obq+lpsBCCB5eLn2K4hgSDk= + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== dependencies: any-promise "^1.0.0" @@ -9770,6 +11139,11 @@ throat@^4.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + through2@^2.0.0, through2@^2.0.2: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -9779,13 +11153,14 @@ through2@^2.0.0, through2@^2.0.2: xtend "~4.0.1" through2@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" - integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== + 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, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6: +through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, 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= @@ -9830,6 +11205,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" @@ -9848,6 +11230,15 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" @@ -9865,6 +11256,11 @@ trim-newlines@^2.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= +trim-newlines@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" + integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== + trim-off-newlines@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" @@ -9901,10 +11297,26 @@ ts-jest@^24.0.2: semver "^5.5" yargs-parser "10.x" +ts-jest@^25.2.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-25.5.1.tgz#2913afd08f28385d54f2f4e828be4d261f4337c7" + integrity sha512-kHEUlZMK8fn8vkxDjwbHlxXRB9dHYpyzqKIGDNxbzs+Rz+ssNDSDNusEK8Fk/sDd4xE6iKoQLfFkFVaskmTJyw== + 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" + micromatch "4.x" + mkdirp "0.x" + semver "6.x" + yargs-parser "18.x" + tslib@^1.8.1, tslib@^1.9.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" - integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + version "1.13.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== tslib@~1.10.0: version "1.10.0" @@ -9944,7 +11356,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@^4.0.0, type-detect@^4.0.5: +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -9954,6 +11366,11 @@ type-fest@^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.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + type-fest@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" @@ -9984,6 +11401,13 @@ typed-styles@^0.0.7: resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9" integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q== +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -10033,26 +11457,31 @@ typescript@~3.0.3: integrity sha512-kk80vLW9iGtjMnIv11qyxLqZm20UklzuR2tL0QAnDIygIUIemcZMxlMWudl9OOt76H3ntVzcTiddQ1/pAAJMYg== typescript@~3.9.5: - version "3.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.5.tgz#586f0dba300cde8be52dd1ac4f7e1009c1b13f36" - integrity sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ== + version "3.9.7" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" + integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== typestyle@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/typestyle/-/typestyle-2.0.4.tgz#b8da5feaf8a4f9d1f69066f3cc4659098bd08457" - integrity sha512-+57eGqcEjiAc51hB/zXnZFoVuzwuxb9WbPpb1VT2zPJPIo88wGXod7dHa0IJ1Ue+sncHj2WZMZEPJRAqwVraoA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/typestyle/-/typestyle-2.1.0.tgz#7c5cc567de72cd8bfb686813150b92791aaa7636" + integrity sha512-6uCYPdG4xWLeEcl9O0GtNFnNGhami+irKiLsXSuvWHC/aTS7wdj49WeikWAKN+xHN3b1hm+9v0svwwgSBhCsNA== dependencies: - csstype "^2.4.0" - free-style "2.6.1" + csstype "2.6.9" + free-style "3.1.0" -uglify-js@^3.1.4: - version "3.8.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.8.0.tgz#f3541ae97b2f048d7e7e3aa4f39fd8a1f5d7a805" - integrity sha512-ugNSTT8ierCsDHso2jkBHXYrU8Y5/fY2ZUprfrJUiD7YpuFvV4jODLFmb3h4btQjqr5Nh4TX4XtgDfCU1WdioQ== +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== dependencies: - commander "~2.20.3" + commander "~2.19.0" source-map "~0.6.1" +uglify-js@^3.1.4: + version "3.10.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.0.tgz#397a7e6e31ce820bfd1cb55b804ee140c587a9e7" + integrity sha512-Esj5HG5WAyrLIdYU74Z3JdG2PxdIusvj6IWHMtlyESxc7kcDz7zYlYjpnSokn1UbpV0d/QX9fan7gkCNd/9BQA== + uid-number@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" @@ -10084,15 +11513,15 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== +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.0.5" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + 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== unified-language-server@^0.3.0: version "0.3.0" @@ -10111,9 +11540,9 @@ unified-language-server@^0.3.0: vscode-languageserver "^5.2.1" unified-lint-rule@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-1.0.4.tgz#be432d316db7ad801166041727b023ba18963e24" - integrity sha512-q9wY6S+d38xRAuWQVOMjBQYi7zGyKkY23ciNafB8JFVmDroyKjtytXHCg94JnhBCXrNqpfojo3+8D+gmF4zxJQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz#b4ab801ff93c251faa917a8d1c10241af030de84" + integrity sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg== dependencies: wrapped "^1.0.1" @@ -10175,16 +11604,16 @@ unist-util-is@^3.0.0: integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== unist-util-modify-children@^1.0.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/unist-util-modify-children/-/unist-util-modify-children-1.1.5.tgz#3cac9a5aea60b33395226eac4e37f15e0f04a7af" - integrity sha512-XeL5qqyoS3TEueCKEzHusWXE9JBDJPE4rl6LmcLOwlzv0RIZrcMNqKx02GSK3Ms4v45ldu+ltPxG42FBMVdPZw== + version "1.1.6" + resolved "https://registry.yarnpkg.com/unist-util-modify-children/-/unist-util-modify-children-1.1.6.tgz#1587130ca0ab5c56155fa60837ff524c3fbfbfaa" + integrity sha512-TOA6W9QLil+BrHqIZNR4o6IA5QwGOveMbnQxnWYq+7EFORx9vz/CHrtzF36zWrW61E2UKw7sM1KPtIgeceVwXw== dependencies: array-iterate "^1.0.0" unist-util-position@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.0.4.tgz#5872be7aec38629b971fdb758051f78817b0040a" - integrity sha512-tWvIbV8goayTjobxDIr4zVTyG+Q7ragMSMeKC3xnPl9xzIc0+she8mxXLM3JVNDDsfARPbCd3XdzkyLdo7fF3g== + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" + integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== unist-util-remove-position@^1.0.0: version "1.1.4" @@ -10206,9 +11635,9 @@ unist-util-stringify-position@^2.0.0: "@types/unist" "^2.0.2" unist-util-visit-children@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/unist-util-visit-children/-/unist-util-visit-children-1.1.3.tgz#92ba5807e3f54637be5de950263f9468942e7503" - integrity sha512-/GQ8KNRrG+qD30H76FZNc6Ok+8XTu8lxJByN5LnQ4eQfqxda2gP0CPsCX63BRB26ZRMNf6i1c+jlvNlqysEoFg== + version "1.1.4" + resolved "https://registry.yarnpkg.com/unist-util-visit-children/-/unist-util-visit-children-1.1.4.tgz#e8a087e58a33a2815f76ea1901c15dec2cb4b432" + integrity sha512-sA/nXwYRCQVRwZU2/tQWUqJ9JSFM1X3x7JIOsIgSzrFHcfVt6NkzDtKzyxg2cZWkCwGF9CO8x4QNZRJRMK8FeQ== unist-util-visit-parents@^2.0.0: version "2.1.2" @@ -10231,12 +11660,10 @@ universal-user-agent@^4.0.0: dependencies: os-name "^3.1.0" -universal-user-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-5.0.0.tgz#a3182aa758069bf0e79952570ca757de3579c1d9" - integrity sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q== - dependencies: - os-name "^3.1.0" +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== universalify@^0.1.0: version "0.1.2" @@ -10256,6 +11683,11 @@ upath@^1.2.0: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" @@ -10299,21 +11731,23 @@ util-promisify@^2.1.0: object.getownpropertydescriptors "^2.0.3" 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" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== dependencies: - inherits "2.0.1" + inherits "2.0.3" -uuid@^3.0.1, uuid@^3.2.1, uuid@^3.3.2: +uuid@^3.0.1, uuid@^3.2.1, uuid@^3.3.2, uuid@^3.3.3: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -10323,6 +11757,15 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== +v8-to-istanbul@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz#b97936f21c0e2d9996d4985e5c5156e9d4e49cd6" + integrity sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -10353,9 +11796,9 @@ vfile-location@^2.0.0, vfile-location@^2.0.1: integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== vfile-message@*: - version "2.0.2" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.2.tgz#75ba05090ec758fa8420f2c11ce049bcddd8cf3e" - integrity sha512-gNV2Y2fDvDOOqq8bEe7cF3DXU6QgV4uA9zMR2P8tix11l1r7zju3zry3wZ8sx+BEfuO6WQ7z2QzfWTvqHQiwsA== + version "2.0.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" + integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== dependencies: "@types/unist" "^2.0.0" unist-util-stringify-position "^2.0.0" @@ -10440,15 +11883,15 @@ vscode-json-languageservice@3.0.12: vscode-uri "^1.0.3" vscode-json-languageservice@^3.0.1: - version "3.4.11" - resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.4.11.tgz#7c0632bccc4b2b955f99f99f43d96d3eece1de42" - integrity sha512-26Qv1SFp6x3XmCqU1BRceRsSKRO3xkQa6/K8ziSRt52/LQPiw5ipSxlGVSlzIoi5LCmQVEqUajhiVEMNlFXhNw== + version "3.7.0" + resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.7.0.tgz#0174417f139cf41dd60c84538fd052385bfb46f6" + integrity sha512-nGLqcBhTjdfkl8Dz9sYGK/ZCTjscYFoIjYw+qqkWB+vyNfM0k/AyIoT73DQvB/PArteCKjEVfQUF72GRZEDSbQ== dependencies: - jsonc-parser "^2.2.0" - vscode-languageserver-textdocument "^1.0.0-next.5" - vscode-languageserver-types "^3.15.0-next.9" - vscode-nls "^4.1.1" - vscode-uri "^2.1.1" + jsonc-parser "^2.2.1" + vscode-languageserver-textdocument "^1.0.1" + vscode-languageserver-types "^3.15.1" + vscode-nls "^4.1.2" + vscode-uri "^2.1.2" vscode-jsonrpc@3.5.0: version "3.5.0" @@ -10497,17 +11940,17 @@ vscode-languageserver-protocol@^3.10.3, vscode-languageserver-protocol@^3.15.1, vscode-jsonrpc "^5.0.1" vscode-languageserver-types "3.15.1" -vscode-languageserver-textdocument@^1.0.0-next.5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.0.tgz#957381672eb3f507aa320e9f6d7efdfcb767d9fe" - integrity sha512-9E3hfoknSe9wX5Bed4rFbjkWdT9Oazw+suyCQ6ZbS68r3SAwue5M7xHd9WX9jBHguAai+qmwr5dMIf7gmzQryw== +vscode-languageserver-textdocument@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz#178168e87efad6171b372add1dea34f53e5d330f" + integrity sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA== vscode-languageserver-types@3.14.0: version "3.14.0" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz#d3b5952246d30e5241592b6dde8280e03942e743" integrity sha512-lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A== -vscode-languageserver-types@3.15.1, vscode-languageserver-types@^3.0.3, vscode-languageserver-types@^3.13.0, vscode-languageserver-types@^3.15.0-next.9, vscode-languageserver-types@^3.15.1, vscode-languageserver-types@^3.5.0, vscode-languageserver-types@^3.6.1, vscode-languageserver-types@^3.7.2: +vscode-languageserver-types@3.15.1, vscode-languageserver-types@^3.0.3, vscode-languageserver-types@^3.13.0, vscode-languageserver-types@^3.15.1, vscode-languageserver-types@^3.5.0, vscode-languageserver-types@^3.6.1, vscode-languageserver-types@^3.7.2: version "3.15.1" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz#17be71d78d2f6236d414f0001ce1ef4d23e6b6de" integrity sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ== @@ -10546,7 +11989,7 @@ vscode-languageserver@^5.0.0, vscode-languageserver@^5.2.1: vscode-languageserver-protocol "3.14.1" vscode-uri "^1.0.6" -vscode-languageserver@^6.1.0: +vscode-languageserver@^6.1.0, vscode-languageserver@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-6.1.1.tgz#d76afc68172c27d4327ee74332b468fbc740d762" integrity sha512-DueEpkUAkD5XTR4MLYNr6bQIp/UFR0/IPApgXU3YfCBCB08u2sm9hRCs6DxYZELkk++STPjpcjksR2H8qI3cDQ== @@ -10563,27 +12006,36 @@ vscode-nls@^3.2.1, vscode-nls@^3.2.2: resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.5.tgz#25520c1955108036dec607c85e00a522f247f1a4" integrity sha512-ITtoh3V4AkWXMmp3TB97vsMaHRgHhsSFPsUdzlueSL+dRZbSNTZeOmdQv60kjCV306ghPxhDeoNUEm3+EZMuyw== -vscode-nls@^4.0.0, vscode-nls@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.1.tgz#f9916b64e4947b20322defb1e676a495861f133c" - integrity sha512-4R+2UoUUU/LdnMnFjePxfLqNhBS8lrAFyX7pjb2ud/lqDkrUavFUTcG7wR0HBZFakae0Q6KLBFjMS6W93F403A== +vscode-nls@^4.0.0, vscode-nls@^4.1.1, vscode-nls@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.2.tgz#ca8bf8bb82a0987b32801f9fddfdd2fb9fd3c167" + integrity sha512-7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw== vscode-uri@^1.0.1, vscode-uri@^1.0.3, vscode-uri@^1.0.5, vscode-uri@^1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.8.tgz#9769aaececae4026fb6e22359cb38946580ded59" integrity sha512-obtSWTlbJ+a+TFRYGaUumtVwb+InIUVI0Lu0VBUAPmj2cU5JutEXg3xUE0c2J5Tcy7h2DEKVJBFi+Y9ZSFzzPQ== -vscode-uri@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.1.tgz#5aa1803391b6ebdd17d047f51365cf62c38f6e90" - integrity sha512-eY9jmGoEnVf8VE8xr5znSah7Qt1P/xsCdErz+g8HYZtJ7bZqKH5E3d+6oVNm1AC/c6IHUDokbmVXKOi4qPAC9A== +vscode-uri@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz#c8d40de93eb57af31f3c715dd650e2ca2c096f1c" + integrity sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A== 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 "^1.0.0" + +w3c-xmlserializer@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== dependencies: - browser-process-hrtime "^0.1.2" + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" walker@^1.0.7, walker@~1.0.5: version "1.0.7" @@ -10606,24 +12058,24 @@ wcwidth@^1.0.0: dependencies: defaults "^1.0.3" -web-tree-sitter@^0.15.9: - version "0.15.11" - resolved "https://registry.yarnpkg.com/web-tree-sitter/-/web-tree-sitter-0.15.11.tgz#2fa29820f4b6273f936e23de9ab1a1a62be347c3" - integrity sha512-7Sr26MV8bPPvKU+4VMpOoLYwaAFBsCsxRGtxYPSxClWIaR2KIciqg6zUeG14W9QrdlpBt7VHHzhd1CBb0e6i8w== +web-tree-sitter@^0.16.2: + version "0.16.4" + resolved "https://registry.yarnpkg.com/web-tree-sitter/-/web-tree-sitter-0.16.4.tgz#3009ac7cf1811f50ad564932126f3779ccaeec63" + integrity sha512-n1CfuJcJ+dynIx/fmavB6haPx37N3GZvY5HIGIselymDiSwNRC+8pAxOzoB4eVwUBJnbP3+aA8vWttrAZbgs7A== webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== dependencies: iconv-lite "0.4.24" -whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== @@ -10658,6 +12110,13 @@ which@^1.2.9, which@^1.3.0, which@^1.3.1: dependencies: isexe "^2.0.0" +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + 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" @@ -10666,9 +12125,9 @@ wide-align@^1.1.0: string-width "^1.0.2 || 2" windows-release@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.2.0.tgz#8122dad5afc303d833422380680a79cdfa91785f" - integrity sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA== + version "3.3.1" + resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.3.1.tgz#cb4e80385f8550f709727287bf71035e209c4ace" + integrity sha512-Pngk/RDCaI/DkuHPlGTdIkDiTAnAkyMjoQMZqRsxydNl1qGXNIoZrB7RK8g53F2tEgQBMqQJHQdYZuQEEAu54A== dependencies: execa "^1.0.0" @@ -10677,10 +12136,10 @@ word-wrap@~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== -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= wrap-ansi@^5.1.0: version "5.1.0" @@ -10691,6 +12150,15 @@ wrap-ansi@^5.1.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" + wrapped@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wrapped/-/wrapped-1.0.1.tgz#c783d9d807b273e9b01e851680a938c87c907242" @@ -10722,6 +12190,16 @@ write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: imurmurhash "^0.1.4" signal-exit "^3.0.2" +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + write-json-file@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" @@ -10768,10 +12246,10 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" -ws@^7.2.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.1.tgz#03ed52423cd744084b2cf42ed197c8b65a936b8e" - integrity sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A== +ws@^7.0.0, ws@^7.2.0: + version "7.3.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" + integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== x-is-string@^0.1.0: version "0.1.0" @@ -10788,18 +12266,16 @@ xml@^1.0.1: resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU= +xmlchars@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + xorshift@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/xorshift/-/xorshift-0.2.1.tgz#fcd82267e9351c13f0fb9c73307f25331d29c63a" integrity sha1-/NgiZ+k1HBPw+5xzMH8lMx0pxjo= -xregexp@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50" - integrity sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g== - dependencies: - "@babel/runtime-corejs3" "^7.8.3" - xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -10841,33 +12317,41 @@ yaml-language-server@~0.4.0: vscode-uri "^1.0.6" yaml-ast-parser-custom-tags "0.0.43" -yargs-parser@10.x, yargs-parser@^10.0.0: +yargs-parser@10.x: version "10.1.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== dependencies: camelcase "^4.1.0" -yargs-parser@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== +yargs-parser@18.x, yargs-parser@^18.1.2, yargs-parser@^18.1.3: + 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" -yargs-parser@^15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.0.tgz#cdd7a97490ec836195f59f3f4dbe5ea9e8f75f08" - integrity sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ== +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@^15.0.1: + version "15.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" + integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" yargs@^13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== dependencies: cliui "^5.0.0" find-up "^3.0.0" @@ -10878,12 +12362,12 @@ yargs@^13.3.0: string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^13.1.1" + yargs-parser "^13.1.2" yargs@^14.2.2: - version "14.2.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.2.tgz#2769564379009ff8597cdd38fba09da9b493c4b5" - integrity sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA== + version "14.2.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" + integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== dependencies: cliui "^5.0.0" decamelize "^1.2.0" @@ -10895,4 +12379,21 @@ yargs@^14.2.2: string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^15.0.0" + yargs-parser "^15.0.1" + +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: + 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" From 1423eafb609798c1bc45ae932c8160cc7bad5943 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 19 Jul 2020 13:08:23 -0400 Subject: [PATCH 79/82] more headless work on notebook --- docs/Installation.ipynb | 1 + yarn.lock | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/Installation.ipynb b/docs/Installation.ipynb index 840edfe3e..ea5418cf6 100644 --- a/docs/Installation.ipynb +++ b/docs/Installation.ipynb @@ -267,6 +267,7 @@ "metadata": { "hide_input": true }, + "outputs": [], "source": [ "%%markdown\n", "#### Install Jupyter[Lab] LSP\n", diff --git a/yarn.lock b/yarn.lock index 750c4d80d..3f284d031 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1266,7 +1266,7 @@ "@types/yargs" "^15.0.0" chalk "^3.0.0" -"@jupyterlab/application@2": +"@jupyterlab/application@2", "@jupyterlab/application@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-2.2.0.tgz#65d37cfc6146e28e7aa250667996024134400bfa" integrity sha512-dayndJ2MahAORRMDrersVvANmOded5GkKKShUAq/8C24bRkKd8zb/U4IpG1Ge93NWVW6ATHjRst6LxkiR+biOA== From 98cc055550655ba76f49939497c98539e2526334 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 19 Jul 2020 13:12:11 -0400 Subject: [PATCH 80/82] linting --- docs/Installation.ipynb | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/Installation.ipynb b/docs/Installation.ipynb index ea5418cf6..13e5da67e 100644 --- a/docs/Installation.ipynb +++ b/docs/Installation.ipynb @@ -8,16 +8,19 @@ }, "outputs": [], "source": [ - "from markdown import markdown\n", "import sys\n", - "sys.path.insert(0, '..')\n", + "\n", + "from markdown import markdown\n", + "\n", "from versions import (\n", " JUPYTER_LSP_VERSION,\n", " JUPYTERLAB_LSP_VERSION,\n", " JUPYTERLAB_NEXT_MAJOR_VERSION,\n", " JUPYTERLAB_VERSION,\n", - " REQUIRED_JUPYTERLAB\n", - ")" + " REQUIRED_JUPYTERLAB,\n", + ")\n", + "\n", + "sys.path.insert(0, \"..\")" ] }, { From c37911704026c45cf8537ed262d837c13e242cb6 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 19 Jul 2020 13:38:21 -0400 Subject: [PATCH 81/82] move imports because lint --- docs/Installation.ipynb | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/Installation.ipynb b/docs/Installation.ipynb index 13e5da67e..be9875fa6 100644 --- a/docs/Installation.ipynb +++ b/docs/Installation.ipynb @@ -12,15 +12,24 @@ "\n", "from markdown import markdown\n", "\n", + "sys.path.insert(0, \"..\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hide_input": true + }, + "outputs": [], + "source": [ "from versions import (\n", " JUPYTER_LSP_VERSION,\n", " JUPYTERLAB_LSP_VERSION,\n", " JUPYTERLAB_NEXT_MAJOR_VERSION,\n", " JUPYTERLAB_VERSION,\n", " REQUIRED_JUPYTERLAB,\n", - ")\n", - "\n", - "sys.path.insert(0, \"..\")" + ")\n" ] }, { From e5610af73aabef9f5f2fea395254f4ca8ea139b6 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 19 Jul 2020 14:13:08 -0400 Subject: [PATCH 82/82] use base env in test --- ci/job.test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/job.test.yml b/ci/job.test.yml index f6188af8d..edc94f222 100644 --- a/ci/job.test.yml +++ b/ci/job.test.yml @@ -88,13 +88,13 @@ jobs: summaryFileLocation: 'packages/${{ js_package }}/coverage/cobertura-coverage.xml' condition: always() - - script: ${{ platform.activate }} jupyterlab-lsp && jupyter kernelspec list + - script: ${{ platform.activate }} && jupyter kernelspec list displayName: list kernels - - script: ${{ platform.activate }} jupyterlab-lsp && jupyter lsp kernelspec install + - script: ${{ platform.activate }} && jupyter lsp kernelspec install displayName: install kernel - - script: ${{ platform.activate }} jupyterlab-lsp && jupyter kernelspec list + - script: ${{ platform.activate }} && jupyter kernelspec list displayName: list kernels (again) - script: ${{ platform.activate }} && python scripts/utest.py --test-run-title="Pytest ${{ platform.name }}${{ python.name }}"